Что подписать для сообщения о подтверждении сертификата DTLSv1.0 с RSA - PullRequest
0 голосов
/ 03 октября 2019

Я использую DTLS v1.0 для связи с сервером. У меня возникли проблемы с определением, что именно нужно сделать, чтобы создать certificate verify message. Я читал RFCs ( DTLSv1.0 и TLS1.1 , на которых основан DTLS v1.0), но они несколько неспецифичны, когда речь идетк этому конкретному сообщению.

Я вижу структуру сообщения, как показано ниже, и я знаю, что тип подписи RSA.

struct {
       Signature signature;   
} CertificateVerify;

Тип подписи определенв 7.4.3.

CertificateVerify.signature.md5_hash
      MD5(handshake_messages);

CertificateVerify.signature.sha_hash
      SHA(handshake_messages);

Судя по тому, что я прочитал, кажется, что это конкатенация хеша sha1 и хеша md5 всех предыдущих сообщений, отправленных и полученных(вплоть до этого и исключая), а затем RSA подписанный.

Часть, которая меня немного смутила, - это как собирать сообщения для их хеширования.

Использует ли он каждый фрагмент или использует повторно собранные сообщения? Кроме того, какие части сообщений он использует?

В RFC для TLS 1.1 написано

начиная с приветствия клиента, но не включая это сообщение, включая поля типа и длины сообщений рукопожатия

а как насчет конкретных частей DTLS, таких как message_seq, fragment_offset и fragment_length, я могу их включить?

ОБНОВЛЕНИЕ: я пытался выполнять роль RFC для DTLS 1.2 показывает (что означает сохранение фрагментированных сообщений, используя все поля рукопожатия, включая DTLS определенные поля, и не включая исходные Client Hello или Hello Verify Request сообщения), но я все еще получаю «Bad Signature». Я действительно считаю, что подписываю должным образом, поэтому я считаю, что я неправильно соединяю данные для подписи.

1 Ответ

1 голос
/ 04 октября 2019

Для DTLS 1.2 это определено. И, читая RFC 4347, у меня сложилось впечатление, что RFC 6347 не отличается, он уточняет расчеты.

RFC 6347, 4.2.6. Сертификат проверки и завершенные сообщения

RFC 4347, 4.2.6. Готовые сообщения

...