Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Книга бельфер.docx
Скачиваний:
228
Добавлен:
20.09.2019
Размер:
9.74 Mб
Скачать
      1. В.3.3. Управление открытыми ключами

        1. В.3.3.1. Угроза «человек посередине»

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

Рис. В.6. Атака «человек посередине»

Хакер посылает Алисе фальшивый открытый ключ EФОКХ, который она получает вместо открытого ключа Боба. Если, например, открытые ключи Алисы и Боба хранятся на сайтах, то хакер пересылает им фальшивую страницу.

Алиса отправляет Бобу сообщение PI, зашифрованное открытым ключом хакера EФОКХ, т.е. сообщение Ефокх(PI). Хакер дешифрирует своим закрытым ключом Dфзкх, т.е. PI = Dфзкхфокх (PI)). После того, как хакер прочтет сообщение PI от Алисы, он изменяет его содержание на PI' и отправляет Бобу, зашифровав его открытым ключом Боба. Боб своим закрытым ключом DB(EB(PI')) дешифрирует это искаженное хакером сообщение Алисы PI.

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

        1. В.3.3.2. Сертификаты

Для того чтобы противостоять атаке «человек посередине», разработаны так называемые сертификаты открытых ключей, связываемые с каждым пользователем. Сертификаты включают в себя открытый ключ пользователя и выдаются удостоверяющим центром или Центром Сертификации CA (Certification Authority). Главной целью операции сертификации является обеспечение уверенности получателя сообщения в том, что открытый ключ отправителя подлинный. Для этого отправитель сообщения должен получить сертификат в удостоверяющем центре, который является независимым и он ему доверяет.

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

Система сертификации открытого ключа действует следующим образом. Боб приходит в Центр Сертификации (ЦС) со сформированным им открытым ключом, а также паспортом или другим удостоверением личности и просит зарегистрировать открытый ключ. ЦС выдаёт ему сертификат, упрощённый пример которого приведён на рис. В.7. Все данные сертификата можно разделить на 2 части:

  • набор открытых элементов, включающий открытый ключ пользователя, идентификатор обладателя ключа и другие элементы. Более полный состав элементов сертификата приведён в таблице В.1 настоящего раздела.

  • хеш-функция всей информации первой части, зашифрованная закрытым ключом Центра сертификации (т.е. цифровая подпись сертификата)

После этого Боб оплачивает услуги ЦС и получает дискету с сертификатом.

Рис. В.7. Пример сертификата открытого ключа

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

Проверка сертификата Боба осуществляется описанным выше способом сравнения дух профилей: первый профиль определяется с помощью хеш-функции первой части сертификата, а второй профиль с помощью открытого ключа ЦС, т.е. расшифровкой цифровой подписи сертификата. Совпадение профилей означает правильность сертификата.

Что может в данном случае сделать хакер, пытаясь осуществить атаку «человек посередине»? Он может выложить на страницу Боба свой сертификат со своим открытым ключом Eфокх. Однако Алиса, читая этот сертификат, сразу догадается, что она разговаривает не с Бобом, так как в нём нет идентификатора Боба. Хакер может попробовать и другой способ и заменить в домашней странице Боба его открытый ключ EB на свой – Eфокх. Однако хакер не может создать цифровую подпись такого модифицированного сертификата, т.к. он не имеет доступ к закрытому ключу центра сертификации. Эту подделку хакера обнаружит Алиса при попытке проверить полученный сертификат путём сравнения двух профилей, как указано выше.

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

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