Глава 8. Безопасный канал общения
ных криптографических функций. К сожалению, проблемы с патентовани-
ем OCB сделали его использование дорогостоящим и весьма рискованным.
Существуют и другие относительно новые режимы, которые обеспечивают
схожую функциональность “аутентификация плюс шифрование”, однако они
обладают аналогичными проблемами с получением патентов.
Для решения этой проблемы Дуг Уайтинг (Doug Whiting), Расс Хаус-
ли (Russ Housley) и Нильс скомбинировали режим CTR с аутентификацией
CBC-MAC. Полученный режим работы блочного шифра получил название
CCM (по первым буквам аббревиатур CTR, CBC и MAC) [93]. По сравне-
нию с OCB режим CCM требует выполнения вдвое большего числа операций
для шифрования и аутентификации сообщения, однако, насколько мы знаем,
проблем с его патентованием нет вообще. Разработчикам CCM не известно
ни одного патента, защищающего этот режим, а сами они патентовать его
не собираются. Якоб Йонссон (Jakob Jonsson) получил доказательство без-
опасности для CCM [14], а NIST рассматривает вопрос стандартизации CCM
в качестве режима работы блочного шифра.
Итак, что лучше использовать: OCB или CCM? Оба режима достаточно
новы (CCM совсем новый), что заставляет относиться к ним с некоторым
подозрением. Оба режима обладают доказательствами безопасности, кото-
рым мы не доверяем до конца. CCM представляет собой комбинацию хорошо
проверенных методов, в то время как OCB использует совершенно новую
технологию. OCB в два раза эффективнее, зато защищен всевозможными
патентами.
Одно из существенных различий между режимами CCM и OCB состоит
в их поведении при осуществлении атак на основе коллизий. В CCM приме-
няется режим шифрования CTR, при использовании которого после шифро-
вания более
2
64
блоков данных (при условии, что размер блока составляет
128 бит) начинается утечка информации. Поэтому спецификации CCM огра-
ничивают количество блоков, которые могут быть зашифрованы с помощью
одного и того же ключа, до
2
60
. При этом объем утечки информации опуска-
ется до несущественного (порядка доли бита). На часть режима CCM, ответ-
ственную за выполнение аутентификации, известных атак на основе коллизий
пока что не существует. Таким образом, хотя CCM не позволяет полностью
достигнуть 128-битового уровня безопасности, он практически приближает-
ся к этому уровню и работает так же хорошо, как другие режимы работы
блочных шифров.
В отличие от CCM, для режима OCB существует атака на основе колли-
зий, направленная на функцию аутентификации. При возникновении колли-
зии свойства аутентификации будут полностью утеряны [34]. Это означает,
что OCB не может обеспечить 128-битовый уровень безопасности. Если огра-
ничить количество блоков, которые могут быть зашифрованы с помощью
8.6. Заключение
149
одного и того же ключа, до
2
48
, уровень безопасности OCB достигнет лишь
81 бит или около того. Нам кажется, что в долговременной перспективе этого
недостаточно, хотя аналогичные уровни безопасности используются многими
современными системами.
Думаем, вы нисколько не удивитесь, узнав, что мы предпочитаем CCM.
Данный режим представляется нам вполне разумной альтернативой безопас-
ному каналу общения, определенному в этой главе. Но, конечно же, мы не
можем быть полностью объективными, поскольку сами принимали участие
в разработке этого режима.
Еще один момент: CCM, OCB и аналогичные режимы не гарантируют
полной безопасности канала общения. Они обеспечивают функциональность
шифрования и аутентификации и требуют наличия ключа и уникальной ока-
зии для каждого пакета. При необходимости наши алгоритмы безопасного
канала общения легко адаптировать таким образом, чтобы они использова-
ли подобные режимы, а не отдельные функции шифрования и вычисления
MAC. Вместо четырех дочерних ключей, которые генерировались функци-
ей
InitializeSecureChannel
, вам понадобится два ключа — по одному на
каждое направление трафика. Значение оказии может быть получено путем
дополнения номера сообщения до нужного размера.
8.6
Заключение
Безопасный канал общения — один из самых полезных компонентов, ко-
торый применяется почти во всех криптографических системах. При нали-
чии хороших функций шифрования и аутентификации построить безопасный
канал общения не так сложно. Существует множество мелких деталей, тре-
бующих особого внимания и, конечно же, корректной реализации, но в крип-
тографии это обычное дело. В реальной жизни главная сложность состоит
не в реализации безопасного канала общения, а в том, чтобы убедить людей
в его необходимости, а также осуществить безопасный обмен ключами.
|