Mã xác thực thông báo (MAC)

Nguyên hàm MAC cho phép bạn xác minh rằng không ai can thiệp vào dữ liệu của bạn. Người gửi chia sẻ khoá đối xứng với người nhận có thể tính toán thẻ xác thực cho một thư nhất định, cho phép người nhận xác minh rằng thư đến từ người gửi dự kiến và chưa bị sửa đổi.

MAC có các thuộc tính sau:

  • Tính xác thực: Việc biết khoá là cách duy nhất để tạo thẻ MAC có thể xác minh.
  • Symmetric: Việc tính toán và xác minh thẻ cần có cùng một khoá.

MAC có thể là cố định hoặc ngẫu nhiên, tuỳ thuộc vào thuật toán. Tink hiện không triển khai các thuật toán MAC không xác định. Bạn chỉ nên sử dụng MAC để xác thực thông điệp, chứ không phải cho các mục đích khác như tạo các byte ngẫu nhiên giả (để biết thêm thông tin, hãy xem PRF).

Nếu bạn cần một nguyên hàm bất đối xứng, hãy xem phần Chữ ký kỹ thuật số.

Chọn loại khoá

Bạn nên sử dụng HMAC_SHA256 cho hầu hết các trường hợp sử dụng, nhưng cũng có các tuỳ chọn khác.

Nói chung, những điều sau đây là đúng:

  • HMAC_SHA512 có thể nhanh hơn hoặc không tuỳ thuộc vào kích thước thông báo và thông tin cụ thể về phần cứng bạn sử dụng.
  • HMAC_SHA512 là chế độ bảo thủ nhất có thể được dùng cho số lượng thông báo gần như không giới hạn.
  • AES256_CMAC nhanh nhất trên các hệ thống hỗ trợ tính năng tăng tốc phần cứng AES-NI.

Cam kết bảo mật tối thiểu

  • Độ mạnh của phương thức xác thực tối thiểu là 80 bit
  • Bảo vệ khỏi hành vi giả mạo hiện hữu trong cuộc tấn công bằng văn bản thô đã chọn
  • Bảo mật ít nhất 128 bit chống lại các cuộc tấn công khôi phục khoá, cũng như trong các trường hợp nhiều người dùng (khi kẻ tấn công không nhắm đến một khoá cụ thể, mà là bất kỳ khoá nào trong một tập hợp gồm tối đa 232 khoá)

Trường hợp sử dụng mẫu

Xem bài viết Tôi muốn bảo vệ dữ liệu khỏi bị can thiệp.