рукопожатие dtls не удалось с ошибкой расшифровки оповещения - PullRequest
0 голосов
/ 01 ноября 2019

Я реализую рукопожатие dtls-srtp от клиента (openssl с VS C ++), но это не удалось. Поток сообщений на wireshark получился следующим образом:

  • Привет клиента

  • Привет сервера, Сертификат (фрагмент), Сертификат (фрагмент), Сертификат(Фрагмент), сертификат (повторно собранный), запрос сертификата, сервер Hello Done

  • сертификат (фрагмент), сертификат (фрагмент), сертификат (фрагмент), сертификат (повторно собранный), обмен ключами клиента, проверка сертификата(Фрагмент)
  • Сервер Hello, сертификат [Ошибка повторной сборки, протокол DTLS: новый фрагмент перекрывает старые данные (повторная передача?)]
  • Клиент Hello
  • Сервер Hello, сертификат [Сборкаошибка, протокол DTLS: новый фрагмент перекрывает старые данные (повторная передача?)]
  • Client Hello, Certificate [Ошибка сборки, протокол DTLS: новый фрагмент перекрывает старые данные (повторная передача?)]
  • Server Hello, Сертификат [Ошибка сборки, протокол DTLS: новый фрагмент перекрывает старые данные (повторная передача?)]
  • Проверка сертификата (повторная сборка), Смена шифраer Spec, Certificate [Ошибка сборки, протокол DTLS: новый фрагмент перекрывает старые данные (повторная передача?)]
  • Alert (уровень: фатальный, описание: ошибка дешифрования)

Есть ли у кого-нибудьЕсть идеи, что здесь происходит? Это проблема сертификата / ключа, или я пропустил какую-либо опцию / параметр SSL?

Я пытался изменить значение mtu, но оно не сработало.

Изменено: журналы с клиента

* SSL_CB_HANDSHAKE_START неизвестно: инициализация до / подключения

SSL_CB_LOOP SSL_connect: до / подключить инициализацию

SSL_CB_LOOP SSL_connect: клиент записи SSLv3 привет A

SSL_CB_EXIT SSL_connect: сервер чтения SSLv3 привет A

соединение SSL_CB_EXIT SSL_CB: EXITсервер привет A

-> connect err = -1 errRet = SSL_ERROR_WANT_READ

SSL_CB_LOOP SSL_connect: сервер чтения SSLv3 привет A

SSL_CB_LOOP SSL_connect: сертификат SSLv3 чтения сервера A

SSL_CB_LOOP SSL_connect: запрос сертификата сервера чтения SSLv3 A

SSL_CB_LOOP SSL_connect: сервер чтения SSLv3 выполнен A

SSL_CB_LOOP SSL_connect: сертификат клиента записи SSLv3 A

SSL_CB_LOOP: SSLзапись клиентского ключа обмена A

SSL_CB_LOOP SSL_connect: сертификат записи SSLv3 подтверждает A

SSL_CB_EXIT SSL_connect: ошибка

-> connect err = -1 errRet = SSL_ERROR_SYSCALL *

...