Giáo trình Nhập môn an toàn thông tin - Chương 3: Toàn vẹn dữ liệu - Trần Thị Kim Chi
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 dùng trong việc tạo một MAC
50Câu hỏi và bài tập
1. Về mặt lý thuyết, giá trị băm có thể
trùng không? Vậy tại sao nói giá trị
băm có thể xem là “dấu vân tay của
thông điệp”
2. Tìm hiểu phương pháp sử dụng hàm
băm MD5 và SHA trong thư viện .NET,
viết chương trình mã hóa password
lưu trữ và kiểm tra password.
52 trang |
Chia sẻ: thucuc2301 | Lượt xem: 1931 | Lượt tải: 0
Bạn đang xem trước 20 trang tài liệu Giáo trình Nhập môn an toàn thông tin - Chương 3: Toàn vẹn dữ liệu - Trần Thị Kim Chi, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
3PHẦN II: MÃ XÁC THỰC THÔNG ĐIỆP
(MESSAGE AUTHENTICATION CODES)
Nội dung chính
Khái niệm toàn vẹn và xác thực thông
điệp
Các cơ chế mã xác thực thông điệp
Ứng dụng mã xác thực thông điệp
(Cryptography & Network Security.
McGraw-Hill, Inc., 2007., Chapter 11)
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
(Message Authentication )
3
Integrity Message
Đặt vấn đề
4
Integrity Message
Tính toàn vẹn thông điệp:
• Cho phép các bên liên lạc xác minh rằng các tin nhắn
nhận được được xác thực.
• Nội dung thông điệp chưa bị thay đổi
• Nguồn của thông điệp tin cậy
• Thông điệp chưa bị phát lại
• Thông điệp được xác minh đúng thời điểm
• Sự liên tục của thông điệp được duy trì
5
1.1 Integrity Message
• Đối phương insert/modify/delete nội dung thông điệp
6
1.1 Integrity Message
7
Mã xác thực thông điệp
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 người sử dụng 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
và không thể từ chối dữ liệu
8
Mã xác thực thông điệp
Message Authentication
Định nghĩa
• Là một kỹ thuật chứng thực liên quan đến việc sử dụng
một khoá bí mật để tạo ra một khối dữ liệu có kích thước
nhỏ cố định (checksum hoặc MAC) và được thêm vào
thông điệp.
• Kỹ thuật này giả sử rằng 2 phía tham gia truyền thông là
A và B chia sẻ một khoá bí mật K. Khi A có một thông
điệp gởi đến B, A sẽ tính toán MAC như là một hàm của
thông điệp và khoá: MAC=C(K, M), với
• M: thông điệp đầu vào có kích thước biến đổi
• C: hàm MAC
• K: khoá bí mật chia sẻ giữa người gởi và người nhận
• MAC: mã chứng thực thông điệp có chiều dài cố định 9
Mã xác thực thông điệp
Message Authentication
10
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.
• 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
11
• Xác thực bằng mật mã khóa đối xứng
• Đảm bảo thông báo được gửi đúng nguồn do chỉ bên
gửi biết khóa bí mật
• Không thể bị thay đổi bởi bên thứ ba do không biết
khóa bí mật
12
Mã hóa thông điệp:Xác thực
bằng mật mã khóa đối xứng
Mã hóa thông điệp:sử dụng
mã hóa khóa bí mật
13
Mã hóa thông điệp:Xác thực
bằng mật mã khóa đối xứng
14
• Xác thực bằng mật mã khóa công khai
• Không những xác thực mà còn tạo ra được chữ ký số
• Tuy nhiên, phức tạp và tốn thời gian hơn mã đối xứng
• Xác thực bằng mã hóa có nhược điểm:
• Tốn thời gian để mã hóa cũng như giải mã toàn bộ
thông báo
• Nhiều khi chỉ cần xác thực mà không cần bảo mật
thông báo (cho phép ai cũng có thể biết nội dung, chỉ
cần không được sửa đổi)
15
Mã hóa thông điệp:Xác thực
bằng mật mã khóa đối xứng
Mã hóa thông điệp sử dụng
mật mã khóa công khai
16
Xác thực bằng mật mã khóa
công khai
17
Hàm băm: Message Digest
• Tạo bản băm của thông điệp m: y=h(M)
• Giống như “fingerprint” của thông điệp
18
Message Authentication Code
19
Modification Detection Code
(MDC)
• 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.
20
Message Authentication Code
(MAC)
• Mã chứng thực thông điệp (MAC) có thể coi là một dạng
checksum của mã hóa, được tính theo công thức
MAC = C(M, K), trong đó:
1. M là thông điệp cần tính MAC
2. K là khóa bí mật được chia sẻ giữa người gởi và người
nhận
3. C là hàm tính MAC
• Vì MAC có khóa K bít mật giữa người gởi và người nhận
nên chỉ có người gởi và người nhận mới có thể tính được
giá trị MAC tương ứng.
21
Message Authentication Code
(MAC)
• Thông điệp cộng với MAC được truyền tới người nhận.
• Người nhận thực hiện các tính toán tương tự trên các
thông điêp đã nhận sử dụng cùng một khóa bí mật, để
tạo ra một MAC mới.
• MAC vừa tạo sẽ được so với MAC nhận. Giả sử chỉ
người nhận và người gửi biết khóa bí mật:
• Nếu MAC nhận phù hợp với MAC vừa tính thì thông điệp không
bị thay đổi trong quá trình truyền và chắc chắn được gởi tới từ
người gởi đã biết.
• Nếu MAC nhận khác với MAC vừa tính thì thông điệp đã bị thay
đổi hoặc bị giả mạo và được gởi từ attacker.
22
Message Authentication Code
(MAC)
• Mô hình MAC: Bên nhận thực hiện cùng giải thuật của bên gửi
trên thông báo và khóa bí mật và so sánh giá trị thu được với MAC
trong thông báo
23
Message Authentication Code
• Cơ chế tổng quát
24
Message Authentication Code
(MAC)
• Chiều dài thông thường của MAC: 32..96 bit.
→ để tấn công cần thực hiện 2n lần thử với n là chiều
dài của MAC (bit).
• Chiều dài thông thường của khoá K: 56..160 bit.
→ để tấn công cần thực hiện 2k lần thử với k là chiều dài
của khoá K (bit).
• Ứng dụng trong:
• Banking: sử dụng MAC kết hợp triple-DES
• Internet: sử dụng HMAC và MAC kết hợp AES
25
Message Authentication Code
(MAC)
• Ví dụ 1:
26
Message Authentication Code
(MAC)
• Ví dụ 2: Phần mềm TripeWire
27
Đặc điểm của MAC
• Bảo mật của MAC tùy thuộc vào bảo mật của hàm
băm
• MAC là một cryptographic checksum
MAC=CK(M)
•Nén một thông điệp M có chiều dài bất kỳ
•Dùng một khóa bí mật K
•Thành một xác thực kích thước cố định
• Một hàm many-to-one function
•Nhiều thông điệp có cùng MAC
•Nhưng tìm ra ra chúng là không dễ
28
Yêu cầu đối với MAC
• 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:
• 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
• Các MAC nên được phân bố đồng đều
• MAC nên tùy thuộc ngang nhau trên tất cả
các bit của thông điệp
29
An toàn của MAC
• Brute-force attacks:
• Cho một hoặc nhiều cặp [xi, MAC(K, xi)], rất
khó để tính toán tìm ra xxi mà có cùng giá trị
MAC của xi
• 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)
30
An toàn của MAC
• Cryptanalytic Attacks: Khai thác vài đặt tính của
thuận toán MACs hoặc hàm hash
• Tốt hơn vét cạn
• 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.
31
Message Authentication Code
Tấn công phát lại (Replya attack)
• Kẻ tấn công phát lại bản tin M đã được chứng thực trong
phiên truyền thông trước đó
• Thiết kế MAC không chống được tấn công phát lại cần
thêm các yếu tố chống tấn công phát lại trong các giao
thức truyền thông sử dụng MAC
• Một số kỹ thuật chống tấn công phát lại:
• Giá trị ngẫu nhiên
• Tem thời gian
32
Message Authentication Code
Tấn công phát lại (Replya attack)
33
Message Authentication Code
Ưu điểm của MAC:
• MAC chỉ hỗ trợ xác thực, không hỗ trợ bảo mậtcó lợi
trong nhiều trường hợp (các thông báo công cộng,)
• Có kích thước nhỏ, thời gian tạo ra nhanh hơn so với mã
hóa toàn bộ thông báo
• Chú ý: MAC không phải là chữ ký điện tử
34
Mật mã xác thực thông điệp
• Một hệ mật mã có xác thực (E, D) là một hệ mật mã mà
• Hàm mã hóa E: K x M x N C
• Hàm giải mã D: K x C x N M ∪ {⊥}
• Trong đó N là một dấu hiệu sử dụng để xác thực
• Yêu cầu:
• Chống tấn công chọn trước bản rõ, và
• Kiểm tra được tính toàn vẹn của bản mật: xác suất kẻ tấn công
tạo ra được một bản mật có thể giải mã là rất nhỏ
• Giải pháp: Kết hợp mật mã và mã MAC
35
Từ chối giải mã các bản
mã không hợp lệ
Một số sơ đồ sử dụng
Mật mã xác thực thông điệp
36
Xác thực bằng MAC, bảo mật bằng mật
mã khóa đối xứng (IPSec)
Một số sơ đồ sử dụng
Mật mã xác thực thông điệp
37
Xác thực bằng MAC, bảo mật bằng mật mã khóa đối xứng(SSH)
Message Authentication Code
Các công dụng cơ bản của MAC
38
Message Authentication Code
Các công dụng cơ bản của MAC
39
Message Authentication Code
Các công dụng cơ bản của MAC
a. Chứng thực
• A →B: M || C(K, M)
• Chứng thực: chỉ A và B chia sẻ K
b. Chứng thực và bảo mật: chứng thực gắn liền với
plaintext
• A →B: E(K2, [M || C(K, M)])
• Chứng thực: chỉ A và B chia sẻ K1
• Bảo mật: chỉ A và B chia sẻ K2
c. Chứng thực và bảo mật: chứng thực gắn liền với
ciphertext
• A →B: E(K2, M) || C(K1, E(K2, M))
• Chứng thực: sử dụng K1
• Bảo mật: sử dụng K2 40
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)
3.4 MAC dựa vào mã hóa khối (CMAC)
41
Nested MAC
• Để tăng bảo mật của MAC
• Băm được áp dụng nhiều lần
42
Keyed Hash Functions as MACs
• Mong muốn có môt MAC dựa trên hàm băm
• Các hàm băm nhanh hơn mã khối đối xứng
• 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
KeyedHash=Hash(Key|Message)
• Một vài điểm yếu đã được chỉ ra với hàm này
Phát triển HMAC
43
MAC dựa vào hàm băm (HMAC)
• Gọi là HMAC
• Đặc điểm
• Dùng hàm băm nguyên mẫu (không chỉnh sửa)
• 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
• 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
• Dùng và quản lý các khóa một cách dễ dàng.
• 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
44
MAC dựa vào hàm băm (HMAC)
45
• Quá trình thực hiện
MAC dựa vào hàm băm (HMAC)
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:
• Tấn công brute force trên khóa được dùng
• Tấn công ngày sinh nhật
• Hàm băm được chọn sử dụng dựa trên ràng
buộc về tốc độ và bảo mật
46
MAC dựa vào mã hóa khối (CMAC)
• Có DAA (Data Authentication Algorithm), hiện
nay đã lỗi thời
• CMAC (Cipher-based Message
Authentication Code), được thiết kế để khắc
phục những yếu kém của DAA
• Được dùng rộng rãi trong chính phủ và doanh
nghiệp
• Có kích cỡ thông điệp giới hạn
• Dùng 2 khóa và padding
• Được thông qua bởi NIST SO800-38B
47
CMAC
48
MAC dựa trên giải thuật mã
hoá DES
49
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 dùng trong việc tạo một MAC
50
Câu hỏi và bài tập
1. Về mặt lý thuyết, giá trị băm có thể
trùng không? Vậy tại sao nói giá trị
băm có thể xem là “dấu vân tay của
thông điệp”
2. Tìm hiểu phương pháp sử dụng hàm
băm MD5 và SHA trong thư viện .NET,
viết chương trình mã hóa password
lưu trữ và kiểm tra password.
Trần Thị Kim Chi 1-51
Các file đính kèm theo tài liệu này:
- nhap_mon_an_toan_thong_tin_tran_thi_kim_chic03b_maxacthucthongdiep_3645_2021723.pdf