|
A.V.Komlin (Кобец) Опубликовано: dl, 08.11.03 23:08
Примечание: впервые этот документ был опубликован год назад (28-10-02), в рассылках securityfocus и местном форуме. К сожалению, найти свободное время и вернуться к этой проблеме удалось только через год. Надеюсь за прошедшее время ошибка не потеряла свою актуальность :) ВступлениеСегодняшний мир практически немыслим без систем электронной цифровой подписи. Незаметно для себя с ними работает любой пользователь интернета. Именно эти методы обеспечивают функциональность и оперативность современного банковского сектора. Несмотря на это, сами стандарты ЭЦП ещё очень молоды и находятся в стадии совершенствования. Один из наиболее перспективных стандартов ANSI X.9- 62 ECDSA от 1999 г. модификация DSA для эллиптических кривых. К сожалению, в процессе адаптации этого стандарта не были полностью учтены все особенности операций с эллиптическими кривыми, что и дало возможность имитировать подмену подписанного документа. Одно из основных требований к методам цифровой подписи невозможность нахождения за разумное время двух или более документов подходящих к одной подписи (и наоборот). Для этого в дополнение к механизму ЭЦП используется процедура хэширования (в DSA это SHA-1), в результате которого в соответствие к каждому документу ставится очень большое и непредсказуемое число (далее хэш), которое собственно и подписывается. Подавляющее большинство атак производится именно на эту процедуру с целью нахождения способа получения документов, с одинаковыми хэшами (или различающимися на заданную величину). В этой работе использован несколько иной подход: была сделана попытка путём модификации выбираемых пользователем ключей, найти такие значения подписи , чтобы они подходили одновременно к двум заранее выбранным значениям хэша. Выяснилось, что рядовому пользователю схемы ЭЦП это вполне по силам, если он специальным образом выберет значение своих ключей (секретного личного (private key) и секретного случайного (per-message secret)). При этом пользователю нет необходимости в модификации внешних параметров ЭЦП. Для наглядности ниже иллюстрируется подмена подписи для утверждённых NIST наборов параметров федерального пользования. Полагаю, что правовые последствия существования общей подписи к двум документам в комментариях не нуждаются. Описание ошибкиВ матаппарате новейшего американского стандарта ЭЦП известного как ECDSA (DSA для эллиптических кривых) [1 cтр. 25-30] существует серьёзная ошибка, позволяющая выбрать такое значение секретного ключа, чтобы получить одинаковые подписи для разных документов. Описанная ошибка отличается от уже известных и сходных по последствиям DSKS (Duplicate Signature Key Selection) [1 стр. 30-32] , тем, что не требует участия злоумышленника в выборе параметров подписи (G,n и т.д.). Таким образом, она доступна практически любому пользователю ЭЦП, а не только самим разработчиками программ ЭЦП. В описании сохранены обозначения, принятые в стандарте. Эта ошибка вызвана равенством x-координат противоположных точек эллиптической кривой Подробное описание стандарта ECDSA и основных известных атак на него приведено в книге Контрольный примерCurve-192 (NIST)M1- "ECDSA is GOOD" M2- "ECDSA is BAD" k=1 d - 302035990567828412089108831099891370757859899245436683119 s - 3138550867696141607436413456015998514180639734009232307827 r - 602046282375688656758213480587526111916698976636884684818
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|
|
|