Блог программиста Еремина Вячеслава Викторовича
(Notes) Notes (2009 год)

Криптография по ГОСТ.

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


Прежде всего мне хотелось бы еще раз подчеркнуть, чем (на мой взгляд) продиктован сам факт существования доморощенных криптографических алгоритмов, специфицированнх ГОСТ. Ибо мне уже доводилось вступать в полемику по этому вопросу. Ведь казалось бы, есть PGP - что можно придумать ЕЩЕ круче? Бери исходный текст, тысячекратно проинспектированный самими лучшими умами планеты на предмет отсутствия "черных ходов", как в математике, так и в реализации - бери и используй на здоровье. Только мысленнно поблагодари одного хитрого космополита Циммермана, который обманул амирикосовское государство. Алгоритмы, посвященные криптографии - из США вывозить запрещено и он, хитрюга, распечатал свою прогу в книге и предъявил эту книгу таможне.

Ну амирикосы ж тупые до невозможности, они не понимают принципа революционной целлесообразности, они действуют по строго написанным законам - алгоритмы вывозить запрещено, но книги-то можно! И никто не стал взрывать Циммермана возле синагоги, не уколол его зонтиком, не зарубил его ледорубом и даже не подмешал ему полония в чай. Ведь он просто вывез из США книгу и опубликовал ее в Голландии - что американских законов не нарушает.

Так вот, казалось бы - бери этот тысячекратно проинспектированный алгоритм и его реализацию в исходных текстах http://www.pgp.com/- компилируй - шифруйся и наслаждайся тем, что это ну просто никак невозможно расшифровать. Но наше государство финансирует создание своего собственного шифрования, суть которого следующая:

Вспомним математическую основу шифрования. Это односторонняя функция. Берем пару простых чисел, ну для примера 9 999 991 и 9 999 901 и перемножаем их. Получаем 99 998 920 000 891. Смысл односторонней функции в том, что в обратную сторону невозможно определить, что на что множилось, глядя на число 99 998 920 000 891. Однако, если вы знаете один из множителей, точнее маску с которой он производится (в нашем примере от маски 9 999 9_1 произведены оба множителя) - то в чем проблема определить исходное число 9 999 991, глядя на зашифрованное число 99 998 920 000 891?

С учетом вышепоименованных обстоятельств я не могу интерпретировать лицензирование, выдачу маски в этом процессе, запрет на занятие криптографией самовольно (без маски) НИКАК ИНАЧЕ - как наличие у некоторых граждан мастер-ключа. На это я обычно слышу возражение, покажите на каком ИМЕННО массовом форуме эти граждане нарушили свою подписки и сами сознались в наличии у них мастер-ключа.


Вообще, в деле защиты информации в WEB есть еще пара моментов, от которых не спасет даже PGP-криптография. В равной степени эти моменты относятся и к криптографии по ГОСТ.



Итак, перейдем от общих проблем криптографии в WEB (и проблем шифрования по российским алгоритмам) к более конкретным соображениям. Мне известны две достаточно крупных организации, лицензированных ФСБ на занятие криптографии по ГОСТ-алгоритму. Понятно, что в принципе их намного больше. Но эти (на мой взгляд) самые крупные и их продукты более ли менее работоспособны и известны:

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


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


Продукт второй компании более крученый. Он имеет криптопровайдера (те хранит ключи шифрования не просто как-то, а как того требует их криптопровайдер - например на съемных носителях, или в защищенном ключе реестре, доступ к которому сама виндузня защищает даже от чтения. А сам по себе алгоритм шифрования по ГОСТ в этом продукте реализован как расширение стандатного виндузового алгоритма Schannel - что позволило задействовать в работу весь виндузовый механизм выпуска сертификатов и вообще всю виндузовую инфрастуктуру сертификатов с открытым ключом.

Документация на этот продукт весьма обширна, более тысячи страниц, составляет 20 документов и требует немалого времени пока начнешь в ней ориентироваться. Поэтому я выкладываю здесь пару коротеньких страничек-инструкций, представляющих собой квинтэсенцию всей этой документации:

Есть и другая технология использования инфраструктуры сертификатов Crypto Pro. Она использована в компании http://www.kontur-extern.ru/. В этом варианте использорвания сертифкаты загружаются не на Web-сервер непосредственно, а на ISA-сервер, стоящий перед ним. Это существенно разгружает Web-сервер и кроме того позволяет сделать из них кластеры. Загрузка ГОСТ-сертификатов на ISA-сервер во всех принципиальных моментах совпадает с описанной выще загрузкой сертификатов на Web-сервер (только формы выглядят иначе) - ну а о принципах работы ISA-сервера я много раз рассказывал на своем хомячке.



Комментарии к этой страничке ( )
ссылка на эту страничку: http://www.vb-net.ru/criptopro/index.htm
<На главную>  <В раздел ASP>  <В раздел NET>  <В раздел SQL>  <В раздел Разное>  <Написать автору>  < Поблагодарить>