четверг, 19 июля 2012 г.

openssl, ГОСТ (gost) и мои кривые руки. Часть 3

Все таки (возможно) у меня не совсем кривые руки.
Мне все же удалось сделать тестовое соединение под GOST'ом


После почти недели танцев с бубнами я пришел к следующим выводам:
  • ГОСТ работает через одно место (я это собственно знал давно)
    • ГОСТовые (gost2001) алгоритмы могут хоть как то (адекватно) работать в этой стране только через IE (Windows+ActiveX...), т.к. все разработчики ГОСТовых алгоритмов изначально ориентированы на CAPICOM/CSP.  (я был не прав -- настроить удалось VipNet CSP Win64 + openssl 0.9.8e КриптоКом МагПро)  Применение у клиента JCP это извращение (на мой взгляд) -- виртуальная машина не наш метод -- кто не верит пущай пощупает Eclipse. 
    • Все остальное методы "прозрачного шифрования" (sTunnel+МагПро, SignalCom InetPro и т.п.) --  от лукавого, т.к. это IMHO большущая дырища -- можно подставить еще один "свой" прокси, который может исказить данные. 
    • Адекватных технологий заставить Mozilla, Firefox, Chrome работать не через ssl/tls тунель мне найти не удалось (см. спец сборку Firefox оту КриптоПро  http://cryptopro.ru/downloads разделы "Настройка firefox и thunderbird на Linux для работы с "КриптоПро CSP 3.6"  и "Настройка firefox и thunderbird на Windows для работы с "КриптоПро CSP 3.6""):
      • плагины под каждый браузер.
      • собственный браузер под платформы клиентов.
  • Для того чтобы сделать вменяемый клиент сервер нужно чтобы:
    • с двух сторон стояла криптография (читай CSP/JCP) _одного_ (заявлено что это не так, но мне так почему то очень кажется) производителя (я был не прав -- настроить удалось VipNet CSP Win64 + openssl 0.9.8e КриптоКом МагПро).
    • либо и клиент и сервер должен использовать одну и ту же криптобиблиотеку (это наш случай -- openssl)
    • практически тоже самое sTunnel -- используется и с той и другой стороны openssl для "прозрачной" шифрации.
  • Все что есть CSP (CryptoPro, LISSI, VipNet все опять же Windows+...) подружить с openssl не удалось => требуется искать MagPro CSP или писать свой CSP.  (я был не прав -- удалось  настроить  VipNet CSP Win64 + openssl 0.9.8e КриптоКом МагПро)
  • Нормальной миграции openssl ГОСТовых ключей/сертификатов в P12/PFX не обнаружено:
    • при попытке импорта GOST P12 под sha1 в Windows/IE получаем ошибку
    • при попытке импорта GOST P12 под GOST R 34.11-94 в Windows/IE получаем ошибку
Есть шанс еще пощупать утилиту http://cryptopro.ru/downloads "Утилита устранения ошибки о неправильном пароле на контейнер для КриптоПро CSP 3.6 R2http://cryptopro.ru/sites/default/files/public/repair_cont.exe, но я в это не сильно верю
    • при попытке импорта GOST P12 под sha1 или под GOST R 34.11-94 в Firefox получаем одну и ту же ошибку:
  • Запустить nginx win32 1.3.3 под ssl/tls+GOST удалось
    • Версия под Win32 собрана жестко под 0.9.8 и при подкладывании 1.0.1 разваливается при том что даже в лог-файлы ничего не пишет -- пришлось подложить МагПро 0.9.8e
    • подкладывание RSA ключей
nginx.conf:
    server {
        listen       443;
        server_name  localhost;

        ssl                  on;
        ssl_certificate      ../keys/usualplat_ca_root.cer;
        ssl_certificate_key  ../keys/usualplat_ca_root.pem; # самоподписанные ключи RSA

        ssl_session_timeout  5m;

        ssl_protocols  SSLv2 SSLv3 TLSv1;
        ssl_ciphers  HIGH:!aNULL:!MD5;
        ssl_prefer_server_ciphers   on;

        location / {
            root   html;
            index  index.html index.htm;
        }

все OK -- IE, Chrome, Firefox соединяются нормально:

  • подкладывание GOST ключей

    # HTTPS server
    #

    server {
        listen       443;
        server_name  localhost;


        ssl                  on;
        ssl_certificate      ../keys/superplat_localhost.cer;
        ssl_certificate_key  ../keys/superplat_localhost.pem;


        ssl_session_timeout  5m;


        ssl_protocols  SSLv2 SSLv3 TLSv1;
#        ssl_ciphers  GOST2001-GOST89-GOST89:GOST2001-NULL-GOST94;
        ssl_ciphers  HIGH:!aNULL:!MD5;
        ssl_prefer_server_ciphers   on;


        location / {
            root   html;
            index  index.html index.htm;
        }
Chrome, Firefox соединяются c ошибкой криптографии:



IE используя VipNet CSP -- OK: 




Правда мне пришлось руками импортировать .CER от SuperPlat CA Root ;)
Файл .CER под GOST'ом был схомячен Windows'ом в отличии от .P12 без проблем.

1 комментарий:

  1. Приветствую! Есть вопросы по данной теме, в профиле не нашёл контактной информации :( Скинь если не сложно контакты на alexsz159@gmail.com

    ОтветитьУдалить