Во многих примерах я столкнулся, исследуя эту проблему, упоминается длина = 12.TLS 1.2 SHA384: Какова должна быть длина проверки_данных в сообщении «Готово»?
Однако:
В соответствии с RFC, verify_data длина всегда 12 в старше версии. Однако в TLS 1.2 длина может быть больше - в зависимости от набора шифров.
struct {
opaque verify_data[verify_data_length];
} Finished;
verify_data
PRF(master_secret, finished_label, Hash(handshake_messages))
[0..verify_data_length-1];
In previous versions of TLS, the verify_data was always 12 octets
long. In the current version of TLS, it depends on the cipher
suite. Any cipher suite which does not explicitly specify
verify_data_length has a verify_data_length equal to 12. This
includes all existing cipher suites. Note that this
representation has the same encoding as with previous versions.
Future cipher suites MAY specify other lengths but such length
MUST be at least 12 bytes.
verify_data определяется как PRF с использованием определенного алгоритма. AFAIK и в соответствии с rfc4868, при использовании SHA384, длина выходного ЧПИ будет 48, а не 12.
PRF-HMAC-SHA-384 = afd03944d84895626b0825f4ab46907f
15f9dadbe4101ec682aa034c7cebc59c
faea9ea9076ede7f4af152e8b2fa9cb6
Я также записал PCAP из потока SSL, который использует SHA384, а длина verify_data 12:
Какой должна быть структура и длина готового сообщения при использовании SHA384?
Спасибо!