Professional Documents
Culture Documents
Bài 3 - Xác Thực Thông Điệp
Bài 3 - Xác Thực Thông Điệp
Kênh truyền
Alice Bob
Eve
M’’ Bản tin M’’ giả danh Alice
Xác thực thông điệp
• Xác thực tính toàn vẹn: Bản tin không bị sửa đổi bao
hàm cả trường hợp Bob cố tình sửa đổi.
• Xác thực danh tính: Bao hàm (1) Trường hợp Alice phủ
nhận bản tin và (2) Trường hợp Bob tự tạo thông báo và
“vu khống” Alice tạo ra thông báo này.
• Xác thực thời điểm: Ngăn chặn tấn công phát lại.
Xác thực bằng mật mã khóa đối xứng?
kS kS
m m’
Mã hóa Giải mã
Người c c’ Người
gửi nhận
Kênh truyền
c c’
CH1: Người nhận có nhận ra
được m’ là thông điệp bị thay thế?
CH2: Mức độ an toàn xác thực Kẻ tấn
của sơ đồ này? công
Xác thực bằng mật mã khóa công khai?
kRA kUA
m m’
Mã hóa Giải mã
Người c c’ Người
gửi nhận
Kênh truyền
c c’
CH1: Người nhận có nhận ra
được m’ là thông điệp bị thay thế?
CH2: Mức độ an toàn xác thực Kẻ tấn
của sơ đồ này? công
MESSAGE AUTHENTICATION CODE
Trần Quang Đức
Xác thực thông điệp
• Xây dựng trên cơ sở hệ mật mã khóa đối xứng: (1) Hai
bên trao đổi một cách an toàn khóa mật k; (2) Sử dụng
các thuật toán mã hóa khối ở chế độ CBC-MAC.
IV
CBC
k Mã k Mã k Mã k Mã
hóa hóa hóa hóa
t
CBC-MAC
IV
CBC
k1 Mã k1 Mã k1 Mã k1 Mã
hóa hóa hóa hóa
k = (k1,k2) k2 Mã
hóa
t
Độ an toàn của MAC
• Giả sử Lm là kích thước bản tin và Lt kích thước mã MAC.
▪ Nếu Lm ≤ Lt và Lm không đổi: Mã MAC an toàn.
▪ Nếu Lm thay đổi: |m| > |t| nên tồn tại m2 ≠ m1 sao cho MAC(m2) =
MAC (m1).
• Thiết kế MAC không chống được tấn công phát lại. Vì thế
cần bổ sung 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 như sử dụng giá
trị ngẫu nhiên hoặc nhãn thời gian.
• Yêu cầu: (1) Chống tấn công chọn trước bản rõ và (2)
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ỏ).
m || m E D m’ C So
t sánh
t
C k2 t’
k1
a) Xác thực bằng MAC, bảo mật bằng mật mã khóa đối xứng (SSL)
Một số sơ đồ sử dụng mã MAC
k2 k2 k1
E || D C So
m
sánh
t t’
C
k1
b) Xác thực bằng MAC, bảo mật bằng mật mã khóa đối xứng (SSH)
Một số sơ đồ sử dụng mã MAC
k1
k2 k2
C So True
m E || D
sánh
t t’
C
k1
c) Xác thực bằng MAC, bảo mật bằng mật mã khóa đối xứng (IPSec)
Bài tập
• Nhận xét ưu/nhược điểm của sơ đồ (a), (b) và (c) (Xác
thực toàn vẹn bản rõ? Xác thực toàn vẹn bản mật? MAC
có thông tin về bản rõ?)
HÀM BĂM
Trần Quang Đức
Khái niệm
• Hàm băm H: thực hiện phép biển đổi với đầu vào là bản
tin có kích thước bất kỳ, đầu ra là giá trị digest h = H(M)
có kích thước n bit cố định (thường nhỏ hơn rất nhiều so
với kích thước bản tin đầu vào).
• Với hàm băm, chỉ thay đổi 1-bit đầu vào, làm thay đổi
hoàn toàn giá trị đầu ra.
Một hàm băm đơn giản
• Chia thông điệp thành m1 m11 m12 m1n
các khối có kích thước n- m m m22 m2 n
bit. m = 2 = 21
...
• Thực hiện XOR tất cả các ml ml1 ml 2 mln
khối để tạo thành mã
băm có kích thước n-bit.
• Hàm băm trên không đủ
an toàn để sử dụng trong
c1 c2 ... cn =H(m)
bài toàn xác thực thông
điệp.
Yêu cầu đối với hàm băm
• Có thể áp dụng với thông điệp m với độ dài bất kỳ.
• Từ h rất khó tìm được m sao cho h = H(m): Tính một chiều.
• Biết trước m1 rất khó tìm được m2 sao cho H(m1) = H(m2).
• Bước 2: Biểu diễn độ dài của dữ liệu ban đầu dưới dạng 64-bit.
Thêm giá trị độ dài này vào khối dữ liệu. Coi khối dữ liệu là
một chuỗi các khối 512 bit: Y0, Y1, …, YK-1 hoặc là một chuỗi các
khối 32 bit : M0, M1, …,MN.
• Sử dụng phương pháp vét cạn để tìm kiếm bản tin m2.
Cần tính tối thiểu bao nhiêu bản tin để chắc chắn thành
công?
Tấn công ngày sinh
• Bài toán 1: Ngày sinh của Nam là mùng 1 tháng 12. Cần
tối thiểu bao nhiêu người trong phòng để tìm được một
người có cùng ngày sinh mùng 1 tháng 12 với xác suất >
1/2.
• Bài toán 2: Giả sử một năm có d ngày. Cần tối thiểu bao
nhiêu người trong phòng để tìm được hai người có cùng
ngày sinh với xác suất > 1/2.
Tấn công ngày sinh
n p(n)
1 0,0%
5 2,7%
10 11,7%
20 41,1%
23 50,7%
30 70,6%
40 89,1%
50 97%
Tấn công ngày sinh
• Nếu h có kích thước n-bit, 𝑑 = 2𝑏 và 𝑑 = 2𝑏/2
• Cần thử tối thiểu 2𝑏/2 thông điệp để có được một thông
điệp có cùng mã băm với xác suất ~ 50%.
• Nếu mã băm có kích thước 64-bit, thì cần thử 232 biến
thể khác nhau.
Sử dụng mã băm
• Xác thực toàn vẹn bản tin: Chỉ phát hiện được lỗi ngẫu
nhiên trong quá trình truyền.
truyền
Kênh
m || m m’ H
So sánh
h
h’
H
Tấn công:
Bản tin
m → m’
toàn vẹn?
Tính lại h’ = H(m’)
IV
(fixed) H(m)
h h h h
h0 h1 h2 h3 h4
HMAC
• Keyed-Hash MAC: Kết hợp MAC và hàm băm để tăng
cường an toàn cho hàm băm.
IV
(fixed)
h h h h
h0 h1 h2 h3 h4
tag
PB: Padding Block K ⨁ opad
h
h
IV
Sử dụng hàm băm để xác thực
ks
m || m E D m’ H So
h sánh
t
H ks h’
a) Xác thực thông điệp và bảo mật bằng mật mã khóa đối xứng
Một số sơ đồ sử dụng mã MAC
|| m m’ H So
m
D sánh
H E
kS
kS
b) Xác thực thông điệp, mã băm được bảo vệ bằng mật mã khóa đối xứng
Một số sơ đồ sử dụng mã MAC
ks
m || m m’ H So
sánh
h h’
H
ks
c) Xác thực thông điệp sử dụng HMAC
Bài tập
• Kết hợp sử dụng mật mã khóa công khai để tạo ra một số
sơ đồ mới.