
Я читал статью об IPsec, и в ней продолжают упоминаться шифрование с открытым ключом и цифровые сертификаты для аутентификации двух сетей (шлюзов) или хостов в сети. Я знаю, что шифрование с открытым ключом — это когда у одного хоста есть открытый ключ, и когда он отправляет IP-пакеты другому хосту, у этого хоста есть закрытый ключ, который используется для декодирования открытого ключа, отправленного с пакетом, и, следовательно, если он может его декодировать, то это безопасное соединение. Похоже, что цифровой сертификат работает так же. Вы регистрируете его в центре сертификации, и они дают вам открытый ключ, и когда вы общаетесь с другим хостом, этот хост декодирует открытый ключ и сопоставляет его с закрытым ключом, чтобы гарантировать его безопасность. Зачем использовать шифрование с открытым ключом? Почему бы просто не использовать цифровой сертификат?
решение1
Шифрование с открытым ключом — этопроцесс. Сертификат, между тем, являетсячасть информации; он ничего не делает сам по себе. Поэтому вы можете заменить открытый ключ сертификатом, но вы не можете заменить открытый ключшифрованиес сертификатом.
Также сертификаты являютсярасширениеоткрытых ключей; они несут открытый ключ вместе с информацией о том, кто им владеет и кто его выпустил. Поэтому утверждение «просто используйте сертификат вместо открытого ключа» неверно.
Некоторые протоколы (например, OpenPGP или TLS) используют сертификаты, поскольку они используют информацию в сертификатах; обычно для того, чтобы убедиться, что это «настоящий» сертификат, а не что-то выдуманное на месте. Это важно не для шифрования, а дляаутентификация.
Другие протоколы (например, IPSec или SSH) могут использовать оба варианта — либо ручную настройку открытых ключей, соответствующих каждому пользователю и хосту, либо автоматическую проверку сертификатов в соответствии с сохраненными в них именами.
(На самом деле, шифрование с открытым ключом используется очень редко в современных TLS или SSH. Помните, что это намного медленнее, чем симметричное шифрование, и поэтому обе стороны просто выбирают случайный ключсимметричный(Ключ для сеанса и использовать его для симметричного шифрования основной массы данных с использованием AES или RC4 или чего-то подобного. Раньше одна сторона генерировала ключ сеанса, шифровала его открытым ключом другой стороны и отправляла его, где он расшифровывался с помощью закрытого ключа. Теперь, однако, обе стороны используют DH или аналогичные протоколы для вычисления ключа сеанса, и единственное назначение открытых ключей — аутентификация вычислений, отправленных обеими сторонами.)