Основной целью применения SSL сертификатов является шифрование данных, передаваемых на сервер от клиента и клиенту от сервера. Для обеспечения безопасности такого соединения современные браузеры используют алгоритм TLS, основанный на сертификатах формата X.509. Данный алгоритм применяет ассиметричное шифрование, чтобы создать ключ сессии для симмертичного шифрования. Последнее используется непосредственно для передачи данных после установления защищенного соединения.

Что такое ключ в криптографии?

Ключ в криптографии представляет собой секретную информацию, которая применяется в криптографии для шифрования и декодирования сообщений, для простановки цифровой подписи и ее проверки, для вычисления кодов аутентичности сообщений и прочее. Насколько ключ надежен определяется так называемой длиной ключа, которая измеряется в битах. Стандартной длиной ключа для SSL сертификатов считается 128 или 256 бит. Длина ключа сертификата корневого центра сертификации (root certificate) не должна быть ниже 4096 бит. Все центры сертификации, с которыми мы сотрудничаем, предоставляют SSL сертификаты с ключом, полностью соответствующим современным стандартам:

Открытый и закрытый ключ в ассиметричном шифровании

В ассиметричном шифровании применяется пара ключей : открытый (Public key) и закрытый , также называемый секретным (Private key ). Открытый и закрытый ключи в данном случае позволяют криптографическому алгоритму шифровать и дешифровать сообщение. При этом сообщения, зашифрованные открытым ключом, расшифровать можно только с помощью закрытого ключа. Открытый ключ публикуется в сертификате владельца и доступен подключившемуся клиенту, а закрытый – хранится у владельца сертификата. Открытый и закрытый ключ между собой связаны математическими зависимостями, поэтому подобрать открытый или закрытый ключ невозможно за короткое время (срок действия сертификата). Именно поэтому максимальный срок действия SSL сертификатов более высого уровня защиты всегда ниже. Так, можно заказать максимум на 2 года. При этом заказывая новый SSL сертификат или продлевая старый, важно генерировать новый CSR запрос, так как к нему привязывается Ваш закрытый ключ и при выпуске нового SSL сертификата лучше его обновлять. Взаимодействие клиента с сервером происходит следующим образом:
  1. браузер на основе открытого ключа шифрует запрос и отправляет его на сервер;
  2. сервер, применяя закрытый ключ, расшифровывает полученное сообщение;
  3. сервер шифрует закрытым ключом свой цифровой идентификатор и передает его клиенту;
  4. клиент сверяет идентификатор сервера и передает свой;
  5. после взаимной аутентификации клиент шифрует открытым ключом ключ будущей сессии и передает его на сервер;
  6. все последующие сообщения, которые передаются между клиентом и сервером, подписываются ключом сессии и шифруются с использованием открытого и закрытого ключа.
Таким образом обеспечиваются несколько пунктов безопасности:
  • исключается возможность утечки информации – при перехвате её нельзя будет расшифровать;
  • сервер подтверждает свой адрес и идентификатор, отсекается возможность перенаправления на другой сайт (фишинг);
  • клиенту присваивается индивидуальная сессия, что позволяет отличать его от других клиентов более надежно;
  • после установки защищенной сессии все сообщения шифруются с использованием идентификатора клиента, и не могут быть незаметно перехвачены или изменены.

В общем случае шифрование открытым и закрытым ключом можно рассматривать как кейс, для которого используются два ключа: одним можно только закрыть, другим – открыть. Если кейс закрыли первым ключом, открыть его может только второй, если закрыли вторым, чтобы открыть – потребуется первый. Наглядно это можно увидеть на схеме выше.

(MAC). При использовании одного и того же алгоритма результат шифрования зависит от ключа. Для современных алгоритмов сильной криптографии утрата ключа приводит к практической невозможности расшифровать информацию.

Для современных симметричных алгоритмов (AES , CAST5 , IDEA , Blowfish , Twofish) основной характеристикой криптостойкости является длина ключа. Шифрование с ключами длиной 128 бит и выше считается сильным , так как для расшифровки информации без ключа требуются годы работы мощных суперкомпьютеров. Для асимметричных алгоритмов, основанных на проблемах теории чисел (проблема факторизации - RSA , проблема дискретного логарифма - Elgamal) в силу их особенностей минимальная надёжная длина ключа в настоящее время - 1024 бит. Для асимметричных алгоритмов, основанных на использовании теории эллиптических кривых (ECDSA , ГОСТ Р 34.10-2001 , ДСТУ 4145-2002), минимальной надёжной длиной ключа считается 163 бит, но рекомендуются длины от 191 бит и выше.

Классификация ключей

Криптографические ключи различаются согласно алгоритмам, в которых они используются.

  • Секретные (Симметричные) ключи - ключи, используемые в симметричных алгоритмах (шифрование, выработка кодов аутентичности). Главное свойство симметричных ключей: для выполнения как прямого, так и обратного криптографического преобразования (шифрование/расшифровывание, вычисление MAC/проверка MAC) необходимо использовать один и тот же ключ (либо же ключ для обратного преобразования легко вычисляется из ключа для прямого преобразования, и наоборот). С одной стороны, это обеспечивает более высокую конфиденциальность сообщений, с другой стороны, создаёт проблемы распространения ключей в системах с большим количеством пользователей.
  • Асимметричные ключи - ключи, используемые в асимметричных алгоритмах (шифрование, ЭЦП); вообще говоря, являются ключевой парой , поскольку состоят из двух ключей:
    • Закрытый ключ (en:Private key) - ключ, известный только своему владельцу. Только сохранение пользователем в тайне своего закрытого ключа гарантирует невозможность подделки злоумышленником документа и цифровой подписи от имени заверяющего.
    • Открытый ключ (en:Public key) - ключ, который может быть опубликован и используется для проверки подлинности подписанного документа, а также для предупреждения мошенничества со стороны заверяющего лица в виде отказа его от подписи документа. Открытый ключ подписи вычисляется, как значение некоторой функции от закрытого ключа, но знание открытого ключа не дает возможности определить закрытый ключ.

Главное свойство ключевой пары: по секретному ключу легко вычисляется открытый ключ, но по известному открытому ключу практически невозможно вычислить секретный. В алгоритмах ЭЦП подпись обычно ставится на секретном ключе пользователя, а проверяется на открытом. Таким образом, любой может проверить, действительно ли данный пользователь поставил данную подпись. Тем самым асимметричные алгоритмы обеспечивают не только целостность информации, но и её аутентичность. При шифровании же наоборот, сообщения шифруются на открытом ключе, а расшифровываются на секретном. Таким образом, расшифровать сообщение может только адресат и больше никто (включая отправителя). Использование асимметричных алгоритмов снимает проблему распространения ключей пользователей в системе, но ставит новые проблемы: достоверность полученных ключей. Эти проблемы более-менее успешно решаются в рамках инфраструктуры открытых ключей (PKI).

  • Сеансовые (сессионные) ключи - ключи, вырабатываемые между двумя пользователями, обычно для защиты канала связи. Обычно сеансовым ключом является общий секрет - информация, которая вырабатывается на основе секретного ключа одной стороны и открытого ключа другой стороны. Существует несколько протоколов выработки сеансовых ключей и общих секретов, среди них, в частности, алгоритм Диффи - Хеллмана .
  • Подключи - ключевая информация, вырабатываемая в процессе работы криптографического алгоритма на основе ключа. Зачастую подключи вырабатываются на основе специальной процедуры развёртывания ключа.

См. также


Wikimedia Foundation . 2010 .

Смотреть что такое "Ключ (криптография)" в других словарях:

    Ключ: В Викисловаре есть статья «ключ» Ключ, родник место, где подземные воды вытекают на поверхность земли … Википедия

    Ключ инструмент для открывания замка. Гаечный ключ, разводной ключ инструмент для откручивания болтовых соединений. Ключ (криптография) информация, используемая алгоритмом для преобразования сообщения при шифровании или расшифровании. Ключ… … Википедия

    У этого термина существуют и другие значения, см. Ключ (значения). Ключ в замочной скважине В … Википедия

    - (греч., от kryptos тайный, и grapho пишу). Писание условными знаками (шифрованное), известное только тем лицам, которые получают особый для чтения ключ. Словарь иностранных слов, вошедших в состав русского языка. Чудинов А.Н., 1910. КРИПТОГРАФИЯ… … Словарь иностранных слов русского языка

    Немецкая криптомашина Lorenz использовалась во время Второй мировой войны для шифрования самых секретных сообщений Криптография (от др. греч … Википедия

    Основная статья: История криптографии Фотокопия телеграммы Циммермана Во время первой мировой войны криптография, и, в особенности, криптоанализ становится одним из инструментов ведения войны. Известны факты … Википедия

    Содержание 1 Российская империя 1.1 Армия 1.2 Флот 2 Британская империя 3 Ф … Википедия

    КРИПТОГРАФИЯ - (от греч. «криптос» тайный, скрытый) искусство письма секретными кодами и их дешифровка. Отсюда произошло понятие «криптограмма», т. е. что либо написанное шифром или в другой форме, которая понятна только тому, кто имеет к написанному ключ. В… … Символы, знаки, эмблемы. Энциклопедия

    Криптография с открытым ключом/PUBLIC KEY CRYPTOGRAPHY - разработана Уайтфильдом Диффи (Whitfielf Diffi). Использует пару ключей, причем каждая пара обладает следующими свойствами: что либо зашифрованное одним из них может быть расшифровано с помощью другого; имея один ключ из пары, называемый открытым … Толковый словарь по информационному обществу и новой экономике

    У этого термина существуют и другие значения, см. Ключ. Ключ в замочной скважине … Википедия

Мало кто знает как именно работает асимметричное шифрование. К примеру есть люди которые не считают протокол https какой-либо адекватной защитой передаваемых данных. И как правило на попытку убедить в обратном, они отвечают что-то в духе «если мы передаем зашифрованные данные, то мы должны сказать как их расшифровывать, а эту информацию можно перехватить и, следовательно, расшифровать данные». А на аргументы, что это не так и в основу положено асимметричное шифрование, поступает ответ «Ну и что?».

Ладно, я понимаю, знать все тонкости реализации асимметричного шифрования нужно далеко не всем. Но общий принцип работы, я считаю, должен знать каждый, кто как-либо связан с компьютерами.

Хочу вынести суть данного поста в эту аннотацию: Запомните, асимметричное шифрование безопасно , естественно при выполнении всех условий. И чтобы доказать это я попробую описать алгоритм понятным языком, чтобы каждый смог понять, что он безопасен. Встречайте Алису, Боба и Еву и передачу их секретного сообщения под катом.

Кстати почему Алиса и Боб? Об этом есть кратенькая статья на википедии: Алиса, Боб и Ева . Чтобы было понятнее, Алиса и Боб хотят обменяться сообщениями, а Ева пытается эти сообщения перехватить и прочесть.

Немного истории

Криптография прошлых веков имела одну огромную проблему — проблема передачи ключей. В те времена существовали только так называемые «симметричные» шифры — шифры при котором данные шифруются и расшифровываются одним и тем же ключом.

К примеру, Алиса зашифровала некоторое сообщение и хочет отправить его Бобу. Естественно, чтобы Боб его прочитал, ему нужен ключ которым было зашифровано данное сообщение. И тут возникает проблема, как передать ключ чтобы его никто не смог перехватить. Пытливые умы предложат — пусть передают при личной встрече, а потом общаются сколько захотят. Да, не спорю, выход. А теперь представьте на секунду, что ваша интернет почта, перед тем как вы авторизируетесь в ней, потребует вашей поездки до физического местоположения сервера с почтой. Удобно? Пожалуй не очень.

Конечно ключ можно передавать по другому каналу связи. Но криптография рассматривает все незащищенные каналы связи как небезопасные. То есть передача ключа Бобу по телефону, например, считается небезопасной так, как ничто не мешает Еве прослушивать и телефон в том числе.

До 70-ых годов, эта проблема настолько стала привычной, что считался аксиомой тот факт, что для передачи сообщения нужно передавать и ключ которым сообщение зашифровано (причем некоторых люди до сих пор считают именно так). Но в 76 году Диффи и Хеллман предложили свой «метод экспоненциального обмена ключей». С этих годов и началось развитие асимметричных криптосистем.

Немножко реальной жизни

Прежде чем изучать какой либо алгоритм, нужно представить как он работает. И самый простой способ — это сравнить его с работой чего-то в реальности.

Представим что Алиса и Боб живут в стране, в которой вся почтовая система абсолютно аморальна и почтовые служащие читают всю незащищенную корреспонденцию. Алиса, девочка не глупая, прежде чем отправить сообщение Бобу, взяла железный ящик и, положив внутрь письмо и закрыв его на свой замок, отправляет этот ящик Бобу.

Естественно на почте прочитать это письмо не могут, но его не может прочитать и сам Боб, так как у него нет ключа которым закрыт замок. Алиса, конечно, может взять еще один железный ящик, положить в него ключ от предыдущего, и отправить его Бобу, но его Боб тоже не сможет открыть…

Единственный путь это все же сделать дубликат ключа и дать его Бобу при личной встрече…

И вот начинает казаться что обмен ключами является неизбежной частью шифрования — или все-таки нет?

Представим другую картину. Распишу пошагово:

  1. Алиса кладет свое письмо в железный ящик и, заперев его на замок, отправляет Бобу.
  2. Боб при получении ящика, (внимание!) берет свой замок и, дополнительно заперев им ящик, отправляет обратно.
  3. Алисе ящик приходит уже с двумя замками (напомню с первым замком Алисы от которого у нее есть ключ, и со вторым — Боба, от которого ключ есть есть только у Боба).
  4. Алиса снимает свой замок, и отправляет ящик обратно Бобу
  5. Бобу приходит ящик с уже одним его замком от которого у него есть ключ
  6. Боб отпирает оставшийся его замок своим ключом, и читает сообщение

Значение этой кратенькой истории огромно. Она показывает что два человека могут передавать секретное сообщение без обмена ключами. Вдумайтесь! Эта история фактически рушит все аксиомы на которых была построена тогдашняя криптография. Да мы получаем некоторое усложнение процесса (ящик пришлось пересылать три раза), но результат…

Вернемся к криптографии

Казалось бы решение найдено. Отправитель и принимающий шифруют свое сообщение, и затем собеседники поочередно снимают свой шифр.


Но суть в том что не существуют таких шифров, которые бы позволили снять шифр из под другого шифра. То есть этап где Алиса снимает свой шифр невозможен:


К сожалению, все имеющиеся алгоритмы до сих пор требуют снятия шифров в той очереди в которой они были применены. Боюсь назвать это аксиомой (так как история уже знает случаи когда такие аксиомы разбивались в пух и прах), но это так до сих пор.

Вернемся к математике

Идея с ящиком, о которой я описывал выше, вдохновили Диффи и Хеллмана искать способ передачи сообщения. В конце концов они пришли к использованию односторонних функций.

Что такое односторонняя функция? К примеру есть функция удвоение, т.е удвоить(4)=8 , она двухсторонняя, т.к. из результата 8 легко получить исходное значение 4. Односторонняя функция — та функция после применения которой практически невозможно получить исходное значение. К примеру смешивание желтой и синей краски — пример односторонней функции. Смешать их легко , а вот получить обратно исходные компоненты — невозможно . Одна из таких функций в математике — вычисление по модулю .

За основу алгоритма Хеллман предложил функцию Y x (mod P) . Обратное преобразование для такой функции очень сложно, и можно сказать что, по сути, заключается в полном переборе исходных значений.

К примеру вам сказали, что 5 x (mod 7) = 2 , попробуйте найдите x , а? Нашли? А теперь представьте что за Y и P взяты числа порядка 10 300 .

Кстати сказать, для повышения стойкости, число P должно являться простым числом, а Y — являться первообразным корнем по модулю P . Но так как мы все же пытаемся понять теорию, то смысла заморачиваться на этом я не вижу.

Алгоритм Диффи-Хеллмана

И вот однажды Хеллмана осенило и он смог разработать рабочий алгоритм обмена ключами. Для работы по этому алгоритму нужно выполнять шаги на обоих сторонах, поэтому я зарисую это в таблице:

Алиса Боб
Этап 1 Оба участника договариваются о значениях Y и P для общей односторонней функции. Эта информация не является секретной. Допустим были выбраны значения 7 и 11 . Общая функция будет выглядеть следующим образом: 7 x (mod 11)
Этап 2 Алиса выбирает случайное число, например 3 A Боб выбирает случайное число, например 6 , хранит его в секрете, обозначим его как число B
Этап 3 Алиса подставляет число A 7 3 (mod 11) = 343 (mod 11) = 2 a Боб подставляет число B в общую функцию и вычисляет результат 7 6 (mod 11) = 117649 (mod 11) = 4 , обозначает результат этого вычисления как число b
Этап 4 Алиса передает число a Бобу Боб передает число b Алисе
Этап 5 Алиса получает b от Боба, и вычисляет значение b A (mod 11) = 4 3 (mod 11) = 64 (mod 11) = 9 Боб получает a от Алисы, и вычисляет значение a B (mod 11) = 2 6 (mod 11) = 64 (mod 11) = 9
Этап 6 Оба участника в итоге получили число 9 . Это и будет являться ключом.

Магия? Не спорю, с первого взгляда непонятно. Но после вчитывания и вдумывания в эту таблицу становится понятно как это работает. Впрочем если понятно не стало, то пролистайте до конца главы, там я выложил поясняющее видео.

Причем обратите внимание, что для получения ключа в конечной формуле, любому человеку нужно иметь три значения:

  • Значения a и P , и секретное число Боба B
  • или значения b и P , и секретное число Алисы A

Но секретные числа по каналу не передаются! Еве не получится восстановить ключ, не имея чьего-нибудь секретного числа. Почему — я писал выше, данная функция является односторонней. Попробуйте решите уравнение 4 x (mod 11) = 2 y (mod 11) найдя x и y .

Чтобы было понятнее, как работает схема Хеллмана, представьте шифр, в котором в качестве ключа каким-то образом используется цвет:

Допустим вначале, что у всех, включая Алису, Боба и Еву, имеется трехлитровая банка, в которую налит один литр желтой краски. Если Алиса и Боб хотят договориться о секретном ключе, они добавляют в свои банки по одному литру своей собственной секретной краски.

Алиса может добавить краску фиолетового оттенка, а Боб — малинового. После этого каждый из них посылает свою банку с перемешанным содержимым другому.

И наконец, Алиса берет смесь Боба и подливает в нее один литр своей секретной краски, а Боб берет смесь Алисы и добавляет в нее один литр своей секретной краски. Краска в обеих банках теперь станет одного цвета, поскольку в каждой находится по одному литру желтой, фиолетовой и малиновой краски.

Именно этот цвет, полученный при добавлении дважды в банки красок, и будет использоваться как ключ. Алиса понятия не имеет, какую краску добавил Боб, а Боб также не представляет, какую краску налила Алиса, но оба они достигли одного и того же результата.

Между тем Ева в ярости. Даже если она и сумеет перехватить банки с промежуточным продуктом, ей не удастся определить конечный цвет, который и будет согласованным ключом. Ева может видеть цвет краски, полученной при перемешивании желтой краски и секретной краски Алисы в банке, отправленной Бобу, и она может видеть цвет краски, полученной при перемешивании желтой краски и секретной краски Боба в банке, отправленной Алисе, но чтобы найти ключ, ей, на самом деле, необходимо знать цвета исходных секретных красок Алисы и Боба. Однако, рассматривая банки с перемешанными красками, Ева не сможет определить секретные краски Алисы и Боба. Даже если она возьмет образец одной из смешанных красок, ей не удастся разделить ее на исходные краски, чтобы найти секретную, поскольку смешивание краски является односторонней функцией.

Все равно непонятно? Тогда смотрим видео:

Что же, надеюсь, вы поняли, что существует вполне реальный способ безопасного обмена ключами. Но прошу заметить, назвать этот алгоритм асимметричным шифром пока нельзя, так как по сути это всего лишь алгоритм обмена ключами.

Асимметричное шифрование

асимметричный алгоритм предполагает под собой наличие двух ключей — публичного и приватного. То есть сообщение шифруется публичным ключом, а расшифровывается приватным и ни как иначе. Собственно именно эту концепцию сформулировал Диффи.

В общем суть данного алгоритма заключается в том, что принимающая сторона перед приемкой сообщения генерирует пару ключей на основе алгоритма модульной арифметики (принцип такой же как и в алгоритме Диффи-Хеллмана), собственно приватный и публичный ключ. Отправитель перед отправкой получает публичный ключ и шифрует сообщение данным ключом, после чего данное сообщение можно расшифровать только приватным ключом, который хранится в секрете у принимающей стороны.


Если вернуться к аналогии с замками, то шифрование с открытым ключом можно представить себе следующим образом:

Любой способен запереть замок, просто защелкнув его, чтобы он закрылся, но отпереть его может только тот, у кого есть ключ. Запереть замок (зашифровывание) легко, почти все могут это сделать, но открыть его (расшифровывание) имеет возможность только владелец ключа. Понимание того, как защелкнуть замок, чтобы он закрылся, ничего не скажет вам, как его отпереть.

Можно провести и более глубокую аналогию.

Представьте, что Алиса проектирует замок и ключ. Она бдительно охраняет ключ, но при этом изготавливает тысячи дубликатов замков и рассылает их по почтовым отделениям по всему миру. Если Боб хочет послать сообщение, он кладет его в коробку, идет на местный почтамт, просит «замок Алисы» и запирает им коробку. Теперь уже ему не удастся открыть коробку, но когда коробку получит Алиса, она сможет открыть ее своим единственным ключом.

Замок и защелкивание его, чтобы он закрылся, эквивалентны общему ключу для зашифровывания, поскольку все имеют доступ к замкам и все могут воспользоваться замком, чтобы закрыть сообщение в коробке. Ключ от замка эквивалентен секретному ключу для расшифровывания, потому что он имеется только у Алисы, только она сможет открыть замок, и только она сможет получить доступ к находящемуся в коробке сообщению.

Есть несколько алгоритмов реализующих асимметричное шифрование. Самый известный из них — RSA. Расписывать его я не вижу смысла, так как понять как он работает с ходу все равно не получится, да и лучше чем написано на википедии я написать все равно не смогу.

Заключение

Что же, надеюсь что, поняв как работает асимметричное шифрование изнутри, вы станете больше ему доверять и соответственно чаще пользоваться SSL =)

Использовались материалы из книги Сингх Саймон — Книга шифров. Кстати, самая лучшая книга для тех кто хочет хотя бы чуточку разбираться в криптографии. Всем советую прочитать.

  1. tv

    Подбор такого ключа у вас займет времени ну оооочень много. Чуть больше чем существует вселенная. Даже на очень мощных компьютерах.

  2. Игорь

    Для чего нужна эта ахинея с открытыми ключами? Симметричные надёжней.
    Добрый день!
    Хороший сайт, понятно изложен материал, огромное спасибо автору. Попал сюда случайно в сентябре, когда искал информацию по практическому шифрованию.
    Пишу потому, что хочу спросить: Есть желающие узнать как найти числа для симметричного шифрования? Могу научить на пальцах как быстро проверить число Р на простоту (без поиска числа g) — но это вряд ли будет интересно. Самое интересное:
    Найти число Р любой длины и число g к нему. Никакие 2 в степени n плюс один (или минус один) при этом не использую. Естественно, это бесплатно. Есть даже сайт, где я выложил свою работу.

  • Уася Петровичъ

    Понимаю что прошло много времени, но все же отвечу для таких же как я новых читателей.

    Это не сработает, т.к. после действий 2 и 3 мы видим разницу, на которую изменилось число каждого из блоков, следовательно нам становится очевидно секретное число Боба и нам остается только перехватить сообщение после 4-го действия (т.е. уже без шифра Алисы) и воспользоваться уже известным нам числом Боба.

  • Евгений

    Огромное спасибо за статью!
    После прочтения почти все легло на свои полочки, обрело структуру, которую легко наращивать.
    Имея такую структуру легко генерировать правильные вопросы (полочка для атак MiTM, отдельное спасибо Михаилу:)).

    С точки зрения педагогики Вы сделали все идеально. Думаю Вы правы, что не добавили в эту статью атаки MiTM иначе был бы перегруз информационный.

    Видео прелестное, особенно учитывая его возраст.

    PS: использование метафор для объяснения «сложных» систем честно говоря трудно переоценить. Еще раз спасибо!

  • dbzix

    Из этой статьи я не уловил момент перехода от алгоритма Диффи-Хеллмана, где два абонента для получения секретного ключа обмениваются публичными данными и промежуточными результатами вычислений (в примере получилось целых 6 этапов) к тому этапу, где для шифрования используется некий публичный ключ, который затем дешифруется при помощи приватного (я здесь насчитываю всего 2 этапа передачи данных — отправка публичного ключа и отправка зашифрованного этим ключом сообщения).
    Т.е. я понимаю, что где-то между двумя этими объяснениями наверняка кроется много математики, и в итоге объяснение сводится к «это работает именно так, просто поверь». Но было бы наверное проще понять этот внезапный переход, если бы аналогию с красками распространили на объяснение сути шифрования публичным ключом с последующим дешифрованием приватным. А пока получается какое-то «Б работает потому-что А», в то время как между А и Б чёткой связи не прослеживается. По крайней мере для меня.
    Уважаемый автор, не будете ли вы так любезны пояснить мне сей мистический прыжок от А к Б? :) Спасибо!

  • Евгений

    Добрый день,

    Дано: есть формула Y^x (mod P).
    пример в статье основывается на формуле 7^x (mod 11)

    я взял для своего примера 4^x (mod 7)
    и у меня не получилось прийти к общему ключу.
    Вопрос: почему алгоритм в примере работает для 7^x (mod 11) и не работает для 4^x (mod 7)?

  • Jessi-jane
  • Андрей

    Спасибо, статья отличная!
    Только вот чуть не разобрался в алгоритме, в том, как высчитывать через модуль.
    Не подскажите, как высчитывать число В, если число А меньше модуля?
    Ну например:
    3(mod 13) = ?

    Я знаю, что если, например, нужно высчитать 625(mod 13), нужно 625/13, а потом наибольший возможный целый делитель (48) умножить на модуль (что здесь будет равняться 624), и наконец 625-624 = 1
    Числа 625 и 1 сравнимы по модулю 13, так как 624 делится на 13.
    Вот это я понимаю. А вот как быть если модуль больше числа а?

  • Yellow Horror

    1. Атака «человек посередине», это серьёзная проблема. Насколько я могу судить, в рамках одной только криптографии она в принципе не решается: если принять, что Ева способна перехватить и незаметно подменить ВСЕ данные, поступающие к Алисе или исходящие от неё по ЛЮБЫМ каналам связи, никакое шифрование не поможет. Как минимум один сертификат должен быть получен Алисой из абсолютно надёжного источника. Но в случае, если злоумышленник может только прослушивать канал связи, а не менять данные в нём, асимметричное шифрование вполне надёжно.
    2. Что касается возможности снимать один «слой шифра» из-под другого, этим свойством обладает банальная функция XOR, широко используемая в криптографии с древнейших времён по сей день. Не думаю, что её можно запатентовать:(

    1. Дмитрий Амиров Автор

      Да вы правы, атака mitm на сегодняшний день не решается никак если быть абсолютным параноиком. Если же им не быть то возня с сертификатами и подписями обеспечивают «необходимую и достаточную» защиту.

      Что касается функиции XOR — ее сложно назвать шифром, т.к. им она по своей сути не является.

      1. Yellow Horror

        Да ладно? Погуглите про «Шифр Вернама». Это система передачи сообщений с абсолютной криптоустойчивостью. И основана она именно на XOR. Если оставить в стороне некоторые организационные сложности (создание истинно случайных ключей с равномерным распределением, сохранение тайны шифроблокнота в недружелюбном окружении и надёжное уничтожение использованных ключей), ничего проще и надёжнее человечество ещё не придумало.

      2. Yellow Horror

        Хотя, по здравом размышлении, я понял, что метод с двойным обратимым шифрованием не работает, если злоумышленник знает алгоритм шифрования. Рассмотрим на примере идеи Михаила:

        1. Разбиваем шифруемую информацию на блоки. Каждый блок представлен числом. Размер блока (кол-во бит) определяет кол-во возможных значений блока и (соответственно?) стойкость шифрования.
        2. Алиса для шифрования сообщения выбирает секретное число (которое никому не отправляет), которое прибавляет к каждому из чисел в блоках и отправляет зашифрованное таким образом сообщение Бобу.

        Пока всё в порядке: Ева не может прочесть сообщение Алисы, т.к. не знает число-ключ. Если блоки достаточно велики, восстановить сообщение Алисы сложно, а если блок длиннее сообщения и ключ не имеет уязвимостей — невозможно. Но Ева может скопировать шифрограмму Алисы и делает это.

        3. Боб принимает зашифрованное сообщение, выбирает своё секретное число (которое также никому не отправляет), прибавляет это число к каждому из чисел в блоках зашифрованного Алисой сообщения и отправляет это двукратно зашифрованное сообщение Алисе.

        А вот тут уже начинаются проблемы: Ева всё ещё не может прочесть сообщение Алисы, но, располагая копией полученной Бобом шифрограммы и отправленной им двойной шифровкой, без проблем восстанавливает ключ Боба.

        4. Алиса вычитает своё секретное число из каждого числа в блоках этого двукратно зашифрованного сообщения и отправляет получившееся сообщение Бобу.

        Алиса сняла свой «слой» шифра и теперь пересылает Бобу своё письмо, зашифрованное только ключом Боба. Который у Евы уже есть! Ева расшифровывает письмо и читает его, а также на всякий случай может восстановить ключ Алисы, пользуясь расшифрованным текстом письма и первой перехваченной ею шифрограммой.

  • Dmitriy

    Здравствуйте. Хорошая статья, но я тоже не понял некоторые моменты, которые описали выше.
    Именно переход от алгоритма получения секретного ключа обоими собеседниками (Алиса и Боб) (без их выкладывания в публичный доступ) к асимметричному шифрованию.
    У вас написано, что сообщение кодируется на стороне Алисы публичным ключем, полученным от Боба. Но если мы зашифруем публичным ключём, то Ева сможет легко его получить и сама расшифровать, верно?
    Ещё для меня осталось непонятным, как можно зашифровать публичным ключём и расшифровать только секретным на стороне Боба. То есть зашифровали словом «Дом» , а расшифровали словом «Мир» . Для меня это какая-то несуразица.
    Исходя из этих очевидных пробелов (или у вас, или у меня) , я сделал вывод, что тут схема должна быть посложнее, чем на картинке. Скорее всего под стрелочкой от публичного ключа Боба к Алисе имеется в виду другое, а именно вся последовательность действий по получению «Y» и «P», получению промежуточных результатов и тд. Иными словами, я думаю, что при шифровке исходного сообщения якобы публичным ключем, на самом деле шифруется не публичным, а уже секретным, который вычисляется на каждой стороне по отдельности.

    Ещё у меня возник вопрос о расшифровки дважды зашифрованного сообщения. Если взять,допустим, шифр Цезаря, где каждая буква шифруется другой буквой, стоящей, скажем, на 3 позиции дальше. Если Алиса зашифрует букву А в сообщении буквой Б, а потом Боб зашифрует эту букву Б буквой Г, то получить букву А из Г будет просто, причём в любом порядке. Правда это скорее всего будет работать только в тех случаях, если оба знают тип шифрации собеседника и при достаточно простых типах шифрации (моноалфавитные/полиалфавитные). Я тоже новичок в криптографии, так что это моё имхо;)

    1. Dmitriy

      Забыл ещё спросить.
      В чём разница между симметричным и асимметричным способами?

      1. Dmitriy

        Я почитал, более менее как-то всё сгрупировал в уме.
        Отвечу на вопросы мною написаные, возможно, помогая тем самым другим читателям.
        1. По поводу

        У вас написано, что сообщение кодируется на стороне Алисы публичным ключем, полученным от Боба. Но если мы зашифруем публичным ключём, то Ева сможет легко его получить и сама расшифровать, верно?
        Ещё для меня осталось непонятным, как можно зашифровать публичным ключём и расшифровать только секретным на стороне Боба. То есть зашифровали словом «Дом» , а расшифровали словом «Мир» . Для меня это какая-то несуразица.

        В этой статье упомянут алгоритм RSA. Алгоритм симметричного шифрования. В нём действительно используется следующий алгоритм:
        1) Опираясь на некую одностороннюю функцию шифрования (функция, которую легко посчитать в одну сторону, но очень трудно в другую. А) мы создаём на получателе пару {открытый ключ;закрытый ключ}. Эта пара уникальна, то есть каждому открытому ключу соответствует уникальный закрытый ключ под эту одностороннюю функцию.

        3)Отправитель шифрует сообщение
        4)Передаёт получателю

        Как видите, отправитель не знает закрытого ключа и он не в состоянии сам расшифровать своё же зашифрованное сообщение. Потому он и называется асимметричным, что у одного есть все ключи, а у другого только лишь часть, необходимая для шифрации.

        В чём разница между симметричным и асимметричным способами?
        Если я воспользовался алгоритмом Диффи и Хеллмана для передачи секретного ключа, а потом смог безопасно передать зашифрованное сообщение, то будет ли этот способ симметричным?

        Алгоритм Дэффи-Хелмана, который служит для обмена ключами и дальнейшим симметричным шифрованием . То есть его суть в том, что сначала оба получают полный ключ для шифрации и дешифрации и потом уже начинают самое обычное симметричное шифрование.

        Асимметричный способ — у одного узла есть вся информация для шифр./дешифр., а у другого, как правило, только для шифрации

        Симметричный — оба узла знают всю информацию для шифр./дешифр.

        Надеюсь, что кому-то помог;3

        1. Dmitriy

          В этой статье упомянут алгоритм RSA. Алгоритм Асимметричного шифрования Опечатался.

        2. Дмитрий Амиров Автор

          Гм… только сейчас заметил ваши комментарии. Приношу свои извинения.

          Все вроде верно. Есть одно но по вашему последнему абзацу, а конкретно термины:

          • Алгоритм Дэффи-Хелмана — является алгоритмом позволяющим получить один общий секретный ключ и не более того
          • Ассиметричное/симметричное шифрование — в целом у Вас все верно
          • RSA — алгоритм являющий собой совокупность этих вещей. На пальцах: с помощью ассимтричного шифрования по протоколу Деффи-Хелмена устанавливается секретный ключ с помощью которого уже методом симметричного шифрования шифруются сообщения между собеседниками.
        3. Дмитрий

          Я все равно не понял утверждение:
          2)Открытый ключ передаётся отправителю.
          3) Отправитель шифрует сообщение
          4)Передаёт получателю
          5)Получатель дешифрует с помощью закрытого ключа. Это сообщение нельзя дешифровать с помощью открытого ключа.

          Получается то, что Вы и мели ввиду с самого начала. Шифруем словом Дом, а дешифруем словом Мир. Означет ли это, что присутствует еще один алгоритм связующий Мир и Дом между собой?

  • Роберт

    Спасибо огромное!!!

  • Роман

    Спасибо. Решил наконец разобраться, как это работает и понял из этой статьи. Только, я считаю, если сообщники знают друг друга и есть возможность обменяться безопасно открытыми ключами, то так и стоит сделать. Чтобы исключить пагубное воздействие возможного появления человека посередине при обмене ключами, который будет прикидываться А как Б и Б как А подменяя ключи на свои и просматривая в итоге всю информацию.

    А в видео, думаю, зря они используют вот это вот 3^(24*54), т.к. вообще не очевидно откуда оно взялось, или пояснили бы, что это условно.

  • RinswinD

    Спасибо за статью. Всё очень доступно разъясняется.

  • grigory

    Ну раздражает ведь всех эта неграмотность правописания — «одностороняя» , «примененны», «длинна», как будто уж в 5-м классе. А так, неплохо для понимания основ.

  • grigory

    Бывает, что вопрос стоит просто. Вирусы-шифровальщики используют закрытый ключ. Есть оригинальный файл, есть файл зашифрованный. Задача: найти алгоритм, сказать так, который ищет алгоритм преобразования первого файла во второй…

  • Allexys

    Благодарю за понятную и нескучную статью! Наконец-то я врубился в основы:).

  • Ярослав

    К сожалению, все имеющиеся алгоритмы до сих пор требуют снятия шифров в той очереди в которой они были применены.

    Это не совсем так. приведу пример:
    — предположим что каждой букве соответствует цифровой код А = 1, Б = 2, В = 3 и т.д.;
    — предположим что Алиса отправляет Бобу письмо, состоящее из единственной буквы А (для упрощения примера);

    Алиса: накладывает свой шифр А + 2 = В

    Боб: накладывает свой шифр В + 3 = Е
    Боб: отправляет письмо Алисе
    Алиса: снимает свой шифр Е — 2 = Г
    Алиса: отправляет письмо Бобу
    Боб: снимает свой шифр Г — 3 = А

    Здесь число 2 — секретный ключ Алисы, 3 — секретный ключ Боба. Причем он может быть и не односимвольным. В принципе его длина ничем не ограничена.

  • Дмитрий

    Я долго обходил стороной теоретические основы ассиметричного шифрования. Знал поверхностно — есть открытый ключ, которым шифруются данные, и есть закрытый, которым эти данные дешифруются. Но меня всегда напрягала мысль о реализации подобного шифрования.
    Ваша статья во многом помогла, за это огромное вам спасибо!
    Только к ее концу я опять увидел эту несуразицу — «шифруется открытым ключом». Ведь, строго говоря, шифруется сообщение не открытым ключом, а ключом, полученным на основе закрытого ключа отправителя и открытого ключа получателя (который, в свою очередь, был сгенерирован на основе закрытого ключа получателя). Ведь в таблице про Алису и Боба — они и только они смогли получить один и тот же ключ «9» — он и используется для шифрации и дешифрации сообщения. А вот получить этот ключ можно только на основе пары ключей — секретного (Алисы/Боба) и публичного(Боба/Алисы).
    Образно — да, сообщение шифруется всегда секретным ключом отправителя (он, грубо говоря, постоянен) и публичным ключом получателя (он зависит от конкретного получателя), поэтому в описании шифрация «секретным» ключом опускается — и это опущение ломает всю стройность рассуждений.

  • кларксон

    прочел статью и не очень всеравно понял, хоть и лучше чем на вики. Но одно мне не понимается только. если ктот может ответить правильно — помогите.

    если я всем посылаю вопрос «сколько будет 2+2?», рассказываю как зашифровать ответ мне (рассказываю всем публичный ключ), и все мне направят ответ на вопрос, как я узнаю того, от кого именно я жду ответа, тобиш того с кем я хотел установить связь на самом деле?

    1. Дмитрий Амиров Автор

      Тут вы немного неправильно ставите вопрос.

      Если вам надо с кем то установить связь, то нужно идти от обратного. Вы подключаетесь к собеседнику, и уже он вам предоставляет свой публичный ключ, а не вы ему.

      UPD: написал статью про , я думаю это будет правильный ответ на ваш вопрос.

      1. кларксон

        с моей тупостью придется повоевать. тема расжевана в коментариях и в вашей статье, кажется все обьяснили.

        все же. зачем мне его публик ключ? скажите если я не правильно понимаю.
        я инициатор (мне нужны ответы, в примере я — принимающая сторона), значит генерирую пару. это ему, отвечающему (отправитель в вашем примере) нужен мой публик

        Отправитель перед отправкой получает публичный ключ и шифрует сообщение данным ключем, после чего данное сообщение можно расшифровать только приватным ключем, который хранится в секрете у принимающей стороны.

  • Beshot

    Несколько раз перечитал эту статью и другие по теме, непонятен алгоритм использования ЭЦП в эл. документах. Если так как здесь: https://ru.wikipedia.org/wiki/Электронная_подпись , то возникают расхождения. Так все таки шифруем с помощью закрытого ключа или открытого?

    1. Дмитрий Амиров Автор

      Если мы что то подписываем, то подпись формируем на основе нашего закрытого ключа. А наш публичный ключ должен быть у получателя, с помощью него он сможет эту подпись расшифровать.

      Если подпись «расшифровалась», то значит публичный ключ соответствует закрытому, а т.к. закрытый ключ априори имеется только у отправителя, то значит подписал документ именно отправитель.

      1. Beshot

        Дмитрий, мне очень помогла ваша статья, у вас хороший стиль. Но есть непонятный момент, вы утверждаете, что асимметричный алгоритм предполагает под собой наличие двух ключей – публичного и приватного. То есть сообщение шифруется публичным ключем, а расшифровывается приватным и ни как иначе.

        Может быть дело в исходных задачи, например получателю нужно аутентифицировать посланника.
        Тогда не представляю как эта схема может помочь?

        1. Дмитрий Амиров Автор

          То есть сообщение шифруется публичным ключем, а расшифровывается приватным и ни как иначе.

          Не совсем верно. Сообщение шифруется одним ключом, а расшифровывается другим. Т.е. вполне можно зашифровать приватным, а расшифровать публичным.

          Давайте рассмотрим на примере. Вы хотите мне прислать сообщение, я хочу убедится что прислали его мне именно вы. Поэтапно:
          1) Вы шифруете сообщение закрытым ключом
          2) Присылаете его мне
          3) Я обращаюсь к вам, и получаю от вас Ваш публичный ключ
          4) Полученное сообщение расшифровываю Вашим публичным ключом
          5) Если сообщение расшифровалось — значит послали его именно вы

          Никто другой не сможет послать это сообщение, представившись вами, потому что приватный ключ есть только у вас.

          1. Beshot

            Ок, но как быть если требуется скрыть от любопытных глаз сообщение?

  • Аня

    Добрый день! Статья понравилась, но остались вопросы (даже нашлась пара похожих в комментариях, но без ответов).
    Если во второй части статьи всеже перейти к аналогии с Алисой и Бобом, в частности к числам А, В, а, в, Р и к полученному в примере числу 9, что из них будет закрытым ключом, а что открытым? Заранее спасибо за ответ!

    1. Аня

      Не понятно, отправился мой комментарий или нет:(

    2. Дмитрий Амиров Автор

      Правильнее будет сказать что в процессе обмена данными Алиса и Боб получают общий ключ 9 , который в дальнейшем могут использовать для шифрования своих сообщений. По сути в статье я описывал не само ассиметричное шифрование как таковое, а протокол обмена ключами, который дал толчок к развитию ассиметричного шифрования.
      Алгоритм генерации пары приватный/публичный ключ на самом деле немного сложнее, хотя и похож на выше изложенный алгоритм, но все таки наверное стоит отдельной статьи. В комментарии я не распишу тут сходу, ибо могу много чего напутать.

  • Григорий
  • С точки зрения информационной безопасности криптографические ключи являются критически важными данными. Если раньше, чтобы обокрасть компанию, злоумышленникам приходилось проникать на ее территорию, вскрывать помещения и сейфы, то теперь достаточно похитить токен с криптографическим ключом и сделать перевод через систему Интернет Клиент-Банк. Фундаментом обеспечения безопасности с помощью систем криптографической защиты информации (СКЗИ) является поддержание конфиденциальности криптографических ключей.

    А как обеспечить конфиденциальность того, о существования чего вы не догадываетесь? Чтобы убрать токен с ключом в сейф, надо знать о существовании токена и сейфа. Как это не парадоксально звучит, очень мало компаний обладают представлением о точном количестве ключевых документов, которыми они пользуются. Это может происходить по целому ряду причин, например, недооценка угроз информационной безопасности, отсутствие налаженных бизнес-процессов, недостаточная квалификация персонала в вопросах безопасности и т.д. Вспоминают про данную задачу обычно уже после инцидентов, таких как например этот .

    В данной статье будет описан первый шаг на пути совершенствования защиты информации с помощью криптосредств, а если точнее, то рассмотрим один из подходов к проведению аудита СКЗИ и криптоключей. Повествование будет вестись от лица специалиста по информационной безопасности, при этом будем считать, что работы проводятся с нуля.

    Термины и определения


    В начале статьи, дабы не пугать неподготовленного читателя сложными определениями, мы широко использовали термины криптографический ключ или криптоключ, теперь настало время усовершенствовать наш понятийный аппарат и привести его в соответствие действующему законодательству. Это очень важный шаг, поскольку он позволит эффективно структурировать информацию, полученную по результатам аудита.

    1. Криптографический ключ (криптоключ) - совокупность данных, обеспечивающая выбор одного конкретного криптографического преобразования из числа всех возможных в данной криптографической системе (определение из «розовой инструкции – Приказа ФАПСИ № 152 от от 13 июня 2001 г. , далее по тексту – ФАПСИ 152).
    2. Ключевая информация - специальным образом организованная совокупность криптоключей, предназначенная для осуществления криптографической защиты информации в течение определенного срока [ФАПСИ 152].
      Понять принципиальное отличие между криптоключем и ключевой информации можно на следующем примере. При организации HTTPS, генерируются ключевая пара открытый и закрытый ключ, а из открытого ключа и дополнительной информации получается сертификат. Так вот, в данной схеме совокупность сертификата и закрытого ключа образуют ключевую информацию, а каждый из них по отдельности является криптоключом. Тут можно руководствоваться следующим простым правилом – конечные пользователи при работе с СКЗИ используют ключевую информацию, а криптоключи обычно используют СКЗИ внутри себя. В тоже время важно понимать, что ключевая информация может состоять из одного криптоключа.
    3. Ключевые документы - электронные документы на любых носителях информации, а также документы на бумажных носителях, содержащие ключевую информацию ограниченного доступа для криптографического преобразования информации с использованием алгоритмов криптографического преобразования информации (криптографический ключ) в шифровальных (криптографических) средствах. (определение из Постановления Правительства № 313 от от 16 апреля 2012 г. , далее по тексту – ПП-313)
      Простым языком, ключевой документ - это ключевая информация, записанная на носителе. При анализе ключевой информации и ключевых документов следует выделить, что эксплуатируется (то есть используется для криптографических преобразований – шифрование, электронная подпись и т.д.) ключевая информация, а передаются работникам ключевые документы ее содержащие.
    4. Средства криптографической защиты информации (СКЗИ) – средства шифрования, средства имитозащиты, средства электронной подписи, средства кодирования, средства изготовления ключевых документов, ключевые документы, аппаратные шифровальные (криптографические) средства, программно-аппаратные шифровальные (криптографические) средства. [ПП-313]
      При анализе данного определения можно обнаружить в нем наличие термина ключевые документы. Термин дан в Постановлении Правительства и менять его мы не имеем права. В тоже время дальнейшее описание будет вестись из расчета что к СКЗИ будут относится только средства осуществления криптографических преобразований). Данный подход позволит упростить проведение аудита, но в тоже время не будет сказываться на его качестве, поскольку ключевые документы мы все равно все учтем, но в своем разделе и своими методами.

    Методика аудита и ожидаемые результаты


    Основными особенностями предлагаемой в данной статье методике аудита являются постулаты о том, что:

    • ни один работник компании не может точно ответить на вопросы, задаваемые в ходе аудита;
    • существующие источники данных (перечни, реестры и др.) не точны или слабо структурированы.
    Поэтому предлагаемая в статье методика, это своеобразный data minning, в ходе которого будут один и те же данные извлекаться из разных источников, а затем сравниваться, структурироваться и уточняться.

    Приведем основные зависимости, которые нам в этом помогут:

    1. Если есть СКЗИ, то есть и ключевая информация.
    2. Если есть электронный документооборот (в том числе с контрагентами и регуляторами), то скорее всего в нем применяется электронная подпись и как следствие СКЗИ и ключевая информация.
    3. Электронный документооборот в данном контексте следует понимать широко, то есть к нему будут относится, как непосредственный обмен юридически значимыми электронными документами, так и сдача отчетности, и работа в платежных или торговых системах и так далее. Перечень и формы электронного документооборота определяются бизнес-процессами компании, а также действующим законодательством.
    4. Если работник задействован в электронном документообороте, то скорее всего у него есть ключевые документы.
    5. При организации электронного документооборота с контрагентами обычно выпускаются организационно-распорядительные документы (приказы) о назначении ответственных лиц.
    6. Если информация передается через сеть Интернет (или другие общественные сети), то скорее всего она шифруется. В первую очередь это касается VPN и различных систем удаленного доступа.
    7. Если в сетевом трафике обнаружены протоколы, передающие трафик в зашифрованном виде, то применяются СКЗИ и ключевая информация.
    8. Если производились расчеты с контрагентами, занимающимися: поставками средств защиты информации, телекоммуникационных устройств, оказанием услуг по передаче отёчности, услуг удостоверяющих центров, то при данном взаимодействии могли приобретаться СКЗИ или ключевые документы.
    9. Ключевые документы могут быть как на отчуждаемых носителях (дискетах, флешках, токенах, …), так и записаны внутрь компьютеров и аппаратных СКЗИ.
    10. При использовании средств виртуализации, ключевые документы могут храниться как внутри виртуальных машин, так и монтироваться к виртуальным машинам с помощью гипервизора.
    11. Аппаратные СКЗИ могут устанавливаться в серверных и быть недоступны для анализа по сети.
    12. Некоторые системы электронного документооборота могут находится в неактивном или малоактивном виде, но в тоже время содержать активную ключевую информацию и СКЗИ.
    13. Внутренняя нормативная и организационно-распорядительная документация может содержать сведения о системах электронного документооборота, СКЗИ и ключевых документов.
    Для добычи первичной информации будем:
    • опрашивать работников;
    • проводить анализ документации компании, включая внутренние нормативные и распорядительные документы, а также исходящие платежные поручения;
    • проводить визуальный анализ серверных комнат и коммуникационных шкафов;
    • проводить технических анализ содержимого автоматизированных рабочих мест (АРМ), серверов и средств виртуализации.
    Конкретные мероприятия сформулируем позже, а пока рассмотрим конечные данные, которые мы должны получить по итогам аудита:

    Перечень СКЗИ:

    1. Модель СКЗИ . Например, СКЗИ Крипто CSP 3.9, или OpenSSL 1.0.1
    2. Идентификатор экземпляра СКЗИ . Например, серийный, лицензионный (или регистрационный по ПКЗ-2005) номер СКЗИ
    3. Сведения о сертификате ФСБ России на СКЗИ , включая номер и даты начала и окончания сроков действия.
    4. Сведения о месте эксплуатации СКЗИ . Например, имя компьютера на которое установлено программное СКЗИ, или наименование технических средств или помещения где установлены аппаратные СКЗИ.
    Данная информация позволит:
    1. Управлять уязвимостями в СКЗИ, то есть быстро их обнаруживать и исправлять.
    2. Отслеживать сроки действия сертификатов на СКЗИ, а также проверять используется ли сертифицированное СКЗИ в соответствии с правилами, установленными документацией или нет.
    3. Планировать затраты на СКЗИ, зная сколько уже находится в эксплуатации и сколько еще есть сводных средств.
    4. Формировать регламентную отчетность.
    Перечень ключевой информации:

    По каждому элементу перечня фиксируем следующие данные:

    1. Наименование или идентификатор ключевой информации . Например, «Ключ квалифицированной ЭП. Серийный номер сертификата 31:2D:AF», при этом идентификатор следует подбирать таким образом, чтобы по нему можно было найти ключ. Например, удостоверяющие центры, когда посылают уведомления обычно идентифицируют ключи по номерам сертификатов.
    2. Центр управления ключевой системой (ЦУКС) , выпустивший данную ключевую информацию. Это может быть организация выпустившая ключ, например, удостоверяющий центр.
    3. Физическое лицо , на имя которого выпущена ключевая информация. Эту информацию можно извлечь из полей CN сертификатов X.509
    4. Формат ключевой информации . Например, СКЗИ КриптоПРО, СКЗИ Верба-OW, X.509 и т.д (или другими словами для использования с какими СКЗИ предназначена данная ключевая информация).
    5. Назначение ключевой информации . Например, «Участие в торгах на площадке Сбербанк АСТ», «Квалифицированная электронная подпись для сдачи отчетности» и т.д. С точки зрения техники, в данном поле можно фиксировать органичения зафиксированные полях extended key usage и др сертификатов X.509.
    6. Начало и окончание сроков действия ключевой информации .
    7. Порядок перевыпуска ключевой информации . То есть знания о том, что нужно делать и как, при перевыпуске ключевой информации. По крайней мере желательно фиксировать контакты должностных лиц ЦУКС, выпустившего ключевую информацию.
    8. Перечень информационных систем, сервисов или бизнес-процессов в рамках которых используется ключевая информация . Например, «Система дистанционного банковского обслуживания Интернет Клиент-Банк».
    Данная информация позволит:
    1. Отслеживать сроки действия ключевой информации.
    2. В случае необходимости быстро перевыпускать ключевую информацию. Это может понадобится как при плановом, так при внеплановом перевыпуске.
    3. Блокировать использование ключевой информации, при увольнении работника на которого она выпущена.
    4. Расследовать инциденты информационной безопасности, отвечая на вопросы: «У кого были ключи для совершения платежей?» и др.
    Перечень ключевых документов:

    По каждому элементу перечня фиксируем следующие данные:

    1. Ключевая информация , содержащаяся в ключевом документе.
    2. Носитель ключевой информации , на который записана ключевая информация.
    3. Лицо , ответственное за сохранность ключевого документа и конфиденциальность содержащейся в нем ключевой информации.
    Данная информация позволит:
    1. Перевыпускать ключевую информацию в случаях: увольнения работников, обладающих ключевыми документами, а также при компрометации носителей.
    2. Обеспечивать конфиденциальность ключевой информации, путем инвентаризации носителей ее содержащих.

    План аудита


    Настало время рассмотреть практически особенности проведения аудита. Сделаем это на примере кредитно-финансовой организации или другими словами на примере банка. Данный пример выбран не случайно. Банки используют довольно большое число разношерстных систем криптографической защиты, которые задействованы в гигантском количестве бизнес-процессов, да и к тому же практически все банки являются Лицензиатами ФСБ России по криптографии. Далее в статье будет представлен план аудита СКЗИ и криптоключей, применительно к Банку. В тоже время данный план может быть взят за основу при проведении аудита практически любой компании. Для удобство восприятия план разбит на этапы, которые в свою очередь свернуты в сполйеры.

    Этап 1. Сбор данных с инфраструктурных подразделений компании

    Действие
    Источник – все работники компании
    1 Делаем рассылку по корпоративной почте всем работниками компании с просьбой сообщить в службу информационной безопасности обо всех используемых ими криптографических ключах Получаем электронные письма, на базе которых формируем перечень ключевой информации и перечень ключевых документов
    Источник – Руководитель Службы информационных технологий
    1 Запрашиваем перечень ключевой информации и ключевых документов С некоторой вероятностью Служба ИТ ведет подобные документы, будем использовать их для формирования и уточнения перечней ключевой информации, ключевых документов и СКЗИ
    2 Запрашиваем перечень СКЗИ
    3 Запрашиваем реестр ПО, установленного на серверах и рабочих станциях В данном реестре ищем программные СКЗИ и их компоненты. Например, КриптоПРО CSP, Верба-OW, Signal-COM CSP, Сигнатура, PGP, ruToken, eToken, КритоАРМ и др. На базе этих данных формируем перечень СКЗИ.
    4 Запрашиваем перечень работников (вероятно техническая поддержка), помогающих пользователям по использованию СКЗИ и перевыпуску ключевой информации. Запрашиваем у данных лиц аналогичную информацию, что и у системных администраторов
    Источник – системные администраторы Службы информационных технологий
    1 Запрашиваем перечень отечественных криптошлюзов (VIPNET, Континент, S-terra и др.) В случаях, когда в компании не реализованы регулярные бизнес процессы управления ИТ и ИБ, подобные вопросы могут помочь вспомнить системным администраторам о существовании того или иного устройства или ПО. Используем данную информацию для получения перечня СКЗИ.
    2 Запрашиваем перечень отечественных программных СКЗИ (СКЗИ МагПро КриптоПакет, VIPNET CSP, CryptonDisk, SecretDisk, …)
    3 Запрашиваем перечень маршрутизаторов, реализующих VPN для:
    а) связи офисов компании;
    б) взаимодействия с контрагентами и партнерами.
    4 Запрашиваем перечень информационных сервисов, опубликованных в Интернет (доступных из Интернет). Они могу включать:
    а) корпоративную электронную почту;
    б) системы обмена мгновенными сообщениями;
    в) корпоративные web-сайты;
    г) сервисы для обмена информации с партнерами и контрагентами (extranet);
    д) системы дистанционного банковского обслуживания (если компания – Банк);
    е) системы удаленного доступа в сеть компании.
    Для проверки полноты предоставленных сведений сверяем их с перечнем правил Portforwarding пограничных межсетевых экранов.
    Анализируя полученную информацию с высокой вероятностью можно встретить использование СКЗИ и криптоключей. Используем полученные данные для формирования перечня СКЗИ и ключевой информации.
    5 Запрашиваем перечень информационных систем, используемых для сдачи отчетности (Такском, Контур и т. д.) В данных системах используются ключи квалифицированной электронной подписи и СКЗИ. Через данный перечень формируем перечень СКЗИ, перечень ключевой информации, а также узнаем работников, пользующихся этими системами для формирования перечня ключевых документов.
    6 Запрашиваем перечень систем внутреннего электронного документооборота (Lotus, DIRECTUM, 1С: Документооборот и др.), а также перечень их пользователей. В рамках внутренних систем электронного документооборота могут встретиться ключи электронной подписи. На основании полученной информации формируем перечень ключевой информации и перечень ключевых документов.
    7 Запрашиваем перечень внутренних удостоверяющих центров. Средства, используемые для организации удостоверяющих центров, фиксируем в перечне СКЗИ. В дальнейшем будем анализировать содержимое баз данных удостоверяющих центров для выявления ключевой информации.
    8 Запрашиваем информацию об использовании технологий: IEEE 802.1x, WiFiWPA2 Enterprise и систем IP-видеонаблюдения В случае использования данных технологий мы можем обнаружить в задействованных устройствах ключевые документы.
    Источник – Руководитель кадровой службы
    1 Просим описать процесс приема и увольнение работников. Фокусируемся на вопросе о том, кто забирает у увольняющихся работников ключевые документы Анализируем документы (обходные листы) на предмет наличия в них информационных систем в которых могут использоваться СКЗИ.

    Этап 2. Сбор данных с бизнес-подразделений компании (на примере Банка)

    Действие Ожидаемый результат и его использование
    Источник – Руководитель служба расчетов (корреспондентских отношений)
    1 Просим предоставить схему организации взаимодействия с платежной системой Банка России. В частности, это будет актуально для Банков, имеющих развитую филиальную сеть, при которой филиалы могут подключать в платежную систему ЦБ напрямую На базе полученных данных определяем местоположение платежных шлюзов (АРМ КБР, УТА) и перечень задействованных пользователей. Полученную информацию используем для формирования перечня СКЗИ, ключевой информации и ключевых документов.
    2 Запрашиваем перечень Банков, с которыми установлены прямые корреспондентские отношения, а также просим рассказать кто занимается осуществлением переводов и какие технические средства используются.
    3 Запрашиваем перечень платежных систем, в которых участвует Банк (SWIFT, VISA, MasterCard, НСПК, и т.д), а также месторасположение терминалов для связи Аналогично, как для платежной системы Банка России
    Источник – Руководитель подразделения, отвечающего за предоставление дистанционных банковских услуг
    1 Запрашиваем перечень систем дистанционного банковского обслуживания. В указанных системах анализируем использование СКЗИ и ключевой информации. На основании полученных данных формируем перечень СКЗИ и ключевой информации и ключевых документов.
    Источник – Руководитель подразделения, отвечающего за функционирование процессинга платежных карт
    1 Запрашиваем реестр HSM На базе полученной информации формируем перечень СКЗИ, ключевой информации и ключевых документов.
    2 Запрашиваем реестр офицеров безопасности
    4 Запрашиваем информацию о компонентах LMK HSM
    5 Запрашиваем информацию об организации систем типа 3D-Secure и организации персонализации платежных карт
    Источник – Руководители подразделений, выполняющих функции казначейства и депозитария
    1 Перечень банков, с которыми установлены корреспондентские отношения и которые участвую в межбанковском кредитовании. Используем полученную информацию для уточнения ранее полученных данных от службы расчетов, а также фиксируем информацию о взаимодействии с биржами и депозитариями. На базе полученной информации формируем перечень СКЗИ и ключевой информации.
    2 Перечень бирж и специализированных депозитариев с которыми работает Банк
    Источник – Руководители служб финансового мониторинга и подразделений ответственных за сдачу отчетности в Банк России
    1 Запрашиваем информацию о том, как они отправляют сведения и получают сведения из ЦБ. Перечень задействованных лиц и технических средств. Информационное взаимодействие с Банком России жестко регламентировано соответствующими документами, например, 2332-У, 321-И и многими другими, проверяем соответствие этим документам и формируем перечни СКЗИ, ключевой информации и ключевых документов.
    Источник – Главный бухгалтер и работники бухгалтерии, занимающиеся оплатой счетов по внутрибанковским нуждам
    1 Запрашиваем информацию, о том, как происходит подготовка и сдача отчетности в налоговые инспекции и Банк России Уточняем ранее полученные сведения
    2 Запрашиваем реестр платежных документов, для оплаты внутрибанковских нужд В данном реестре будем искать документы где:
    1) в качестве адресатов платежей указаны удостоверяющие центры, специализированные операторы связи, производители СКЗИ, поставщики телекоммуникационного оборудования. Наименования данных компаний можно получить из Реестра сертифицированных СКЗИ ФСБ России, перечня аккредитованных удостоверяющих центров Минкомсвязи и других источников.
    2) в качестве расшифровки платежа присутствуют слова: «СКЗИ», «подпись», «токен», «ключевой», «БКИ» и т. д.
    Источник – Руководители служб по работе с просроченной задолженностью и управления рисков
    1 Запрашиваем перечень бюро кредитных историй и коллекторских агентств, с которыми работает Банк. Совместно со службой ИТ анализируем полученные данные с целью выяснения организации электронного документооборота, на базе чего уточняем перечни СКЗИ, ключевой информации и ключевых документов.
    Источник – Руководители служб документооборота, внутреннего контроля и внутреннего аудита
    1 Запрашиваем реестр внутренних организационно распорядительных документов (приказов). В данных документах ищем документы, относящиеся к СКЗИ. Для этого анализируем наличие ключевых слов «безопасность», «ответственное лицо», «администратор», «электронная подпись», «ЭП», «ЭЦП», «ЭДО», «АСП», «СКЗИ» и их производных. После чего выявляем перечень работников Банка зафиксированных в этих документах. Проводим с работниками интервью на тему использования ими криптосредств. Полученную информацию отражаем в перечнях СКЗИ, ключевой информации и ключевых документов.
    2 Запрашиваем перечни договоров с контрагентами Стараемся выявить договора об электронном документообороте, а также договора с компаниями, занимающимися поставной средств защиты информации или оказывающими услуги в этой области, а также компаниями, предоставляющими услуги удостоверяющих центров и услуги сдачи отчетности через Интернет.
    3 Анализируем технологию хранения документов дня в электронном виде При реализации хранения документов дня в электронном виде обязательно применяются СКЗИ

    Этап 3. Технический аудит

    Действие Ожидаемый результат и его использование
    1 Проводим техническую инвентаризацию ПО установленного на компьютерах. Для этого используем:
    · аналитические возможности корпоративных систем антивирусной защиты (например, Антивирус Касперского умеет строить подобный реестр).
    · скрипты WMI для опроса компьютеров под управлением ОС Windows;
    · возможности пакетных менеджеров для опроса *nix систем;
    · специализированное ПО для инвентаризации.
    Среди установленного ПО ищем программные СКЗИ, драйвера для аппаратных СКЗИ и ключевых носителей. На базе полученной информации обновляем перечень СКЗИ.
    2 Осуществляем поиск ключевых документов на серверах и рабочих станциях. Для этого
    · Logon-скриптами опрашиваем АРМ в домене на предмет наличия сертификатов с закрытыми ключами в профилях пользователей и профилях компьютера.
    · На всех компьютерах, файловых серверах, гипервизорах ищем файлы с расширениями: crt, cer, key, pfx, p12, pem, pse, jks и др.
    · На гипервизорах систем виртуализации ищем примонтированные дисководы и образы дискет.
    Очень часто ключевые документы представлены в виде файловых ключевых контейнеров, а также контейнерами, хранящимися в реестрах компьютеров, работающих под управлением ОС Windows. Найденные ключевые документы фиксируем в перечне ключевых документов, а содержащеюся в них ключевую информацию в перечне ключевой информации.
    3 Анализируем содержание баз данных удостоверяющих центров Базы данных удостоверяющих центров обычно содержат в себе данные о выпущенных этим центрами сертификатов. Полученную информацию заносим в перечень ключевой информации и перечень ключевых документов.
    4 Проводим визуальный осмотр серверных комнат и коммутационных шкафов, ищем СКЗИ и аппаратные ключевые носители (токены, дисководы) В некоторых случаях, невозможно провести инвентаризацию СКЗИ и ключевых документов по сети. Системы могут находится в изолированных сетевых сегментах, либо вообще не иметь сетевых подключений. Для этого проводим визуальный осмотр, в результатах которого должно быть установлены названия и назначение всего оборудования, представленного в серверных. Полученную информацию заносим в перечень СКЗИ и ключевых документов.
    5 Проводим анализ сетевого трафика, с целью выявления информационных потоков, использующих шифрованный обмен Шифрованные протоколы – HTTPS, SSH и др. позволят нам идентифицировать сетевые узлы на которых выполняются криптографические преобразования, и как следствие содержащие СКЗИ и ключевые документы.

    Заключение

    В данной статье мы рассмотрели теорию и практику проведения аудита СКЗИ и криптоключей. Как вы убедились, процедура эта довольно сложная и трудоемкая, но если к ней грамотно подходить вполне осуществимая. Будем надеется данная статья вам поможет в реальной жизни. Спасибо за внимание, ждем ваших комментариев

    Теги: Добавить метки