Chương 5
chứng thực thông điệp
Phạm Văn Tho
1
Nội dung
Bảo toàn dữ liệu
Chứng thực thông điệp
Nhóm chứng thực thông điệp
Dùng hệ mật mã
Dùng MAC (Massage
Authentication code)
Dùng hàm hash
2
Các kiểu tấn công qua mạng
1. Disclosure
2. Traffic Analysis
Encryption
3. Maquarade
4. Content modification Massage
Authentication
5. Sequence modification
6. Timing modification
7. Repudiation
3
Digital Signature
Bảo toàn dữ liệu (data integrity)
Dữ liệu được truyền trên mạng
không chỉ cần bảo mật mà cần
được bảo toàn.
Đôi khi yêu cần bảo toàn cần thiết
hơn bảo mật nó.
4
Chứng thực thông điệp
Là thủ tục để kiểm tra xem thông
điệp nhận được đến từ 1 nguồn gốc
rõ ràng và có bị sửa đổi hay không
Khi nhận thông báo, người nhận cần
phải biết ai gởi thông báo
Người gởi cần chứng thực
(authentication) thông báo của mình
5
Chứng thực thông điệp
Bất kỳ cơ chế chứng thực thông báo
hay chữ ký số đều có hay cấp:
Ở mức thấp: hàm tạo giá trị chứng
thực (autheticator) dùng để chứng
thực thông điệp
Mức cao: hàm mức thấp được dùng
làm cơ sở cho giao thức chứng thực,
cho phép người nhận kiểm tra tính
chính xác của thông điệp
6
Phương thức tạo mã chứng thực
Có 3 PP tạo mã chứng thực
Message encrytion: dùng bản mã
của cả thông báo như mã chứng thực
Message authentication code (MAC):
dùng hàm dựa vào khóa bí mật để
tạo ra một giá trị có chiều dài cố định
làm giá trị chứng thực
Hash function: hàm ánh xạ thông
7
điệp có chiều dài bất kỳ thành 1 giá
trị hash có chiều dài cố định làm giá
Mã hóa thông điệp để chứng thực
Đối với mã hóa, bản thân nó cũng có thể
dùng để chứng thực thông điệp
Mã hóa đối xứng
Mã hóa phi đối xứng
8
Dùng mã đối xứng để chứng thực thông điệp
Thông điệp truyền từ A đến B được mã hóa
bằng khóa bí mật dùng chung cho A và B. Nếu
không ai biết khóa chung này thì việc truyền
thông báo là đáng tin cậy.
9
Dùng mã đối xứng để chứng thực
Làm sao để chứng minh thông điệp B nhận được
là của A ???
Thông báo chỉ có thể đến từ A vì chỉ có A mới
có khóa bí mật K.
Khi thông báo M được khôi phục, B biết ko có
bit nào của M bị biến đổi vì không ai biết khóa
bí mật K; hơn nữa không thể thay đổi một số
bit bản mã để tạo ra bản rõ mong muốn được.
10
Dùng mã đối xứng để chứng thực
Thực tế thông điệp M là một chuỗi bit ngẫu
nhiên, do đó không có cách xác định một bản
mã là thông điệp hợp lệ
Đối thủ có thể gây rối bằng cách tạo ra các
thông điệp có nội dung ngẫu nhiên và giả như
một thông điệp đến từ một nguồn hợp lệ
Giải pháp: biến bản tin từ dãy bit ngẫu nhiên
thành dãy bit có cấu trúc
11
Dùng mã đối xứng để chứng thực
Thông điệp M được đưa vào hàm F để có mã
FCS, rồi thêm mã FCS vào cuối M trước khi mã
hóa.
B mã hóa khối nhận được thông điệp có mã
12
FCS ở cuối. B áp dụng cùng hàm F để tính
FCS, nếu FCS tính bằng FCS nhận thì thông
báo được xem hợp lệ.
Chứng thực bằng mã hóa phi đối
xứng
Nếu dùng khóa công khai Kub thì không thể
chứng thực được, vì bất cứ ai cũng có thể
dùng khoa công khai của B để mã hóa thông
điệp
13
Chứng thực bằng mã hóa phi đối
xứng
Nếu A dùng khóa riêng của mình để mã hóa
thông điệp, B dùng khoa chung của A để giải
mã thì có thể chứng thực thong điệp.
Tuy nhiên bản rõ cầu có cấu trúc để phân biệt
bản rõ thực sự với bản rõ các bit ngẫu nhiên.
14
Chứng thực bằng mã hóa phi đối
xứng
Nếu muốn đảm bảo bí mật thông điệp thì:
Phức tạp, phải qua 4 lần biến đổi
15
Message authentication code (MAC)
Sử dụng 1khóa bí mật để sinh ra 1 khối dữ liệu
có kích thước cố định được gọi là MAC gắn vào
cuối thông điệp
16
Message authentication code (MAC)
17
Message authentication code (MAC)
18
Message authentication code (MAC)
19
Message authentication code (MAC)
20
Đặc điểm của hàm MAC
Tương tự như hàm mã hóa nhưng không cần
hàm giải mã
Hàm MAC là hàm many-to-one
Input: chuỗi thông điệp có chiều dài bất kỳ và
khóa K
Output: MAC có chiều dài cố định n-bit
21
Hàm băm (hash function)
Áp dụng cho các thông điệp có chiều dài khác
nhau
Đầu ra là mã băm có kích thước cố định và
nhỏ
Không giống như MAC, không cần khóa K mà
chỉ có thông điệp cần chứng thực
Mã băm còn được gọi là message digesst hay
hash value
22
Yêu cầu của hàm băm H(x)
1. Có thể áp dụng cho các thông điệp x có độ
dài khác nhau
2. Output h=H(x) cố định và nhỏ
3. Tính một chiều: với h cho trước, không thể
tìm lại x sao cho h = H(x) (về mặt thời gian
tính toán).
4. Chống trùng yếu: cho trước x, không thể tìm
y ≠x sao cho H(x) = H(y).
5. Chống trùng mạnh: không thể tìm ra cặp x, y
23
bất kỳ sao cho H(x)=H(y), hay nói cách khác,
nếu H(x)=H(y) thì có thể chắc chắn x=y.
Hàm băm đơn giản
24
Hàm băm đơn giảm
25