А как же решается проблема безопасного обмена ключами и обновления ключей по незащищенным телекоммуникационным каналам? Как убедиться, что открытый ключ принадлежит отправителю, а не подменен при передаче третьим лицом?
Теоретически она решается таким образом:
a. Безопасно создаются и распространяются асимметричные открытые и секретные ключи. Секретный асимметричный ключ передается его владельцу. Открытый асимметричный ключ хранится в базе данных и администрируется центром выдачи сертификатов (по-английски – Certification Authority или CA). Открытые ключи распространяются центром в виде сертификатов. Сертификат ключа, кроме самого ключа, включает в себя еще и наименование своего хозяина, сроки действия сертификата и подписан электронной подписью центра выдачи сертификатов.
b. Отправитель должен иметь асимметричный открытый ключ центра выдачи сертификатов (CA). Перехват незашифрованных запросов на получение этого открытого ключа является распространенной формой атаки. Может существовать целая система сертификатов, подтверждающих подлинность открытого ключа CA. Стандарт X.509 описывает ряд методов для получения пользователями открытых ключей CA, но ни один из них не может полностью защитить от подмены открытого ключа CA, что наглядно доказывает, что нет такой системы, в которой можно было бы гарантировать подлинность открытого ключа CA.
c. Отправитель запрашивает у CA асимметричный открытый ключ получателя сообщения. Этот процесс уязвим к атаке, в ходе которой атакующий вмешивается во взаимодействие между отправителем и получателем и может модифицировать трафик, передаваемый между ними. Поэтому открытый асимметричный ключ получателя «подписывается» CA. Это означает, что CA использовал свой асимметричный секретный ключ для шифрования асимметричного открытого ключа получателя. Только CA знает свой асимметричный секретный ключ, поэтому есть гарантии того, что открытый асимметричный ключ получателя получен именно от CA.
d. После получения асимметричный открытый ключ получателя расшифровывается с помощью асимметричного открытого ключа CA и алгоритма асимметричного шифрования/расшифровки.
Таким образом, два лица, не состоящие ранее в переписке и не имеющие общего ключа шифрования, способны вести секретную переписку.
О Российском опыте применения центров выдачи сертификатов написано ниже.