PKI гарантирует, что всякий, который выдает себя за определенную персону и подтверждает это каким-нибудь образом, не может выдать себя за другого, что крайне важно при проведении интерактивных транзакций, таких как размещение заказов или пересылка денег. В этой статье дается общее представление об электронных паспортах, используемых в интерактивном мире.
Магия PKI заключается в использовании очень длинных целых чисел, называемых ключами. Используются два ключа: частный, доступ к которому имеете только вы, и открытый, с которым может работать кто угодно. Оба ключа используются вместе, и сообщение, зашифрованное с помощью частного ключа, может быть расшифровано только с помощью частного ключа и наоборот. Чем больше разрядов имеет ключ, тем выше степень защиты.
Точно так же, как вы подтверждаете свою личность с помощью выполненной от руки подписи, цифровая подпись подтверждает вашу личность в интерактивном мире. Но если у вас перед глазами нет подписи человека, проставленной в вашем присутствии на бумажном документе, как вы узнаете, что электронная подпись выполнена тем человеком, за которого тот себя выдает?
Для этого и применяется шифрование открытым ключом. Большой фрагмент набора данных, скажем, документ, который предполагается зашифровать, "пропускается" через сложный математический алгоритм, который на выходе выдает одно большое число, называемое хеш-кодом. Связь между исходными данными и хеш-кодом крайне сложна. Но если в сообщение внести какие-то изменения, то хеш-код наверняка окажется некорректным, и сообщение нельзя будет расшифровать.
Чтобы добавить цифровую подпись к документу, на его основе генерируется хеш-код, который подписывается с помощью частного ключа пользователя (назовем его Боб). Данные, закодированные с помощью частного ключа Боба, могут быть расшифрованы только с помощью его же открытого ключа. Любой человек может проверить подлинность документа, расшифровав хеш-код с помощью открытого ключа Боба и сравнив его с другим хеш-кодом, сгенерированным из полученных данных.
Если хеш-коды соответствуют друг другу, данные не были сфальсифицированы, и в документе имеется цифровая подпись именно Боба. Но поскольку я не видел, как Боб подписывает документ, я не знаю, кто именно подписал присланный документ. Но и этот вопрос снимается, поскольку только Боб имеет ключ и только он мог подписать документ.
Как выяснить, корректный ли у меня ключ для проверки подписи? Для этого реализуется концепция доверенных входов в систему, требующая создания некоего института уполномоченных по выдаче сертификатов, с помощью которых можно удостоверить личность граждан интерактивного мира.
Уполномоченный по выдаче сертификатов, своего рода интерактивное паспортное бюро - это доверенная организация, которая позволяет работать всей системе PKI. Частный ключ генерируется самим Бобом, и после установления его личности уполномоченный по выдаче сертификатов подписывает открытый ключ Боба своим собственным частным корневым ключом. Комбинация открытого ключа Боба и подписи уполномоченного по выдаче сертификатов составляет цифровой сертификат Боба. Цифровой сертификат Боба - это его интерактивный паспорт с водяными знаками, проставленными уполномоченным по выдаче сертификатов.
Давайте посмотрим, как это все работает на примере простой транзакции. Боб хочет послать Алисе конфиденциальное письмо по электронной почте. Для шифрования своего сообщения он будет использовать открытый ключ Алисы, хранящийся в ее сертификате. Когда Алиса получит сообщение, она с помощью своего частного ключа это сообщение расшифрует. Поскольку частный ключ Алисы есть только у нее, значит, только она сама сможет раскрыть это сообщение.
Когда Алиса соберется приобрести предлагаемый товар, Боб попросит ее подтвердить свою личность. Алиса подписывает заказ своим частным ключом, который был предоставлен уполномоченным по выдаче сертификатов, к примеру, компанией TrustCo. Затем Алиса пересылает Бобу пакет, содержащий заказ и цифровую подпись. Бобу нужно получить цифровые сертификаты Алисы и TrustCo, чтобы проверить эту подпись. Он проверяет подлинность сертификата Алисы, проверяя подпись TrustCo (напомним, что TrustCo подписала открытый ключ Алисы, тем самым сформировав сертификат), а затем использует сертификат Алисы для проверки подлинности подписи на заказе. Если все эти тесты пройдены, то Алиса - это действительно Алиса.
Как любая технология защиты, цифровые подписи, использованные в модели PKI, далеки от совершенства. Если корневой ключ уполномоченного по выдаче сертификатов был украден, то создать цифровые сертификаты сможет кто угодно, что подорвет авторитет уполномоченного, а все выданные им сертификаты окажутся абсолютно бесполезными. Уполномоченные по выдаче сертификатов используют ключи как можно большей длины, чтобы повысить уровень защиты. Кроме того, если Боб потерял свой частный ключ или тот был украден, тогда любой, у кого он окажется в руках, сможет выдавать себя за Боба.
Что более важно - тысячи приложений, используемых в рамках всей компании, должны быть ориентированы на применение PKI. Приложения должны "знать", как попросить Боба подписать данные и как проверить их с помощью сертификатов. Чтобы PKI получила широкое распространение, она должна стать привычным компонентом повседневного программного обеспечения, не требующим от пользователя умения разбираться во всех тонкостях применения открытых и частных ключей, хеш-кодов и цифровых сертификатов.
Майк Ротман - исполнительный вице-президент компании SHYM Technology, выпускающей ПО для поддержки систем PKI. С ним можно связаться по адресу mrothman@shym.com.