Chương 4 : Các Phương pháp bảo mật trong mạng cảm biến không dây
4.6 Giao thức TLS
4.6.1 Các thuật toán quan trọng được sử dụng trong trong giao thức TLS
4.6.1.1 Mã xác thực Message Authentication Code
Message Authentication Code là một thuật toán tạo ra một đoạn mã xác thực MAC từ một thơng điệp có độ dài thay đổi và một Key bí mật được chia sẻ bởi 2 bên. Người nhận có thể xác thực thơng điệp được gửi bằng cách tạo lại đoạn mã xác thực MAC bằng nội dung nhận được và Key bí mật và so sánh sánh với đoạn mã MAC nhận được. Một cách phổ biến và hiệu quả để tạo được mã xác thực MAC là sử dụng hàm HMAC, HMAC kết hợp giữa hàm Hash và việc sử dụng thêm một Key bí mật sẽ được mơ tả ở phần tiếp theo. Một cách khác để tạo đoạn mã xác thực là sử dụng mã hóa bất đối xứng, nhưng sẽ cố định độ dài của kết quả đầu ra với đầu vào có thể thay đổi độ dài[2].
4.6.1.2 Tính mã xác thực MAC bằng Hash-Based Message Authentication Code (HMAC)
Hàm HMAC là hàm dùng để tính các đoạn mã xác thực dựa trên cơ sở là các thuật toán Hash như MD5, SHA. Các thư viện của hàm HMAC được phổ biến rất rộng rãi ngày nay. Các hàm Hash được thiết kế để khơng sử dụng Key bí mật do
Trang 34
đó hàm HMAC có một cơ chế đặc biệt cho phép kết hợp sử dụng Key và dữ liệu đầu vào để tạo ra dữ liệu đầu ra là đoạn mã MAC.
Khi thiết kế hàm HMAC người ta đã đặt ra một số điệu kiện như không thay đổi kiến trúc được sử dụng, cho phép dễ dàng thay thế hàm Hash đang dùng bằng một hàm Hash tốt hơn, phát huy hiệu quả ban đầu của hàm Hash mà khơng có sự suy giảm về tính bảo mật.
Thuật tốn HMAC được mơ tả như hình sau [2]:
Hình 4. 12 - Mơ hình thuật tốn HMAC
Trong đó Hash là Hàm băm được dùng như MD5, SHA. IV là vector giá trị Input khởi tạo. Yi là một block của dữ liệu M đầu vào. b là số bit trong 1 block. n là chiều dài của Hash code được quyết định bởi hàm Hash ví dụ MD5 là 128, SHA1 là 160. L là số Block dữ liệu được chia từ dữ liệu M đầu vào. K+ là Key bí mật K mở rộng thêm các số 0 ở bên trái sao cho có chiều dài là b bit. ipad là chuỗi 00110110 lặp b/8 lần, opad là chuỗi 01011100 lặp lại b/8 lần.
Trang 35
Hàm HMAC có thể được viết lại một cách ngắn gọn khi sử dụng như sau:
HMAC(Key, Message) = Hash[(Key xor opad) || Hash[(Key xor ipad) || Message]] (4. 10)
Mức độ bảo mật của hàm HMAC phụ thuộc lớn vào sực mạnh của hàm Hash mà nó sử dụng. Ngày này hàm Hash MD5 được xem là kèm bảo mật vì có cấp độ bảo mật là 264. Tuy nhiên, đối với hàm HMAC sử dụng MD5, do chiều dài của MD5 Hash code là 128 bit, do đó cấp độ bảo mật giờ là 272 [2]. Với cấp độ bảo mật trên hàm HMAC sử dụng MD5 được xem là an toàn.
4.6.1.3 Tạo số ngẫu nhiên bằng hàm Pseudorandom Function sử dụng HMAC
Hàm Pseudorandom Function (PRF) được dùng để tạo một chuỗi bit ngẫu nhiên với độ dài xác định. Thường dùng để tạo số Nonce hoặc key mã hóa đối xứng. Điểm đặc trưng của hàm PRF là lấy giá trị ngõ vào từ một giá trị xác định trước là seed và một tham số từ hoàn cảnh là context specific values [2]. Trong giao thức TLS, hàm PRF được sử dụng để tính Master Key, HMAC Key, Session Key.
Trang 36