Chương 5
chứng thực thông điệp
Phạm Văn Tho
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
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
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ó.
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
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
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
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
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.
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.
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
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ệ.
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
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.
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
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
Message authentication code (MAC)
Message authentication code (MAC)
Message authentication code (MAC)
Message authentication code (MAC)
Đặ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
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
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.
Hàm băm đơn giản
Đầu
vào là một chuổi các khối n bit
Thực hiện phép XOR để kiểm tra từng vị
trí bit, được gọi là phép kiểm tra dư thừa
theo độ dài.
Ci =
Ci là bit thứ i của mã băm, 1≤ i ≤ n
m là số khối ngõ vào, mỗi khối n bit
bij là bit thứ i của khối j
Hàm băm đơn giảm