Сервер криптографических ключей
В терминах информационной безопасности , сервер криптографических ключей — это хост, предназначенный для хранения и передачи пользователям, а также другим криптографическим серверам криптографических ключей.
Ключи, распространяемые данным видом сервера, чаще всего используются как часть цифрового сертификата, содержащего не только сам ключ, но также и информацию о владельце ключа. Как правило, в этом случае используется сертификат одного из распространённых стандартов: OpenPGP, X.509 или PKCS. Кроме того, обычно данные ключи являются открытыми ключами для использования в алгоритмах шифрования систем с открытым ключом.
История
Создание данного вида серверов потребовалось после возникновения криптосистем с открытым ключом, в которых пользователь создаёт пару ключей: приватный и публичный. Причем публичный ключ, как понятно из названия, должен быть передан в публичный доступ для использования в криптографических операциях при проверке ЭЦП и шифровании сообщения. Поиски нужного ключа на просторах интернета, либо запросы на пересылку данного ключа лично человеку, с которым вы хотите приватно пообщаться могут отнять много времени. Кроме того, вы вполне можете получить неактуальный или недействительный ключ. Сервер криптографических ключей в этом случае выступает как централизованное хранилище ключей, позволяющее свести к минимуму потребность в индивидуальном запросе ключей, а также стать одним из структурных элементов цепочки доверия.
Первый веб-ориентированный сервер ключей PGP был описан и создан Марком Хоровитцем в результате написания диссертации во время обучения в Массачусетском технологическом институте. Данный сервер был назван «HKP» по наименованию разработанного для него протокола (OpenPGP HTTP Keyserver Protocol). Пользователи могли получать, загружать ключи, а также искать ключи на сервере, используя этот протокол через 11371 порт, либо вручную через браузер, запуская CGI-скрипты. До создания HKP, серверы ключей управлялись через обработчик команд по e-mail.
Независимый сервер ключей, известный как Сервер сертификации PGP был разработан организацией PGP, Inc. и доступен как приложение (с версии 2.5.x как серверное приложение) для реализаций функций сервера ключей в PGP начиная с версии 8.x (клиентских программ)[1]. 1 января 2002 года корпорацией Network Associates Technology был выдан патент (United States Patent 6336186)[2] на концепцию сервера ключей.
Для замены устаревающему серверу сертификации, корпорацией Network Associates был представлен сервер LDAP-ключей, получивший название PGP Keyserver 7.0. После выхода PGP 6.0 эта реализация сервера ключей стала базовым интерфейсом для использования в реализациях PGP, выпускаемых Network Associates. LDAP и LDAPS серверы ключей (с поддержкой HKP для обратной совместимости) также стали основой для PGP Administration tools, которые использовались для построения приватного сервера ключей предприятия согласно схеме Netscape Directory Server. Позже, эта система была заменена на Global Directory компании PGP Corporation.
Публичные и приватные серверы
Существует множество публично доступных серверов ключей, распределённых по всему миру, позволяющих хранить и передавать OpenPGP ключи через интернет. В большинстве своём, данные серверы поддерживаются частными лицами согласно концепции pro bono, реализуя тем самым в свою очередь модель использования PGP web of trust[англ.].
Несколько публично доступных серверов ключей S/MIME[3] также позволяют добавлять или отзывать ключи используемые в S/MIME криптосистемах.
Кроме вышеперечисленных, существует множество проприетарных инфраструктур открытых ключей, включающих в свой состав сервер ключей, который может быть как публично доступным, так и приватным, обслуживающим только пользователей своей системы.
Проблемы использования
Серверы ключей OpenPGP, разработанные в 90-х годах столкнулись с рядом проблем использования. Однажды загруженный на сервер публичный ключ очень трудно удалить. По различным причинам (например, утеря или кража парного приватного ключа) некоторые пользователи прекращали использовать свои публичные ключи. В этом случае было достаточно трудно удалить публичный ключ, и, даже если он был удален, ничего не мешало злоумышленнику загрузить на сервер копию ключа снова. В такой ситуации на сервере скапливалось большое количество старых ненужных публичных ключей, так называемые «атеросклеротические бляшки» сервера ключей.
Другой проблемой являлось то, что любой мог загрузить на сервер фиктивный публичный ключ ассоциированный с персоной, не являющейся хозяином данного ключа. В подобных серверах ключей нет возможности проверить легитимность ключа.
Для решения данных проблем организация PGP Corporation разработала новое поколение серверов криптографических ключей под названием PGP Global Directory[1]. В таких серверах при добавлении публичного ключа, на e-mail предполагаемого владельца отсылался запрос на подтверждение владения загружаемым ключом. Если подтверждение было получено, ключ принимался сервером как легитимный. Также для предотвращения превращения ключа в фиктивную «бляшку», подобный запрос мог периодически отправляться повторно. В результате список ключей на сервере поддерживался в актуальном состоянии и при желании всегда можно было проверить легитимность ключа запросом владельцу по e-mail. К сожалению, то, что проверка легитимность осуществлялась без использования криптографических методов по обычному e-mail привело к тому, что любой, кто имеет доступ к аккаунту e-mail мог, например, удалить ключ или добавить фиктивный.
В последнем проекте IETF для HKP была описана распределенная сеть серверов криптографических ключей, основанная на DNS SRV-записях: при поиске ключа для someone@example.com, можно послать запрос на сервер ключей example.com.
Примеры серверов ключей
Ниже приведены несколько серверов ключей, которые чаще всего используются для получения ключа командой «gpg --recv-key»
- hkp://subkeys.pgp.net (серверный пул)
- hkp://pgp.mit.edu
- hkp://pool.sks-keyservers.net Архивная копия от 16 декабря 2019 на Wayback Machine (серверный пул)
- https://keys.openpgp.org (также поддерживает запрос ключа посредством TLS)
См. также
- LDAP
- Центр сертификации
- Криптография
- Информационная безопасность
- Цифровой сертификат
- Электронная цифровая подпись
Примечания
- ↑ 1 2 PGP Global Directory . Дата обращения: 23 октября 2012. Архивировано 18 мая 2001 года.
- ↑ United States Patent 6336186 (недоступная ссылка)
- ↑ KeyServers — CAcert Wiki . Дата обращения: 24 октября 2012. Архивировано 8 января 2018 года.
Ссылки
- Тезисы Марка Хоровица (англ.)
- Список серверов ключей Архивная копия от 28 марта 2018 на Wayback Machine на Open Directory Project (англ.)
- Реализация HKP на PHP (англ.)
- проект openPGP в России (рус.)
- OpenPGP Public Key Server — реализация сервера ключей под BSD-лицензией (англ.)
- Synchronizing Key Server — реализация сервера ключей под GPL-2.0+ лицензией (англ.)