logo
MethodFull

Вскрытия криптографии с открытыми ключами

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

Даже если открытые ключи хранятся в надежной базе данных, Разбойник может подменить их при передаче. Чтобы воспрепятствовать этому, Яга должна подписывать каждый открытый ключ, используя свой собственный закрытый ключ. Ягу, которая действует подобным образом, часто называют Органом сертификации ключей или Центром распределения ключей (Key Distribution Center, KDC). На практике KDC подписывает сложное сообщение, состоящее из имени пользователя, его открытого ключа и другой информации о пользователе. Это подписанное сложное сообщение и хранится в базе данных KDC. Когда Василиса получает ключ Ивана, она проверяет подпись KDC, удостоверяясь в правильности ключа.

При окончательном анализе видно, что и это только затрудняет, но не делает невозможным мошенничество Разбойника. Василиса же должна откуда-то получить открытый ключ KDC. Соловью нужно подменить этот ключ своим открытым ключом, испортить базу данных и заменить правильные ключи своими (подписанными его закрытым ключом, как если бы он и был KDC), и его дело сделано. Но, даже подписи на бумаге могут быть подделаны, если Соловей-Разбойник всерьез возьмется за дело. Подробно обмен ключами рассматривается ниже.