7.7. Точное следование протоколам | Телекоммуникации вчера, сегодня, завтра

Последовательность действий при создании объекта радиосвязи

Бланк формы №1 ТАКТИКО-ТЕХНИЧЕСКИЕ ДАННЫЕ РЭС

Поставка оборудования обеспеченного радиочастотами

Витрина



7.7. Точное следование протоколам

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

Например, при реализации шифрования no RSA кажется достаточным просто реализовать операцию модульного возведения в степень. Однако спецификация PKCS#1 (Public-Key Cryptography Standards) требует добавления к каждой порции шифруемых данных как минимум 8-ми случайных байт.

Дело в том, что при использовании алгоритмов с открытым ключом в распоряжении злоумышленника оказывается возможность расшифровывать все сообщения, зашифрованные на секретном ключе (что не дает ему значительного преимущества), а также самостоятельно зашифровывать любые сообщения на открытом ключе.

Допустим, злоумышленнику удалось перехватить зашифрованное на открытом ключе сообщение, в котором содержится только одно 32-битовое значение. Расшифровать это сообщение без знания секретного ключа злоумышленник не в силах, но он может перебирать все 232 возможных значений, зашифровывая их на открытом ключе, пока не получит шифртекст, совпадающий с перехваченным. Если же при зашифровании были добавлены случайные байты, перебор 232 вариантов уже не принесет желаемого результата.

На практике неполная реализация протокола — довольно распространенное явление. Разработчик может утешать себя тем, что все работает и так и никто не станет копаться в двоичном коде в поисках уязвимостей. Однако подобный подход может иметь тяжкие последствия при защите информации.

Цифровая подпись EIGamal в библиотеке FGIn t
FGInt представляет собой библиотеку для работы с большими целыми числами и включает в числе прочих поддержку алгоритма цифровой подписи EIGamal. Но вычисление и проверка этой подписи в FGInt были реализованы с некоторыми отступлениями от спецификации.
Во-первых, при проверке целостности подписи должна выполняться проверка того, что значения двух составляющих подписи г и s не превышают значения использованного модуля р. На случай если эта проверка не выполняется, в книге "Handbook of Applied Cryptography" приводится алгоритм атаки, позволяющий при наличии одного подписанного сообщения вычислить цифровую подпись для любого другого сообщения.
Во-вторых, в подписи должно использоваться не само сообщение, а его хэш. Причина этого заключается в том, что без использования хэш-функции оказывается возможным подобрать сообщение, соответствующее заданному значению подписи, вычисленному определенным образом. Данная атака также описана в книге "Handbook of Applied Cryptography". А если подписывается значение хэша, то для отыскания подходящего сообщения придется обратить еще и хэш, что при использовании стойкой криптографической хэш-функции сделать почти невозможно.
Описанные выше недостатки в FGInt были обнаружены и успешно использованы представителями группы CORE, что позволило им выпустить генераторы
регистрационных кодов к нескольким версиям программы SmartWhois, защищенной с использованием цифровой подписи EIGamal с ключом длиной 960 бит, реализованной через библиотеку FGInt.

Подытоживая все написанное про алгоритмы и протоколы, можно сказать, что хотя криптографическая часть любой защиты, возможно, поддается формализации легче многих других элементов, это не делает ее гарантированно стойкой. Существует множество способов из надежных составляющих? построить слабую систему. И только глубокие знания в криптографии, подкрепленные постоянной практикой, помогают снизить вероятность неудачи.



Поиск по сайту


Смотрите также