Добрый день,
ПРошу помочь в следующей проблеме.
Поставлена задача: встроить в серверное приложенение поддержку openssl c ГОСТ'ом и настроить взаимодействие с клиентом cryptopro csp 3.6.
далее по шагам:
- сгенерировал CA:
openssl genpkey -algorithm gost2001 -pkeyopt paramset:A -out cakey.pem
openssl req -key cakey.pem -new -x509 -extensions v3_ca -out cacert.pem< careq.txt
- выпутил серверный сертификат:
openssl genpkey -algorithm gost2001 -pkeyopt paramset:A -out serverkey.pem
openssl req -out serverreq.pem -key serverkey.pem -new < serverreq.txt
openssl ca -engine gost -extensions svr_cert -keyfile cakey.pem -cert cacert.pem -in serverreq.pem -out servercert.pem
cfg файл помимо прочего содержит следующие параметры:
...
openssl_conf = openssl_def
[openssl_def]
engines = engine_section
[engine_section]
gost = gost_section
[gost_section]
engine_id = gost
default_algorithms = ALL
CRYPT_PARAMS = id-GostR3410-2001-CryptoPro-XchA-ParamSet
Теперь проблема:
пытаясь подсоедениться к серверу с клиента получаю ошибку в event log'е
Crypto Pro TLS: This SERVER_HELLO message's extension does not sent: 0xFF01
Разбираясь детальнее с пакетами нахожу:
<Client-Hello> от машины с crypto pro csp 3.6 включает в себя
TLSv1 Record Layer: Handshake Protocol: Client Hello
...
Extension: renegotiation_info
Type: renegotiation_info (0xff01)
Length: 1
Data (1 byte)
В случае подсоеденения к моему openssl серверу приложений <Server-Hello> в ответ СОДЕРЖИТ RI extension.
TLSv1 Record Layer: Handshake Protocol: Server Hello
Handshake Protocol: Server Hello
...
Extension: renegotiation_info
Type: renegotiation_info (0xff01)
Length: 1
Data (1 byte)
Extension: Unknown 65000
Type: Unknown (0xfde8)
Length: 32
Data (32 bytes)
В случае подсоеденения к
https://cryptopro.ru <Server-Hello> в ответ НЕ СОДЕРЖИТ RI extension.
TLSv1 Record Layer: Handshake Protocol: Multiple Handshake Messages
Handshake Protocol: Server Hello
....
Handshake Protocol: Server Hello Done
Handshake Type: Server Hello Done (14)
RFC 5746 утверждает, что <Server-Hello> ДОЛЖЕН содержать RI и к сожалению, в openssl невозможно отчлючить посылку RI в <Server-Hello> сообщениях
ПРошу совета; в чем проблема и как ее можно побороть?
Спасибо.