Ошибка «tls_process_ske_dhe: dh key too small» при подключении к старому API - PullRequest
0 голосов
/ 04 июня 2019

Я пытаюсь подключиться к старому API (Запуск Java 6) с Node, и меня блокирует рукопожатие SSL.

Полная ошибка выглядит так: Error: 65756:error:141A318A:SSL routines:tls_process_ske_dhe:dh key too small:openssl\ssl\statem\statem_clnt.c:1472:

Я пробовал много разных вещей, чтобы решить эту проблему, но ни один не приблизил меня. Вот тестовый скрипт, который я запускаю, чтобы не тратить всю интеграцию:

const tls = require('tls');

tls.connect({
    host: 'old.api.com',
    port: 8443,
    //ciphers: suiteFromNmap,
    //secureProtocol: 'TLSv1_method',
    //minDHSize: 768,
}, function(result) {
    console.log(result);
}).on('error', function(err) {
    console.log(err);
});

Я пытался поиграть с параметром шифров, никогда не делал различий, какой бы набор я ни использовал, иногда выходил из строя с другой ошибкой из-за отсутствия общих шифров.

Я немного покопался в nmap, что привело к этому:

PORT     STATE SERVICE
8443/tcp open  https-alt
| ssl-enum-ciphers:
|   TLSv1.0:
|     ciphers:
|       TLS_DHE_RSA_EXPORT_WITH_DES40_CBC_SHA - E
|       TLS_DHE_RSA_WITH_3DES_EDE_CBC_SHA (dh 768) - E
|       TLS_DHE_RSA_WITH_AES_128_CBC_SHA (dh 768) - C
|       TLS_DHE_RSA_WITH_AES_256_CBC_SHA (dh 768) - B
|       TLS_DHE_RSA_WITH_DES_CBC_SHA (dh 768) - E
|       TLS_RSA_EXPORT_WITH_DES40_CBC_SHA - E
|       TLS_RSA_EXPORT_WITH_RC4_40_MD5 - E
|       TLS_RSA_WITH_3DES_EDE_CBC_SHA (rsa 2048) - C
|       TLS_RSA_WITH_AES_128_CBC_SHA (rsa 2048) - A
|       TLS_RSA_WITH_AES_256_CBC_SHA (rsa 2048) - A
|       TLS_RSA_WITH_DES_CBC_SHA (rsa 2048) - C
|       TLS_RSA_WITH_RC4_128_MD5 (rsa 2048) - C
|       TLS_RSA_WITH_RC4_128_SHA (rsa 2048) - C
|     compressors:
|       NULL
|     cipher preference: client
|     warnings:
|       64-bit block cipher 3DES vulnerable to SWEET32 attack
|       64-bit block cipher DES vulnerable to SWEET32 attack
|       64-bit block cipher DES40 vulnerable to SWEET32 attack
|       Broken cipher RC4 is deprecated by RFC 7465
|       Ciphersuite uses MD5 for message integrity
|       Key exchange (dh 768) of lower strength than certificate key
|_  least strength: E

Я попытался изменить параметр minDHSize, чтобы он соответствовал указанному в предупреждениях, но ошибка осталась прежней.

Попытался использовать онлайн-проверку SSL (https://www.ssllabs.com/ssltest/) и получил это: ssllabs test result

Попробовал эти шифры, но ошибка все та же.

ssllabs.com, кажется, доволен своим сертификатом, но wget не работает без --no-check-certificate:

ERROR: The certificate of ‘old.api.com’ is not trusted.
ERROR: The certificate of ‘old.api.com’ hasn't got a known issuer.

На данный момент я не уверен, что еще я могу попробовать, я ничего не могу сделать со своей стороны, чтобы узел подключился к этому серверу? Я готов пойти на версию с низким уровнем безопасности, учитывая, что ничего особо важного или приватного не происходит, если мне не нужно делать небезопасным весь экземпляр узла.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...