1.1 Bảo mật
1.1.3.6. Sự kết hợp ba thuật toán trong bảo mật hệ thống
Như trên đã trình bày, thuật tốn mã hóa khóa bí mật có thể thực hiện được bằng phần cứng và phần mềm với tốc độ cao, ít tốn bộ nhớ. Vì vậy nó được ứng dụng cho việc mã hóa dữ liệu, đặc biệt là các dữ liệu có dung lượng lớn. Tuy nhiên, vấn đề tồn tại là việc trao đổi khóa bí mật trong mơi trường mạng không đáng tin cậy với rất nhiều thành phần tham gia. Thuật tốn mã hóa cơng khai ra đời đã giải quyết được vấn đề này. Nó mở ra một cuộc cách mạng trong ngành khoa học mật mã và các ứng dụng ngành công nghiệp điện tử.
Các giao dịch phát sinh, ngồi u cầu về tính bảo mật, tính tồn vẹn và tính xác thực cũng được đưa ra. Hàm băm mật mã ra đời để thực hiện điều này. Hàm băm tự riêng nó khơng có cơ sở để xác thực nguồn gốc bản tin. Ứng dụng của nó chỉ đủ để kiểm tra tính tồn vẹn của bản tin. Mã băm lúc này được gọi là mã phát hiện sự sửa đổi MDC (Manipulation Detection Code). Để có tính xác thực bản tin, hàm băm cần phải kết hợp với một khóa bí mật hoặc kết hợp với thuật tốn mã hóa cơng khai. Lúc này mã băm còn được gọi là mã xác thực bản tin MAC (Message Authentication Code). Để phân biệt với mã xác thực bản tin dựa vào thuật tốn mã hóa CMAC (Cipher-based Message Authentication Code) [66], mã xác thực bản tin dựa vào hàm băm được gọi là HMAC (Hash-based
Message Authentication Code) [67].
Chúng ta hãy xem xét một ví dụ về sự kết hợp của các thuật tốn mã hóa trong tình huống cụ thể sau đây.
Giả sử bên gửi A (gọi là A) và bên nhận B (gọi là B) muốn trao đổi với nhau một bản tin (lõi IP chẳng hạn) với yêu cầu cần được bảo mật để bảo bệ quyền sở hữu trí tuệ của A,
24 và B cũng cần xác minh bản tin đó chắc chắn là của A để đủ tin cậy khi tích hợp vào hệ thống của mình. Vì vậy họ có thể chọn cách thực hiện như sau, xem Hình 1.9.
Hình 1.9 Mơ hình trao đổi dữ liệu an tồn qua mạng
Đầu tiên, hai bên trao đổi khóa cơng khai của nhau nếu trước đó chưa có việc trao đổi khóa này. Tiếp theo:
- Cơng việc của A:
Khởi tạo một khóa phiên là khóa đối xứng để mã hóa bản tin m của mình được bản tin mã hóa Cm.
Mã hóa khóa phiên bằng khóa cơng khai của B được Ck.
Băm bản tin m thành HMDC, rồi mã hóa mã băm này bằng khóa bí mật (khóa riêng) của mình được DSA. DSA xem như là chữ ký số (Digital Signature) của A vì chỉ duy nhất A mới có khóa riêng này.
Đóng gói Cm, Ck, DSA và gửi cho B. - Cơng việc của B:
Mở gói để có được Cm, Ck, DSA
Giải mã Ck bằng khóa bí mật của mình để có được khóa phiên. D ng khóa phiên để giải mã Cm để có được bản tin m’.
Đến đây, B chưa chắc chắn được rằng m’ chính là bản tin m của A hay có bị sửa đổi
hay khơng. Vì rằng, một kẻ tấn cơng ở giữa có thể thay thế Cm và Ck bằng cách: tạo ra một khóa phiên bất kỳ để mã hóa bản tin m” nào đó thành C’m và mã hóa khóa phiên đó bằng khóa cơng khai của B được C’k rồi gửi C’m, C’k cho B. B có thể nhận C’m, C’k thay vì nhận
Cm, Ck của A gửi mà khơng thể phân biệt được. vì vậy, B tiến hành các bước tiếp theo:
Giải mã DSA bằng khóa cơng khai của A để có được HMDC. Việc B giải mã được DSA bằng khóa cơng khai của A có thể khẳng định được là HMDC là do A gửi.
25 So sánh HMDC và H’MDC. Nếu hai giá trị này bằng nhau thì khẳng định bản tin m’
nhận được chính là bản tin m của A và m đảm bảo tính tồn vẹn trên đường truyền. Nếu khác nhau thì từ chối bản tin m’, gửi lại yêu cầu cho A hoặc kết thúc phiên
giao dịch.
Đến đây phiên giao dịch kết thúc, hai bên hủy bỏ khóa phiên. Để bắt đầu các phiên giao dịch khác, hai bên tiến hành lại các bước như trên.