Xác thực tin nhắn
Trong chương trước, chúng ta đã thảo luận về các mối đe dọa toàn vẹn dữ liệu và việc sử dụng kỹ thuật băm để phát hiện xem có bất kỳ cuộc tấn công sửa đổi nào đã diễn ra trên dữ liệu hay không.
Một loại mối đe dọa khác tồn tại đối với dữ liệu là thiếu message authentication. Trong mối đe dọa này, người dùng không chắc chắn về người khởi tạo thông báo. Xác thực thông điệp có thể được cung cấp bằng cách sử dụng các kỹ thuật mật mã sử dụng khóa bí mật như được thực hiện trong trường hợp mã hóa.
Mã xác thực tin nhắn (MAC)
Thuật toán MAC là một kỹ thuật mật mã khóa đối xứng để cung cấp xác thực thông điệp. Để thiết lập quy trình MAC, người gửi và người nhận dùng chung một khóa K đối xứng.
Về cơ bản, MAC là một tổng kiểm tra được mã hóa được tạo ra trên thông điệp cơ bản được gửi cùng với một thông báo để đảm bảo xác thực thông điệp.
Quá trình sử dụng MAC để xác thực được mô tả trong hình minh họa sau:
Bây giờ chúng ta hãy cố gắng hiểu toàn bộ quá trình một cách chi tiết -
Người gửi sử dụng một số thuật toán MAC được biết đến công khai, nhập thông điệp và khóa bí mật K và tạo ra giá trị MAC.
Tương tự như hàm băm, hàm MAC cũng nén một đầu vào dài tùy ý thành một đầu ra có độ dài cố định. Sự khác biệt chính giữa băm và MAC là MAC sử dụng khóa bí mật trong quá trình nén.
Người gửi chuyển tiếp tin nhắn cùng với MAC. Ở đây, chúng tôi giả định rằng thông điệp được gửi rõ ràng, vì chúng tôi lo ngại về việc cung cấp xác thực nguồn gốc của thông báo, chứ không phải tính bảo mật. Nếu yêu cầu bảo mật thì thư cần mã hóa.
Khi nhận được tin nhắn và MAC, người nhận nạp thông điệp đã nhận và khóa bí mật được chia sẻ K vào thuật toán MAC và tính toán lại giá trị MAC.
Bây giờ người nhận kiểm tra sự bình đẳng của MAC mới tính với MAC nhận được từ người gửi. Nếu chúng khớp nhau, thì người nhận chấp nhận tin nhắn và tự đảm bảo rằng tin nhắn đã được gửi bởi người gửi dự định.
Nếu MAC được tính toán không khớp với MAC do người gửi gửi, người nhận không thể xác định đó là thông điệp đã bị thay đổi hay nó là nguồn gốc đã bị làm giả. Điểm mấu chốt, người nhận an toàn giả định rằng tin nhắn không phải là tin nhắn chính hãng.
Hạn chế của MAC
Có hai hạn chế chính của MAC, cả hai đều do tính chất hoạt động đối xứng của nó -
Establishment of Shared Secret.
Nó có thể cung cấp xác thực tin nhắn giữa những người dùng hợp pháp được quyết định trước, những người đã chia sẻ khóa.
Điều này yêu cầu thiết lập bí mật được chia sẻ trước khi sử dụng MAC.
Inability to Provide Non-Repudiation
Không từ chối là đảm bảo rằng người khởi tạo thông điệp không thể từ chối bất kỳ thông điệp và cam kết hoặc hành động nào đã gửi trước đó.
Kỹ thuật MAC không cung cấp dịch vụ không thoái thác. Nếu người gửi và người nhận vướng vào tranh chấp về nguồn gốc thông điệp, MAC không thể cung cấp bằng chứng rằng một thông điệp thực sự được gửi bởi người gửi.
Mặc dù không có bên thứ ba nào có thể tính toán MAC, nhưng người gửi vẫn có thể phủ nhận việc đã gửi tin nhắn và cho rằng người nhận đã giả mạo nó, vì không thể xác định được bên nào trong hai bên đã tính toán MAC.
Cả hai hạn chế này có thể được khắc phục bằng cách sử dụng chữ ký số dựa trên khóa công khai được thảo luận trong phần sau.