Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Lập Trình

Các yêu cầu của Message Authentication Code (MAC)

MAC (Message Authentication Code) là thẻ xác thực được tạo từ thông điệp M và khóa bí mật K qua hàm MAC = F(K, M). Người nhận xác thực bằng cách tính lại và so sánh. MAC cung cấp toàn vẹn và xác thực nguồn gốc, nhưng không cung cấp non-repudiation (do khóa đối xứng).

Ba thuật toán cốt lõi

  1. Key Generation: Sinh khóa K ngẫu nhiên an toàn.
  2. Signing (Tagging): T = MAC(K, M).
  3. Verification: Xác nhận T' == MAC(K, M). Trả về accepted hoặc rejected.

Yêu cầu bảo mật formald (theo Bellare, Canetti, Krawczyk)

  1. Unforgeability (Không làm giả được): Kẻ quan sát (M, T) không thể tạo (M', T') hợp lệ với M' ≠ M. Xác suất thành công ≤ 2⁻ⁿ (n = độ dài tag).
  2. Uniform distribution (Phân bố đều): Với M ngẫu nhiên, MAC(K, M) phân bố đều trên không gian tag.
  3. Key separation / Related-key resistance: Biết MAC(K, M) không cho phép suy ra MAC(K', M) với K' liên quan.
  4. Efficiency: Tính toán nhanh, phù hợp luồng dữ liệu tốc độ cao.

Yêu cầu thực triển (Deployment requirements)

  • Quản lý khóa: Sinh, phân phối, lưu trữ, xoay vòng (rotation), thu hồi khóa an toàn (HSM, KMS).
  • Chống replay: Kết hợp nonce/timestamp/sequence number vào M trước khi MAC.
  • Chống truncation/extension: MAC phải gắn liền với độ dài/cấu trúc M (dùng domain separation).
  • Algorithm agility: Hỗ trợ chuyển thuật toán (HMAC-SHA256 → HMAC-SHA3) mà không phá vỡ hệ thống.
  • Side-channel resistance: Triển khai constant-time để chống timing attack.

Ứng dụng điển hình

  • Giao dịch tài chính (ISO 8583, EMV).
  • TLS 1.2 (HMAC), TLS 1.3 (AEAD: AES-GCM, ChaCha20-Poly1305).
  • IPsec (HMAC, AES-GCM), JWT (HS256/HS512).
  • Lưu trữ an toàn: xác thực metadata, backup.

Lưu ý: Không tự thiết kế MAC. Dùng chuẩn đã kiểm chứng: HMAC-SHA256/512 (RFC 2104), KMAC (SHA-3), AES-CMAC (NIST SP 800-38B), Poly1305 (RFC 8439).