Криптография по ГОСТ.
У меня на сайте уже есть несколько страничек, посвященных безопасности - Безопасность 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-криптография. В равной степени эти моменты относятся и к криптографии по ГОСТ.
- Браузеры часто сообщают кому следует обо всех входах пользователя по SSL (HTTPS). Делается это под предлогом борьбы с якобы расплодившимися фишинговыми (поддельными Web-узлами). Ну например вы заходите в интернет-банк, например moneybooker.com. Вдруг вы ввели mAneybooker.com. И если этот сайт по внешнему виду как две капли воды похож на оригинальный, то вы можете ввести туда свой логин и пароль. Не знаю, насколько это реальный сценарий, но особенно IE (по умолчанию) под предлогом борьбы с такими ошибками в URL - сообщает в MS когда, кто и куда входил по шифрованному каналу. Это очень специфический (и небольшой по обьему) трафик, который очень удобно фильтровать на любых магистралях.
- Даже простейшие устройства коммутации имеют PORT MIRROR, который умеет ответвлять интересный трафик заинтересованным лицам. Кроме того, SSL-трафик, записаный c самого начала - нет никаких проблем воспроизвести. IKE не поможет.
- Лицензирование деятельности любого провайдера интернет-услуг в первую очередь подразумевает установку СОРМ, которая как раз и предназначена для отлова интересного трафика. А SSL трафик - как раз интересный. Это не просто зашел/вышел на сайт, SSL - это ПЛАТЕЖИ и РЕГИСТРАЦИЯ. SSL трафик - это больше чем красная тряпка для быка и он всегда очень тчательно отлавливается и анализируется.
- Вообще, в деле защиты информации часто происходит больше иммитации защиты, чем реальной защиты. Я сплошь и рядом вижу на сайтах пароли, закрытые звездочками (точками) при входах даже не по SSL. В этом случае свой собственный пароль не видите ТОЛЬКО ВЫ САМИ. Его тупо закрывает от вас же - собственный браузер. Все остальные наблюдают его открытым текстом. Пример одного из самых удачных сканеров, пригодных для отлова таких чудо-паролей на магистралях WireShark. Существует также куча сканеров, которые сканируют всю почту, проходящую на транзитных почтовых серверах, отлавливая почту с ключевыми словами "Password" или "Ваш Пароль". Ничто не мешает отлавливать трафик по этим словам и любому админу любого провайдера. С этой стороны, SSL выглядит предпочтительнее, чем его отсутствие.
- Еще на одном важнейшем моменте защиты информации я останавливался на этой страничке Безопасность Web-приложений. Вся криптография основана на перехвате на линии, но она В ПРИНЦИПЕ не защищает от уязвимости конечных узлов шифрования. Например если у вас сидит кейлоггер, то никакая криптография, даже самая честная - вам не поможет. И если Web-сервер уже завирусился - то тоже никакая защита на линии, даже по PGP - никак не поможет.
- И пожалуй последнее, что я еще тут озвучу в плане общей уязвимости криптографии в WEB. Вся криптография (даже PGP) основана на том, что зашифрованный текст заведемо неизвестен. Те предполагается, что мы шифруем донесения Штирлица, которые всегда разные. Но Web-сервера так не работают. Отклик Web-сервера ВСЕГДА ОДИНАКОВЫЙ. Почти одинаковый с крошечными предсказуемыми отклонениями. Но этого начала каждого респонса вполне хватит, чтобы увидеть прямым XOR-преобразованием из шифрованного текста и заведомо известного отклика - сразу ключ шифрования. Правда они меняются по IKE. Но ведь и после смены ключей - опять пойдут стандартные респонзы с вполне предсказуемым началом HTTP 1.1 ... <html>...</html>.
Итак, перейдем от общих проблем криптографии в WEB (и проблем шифрования по российским алгоритмам) к более конкретным соображениям. Мне известны две достаточно крупных организации, лицензированных ФСБ на занятие криптографии по ГОСТ-алгоритму. Понятно, что в принципе их намного больше. Но эти (на мой взгляд) самые крупные и их продукты более ли менее работоспособны и известны:
- Интер-Про - http://www.signal-com.ru/
- Крипто-Про - http://www.cryptopro.ru/
Тестовые версии обоих продуктов можно найти на сайте производителей. В первом продукте тестовая версия ограничена по времени, во втором - частично и по функционалу. Во втором случае кроме собственно серверной части требуется сгрузить также тестовую версию криптопровайдера.
Продукт первой компании на мой взгляд организации заметно более убогий. Но эта простота, впрочем - имеет и оборотную сторону. Он кросс-платформенный по своей задумке и гораздо проце настраивается. Это преимущество (оно же недостаток) - обеспечено засчет очень простой архитектуры. Все свои ключи и маски - он открыто хранит в файловой системе (не имеет виндузового криптопровайдера). И это все никак не привязано к встроенной в виндузню инфраструктуре сертифкатов. Свои впечатления от этой системы я просуммировал на этой страничке.
Продукт второй компании более крученый. Он имеет криптопровайдера (те хранит ключи шифрования не просто как-то, а как того требует их криптопровайдер - например на съемных носителях, или в защищенном ключе реестре, доступ к которому сама виндузня защищает даже от чтения. А сам по себе алгоритм шифрования по ГОСТ в этом продукте реализован как расширение стандатного виндузового алгоритма Schannel - что позволило задействовать в работу весь виндузовый механизм выпуска сертификатов и вообще всю виндузовую инфрастуктуру сертификатов с открытым ключом.
Документация на этот продукт весьма обширна, более тысячи страниц, составляет 20 документов и требует немалого времени пока начнешь в ней ориентироваться. Поэтому я выкладываю здесь пару коротеньких страничек-инструкций, представляющих собой квинтэсенцию всей этой документации:
Есть и другая технология использования инфраструктуры сертификатов Crypto Pro. Она использована в компании http://www.kontur-extern.ru/. В этом варианте использорвания сертифкаты загружаются не на Web-сервер непосредственно, а на ISA-сервер, стоящий перед ним. Это существенно разгружает Web-сервер и кроме того позволяет сделать из них кластеры. Загрузка ГОСТ-сертификатов на ISA-сервер во всех принципиальных моментах совпадает с описанной выще загрузкой сертификатов на Web-сервер (только формы выглядят иначе) - ну а о принципах работы ISA-сервера я много раз рассказывал на своем хомячке.
|