Sinh nguyên liệu khóa

Một phần của tài liệu Giao thức HTTPS và vai trò của mật mã trong giao thức HTTPS (Trang 26 - 29)

ChươngII I: TRANSPORT LAYER SECURITY

3.4Sinh nguyên liệu khóa

Dựa trên chuẩn H-MAC, TLS định nghĩa một thủ tục cho việc sử dụng H- MAC để tạo đầu ra giả ngẫu nhiên. Thủ tục này sử dụng một giá trị bí mật và một giá trị hạt giống ban đầu (có thể khá nhỏ), và sinh đầu ra ngẫu nhiên an toàn. Thủ tục có thể tạo ra nhiều đầu ra ngẫu nhiên nếu cần thiết. Hình 30 minh hoạ thủ tục này, và bảng 4 liệt kê các bước của nó. Như là với chuẩn H-MAC, thủ tục này không dựa trên một thuật toán băm cụ thể nào. Bất kỳ thuật toán băm nào, MD5 hay SHA đều có thể được sử dụng cho đầu ra giả ngẫu nhiên.

Bảng 0..3.4 Các bước sinh một đầu ra giả ngẫu nhiên

Bước Thủ tục

1 Tính H-MAC của secret và seed

2 Tính H-MAC của secret và kết quả bước 1; kết quả là phần đầu tiên của đầu ra giả ngẫu nhiên

3 Tính H-MAC của secret và kết quả bước 2; kết quả thu được là phần tiếp theo của đầu ra giả ngẫu nhiên. 4 Lặp lại bước 3 nhiều lần.

Hình 3.4.0.: TLS sử dụng HMAC để sinh ra giả ngẫu nhiên

Với một cải tiến thêm vào, TLS sử dụng thủ tục đầu ra giả ngẫu nhiên để tạo ra một hàm giả ngẫu nhiên, gọi là PRF. PRF kết hợp hai thể hiện khác nhau của thủ tục đầu ra giả ngẫu nhiên, một sử dụng thuật toán băm MD5, và một sử dụng SHA. Chuẩn TLS chỉ định một hàm sử dụng cả hai thuật toán này chỉ trong trường hợp một trong hai thuật toán không an toàn.

Nó bắt đầu với một giá secret (bí mật), một giá trị seed (hạt giống), và một label (nhãn). Một hàm chia secret thành hai phần, một dùng hàm băm MD5, và một dùng SHA. Nó kết hợp nhãn và seed thành một giá trị đơn. Chú ý rằng đầu ra của MD5 và SHA có chiều dài khác nhau (16 và 20 byte), vì thế sinh đầu ra giả ngẫu nhiên có thể yêu cầu số lượng các thao tác khác nhau trong bước 2 và 3.

Page

pseudo- random output

Hình 3.4.0.. Hàm giá ngẫu nhiên của TLS sử dụng cả MD5 và SHA

Các bước sinh đầu ra giả ngẫu nhiên TLS :

• Bước 1 : Chia secret thành 2 phần bằng nhau, nếu secret bao gồm một số lẻ các byte, gộp byte giữa trong từng phần (nó sẽ là byte cuối cùng của phần đầu và byte đầu tiên của phần thứ hai).

• Bước 2 : Sinh đầu ra giả ngẫu nhiên sử dụng phần đầu của secret, hàm băm MD5, kết hợp label và seed.

• Bước 3 : Sinh đầu ra giả ngẫu nhiên sử dụng phần thứ hai của secret, hàm băm SHA, kết hợp label, seed.

• Bước 4 : Exclusive-OR kết quả bước 2 và 3.

Với những hiểu biết về PRF, bây giờ chúng ta có thể mô tả làm thế nào TLS tạo ra nguyên liệu khoá. Nguyên lý cơ bản cũng giống như với SSL. Mỗi hệ thống bắt đầu với premaster secret, tiếp theo nó tạo ra một master secret. Sau đó, nó sinh ra nguyên liệu khoá được yêu cầu từ master secret.Để sinh nguyên liệu khoá, TLS dựa trên PRF. Các giá trị đầu vào là master secret(“secret”), chuỗi ASCII “key expansion” (nhãn), và dãy các giá trị ngẫu nhiên của server và client cho seed.

Bản thân 48 byte master secret cũng được tính sử dụng PRF. Trong trường hợp này, các giá trị vào là premaster secret,chuỗi ASCII “master secret” (nhãn), và

dãy các giá trị ngẫu nhiên của Client và Server.

Hình 0..3.4.3: TLS sử dụng PRF để tạo ra master secret và nguyên liệu khoá

Một phần của tài liệu Giao thức HTTPS và vai trò của mật mã trong giao thức HTTPS (Trang 26 - 29)