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
Encryption
2. Traffic Analysis
3. Maquarade
4. Content modification
Massage Authentication
5. Sequence modification
6. Timing modification
Digital Signature
7. Repudiation
3
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
đ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á trị chứng thực
7
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ã 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ệ.
12
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 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.
23
Hàm băm đơn giản
24
Hàm băm đơn giảm
25
Hàm băm MD5
Được phát triển bởi Ron Rivest
Được phát triển từ MD4
Kích thước giá trị băm là 128bit
Năm 1994 và 1998, một số phương pháp tấn công MD5 đã tìm thấy một số thông điệp có cùng giá trị băm MD5 (tính chống trùng mạnh). Tuy nhiên vẫn còn sử dụng phổ biến.
26
27
Hàm băm MD5
28
Hàm băm MD5
Kj =round(232 abs(sin(i))) i biểu diễn theo radian Phép cộng modulo 232
29
30
SHA (secure hash algorithm)
Năm 1993, NIST (national institute of
standards and technology) đề xuất giải thuật SHA, tương tự như MD5 nhưng mạnh hơn và chậm hơn MD5
Được thiết kế thích hợp với AES
Các phiên bản SHA
31
SHA1
32
SHA1
33
34
SHA-512
35
SHA-512
36
SHA-512
37
Một số ứng dụng hàm băm
Lưu trữ mật khẩu
38
Đấu giá trực tuyến
39
Download file
40
Chữ ký số
41
Q&A
42