Я пытаюсь подключить встроенное устройство к smtp.gmail.com:465, используя tls1.2 с WolfSSL. Библиотека создает и отправляет следующее сообщение clientHello и получает отказ от рукопожатия.SSL handshake_failure после clientHello
16 03 03 00 4f 01 00 00 4b 03 03 2e 2a ec 85 7f
15 dd 09 5f 22 d1 53 82 60 d7 80 67 28 aa 67 48
ce f0 71 ab 63 d0 b2 3e 55 3a 05 00 00 14 c0 27
c0 23 c0 0a c0 09 c0 07 c0 08 c0 14 c0 13 c0 11
c0 12 01 00 00 0e 00 0d 00 0a 00 08 04 03 02 03
04 01 02 01
Настоящее сообщение получено;
15 03 03 00 02 02 28
Как можно видеть в wireshark screenshot следующие наборы шифров поддерживаются клиентом;
TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256 (0xc027)
TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256 (0xc023)
TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA (0xc00a)
TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA (0xc009)
TLS_ECDHE_ECDSA_WITH_RC4_128_SHA (0xc007)
TLS_ECDHE_ECDSA_WITH_3DES_EDE_CBC_SHA (0xc008)
TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA (0xc014)
**TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA (0xc013)**
**TLS_ECDHE_RSA_WITH_RC4_128_SHA (0xc011)**
TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA (0xc012)
... и следующие алгоритмы подписи поддерживается клиентом (см шестнадцатеричной части в нижней части экрана, Wireshark не декодирует алгоритмы подписи)
04 03: SHA256 EDCSA
02 03: SHA1 EDCSA
04 01: SHA256 RSA
02 01: SHA1 RSA
С другой стороны, , smtp.gmail.com поддерживает следующие комплекты шифрования; (Это получается путем запуска сценария здесь: «superuser.com/questions/109213/how-do-i-list-the-ssl-tls-cipher-suites-a-particular-website-offers»)
TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256
**TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA**
**TLS_ECDHE_RSA_WITH_RC4_128_SHA**
TLS_RSA_WITH_AES_128_GCM_SHA256
TLS_RSA_WITH_AES_128_CBC_SHA256
TLS_RSA_WITH_AES_128_CBC_SHA
SSL_RSA_WITH_RC4_128_SHA
SSL_RSA_WITH_RC4_128_MD5
TLS_RSA_WITH_AES_256_GCM_SHA384
TLS_RSA_WITH_AES_256_CBC_SHA256
TLS_RSA_WITH_AES_256_CBC_SHA
SSL_RSA_WITH_3DES_EDE_CBC_SHA
Как видно выше, эти два набора соответствуют.
- TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA
- TLS_ECDHE_RSA_WITH_RC4_128_SHA
И я проверил сертификат "www.digicert.com/help/" (использование "smtp.gmail.com:465") и получил это: Digicert Screenshot
- алгоритм Подпись = SHA256 + RSA (отлично)
Это также совпадает
Согласно "tools.ietf.org/html/rfc5246#section-7.2.2"
Reception of a handshake_failure alert message indicates that the sender was unable to negotiate an acceptable set of security parameters given the options available. This is a fatal error.
Насколько я понимаю, существует и другие причины чем алгоритм шифрования и алгоритм сигнатурного алгоритма для handshake_failure, или я пропускаю что-то очень большое. Я ищу причину неудачи, но я не могу ее найти. Я был бы благодарен за любую помощь или любую идею. Какая может быть причина handshake_failure?
Я очень сожалею о непривязанных ссылках. stackoverflow не позволяет мне добавить более двух ссылок. Я заменю их на регулярные ссылки, если у вас 10 репутаций :)