Инфраструктура открытых ключей: Удостоверяющий Центр на базе утилиты OpenSSL и SQLite3 (Посткриптум)

    В одном из комментариев, присланным участником garex, в ответ на заявление:
    Но сегодня в стандартной версии openssl отсутствует поддержка как ГОСТ Р 34.11-2012, так и ГОСТ Р 34.10-2012. Более того в версии 1.1 поддержка криптографии ГОСТ исключена из стандартной поставки («The GOST engine was out of date and therefore it has been removed.»)
    было сказано:
    Чем не устраивает вот эта, которую «убрали?» github.com/gost-engine/engine
    Пример билда: github.com/rnixik/docker-openssl-gost/blob/master/Dockerfile

    Выло решено протестировать эту версию openssl в составе УЦ CAFL63. Используя указанный пример билда, сам openssl и ГОСТ-ый engine собрались и установились без всяких проблем (все тестировалось в среде Linux и устанавливалось в каталог /usr/local/ssl). Естественно, для работы с ГОСТ-ой криптографией (речь идет о ГОСТ Р 34.10-2012, ГОСТ Р 34.11-2012) надо прописать подключение engine-а gost.so в конфигурационной файле openssl.cnf:

     . .
    # OpenSSL default section
    [openssl_def]
    engines = engine_section
    # Engine scetion
    [engine_section]
    gost = gost_section
    # Engine gost section
    [gost_section]
    engine_id = gost
    dynamic_path = /usr/local/ssl/lib/engines-1.1/gost.so
    default_algorithms = ALL
    CRYPT_PARAMS = id-Gost28147-89-CryptoPro-A-ParamSet
    . . . 
    

    Проверить подключение гостового engine-а можно выполнив команду:

    bash-4.3$ /usr/local/ssl/bin/openssl  ciphers
    . . . 
    GOST2012-GOST8912-GOST8912:GOST2001-GOST89-GOST89
    . . .
    bash-4.3$

    Для просмотра поддерживаемых ГОСТ-вых алгоритмов хэширования достаточно выполнить следующую команду:

    bash-4.3$ /usr/local/ssl/bin/openssl  list –digest-algorithms| grep md_gost 
    md_gost12_256 
    md_gost12_512 
    md_gost94 
    bash-4.3$

    Как видно, с поддержкой российской криптографии в этой версии openssl с подключенным engine-ом все хорошо.

    Если подключить утилиту openssl (Средства->Настройки->Системные) в ранее созданном УЦ, то на первый взгляд все заработает. Можно будет просмотреть и запросы и сертификаты. При этом все поля, входящие в DN (отличительное имя) (ИНН, ОГРН, СНИЛС) отображаются верно. Но вот расширения, типа issuerSignTool, subjectSignTool и другие, openssl отказывается поминать:

    image

    Следует отметить, указанные расширения являются неотъемлемой частью СКПЭП (квалифицированный сертификат ключа проверки электронной подписи), требования к которому утверждены приказом ФСБ от 27 декабря 2011 г. N 795.

    Анализ утилиты openssl показал, что она не поддерживает расширения isserSignTool, objectSignTools и другие, введенные ТК-26 для СКПЭП:
    ...
    Error Loading request extension section v3_req
    139974322407168:error:22097081:X509 V3 routines:do_ext_nconf:unknown extension:crypto/x509v3/v3_conf.c:82:
    139974322407168:error:22098080:X509 V3 routines:X509V3_EXT_nconf:error in extension:crypto/x509v3/v3_conf.c:47:name=subjectSignTool, value=Наименование СКЗИ пользователя
    ...
    Error Loading request extension section v3_req
    140154981721856:error:22097081:X509 V3 routines:do_ext_nconf:unknown extension:crypto/x509v3/v3_conf.c:82:
    140154981721856:error:22098080:X509 V3 routines:X509V3_EXT_nconf:error in extension:crypto/x509v3/v3_conf.c:47:name=subjectSignTool, value=Наименование СКЗИ пользователя
    ...
    Error Loading extension section cert_ext
    140320065406720:error:0D06407A:asn1 encoding routines:a2d_ASN1_OBJECT:first num too large:crypto/asn1/a_object.c:61:
    140320065406720:error:2208206E:X509 V3 routines:r2i_certpol:invalid object identifier:crypto/x509v3/v3_cpols.c:135:section:,name:KC1ClassSignTool,value:
    140320065406720:error:22098080:X509 V3 routines:X509V3_EXT_nconf:error in extension:crypto/x509v3/v3_conf.c:47:name=certificatePolicies, value=KC1ClassSignTool, KC2ClassSignTool
    ..
    В связи с этим, УЦ CAFL63 также отказывался создавать запросы и выпускать сертификаты на openssl, так как он строго следил за соблюдением требований к СКПЭПЭ:



    Вместе с тем, порой эти требования бывают излишними, например, при использовании сертификатов в учебном процессе, для внутрикорпоративного документооборота (подписание, шифрование документов), для доступа по https к корпоративным системам (сайты, порталы и т.д, так называемые, SSL-сертификаты).
    Исходя их этого была проведена доработка CAFL63. Теперь стало возможным не заполнять поля расширений (Средства->Настройки->Системные):



    Утилита CAFL63 позволяет просматривать сторонние запросы (Сертификаты->Просмотреть сторонний сертификат или кновка «Просмотр внешнего X509» на вкладке «Сертификаты»), но с тем же недостатком:



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

    Это все, что хотелось сказать в постскриптуме.
    Поделиться публикацией
    Комментарии 0

    Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

    Самое читаемое