Поиск  Пользователи  Правила 
Закрыть
Логин:
Пароль:
Забыли свой пароль?
Войти
 
Страницы: 1
RSS
OpenSSL gost engine, nginx и curl
 
Здраствуйте.

Поставили задачу с интеграцией ГОСТовых алгоритмов (опционально) в web проект, для организации SSL соединений.
Сразу оговорюсь, что у нас нет требований регуляторов.
Сразу оговорюсь, что тему создал в этом разделе намерено, потому как с ОС от мелкомягких все понятно и так, а от гнутого софта я такого не ожидал.


На входе стоит один из дистрибутивов GNU/Linux, на котором крутится nginx.
Все действия выполнялись на одном хосте.
Настроил openssl согласно README и проверил:
Код
> openssl ciphers | tr ":" "\n" | grep GOST
GOST2001-GOST89-GOST89
GOST94-GOST89-GOST89
Сгенерил самоподписаный сертификат и скормил его nginx. Он его проглатил. В конфигурации прописал:
Код
ssl_protocols TLSv1 TLSv1.1 TLSv1.2
ssl_ciphers "GOST2001-GOST89-GOST89:GOST94-GOST89-GOST89";
ssl_prefer_server_ciphers on;
Тестирую:
Код
> openssl s_client -connect 192.168.50.178:443 -state
Подлючение ок, в логе вижу:
Код
SSL-Session:
    Protocol  : TLSv1.2
    Cipher    : GOST2001-GOST89-GOST89
Казалось что вин, но нет. Тот же curl не хочет работать по гостовым  чиперам.
Код
> curl -v -k https://192.168.50.178
* Rebuilt URL to: https://192.168.50.178/
*   Trying 192.168.50.178...
* Connected to 192.168.50.178 (192.168.50.178) port 443 (#0)
* successfully set certificate verify locations:
*   CAfile: none
  CApath: /etc/ssl/certs/
* TLSv1.2, TLS handshake, Client hello (1):
* TLSv1.2, TLS alert, Server hello (2):
* error:14077410:SSL routines:SSL23_GET_SERVER_HELLO:sslv3 alert handshake failure
* Closing connection 0
curl: (35) error:14077410:SSL routines:SSL23_GET_SERVER_HELLO:sslv3 alert handshake failure
И жестко задать чиперы не получается:
Код
> curl -v --ciphers "GOST2001-GOST89-GOST89:GOST94-GOST89-GOST89" -k https://192.168.50.178
* Rebuilt URL to: https://192.168.50.178/
*   Trying 192.168.50.178...
* Connected to 192.168.50.178 (192.168.50.178) port 443 (#0)
* failed setting cipher list: GOST2001-GOST89-GOST89:GOST94-GOST89-GOST89
* Closing connection 0
curl: (59) failed setting cipher list: GOST2001-GOST89-GOST89:GOST94-GOST89-GOST89

И вот тут стало мне грустно, получается, что наличие поддержки ГОСТов в openssl, для конечного софта, который этот openssl пользует, не дает ни каких гарантий его работоспособности.
Я наивно считал, что уж в 2015 году, спустя много лет после добавления рукоделий КриптоКом в официальную ветку openssl, в песочнице opensource можно будет пользовать ГОСТы для SSL.

Может я рукожоп и на самом деле все должно работать?
 
Итого:
Все, что использует OpenSSL - да.
Все, что импользует NSS - нет и похоже что не будет.
Страницы: 1
Читают тему