0

Crypto-Agility: Thiết kế hệ thống thay thuật toán mã hóa chỉ trong vài giờ khi Quantum đến

TL;DR — PQC migration sẽ không fail vì thiếu thuật toán. Nó sẽ fail vì không có inventory, không có abstraction layer, và cryptography bị hard-code khắp nơi.


Mục lục

  1. Harvest Now, Decrypt Later không còn là giả thuyết
  2. NIST đã chuẩn hóa Post-Quantum Cryptography
  3. Crypto-Agility thực sự là gì?
  4. Production Reality: PQC không chỉ là cryptography
  5. Thiết kế Crypto-Agility đúng cách
  6. OpenSSL 3 Provider Model
  7. Hybrid Cryptography: không đơn giản là "kết hợp"
  8. Inventory – phần khó nhất của toàn bộ migration
  9. Historical lesson: crypto migration luôn chậm hơn dự kiến
  10. Failure modes trong thực tế
  11. Roadmap triển khai thực tế
  12. Mindset quan trọng nhất

1. Harvest Now, Decrypt Later không còn là giả thuyết

Trong nhiều năm, phần lớn hệ thống Internet dựa vào RSAElliptic Curve Cryptography (ECC) để bảo vệ:

  • TLS traffic
  • VPN tunnel
  • Database backup
  • Cloud storage
  • Certificate infrastructure
  • Secure messaging

Nhưng quantum computer đang thay đổi hoàn toàn mô hình đe dọa này.

Kẻ tấn công không cần phá mã ngay hôm nay. Chúng chỉ cần thu thập dữ liệu mã hóa và lưu lại. Khi quantum đủ mạnh để chạy Shor's Algorithm ở quy mô thực tế, dữ liệu cũ có thể bị giải mã ngược lại.

Đây chính là mô hình:

⚠️ Harvest Now, Decrypt Later (HNDL)

Điểm nguy hiểm nằm ở vòng đời dữ liệu:

Loại dữ liệu Vòng đời
Hồ sơ y tế 10–20 năm
Tài liệu tài chính 7–10 năm
Bí mật thương mại Vô thời hạn
Root CA / Certificate chain 5–20 năm
Backup hệ thống Nhiều năm

Nếu bị thu thập hôm nay, dữ liệu vẫn có giá trị trong tương lai.


2. NIST đã chuẩn hóa Post-Quantum Cryptography

Từ 2024–2025, NIST đã chính thức công bố các chuẩn PQC:

Chuẩn Thuật toán Vai trò
FIPS 203 ML-KEM Key Encapsulation
FIPS 204 ML-DSA Digital Signature
FIPS 205 SLH-DSA Hash-based Signature

Điều quan trọng không còn là "có quantum hay không", mà là:

Hệ thống của bạn có thể migrate crypto trong 12–24 tháng mà không sập production không?


3. Crypto-Agility thực sự là gì?

Crypto-Agility không phải là "đổi RSA sang ML-KEM".

Nó là khả năng:

  • Thay thuật toán
  • Thay key format
  • Thay certificate chain
  • Thay crypto provider
  • Thay protocol behavior

…mà không cần rewrite applicationkhông gây downtime.

Vấn đề của hệ thống hiện tại

Rất nhiều hệ thống đang hard-code cryptography vào business logic:

// ❌ Anti-pattern: thuật toán bị gắn chết vào logic
func EncryptData(data []byte) ([]byte, error) {
    return rsa.EncryptOAEP(
        sha256.New(),
        rand.Reader,
        pubKey,
        data,
        nil,
    )
}

Khi cần migrate, phải:

  1. Sửa code
  2. Rebuild
  3. Test lại toàn bộ
  4. Audit lại compliance
  5. Redeploy production

Một thay đổi crypto nhỏ có thể trở thành project kéo dài nhiều tháng hoặc nhiều năm.


4. Production Reality: PQC không chỉ là cryptography

PQC không chỉ là "thuật toán mạnh hơn". Nó còn là:

  • Bandwidth problem
  • Latency problem
  • Infrastructure problem
  • Compatibility problem

4.1 Benchmark thực tế (2025–2026)

Tổng hợp từ OQS + cloud vendor data

Algorithm Public Key Ciphertext TLS Handshake Ghi chú
X25519 / P-256 32–65 B ~65 B ~2.1 ms Baseline
ML-KEM-768 1,184 B 1,088 B ~2.08 ms CPU tương đương classical
Hybrid (X25519 + ML-KEM-768) ~1.2 KB ~1.1 KB ~2.3–2.4 ms Production-safe

4.2 Những vấn đề thực tế

TLS fragmentation

Payload tăng kích thước dẫn đến:

  • MTU fragmentation
  • Retransmission tăng
  • Handshake fail trên mạng yếu
  • Mobile latency tăng

Middlebox incompatibility

Legacy systems như CDN, WAF, TLS inspection appliance có thể không xử lý được packet size mới.

HSM / TPM limitation

Nhiều HSM hiện tại chưa hỗ trợ ML-KEM / ML-DSA, cần firmware upgrade hoặc thay hardware.

Mixed fleet problem

service A  →  classical
service B  →  hybrid
service C  →  chưa hỗ trợ PQC
              ↓
     inconsistency khó debug

5. Thiết kế Crypto-Agility đúng cách

5.1 Crypto Facade (Abstraction Layer)

Application không được biết thuật toán cụ thể.

type CryptoService interface {
    KeyExchange(ctx context.Context, peerPub []byte) ([]byte, error)
    Sign(msg []byte) ([]byte, error)
    Verify(msg, sig []byte) bool
    Encrypt(plaintext []byte) ([]byte, error)
    Decrypt(ciphertext []byte) ([]byte, error)
}

Implementation có thể thay đổi tùy nhu cầu:

Implementation Use case
ClassicalProvider Legacy system
HybridProvider Migration phase
PQCProvider Future-ready
HSMBackedProvider High-security
KMSBackedProvider Cloud-native

5.2 Policy-driven cryptography

Không hard-code algorithm.

# ❌ Sai
UseAlgorithm("RSA2048")

# ✅ Đúng — config-driven
crypto_policy:
  kem: hybrid-x25519-mlkem768
  signature: mldsa65
  provider: oqsprovider

Điều này cho phép:

  • Rollout dần theo phase
  • Rollback nhanh khi có sự cố
  • A/B test giữa các crypto variant
  • Feature flag migration

6. OpenSSL 3 Provider Model

Một trong những thay đổi quan trọng nhất trong crypto stack hiện đại.

Application
    ↓
EVP API
    ↓
Provider Layer
    ├── Default Provider
    ├── FIPS Provider
    ├── OQS Provider      ← Post-Quantum
    └── Legacy Provider

Điểm mạnh:

  • Load/unload runtime — không cần rebuild application
  • Tách abstraction giữa app và implementation
  • Hỗ trợ crypto agility thật sự

Ví dụ config OpenSSL

openssl_conf = openssl_init

[openssl_init]
providers = provider_sect

[provider_sect]
default    = default_sect
oqsprovider = oqs_sect

[default_sect]
activate = 1

[oqs_sect]
activate = 1
module   = /usr/local/lib/ossl-modules/oqsprovider.so

7. Hybrid Cryptography: không đơn giản là "kết hợp"

Hybrid không chỉ là "an toàn hơn". Vấn đề là cách combine.

7.1 Construction phổ biến

classical_ss = X25519(...)
pq_ss        = ML-KEM-768(...)

concat = classical_ss || pq_ss
shared_secret = SHA3-256(concat)

Hoặc dùng HKDF theo IETF draft.

7.2 Security requirements

Hybrid phải đảm bảo:

  • ✅ Không downgrade được
  • ✅ Transcript binding đầy đủ
  • ✅ Tránh key mismatch attack
  • ✅ Đảm bảo forward secrecy

8. Inventory – phần khó nhất của toàn bộ migration

90% thời gian không nằm ở cryptography.

Mà nằm ở câu hỏi: Crypto đang nằm ở đâu trong hệ thống?

8.1 Các vị trí crypto thường bị ẩn

  • TLS termination (ingress / gateway)
  • Java keystore
  • OpenSSL static binary
  • Firmware / IoT devices
  • Hardcoded certificate
  • Sidecar proxy
  • JNI / native bindings

8.2 Tooling thực tế

Mục tiêu Tool
Network scanning TLS scanner, ZMap
Code scanning Semgrep, Trivy
CBOM Crypto Bill of Materials
Runtime inspection eBPF tracing, syscall monitoring

9. Historical lesson: crypto migration luôn chậm hơn dự kiến

Công nghệ Thực tế
SHA-1 ~10 năm để sunset
TLS 1.0 Nhiều năm vẫn còn
RSA-1024 Tồn tại rất lâu trong enterprise
MD5 certificates Vẫn còn trong legacy systems

Nguyên nhân lặp đi lặp lại:

  • Legacy dependency
  • Vendor lock-in
  • Compatibility pressure
  • Thiếu inventory đầy đủ

10. Failure modes trong thực tế

10.1 Middlebox break

Packet size tăng → vượt expectation của middlebox → connection reset

10.2 Rollback khó khăn

Crypto migration là stateful:

  • Session mismatch
  • Certificate inconsistency
  • Cache invalidation

10.3 Telemetry blind spot

Khi đổi crypto provider:

  • Metric mất
  • Trace broken
  • SIEM parsing fail

11. Roadmap triển khai thực tế

Phase 1: Discovery
├── Inventory crypto toàn hệ thống
├── Classify dữ liệu long-lived
└── Xác định risk priority

Phase 2: Abstraction
├── Triển khai crypto facade
├── Centralized KMS
└── Policy-driven system

Phase 3: Hybrid Pilot
├── Internal service rollout
├── Đo latency thực tế
└── Test mobile / CDN / WAF

Phase 4: Gradual Rollout
├── Feature flags
├── Staged deployment
├── Rollback plan
└── Monitoring đầy đủ

12. Mindset quan trọng nhất

Crypto-agility không phải một project.

Nó là một capability dài hạn: khả năng thay đổi cryptography mà không phá hệ thống.

Hệ thống survive sau 2030 không phải vì:

dùng thuật toán mạnh nhất

Mà vì:

thay đổi thuật toán nhanh nhất — ít rủi ro nhất — ít downtime nhất


Kết luận

PQC migration sẽ không fail vì thiếu thuật toán. Nó sẽ fail vì:

Nguyên nhân Giải pháp
Không có inventory Crypto discovery tooling
Không có abstraction layer Crypto facade + provider model
Underestimate operational complexity Phased roadmap + runbook
Hard-coded cryptography khắp nơi Policy-driven config

Crypto-Agility vì vậy không còn là lựa chọn.

Nó là điều kiện bắt buộc cho mọi hệ thống muốn tồn tại lâu dài trong kỷ nguyên hậu-quantum.


Tài liệu tham khảo: NIST FIPS 203/204/205 · Open Quantum Safe (OQS) · IETF Hybrid Key Exchange drafts · OpenSSL 3 Provider documentation


All Rights Reserved

Viblo
Let's register a Viblo Account to get more interesting posts.