id: Гость   вход   регистрация
текущее время 07:43 29/03/2024
Владелец: unknown (создано 14/09/2006 22:50), редакция от 15/05/2007 21:25 (автор: SATtva) Печать
Категории: криптография, шифрование с открытым ключом, распределение ключей, протоколы, сайт проекта, статьи
https://www.pgpru.com/Библиотека/Статьи/ЧтоТакоеЛичностнаяКриптография
создать
просмотр
редакции
ссылки

Что же такое личностная криптография? 1


Личностная криптография (Identity-based encryption, IBE) – это относительно новая криптографическая система в которой пара "открытый / закрытый ключ" может быть получена из любой строки. Такой подход дает одно важное преимущество: простым смертным становится проще узнать открытый ключ.


Традиционные схемы шифрования с открытым ключом используют последовательности из сотен цифр – не совсем то, что человек может с легкостью запомнить. Даже ключи, основанные на эллиптических кривых, состоят из нескольких десятков цифр. Криптографические системы помещают эти ключи в структуры, называемые сертификатами, которые содержат текстовые строки, по которым человек может идентифицировать сертификат. В личностной криптографии сам ключ является функцией текстовой строки.


Личностная криптография имеет два интересных свойства:


  1. Вы можете создать ключ, основанный на строке вроде email-адреса. Поскольку любая строка определяет ключ, даже строка, наподобие "President and CEO", в равной степени является открытым ключом.
  2. Вы можете зашифровать данные для кого-то, у кого еще нет ключа, точнее, кто еще не знает своего закрытого ключа, потому что любая строка – это ключ. Таким образом, вы могли бы зашифровать сообщение для адреса alice@domain.tld, и отправить это письмо Алисе. Алиса тогда просто должна получить закрытый ключ, связанный с ее email-адресом, и расшифровать сообщение.

Но, как и большинство вещей в нашей жизни, эта красивая идея имеет ряд трудностей и ограничений.

Сложности, скрытые в самом получении закрытого ключа, связанного со строкой

Очевидно, что закрытый ключ не может быть вычислен кем попало, иначе это была бы не очень хорошая криптосистема. Ключевая пара генерируется не только из строки, но и из определенного секретого значения, которое хранится на сервере. Когда Алиса получает свой закрытый ключ, она получает его от сервера. Она должна также доказать серверу, что является тем человеком, которому положено иметь этот ключ. Иными словами, она должна аутентифицировать себя серверу.


Если Алиса до этого не имела никаких отношений с данным сервером, то это усложняет задачу. Есть множество способов, которыми Алиса могла бы себя аутентифицировать: например, она могла бы использовать сертификат, пользующийся доверием сервера. Однако, если у нее уже есть сертификат, которому сервер доверяет, сервер мог бы просто зашифровать сообщение на открытый ключ, связанный с этим сертификатом. (Сертификаты X.509 первоначально создавались как способ надежной аутентификации пользователя в общественной директории, дабы пользователь мог обновлять свои персональные данные.) Сервер мог бы послать Алисе сообщение, содержащее пароль, но это сравнительно уязвимое решение, тем более, сервер всегда может зашифровать сообщение симметричным ключом, полученным из этого пароля.


Хотя весьма полезно иметь возможности, благоприятствующие шифрованию, нахождение способов, которыми получатель мог бы достать свой закрытый ключ, является трудноразрешимой проблемой. Кроме того, решения этой проблемы сводят на нет и преимущества личностной криптографии.

Поскольку все строки – это ключи, все опечатки – это тоже ключи

Это мрачная обидная сторона личностной криптографии. Предположим, человек, который шифровывал сообщение Алисе, случайно зашифровал его "Алисии". Алиса не сможет расшифровать адресованное ей послание и даже не узнает, почему. Хуже того: предположим, Алиса знает, что сообщение было зашифровано для "Алисии". Как она докажет серверу, что имеет право на ключ "Алисии", когда сама она – не Алисия, а Алиса? Будет еще проблематичнее, если Алиса на самом деле "Эйлис".


Те из вас, у кого обычные и сравнительно простые имена, могут решить, что я здесь сгущаю краски. Однако, я имею довольно необычное имя – "Jon". Я не могу даже вспомнить, как часто оно превращалось в "John". Самое забавное для меня – это когда кто-то правильно вводит мой email-адрес jon@pgp.com, но при этом начинает письмо со слов "Привет, John!". Даже если я использую свое полное имя "Jonathan", его часто искажают в "Johnathan", "Jonathon", и так далее.


Это все важные следствия человеческого фактора. Криптографические системы подвержены многим искусным атакам, основанным на семантике и человеческом факторе. Личностно-основанные системы могут быть уязвимы к таким атакам, которые неприменимы против традиционных систем, именно потому, что все возможные строки являются ключами. Эти проблемы не являются непреодолимыми, но требуют дополнительной инфраструктуры.

Хотя системы личностной криптографии и устраняют часть проблемы сертификатов, они не избавляют нас от нее целиком

Действительно, главная часть сертификата – это имя, но сертификаты – это не просто имена. Они также содержат другие атрибуты, например, периоды действия ключа, сведения о том, для чего может, а для чего не может применяться данный сертификат, и так далее. Протоколы личностной криптографии должны либо использовать сертификат, содержащий эти атрибуты, либо же эти атрибуты должны быть добавлены в строку, кодирующую ключ. Если у вас все равно уже есть сертификат, то зачем морочить голову личностной криптографией? Если вы закодируете все это в имени, то система, основанная на легком запоминании, вообще потеряет смысл. Если мой сертификат – это строка <jon@pgp.com> действителен с 1/1/03 по 12/31/04, только для подписей документов, не для оформления заказов, и любая опечатка в этой строке также будет действительным сертификатом, то я лучше продолжу использовать старомодный сертификат.

Поскольку схема требует, чтобы сервер хранил секретные значения для создания ключей, значит, это система с депонированием ключей

В традиционных Инфраструктурах открытых ключей (PKI) депонирование ключей является опцией, а не требованием. Системы личностной криптографии – исключительно депонирующие системы.

Доверенный сервер уязвим

Если сервер окажется скомпрометирован, или будут утеряны секреты для генерации ключей, это повлечет компрометацию всех ключей, поскольку каждый сможет сгенерировать все возможные закрытые ключи на основании идентифицирующих строк.

Аннулирование ключей становится трудной задачей

Отзыв ключей – это проблема в любой криптосистеме с открытым ключом, и это особенно трудная проблемы в личностной криптографии. Что будет, если человек потеряет свой ноутбук? Означает ли это, что ему понадобится новый email-адрес вместе с новым открытым ключом? И что случится с ролевым ключом, если роль человека изменится? В любом случае, традиционные PKI позволяют пользователям просто создать новый ключ. В личностной криптографии такое решение невозможно. Один из способов решения этой проблемы может состоять в том, чтобы хранить на сервере различные наборы секретов: один для тех, кто еще ни разу не терял свои ключи, другой для тех, кто уже потерял однажды, и так далее. Решение такого рода потребует некоторого усложнения бызы данных.

Увеличивает число ключей, которыми должны оперировать пользователи

Сегодня вполне обычно, когда человек имеет несколько email-адресов: например, у меня есть jon@pgp.com, jcallas@pgp.com и jon.callas@pgp.com. В ролевой системе аутентификации мне бы еще, наверное, потребовались ключи "CTO", "CSO", "Chief Technical Officer", "CTO/CSO" и т.д. В системе открытых ключей, аналогичной той, которая реализована в решениях PGP, легко иметь один ключ, соответствующий всем этим именам. В личностной криптографии пользователям придется иметь столько же ключей, сколько и их электронных адресов и ролей, и для каждого ключа должно быть корректное написание и верный способ доказательства права на владение.

Система не основана на широко распространенных стандартах

Это новая криптосистема с открытым ключом, не совместимая с решениями PGP, с X.509 или с чем-то еще. А поскольку она запатентована, то не стоит в ближайшее время ожидать ее стандартизации. Каждый, кто купит эту систему, сможет использовать ее только с теми людьми, кто тоже ее купил. Обратите внимание, что криптосистемы на эллиптических кривых также имеют преимущества перед традиционными системами с открытым ключом, так как сами ключи ECC имеют меньший размер и работают быстрее. Но они тоже несоместимы с существующими стандартными системами и защищены патентами. Эти практические соображения нивелируют любые преимущества, которыми они обладают, вследствие чего они не получают распространения. Аналогичные проблемы наверняка помешают и принятию систем личностной криптографии.

Все равно нужно такое же программное обеспечение, как и для других систем

Все, что необходимо пользователям традиционных PKI – почтовые плагины, серверы, аутентификация и пр. – также нужно и для использования личностной криптографии. Как ни странно, этот список еще дополняет адресный сервер, потому что нужно знать правильный вид запроса ключей. Хотя система не нуждается в удостоверяющем центре (CA), как таковом, пользователям все равно нужен какой-то аналогичный сервер, от которого они будут получать ключи.

Выводы


Личностная криптография имеет интересные математические свойства, в частности, возможность сгенерировать пару "открытый / закрытый ключ" из любой строки. Хотя эта система и обладает некоторыми преимуществами перед традиционными PKI, она также имеет и множество недостатков.


Преимущества личностной криптографии имеют смысл для автономных, оффлайновых систем. Однако в современном мире повсеместных сетей преимущества личностной криптографии могут быть встроены в существующие PKI с интеллектуальными серверами, осуществляющими управление ключами пользователей. Это то, что мы в PGP Corporation реализовали в PGP Universal. PGP Universal Server предоставляет пользователям все преимущества личностной криптографии, в то же время сохраняя совместимость с существующими PKI и криптографическими системами.


Личностная криптография – интересная технология, и будь она изобретена в 1984 или даже в 1994 году, к сегодняшнему дню она могла бы стать доминирующей разновидностью криптографии с открытым ключом. Но вместо того, распространение глобальных сетей привело к тому что математические преимущества личностной криптографии оказались сопоставимы с хорошо спроектированными программными разработками и проверенным временем системным дизайном. Несмотря на свою прогрессивность, личностная криптография просто не требуется в 21 веке.


© 2003 Джон Каллас
Перевод © 2004 unknown

Комментарий переводчика


В принципе, возможно создать данную систему и без депонирования ключа на неких совместных тайных вычислениях, но убедительно это доказано не было. У центра выдачи ключей все равно будет контроль над пользователем.


Секретное значение сервера может быть разделено между несколькими серверами по методу "разделения секрета". Хоть и немного, но это рассредоточивает "критическую точку" и уменьшает риск компрометации. Тогда пользователю для получения своего секретного ключа придется связаться с n-m серверами вместо одного (и еще всем доказать свою "аутентичность").


Часто ключи нужны не для электронной почты и переписки, а для удостоверения подлинности сайта, например. Здесь такая схема при всех ее вышеизложенных недостатках могла бы конкурировать с обычной схемой PKI. IBE может сгодится для внутренних сетей с неуниверсальными протоколами: управление объектами на предприятии, управление кодами запуска спутников, связь банков с филиалами и т.д., где все равно нужен свой собственный неуниверсальный протокол и оригинальные программные разработки.


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


Проблему "сложных строк" можно решить путем их стандартизации и последующего выбора из меню стандартного диалога (правильный ввод плюс срок действия ключа).


Если известно, что пользователю выдают ключи, например, всего на месяц вперед, то можно отправить ему сообщение, которое он прочтет только в будущем, когда получит соотвествующий новый ключ (если только он не сможет получить его от сервера раньше времени незаконным или обманным путем).


Наконец, некоторые фирмы из соображений нечестной конкуренции, поддержания монопольного положения на рынке, внедрения стандартов с возможностями несанкционированного контроля со стороны производителя (системы контроля за авторскими правами, ограничивающие права потребителя), в общем такие фирмы тоже могут как-то навязать стандарт, похожий на Identity Based Encryption. Будем надеятся, что у них из этого ничего не получится, и пожелаем PGPCorp безоблачного будущего в деле продвижения своих решений.



1 Мне не нравится выражение "личностная криптография", но я его позаимствовал из печатного перевода "Прикладной криптографии" Шнайера, опубликованного издательством "Триумф". Все-таки в русском языке за словами "идентичность" и "личность" закрепились совсем разные понятия. Идентичность может быть и не связана с личностью и быть совсем "безликой" и абстрактной, – прим. пер.


 
— Гость (16/08/2008 18:08)   <#>
Где еще можно почитать о "личностной криптографии"?
Есть ли как-либо новости в этой области?
— Гость (27/08/2008 15:50)   <#>
Правильно я понял, что открытый ключ невозможно сгенерировать автономно?

Что бы получить открытый ключ ассоциированный скажем с e-mail адресом, нужно передать серверу этот адрес и он сгенерирует нужный открытый ключ связанный с секретом этого сервера.

Если так, то какой вообще смысл в "личносной криптографии" – что бы быть уверенным что я общаюсь с нужным сервером мне все-равно нужно или проверять цепочку сертификатов X.509 или ориентироваться на "сеть доверия" — вобщем использовать уже известные методы.
— unknown (27/08/2008 17:07, исправлен 27/08/2008 17:07)   профиль/связь   <#>
комментариев: 9796   документов: 488   редакций: 5664
Что бы получить открытый ключ ассоциированный скажем с e-mail адресом, нужно передать серверу этот адрес и он сгенерирует нужный открытый ключ связанный с секретом этого сервера.

Если так, то какой вообще смысл в "личносной криптографии"

Да, всё так. Только вам не нужно получать публичный ключ адресата от сервера, вы его можете рассчитать сразу по имени адресата и публичному параметру сервера, общего для всех пользователей системы. Кое-где такая экономия важна, например в замкнутых финансовых системах, где экономят на лишних транзакциях, а новые пользовательские узлы могут возникать и появляться довольно часто.
— Гость (28/08/2008 11:51)   <#>
не нужно получать публичный ключ адресата от сервера, вы его можете рассчитать сразу по имени адресата и публичному параметру сервера
Не понял.
Получается что открытый ключ K генерируется из любой информации.

K = f(строка),
где строка это может быть и "email + публичному_параметр_сервера"

Закрытый выдается сервером:
k-1 = f(K, секрет_сервера)

Тогда получается что для одной строки может получиться сколько угодно закрытых ключей?


Или "публичному_параметр_сервера" на самом деле секретный и знают его только пользователи "замкнутой финансовой системы"
— unknown (28/08/2008 13:13, исправлен 28/08/2008 13:15)   профиль/связь   <#>
комментариев: 9796   документов: 488   редакций: 5664
K = f(строка, публичный_параметр_сервера)
k-1 = f(строка, секрет_сервера)

Всё статично и однозначно, пока сервер не сменит свой ключ.

K каждый может рассчитать сам, а K-1 сервер раздаёт законным адресатам лично, не раскрывать же свой секрет.
— Гость (28/08/2008 15:46)   <#>
Т.е. публичный_параметр_сервера каким-то образом связан с секретом_сервера,
И зная публичный_параметр_сервера невозможно узнать секрет_сервера ?
— SATtva (28/08/2008 16:07)   профиль/связь   <#>
комментариев: 11558   документов: 1036   редакций: 4118
Так же, как и у классических криптосистем с открытым ключом.
— unknown (28/08/2008 17:22)   профиль/связь   <#>
комментариев: 9796   документов: 488   редакций: 5664
Это фактически тоже, что открытый и закрытый ключ сервера.

Вообще такая система больше подходит для какой-нибудь сотовой связи нового поколения или замены DNS, где центральный оператор контролирует сеть и имеет право слушать или заверять аутентичность всех, главное, чтобы все остальные друг друга не слушали и не подделывались друг под друга.
— DDRTL (20/08/2009 19:13)   профиль/связь   <#>
комментариев: 212   документов: 27   редакций: 20
вот утерял секретный ключ к публичному ключу и теперь сменить на этом сайте не могу на новый) а также не могуего аннулировать :(
на сайте нету системы сброса ключа, кроме как подписывания этим самым ключом :( знал бы где упадешь-перину бы подстелил :)
что будет если ключ истечет на сайте?
— SATtva (20/08/2009 19:51, исправлен 20/08/2009 19:52)   профиль/связь   <#>
комментариев: 11558   документов: 1036   редакций: 4118
Офф-топик детектед.


Ничего. Заходить на сайт можно будет по-прежнему. Но для его замены по-прежнему будет необходима подпись.
— Гость (20/08/2009 23:12)   <#>
DDRTL, если это для вас так важно, никто не запрещает вам создать ещё один акк на сайте и проассоциировать его с другим ключом. Вопрос доверия этому акку как вашей новой реинкарнации при необходимости решайте с каждым собеседником отдельно (когда реально надо, сделать это почти всегда можно, например, раскрыв часть уникальной информации).
— Гость (11/05/2010 06:50)   <#>
Обратите внимание, что криптосистемы на эллиптических кривых также имеют преимущества перед традиционными системами с открытым ключом, так как сами ключи ECC имеют меньший размер и работают быстрее. Но они тоже несоместимы с существующими стандартными системами и защищены патентами. Эти практические соображения нивелируют любые преимущества, которыми они обладают, вследствие чего они не получают распространения.
Если я правильно понимаю, то эта информация устарела, и ECC планируется ввести в стандарты, в т.ч. и OpenPGP.
— unknown (11/05/2010 09:47, исправлен 11/05/2010 09:47)   профиль/связь   <#>
комментариев: 9796   документов: 488   редакций: 5664

Да, АНБ выкупила большинство патентов у Цертикома. Теперь они включены в стандарты НИСТ и NSA Suite B, что позволяет свободное использование алгоритмов.

Ваша оценка документа [показать результаты]
-3-2-1 0+1+2+3