id: Гость   вход   регистрация
текущее время 09:17 18/09/2019
создать
просмотр
редакции
ссылки

Пакеты ключей

Пакеты открытых ключей


Пакеты открытых ключей содержат публичные криптографические параметры ключа. В них не входят сведения о владельце ключа, поэтому обычно их можно обнаружить вкупе с пакетами имени пользователя (User ID) и подписей.


Схема ключей PGP (41 Кб)
Схема ключей PGP в исполнении Ральфа Сендерека.

Version 3


Пакет открытого ключа v3 состоит из:



Идентификатор алгоритма должен быть равен 1 (RSA), поскольку RSA является единственным алгоритмом с открытым ключом, поддерживаемым в PGP до 5.0. Отдаю должное дальновидности разработчиков, включивших идентификатор алгоритма в спецификацию, но это оказалось бесполезной возможностью из-за того, что формат устарел.

Version 4



Для RSA публичным ключевым материалом являются (n, e), для DSA это (p, q, g, y), для Elgamal — (p, g, y). Как можно видеть, здесь нет сведений о сроке действия ключа. Эта информация должна храниться в подписях, прикреплённых к ключу. Срок действия автоподписи можно рассматривать как срок действия ключа, но стоит заметить, что с новым форматом владелец может переподписать свой ключ, чтобы продлить его действие, не теряя подписи от других людей.

Пакеты закрытых ключей


Пакеты закрытых ключей OpenPGP практически идентичны своим открытым парам, за исключением другого идентификатора в заголовке пакета и дополнительных больших чисел в конце.


Пакет закрытого ключа содержит:



Секретный ключевой материал состоит из (d, p, q, u) для RSA или x для Elgamal и DSA. [Параметр процедуры S2K] может содержать идентификатор симметричного алгоритма. В этом случае пароль преобразуется в ключ с помощью MD5, а опциональные поля отсутствуют. 1 Если байт имеет значение 255, тогда опциональные поля присутствуют: в этом случае для расшифрования ключевого материала используется указанный симметричный алгоритм, а для пароля применяется заданная процедура S2K. Если байт равен 0, значит, ключевой материал не зашифрован, и ВИ отсутствует.


Для ключей v4 все байты секретного ключевого материала, а также контрольная сумма шифруются в режиме CFB с заданным ВИ. Контрольная сумма рассчитывается сложением значений всех байтов секретного ключевого материала по модулю 65536; она применяется, чтобы определить правильность парольной фразы. 2


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


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

Подключи


В первой версии PGP пользователи имели только один ключ, ключ RSA, который применялся как для шифрования, так и для подписи. Начиная с PGP 5.0 всё стало иначе. Теперь каждый пользователь имеет ключ подписи. Этот ключ может нести пару-тройку прикреплённых к нему имён пользователя, а также несколько подключей. Подключ используется для шифрования и может быть аннулирован независимо от своего главного ключа. Он подписывается главным ключом. Если полиция когда-нибудь потребует у вас выдать ключ, чтобы прочитать вашу почту, вы можете передать им соответствующий подключ, вместо того, чтобы жертвовать ключом, способным генерировать подписи.


Назад | Дальше



1 Такой механизм оставлен лишь в целях совместимости (на случай, если приложение, куда переносится закрытый ключ, не поддерживает процедуры S2K) и обычно не используется, — прим. пер.


2 Точнее, контрольная сумма нужна, чтобы определить правильность расшифрования ключевого материала. К сожалению, этого недостаточно. Чешские криптографы Клима и Роса смогли провести свою атаку на закрытые ключи PGP, используя слабость такой проверки (подробно их методика описана в следующей главе статьи). Чтобы исправить проблему в более поздних редакциях OpenPGP был добавлен механизм Manipulation Detection Code (MDC). В этом случае вместо арифметической контрольной суммы над материалом ключа рассчитывается хэш-значение SHA-1, которое в дальнейшем также шифруется вместе с ключом, чтобы просигнализировать о любых модификациях ключевого материала, — прим. пер.


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