Журнал "Information Security/ Информационная безопасность" #4, 2019

Заметим, что все перебо- ры можно выполнять неза- висимо друг от друга, поэто- му атака хорошо распарал- леливается, т.е. время будет сокращаться пропорцио- нально количеству исполь- зуемых процессоров. связи между узлами. Время атаки зависело от того, насколь- ко длинную случайную после- довательность может сразу получить злоумышленник, про- слушивающий канал, в частно- сти, от того, используется ли Dual EC для генерации иденти- фикатора сеанса. Атака на BSAFE-C оказалась самой легкой, поскольку иден- тификатор сеанса вырабатыва- ется с помощью Dual EC, т.е. атакующий сразу имеет доста- точное количество информации для взлома лазейки. В BSAFE-Java идентифика- тор вырабатывается другим способом, поэтому первый вызов Dual EC – это 28 байт случайного числа в протоколе рукопожатия, после которых вырабатываются 32 байта для эфемерального ключа Диффи- Хэллмана. На основе передан- ных 28 байт требуется сделать 232 попыток, проверяя резуль- тат по открытому эфемераль- ному ключу. 8 Библиотека SChannel при гене- рации идентификатора сеанса использует Dual EC, но преобра- зует результат некоторым обра- зом, скрывающим от наблюда- теля результат работы Dual EC. Это усложняет восстановление внутреннего состояния, но не делает его невозможным. Авто- ры исследования рассмотрели два случая: SChannel-I, если зло- умышленнику известны данные предыдущих протоколов руко- пожатия (Handshake), или же SChannel-II, когда атака прово- дится в пределах одного сеанса. OpenSSL оказалась един- ственной библиотекой, исполь- зующей additional_input. Данное значение зависело от значения системного времени в секундах, текущего системного времени в микросекундах, некоторого внутреннего счетчика и иден- тификатора процесса. Текущее системное время в секундах злоумышленнику известно, поскольку оно содержится в открытых данных, передавае- мых в протоколе рукопожатия TLS, но остальные значения требуется угадать. OpenSSL-fixed-I предполагает, что злоумышленник знает addi- tional_input. В случае OpenSSL-fixed-II зло- умышленник знает значение счетчика (например, он атакует первое же соединение, когда счетчик равен 0) и идентифи- катор процесса (зная особен- ности нумерации и порядок запуска процессов в системе). Злоумышленнику остается пересчитать текущее время, заданное в секундах, в микро- секунды, на это требуется 1 млн попыток. В последнем случае, когда ни счетчик, ни идентификатор про- цесса не известны, требуется время в 2k раз большее времени атаки OpenSSL-fixed-II, посколь- ку требуется угадать k-бит. Было продемонстрировано, что атака может выполняться как "онлайн", т.е. в момент соединения клиента и сервера, так и "офлайн", уже после завершения сеанса (на основе сохраненных передаваемых данных). Кроме того, если целью атаки был не клиент, а сервер, то знание внутреннего состояния генератора позволяет злоумышленнику вычислить секретный ключ и затем "под- менять" сервер, аутентифици- руясь от его имени. Заключение Как было отмечено ранее, работа [16] поставила точку в истории Dual EC, поскольку про- демонстрировала не только тео- ретическую, но и практическую возможность использования встроенной в алгоритм лазейки. В то же время эта история наглядно демонстрирует упорст- • 41 КРИПТОГРАФИЯ www.itsec.ru Рис. 4. Общая схема TLS handshake (рис. из [16]) Криптобиблиотека Время атаки в худшем случае (в минутах) BSAFE-C v1.1 0.04 BSAFE-Java v1.1 63.96 SChannel I 62.97 SChannel II 182.64 OpenSSL-fixed I 0.02 OpenSSL-fixed II 83.32 OpenSSL-fixed III 2k · 83:32 Табл. 1. Время атаки на TLS [18] 8 Эфемеральными (или разовыми) ключами протокола Диффи-Хеллмана называют случайные числа, участвующие в вычислениях, производимых в рамках этого протокола. Открытыми эфемеральными ключами называют информацию, которой обмениваются участники протокола по открытому каналу.

RkJQdWJsaXNoZXIy Mzk4NzYw