07/01/2018
Chương 3b:
MÃ XÁC THỰC THÔNG ĐIỆP
(MESSAGE AUTHENTICATION CODES)
GV: Nguyễn Thị Hạnh
Nội dung chính
1. Khái niệm toàn vẹn và xác thực thông điệp
2. MAC (Message Authentication Code)
(cid:1) Nested MAC (cid:1) HMAC (cid:1) CMAC
3. Thảo luận vài cơ chế MAC
(Cryptography & Network Security. McGraw-Hill,
1
Inc., 2007., Chapter 11)
07/01/2018
Mục tiêu
(cid:1) Toàn vẹn là gì (cid:1) Phương pháp nhận diện dữ liệu không toàn vẹn (cid:1) Mục tiêu của MAC; Các phương pháp để xác thực
thông điệp ˗ Tìm hiểu về MAC
(cid:1) Mô hình tổng quát MAC (cid:1) Bảo mật MAC (cid:1) Đặc tính của MAC (cid:1) Yêu cầu đối với MAC (cid:1) An toàn của MAC
3
˗ Khái niệm về toàn vẹn và xác thực thông điệp
Mục tiêu
(cid:1) Nested MAC (cid:1) Keyed Hash Function (cid:1) HMAC (cid:1) CMAC
4
2
˗ Thảo luận về và cơ chế MAC
07/01/2018
1. Khái niệm xác thực thông điệp
1.1 Toàn vẹn thông điệp (Message Integrity)
1.2 Xác thực thông điệp
5
(Message Authentication )
1.1 Integrity Message
˗ Đối phương insert/modify/delete nội dung
6
3
thông điệp
07/01/2018
1.1 Integrity Message
7
˗ Phương pháp chứng minh hoặc phát hiện đối phương đã thay thế thông điệp M bằng thông điệp giả mạo M’ (cid:1) Message Digest (cid:1) Message Detection Code (MDC)
Message Digest
˗ Tạo bản băm của thông điệp m: y=h(M)
8
4
˗ Giống như “fingerprint” của thông điệp
07/01/2018
Modification Detection Code (MDC)
9
˗ Một MDC là message digest mà có thể chứng minh tính toàn vẹn của thông điệp: thông điệp không bị thay đổi.
1.2 Message Authentication
Mục tiêu ˗ Xác nhận nguồn gốc của dữ liệu ˗ Thuyết phục với NSD là dữ liệu này chưa bị
sửa đổi hoặc giả mạo.
˗ Là cơ chế quan trọng để duy trì tính toàn vẹn
10
5
và không thể từ chối dữ liệu
07/01/2018
1.2 Message Authentication
Các phương pháp Message Authetication: ˗ Mã hóa thông điệp: sử dụng mã hóa khóa bí
mật, mã hóa khóa công khai
˗ Hàm băm (Hash Function): Một hàm ánh xạ
một thông điệp có chiều dài bất kỳ vào một giá trị băm có chiều dài cố định sử dụng để chứng thực.
11
˗ Mã chứng thực thông điệp (MAC): một hàm và một khóa bí mật tạo ra một giá trị có chiều dài cố định sử dụng để chứng thực
2. Message Authentication Code
12
6
˗ Cơ chế tổng quát
07/01/2018
2. Message Authentication Code
13
Bảo mật của MAC tùy thuộc vào bảo mật của hàm băm
Đặc điểm của MAC
MAC=CK(M)
(cid:1) Nén một thông điệm M có chiều dài bất kỳ (cid:1) Dùng một khóa bí mật K (cid:1) Thành một xác thực kích thước cố định
˗ MAC là một cryptographic checksum
(cid:1) Nhiều thông điệp có cùng MAC (cid:1) Nhưng tìm ra ra chúng là không dễ
14
7
˗ Một hàm many-to-one
07/01/2018
Yêu cầu đối với MAC
(cid:1) Biết một thông điệp và MAC, thì không thể tìm ra
một thông điệp khác có cùng MAC
(cid:1) Các MAC nên được phân bố đồng đều (cid:1) MAC nên tùy thuộc ngang nhau trên tất cả các bit
của thông điệp
15
˗ Tính toán đến các loại tấn công ˗ MAC phải thỏa mãn những điều sau:
An toàn của MAC
(cid:1) Cho một hoặc nhiều cặp [xi, MAC(K, xi)], rất khó để tính toán tìm ra x„ xi mà có cùng giá trị MAC của xi
(cid:1) Có 2 hướng:
• Tấn công không gian khóa: 2k (với k – kích cở khóa) • hoặc giá trị MAC: 2n (Ít nhất 128-bit MAC thì mới an toàn) ˗ Cryptanalytic Attacks: Khai thác vài đặt tính của
thuận toán MACs hoặc hàm hash (cid:1) Tốt hơn vét cạn (cid:1) Có nhiều biến thể trong cấu trúc của MACs hơn
hàm hash nên tấn công MACs khó khăn hơn hàm hash.
16
8
˗ Brute-force attacks:
07/01/2018
3. Vài cơ chế MAC
3.1 Nested MAC
3.2 Keyed Hash Functions as MACs
3.3 MAC dựa vào hàm băm (HMAC)
17
3.4 MAC dựa vào mã hóa khối (CMAC)
3.1 Nested MAC
18
9
˗ Để tăng bảo mật của MAC ˗ Băm được áp dụng nhiều lần
07/01/2018
3.2 Keyed Hash Functions as MACs
˗ Mong muốn có môt MAC dựa trên hàm băm (cid:1) Các hàm băm nhanh hơn mã khối đối xứng (cid:1) Mã hàm băm có thể áp dụng một cách rộng rãi ˗ Băm bao gồm một khóa (key) cùng với thông
điệp
(cid:1) Một vài điểm yếu đã được chỉ ra với hàm này
KeyedHash=Hash(Key|Message)
19
(cid:2) Phát triển HMAC
3.3 MAC dựa vào hàm băm (HMAC)
(cid:1) Dùng hàm băm nguyên mẫu (không chỉnh sửa) (cid:1) Cho phép thay thế dễ dàng hàm băm được nhúng
vào trong trường hợp các hàm băm nhanh hơn hoặc nhiều bảo mật được tìm ra hoặc yêu cầu
(cid:1) Duy trì hiệu năng ban đầu của hàm băm mà không
mắc phải sự suy giảm nghiêm trọng
(cid:1) Dùng và quản lý các khóa một cách dễ dàng. (cid:1) Có một sự phân tích mật mã hiểu được về sức mạnh
của sự chứng thực
20
10
˗ Gọi là HMAC ˗ Đặc điểm
07/01/2018
3.3 MAC dựa vào hàm băm (HMAC)
21
˗ Quá trình thực hiện
3.3 MAC dựa vào hàm băm (HMAC)
(cid:1) Tấn công brute force trên khóa được dùng (cid:1) Tấn công ngày sinh nhật
Bảo mật của HMAC ˗ Dựa lên bảo mật của hàm băm ˗ Tấn công HMAC:
˗ Hàm băm được chọn sử dụng dựa trên ràng
22
11
buộc về tốc độ và bảo mật
07/01/2018
3.4 MAC dựa vào mã hóa khối (CMAC)
˗ Có DAA (Data Authentication Algorithm), hiện
nay đã lỗi thời
nghiệp
(cid:1) Có kích cở thông điệp giới hạn (cid:1) Dùng 2 khóa và padding (cid:1) Được thông qua bởi NIST SO800-38B
23
˗ CMAC (Cipher-based Message Authentication Code), được thiết kế để khắt phục những yếu kém của DAA (cid:1) Được dùng rộng rãi trong chính phủ và doanh
CMAC
24
12
07/01/2018
Câu hỏi và bài tập
1. Phân biệt giữa toàn vẹn thông điệp và chứng
thực thông điệp
2. Phân biệt giữa MDC và MAC 3. Phân biệt giữa HMAC và CMAC 4. Giải thích tại sao Public Key không được
25
13
dùng trong việc tạo một MAC