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

ID ключа и отпечаток


ID ключа — это 8-байтовое значение, помогающее в нахождении нужных ключей. Предполагается, что ID ключей различны для различных ключей. Человек может ускорить поиск, проверив ID искомого ключа, однако впоследствии он всё равно должен будет сверить его отпечаток. Первоначальный формат v3 использовал в качестве ID младшие 8 байт числа n. У ключей v4 за ID берутся младшие 8 байт отпечатка.


Отпечаток — это 16- или 20-байтовая строка, идентифицирующая ключ совершенно уникально. Чтобы установить подлинность ключа, достаточно сверить отпечаток, например, по телефону. Отпечаток ключа v3 вычисляется путём хэширования по MD5 чисел n и e без значений их длины. 1 Отпечаток v4 — это хэш-значение целиком всего пакета открытого ключа вместе с его заголовком (заголовок должен кодировать длину в двух байтах).

Проблемы ID ключа


Вследствие слишком короткого значения можно легко найти два ключа с одинаковыми ID. В случае формата v3 можно также сгенерировать ключ с предопределённым ID. 2 Группа CTK написала утилиту AbattoiR, выполнявшую именно эту задачу. Один из сгенерированных таким образом ключей имел ID 0xDEADBEEF 3 (в шестнадцатеричной нотации). Такое невозможно с ключами v4 из-за их полного хэширования. Хотя это не уязвимость, поскольку никто не давал никаких гарантий относительно ID ключей, тем не менее, должно быть возможно заставить некоторые программы (и пользователей), запрашивающих ключи по ID, а не по именам 4 или отпечаткам, воспользоваться не тем ключом, который они предполагали.


Использования ID ключей следует по возможности избегать. Предполагаемое применение опасно, поскольку решать проблему неуникальности непросто. Старый формат по крайней мере имел преимущество в "дешевизне" вычисления ID, но после "исправления" в v4 лёгкость вычисления больше не имеет места. Теперь для получения ID вы вынуждены вычислять отпечаток, так что нет никакого смысла, чтобы не использовать его целиком.


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



1 Поскольку хэширование модуля n и открытой экспоненты e производится без их длин (что исправлено в формате v4), можно постепенным "смещением" битов одного открытого показателя в другой создать поддельный ключ с отпечатком ключа жертвы. Подобная атака довольно проста, но имеет один побочный эффект — длина полученного составного ключа будет всегда отличаться от длины подлинного, — прим. пер.


2 Это делается поиском таких начальных p и q, чтобы получить произведение n с заданным окончанием, — прим. пер.


3 "Dead beef" (англ.) — говяжья отбивная. Ключ с таким ID принадлежал Имаду Файаду, главе хакерской группы. Метод подделки ID ключей OpenPGP получил название "DEADBEEF-атаки", — прим. пер.


4 Учитывая, что имя ключа не несёт вообще никакой уникальности, не ясно, зачем автор ссылается на имена в данном контексте, — прим. пер.


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