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

Khóa mã hóa (Encryption Key) trong An ninh Thông tin

Encryption Key (Khóa mã hóa) là chuỗi bit ngẫu nhiên, được dùng cùng thuật toán mật mã để biến đổi plaintext ↔ ciphertext. An toàn của hệ thống hoàn toàn phụ thuộc vào sự bí mật của khóa (Kerckhoffs's principle: thuật toán công khai, chỉ khóa bí mật).

Phân loại theo mô hình mật mã

LoạiKhóaThuật toán điển hìnhĐộ dài khóa khuyến nghị (2024)
Symmetric (Đối xứng)1 khóa K (bí mật) cho enc & decAES, ChaCha20128-bit (tối thiểu), 256-bit (khuyên dùng)
Asymmetric - Public Key (Khóa công khai)PK (công khai) mã hóa / verify sigRSA-OAEP, ECIES, Kyber (KEM)RSA: 3072-bit; ECC: 256-bit (P-256/Curve25519); Kyber-768: 1184-byte
Asymmetric - Private Key (Khóa riêng)SK (bí mật) giải mã / signRSA-PSS, ECDSA, EdDSA, Dilithium (PQC)Cùng kích thước PK; bảo vệ tuyệt đối

Phân loại theo chức năng (NIST SP 800-57)

  • Master Key / KEK (Key Encryption Key): Mã hóa khóa khác (wrap/unwrap). Lưu trong HSM/KMS. Không bao giờ rời thiết bị bảo mật.
  • Data Encryption Key (DEK): Mã hóa dữ liệu thực tế. Sinh ngẫu nhiên per-file/per-record, encrypt bằng KEK lưu trữ (envelope encryption).
  • Key Signing Key (KSK) / Zone Signing Key (ZSK): DNSSEC.
  • Root Key / CA Key: Ký certificate cấp dưới. Root offline, air-gapped.
  • Ephemeral Key: Khóa phiên (session key), dùng một lần (ECDHE, TLS 1.3 traffic key). Forward secrecy.
  • Password-Derived Key: KDF(password, salt) → key. Dùng Argon2id/bcrypt/scrypt/PBKDF2.

Yêu cầu an toàn cho khóa

  1. Ngẫu nhiên thực (True Randomness): Sinh từ CSPRNG / HSM TRNG (NIST SP 800-90A/B/C). Không bao giờ dùng seed yếu, timestamp, user input.
  2. Độ dài đủ: Symmetric ≥128-bit (AES-128), khuyên 256-bit. Asymmetric: RSA≥3072, ECC≥256 (Curve25519/P-256), PQC Kyber-768.
  3. Bí mật (Confidentiality): Chỉ bên được ủy quyền truy cập. HSM/KMS enforce.
  4. Toàn vẹn (Integrity): Phát hiện khóa bị sửa đổi (KMS/HSM verify).
  5. Duy nhất (Uniqueness): Không tái sử dụng khóa cho mục đích khác (key separation). Domain separation label.
  6. Vòng đời quản lý: Rotation, revocation, destruction (zeroize).

Bảo vệ khóa trong triển khai

  • HSM (Hardware Security Module): FIPS 140-2 Level 3+, CC EAL4+. Key không bao giờ xuất plaintext. All crypto ops inside.
  • KMS (Key Management Service): API encrypt/decrypt/sign/verify — app không thấy plaintext key. Access policy, audit log, auto-rotation.
  • Software Vault: HashiCorp Vault, AWS Secrets Manager, Azure Key Vault — encryption at rest, lease, dynamic secrets.
  • Memory Protection: Zeroize sau dùng, mlock (prevent swap), canary, constant-time.
  • Key Ceremony: M-of-N split knowledge cho master key backup (Shamir Secret Sharing).

Rủi ro thường gặp

  • Hardcode key trong code / config / container image.
  • Dùng cùng khóa cho nhiều mục đích (enc + sign, prod + test).
  • Không rotation khóa lâu năm.
  • Backup key không mã hóa / lưu sai chỗ (Git, S3 public, shared drive).
  • Nonce/IV lặp với cùng khóa (AES-GCM, ChaCha20) → keystream reuse = catastrophe.
  • Side-channel leak key (timing, cache, power, EM).

Best Practice 2024: Sinh khóa trong HSM/KMS → chỉ dùng handle/ID → app gọi API encrypt/decrypt → zeroize local key material → audit log mọi thao tác → auto-rotation → PQC-ready (hybrid KEM).