Khoảng 10 dòng trên phần bạn trích dẫn, có
cấu trúc {
rsa_modulus mờ đục<1..2^16-1>;
rsa_exponent mờ đục<1..2^16-1>;
} Máy chủRSAParams;
vậy trường hợp =rsa
(thực tế chỉ dành cho rsa_export) của Máy chủKeyExchange
thực sự là:
Máy chủRSAPThông số:
rsa_modulus -- mờ đục (số nguyên không dấu bigendian thực sự)
rsa_exponent -- giống như vậy
Chữ ký -- ditto
nhưng cấu trúc này không ảnh hưởng đến mã hóa, chỉ chứa ba giá trị 'lá' và bất kỳ giải mã nào bạn đang xem (Wireshark?) Không cần phân biệt hai cấp độ ở đây.
Ghi chú cấu trúc chữ ký điện tử ... Chữ ký
không có nghĩa là hai giá trị băm (md5 và sha1) được chứa trong thông báo; thay vào đó, chúng là đầu vào cho thuật toán tạo chữ ký có thể áp dụng, trong trường hợp này là RSA 'khối loại 1' được xác định trong PKCS1v1 (hiện được đổi tên thành RSASSA-PKCS1-v1_5 trong PKCS1v2) và đầu ra của thuật toán chữ ký, đối với RSA, một số nguyên duy nhất được mã hóa dưới dạng độ dài cố định không dấu bigendian (xem 'I2OSP' trong bất kỳ phiên bản nào của PKCS1), là nội dung được đặt trong thông báo, với tiền tố độ dài 2 byte, giống như nó đã được khai báo mờ đục<?..2^16-1>
mặc dù tôi không thấy điều này được nêu trong RFC6101; TLS1.0 RFC2246 et succ nêu rõ điều đó trong 4.7.
(Bạn có thể muốn xem thêm/tất cả RFC2246; ngoại trừ PRF và dẫn xuất khóa, một số mã cảnh báo và bộ mật mã, việc bổ sung các tiện ích mở rộng (trong đó Thỏa thuận lại an toàn RFC5746 trở nên khá bắt buộc) và tất nhiên là số phiên bản, để điều tốt nhất trong trí nhớ của tôi là TLS1.0 về mặt kỹ thuật giống như SSL3, nhưng tài liệu kỹ lưỡng hơn, có thể là do trải qua vòng găng tay IETF^W process.)