Computer >> Hướng Dẫn Máy Tính >  >> Kết Nối Mạng >> An Ninh Mạng

Mật mã học (Cryptography) và An ninh mạng: Nguyên lý, Loại, Thuật toán và Ứng dụng

Cryptography (Mật mã học) là gì?

Là khoa học và nghệ thuật **bảo vệ thông tin** bằng cách biến đổi nó thành dạng **không thể đọc hiểu (Ciphertext)** trừ khi có **khóa bí mật (Key)** để khôi phục lại **bản rõ (Plaintext)**. Mục tiêu cốt lõi: **Confidentiality (Bảo mật), Integrity (Toàn vẹn), Authentication (Xác thực), Non-repudiation (Phủ nhận không được).**

1. Cryptography vs Network Security vs Cybersecurity

2. Ba loại Mật mã học chính (Three Main Types)

Khái niệmPhạm viMối quan hệ
CryptographyCông cụ toán học/công nghệ: Thuật toán, Protokol, Key Management.**Nền tảng kỹ thuật** (Building block) cho Network Security & Cybersecurity.
Network SecurityBảo vệ hạ tầng mạng (L2-L4/L7): Firewall, IDS/IPS, VPN, NAC, Segmentation, DDoS Protection.Sử dụng Crypto (TLS, IPsec, SSH, WireGuard, MACsec) để bảo vệ data in-transit.
CybersecurityBảo vệ tài sản số toàn diện (Network, Endpoint, Cloud, App, Data, Identity, Human, Physical).Bao gồm Network Security. Sử dụng Crypto khắp nơi (Encryption, Signing, Hash, KMS, PKI, Blockchain).

3. Các nguyên lý cốt lõi (Core Principles)

  • Kerckhoffs's Principle: An ninh hệ thống **chỉ phụ thuộc vào sự bí mật của Khóa (Key)**, không phải sự bí mật của Thuật toán. Thuật toán phải công khai, peer-reviewed.
  • Confidentiality: Chỉ người có khóa mới đọc được dữ liệu.
  • Integrity: Phát hiện dữ liệu bị sửa đổi (Hash, HMAC, AEAD, Digital Signature).
  • Authentication: Xác thực danh tính (Entity Authentication: TLS Client Cert, SSH Key, FIDO2) hoặc Nguồn gốc dữ liệu (Data Origin Authentication: HMAC, Digital Signature).
  • Non-repudiation: Người ký không thể chối cối đã ký (Digital Signature với Private Key chỉ họ có).
  • Key Management (Quản trị khóa) - Quan trọng nhất: Sinh, Phân phối, Lưu trữ, Xoay vòng (Rotation), Thu hồi (Revocation), Hủy diệt (Destruction). HSM (Hardware Security Module), KMS (Key Management Service), Vault, PKI.

4. Các thuật toán hiện đại & Tiêu chuẩn (2024)

LoạiĐặc điểmThuật toán điển hìnhỨng dụng chính
Symmetric Encryption (Mật mã đối xứng)**Một khóa (Secret Key)** dùng cho cả Encrypt & Decrypt. Nhanh, hiệu quả cho dữ liệu lớn. Vấn đề: Trao đổi khóa an toàn (Key Exchange).AES (AES-128/192/256-GCM/CCM), ChaCha20-Poly1305, Camellia, ARIA. (DES/3DES/RC4 - **DEPRECATED**).TLS Record Layer, IPsec ESP, Disk Encryption (BitLocker, LUKS, FileVault), Database Encryption, Payload Encryption.
Asymmetric Encryption / Public Key Cryptography (Mật mã bất đối xứng / Khóa công khai)**Cặp khóa:** Public Key (mã hóa, verify chữ ký) + Private Key (giải mã, tạo chữ ký). Chậm hơn. Giải quyết bài toán Key Exchange & Digital Signature.RSA (2048/3072/4096-bit), ECC (ECDSA, EdDSA - Curve25519, P-256, P-384, secp256k1), ElGamal, DH/ECDH (Key Exchange), Kyber (PQC - Post-Quantum).TLS Handshake (Key Exchange, Auth), SSH Key Exchange, PGP/GPG Email, Code Signing, Certificate (X.509), Blockchain (Bitcoin, Ethereum), Secure Boot, JWT.
Hash Functions (Hàm băm) / Cryptographic HashĐầu vào bất kỳ độ dài → Đầu ra độ dài cố định (Digest). **Một chiều (One-way), Deterministic, Avalanche effect, Collision Resistance, Pre-image Resistance.** Không dùng khóa (keyless). HMAC dùng khóa cho Message Authentication.SHA-2 (SHA-256, SHA-384, SHA-512), SHA-3 (SHA3-256, SHAKE), BLAKE2/3. (MD5, SHA-1 - **BROKEN/DEPRECATED**).Integrity Check (File download, Git commit), Digital Signature (Hash then Sign), Password Storage (bcrypt, Argon2, scrypt, PBKDF2 - **KDF**), Certificate Fingerprint, Blockchain (Merkle Tree), TLS Certificate Verify, HMAC.

5. Post-Quantum Cryptography (PQC) - Chuẩn bị cho kỷ lượng tử

  • Máy tính lượng tử (CRQC - Cryptographically Relevant Quantum Computer) có thể phá **RSA, ECC, DH, ECDH** (Shor's Algorithm). Grover's Algorithm làm yếu Symmetric/Hash (giảm bit security nửa) → Dùng AES-256, SHA-384/512.
  • NIST PQC Standardization (2024): **ML-KEM (Kyber) - Key Encapsulation**, **ML-DSA (Dilithium) - Digital Signature**, **SLH-DSA (SPHINCS+) - Stateless Hash-based Signature**.
  • Hành động ngay: **Inventory Crypto Assets**, **Hybrid Key Exchange (ECDH + Kyber)**, **Hybrid Signatures (ECDSA + Dilithium)**, **Test PQC TLS (OpenSSL 3.2+, BoringSSL, AWS s2n-tls, Cloudflare, Google Chrome/Cloudflare experiment)**. Lộ trình chuyển đổi 5-10 năm.

6. Ứng dụng Cryptography trong Network Security (Ví dụ thực tế)

  • TLS 1.3 (HTTPS, API, gRPC): AEAD (AES-GCM/ChaCha20-Poly1305), ECDHE (X25519) Key Exchange, Ed25519/ECDSA/RSA-PSS Cert, 1-RTT Handshake, 0-RTT (opt), Encrypted SNI (ECH).
  • IPsec VPN (Site-to-Site): ESP (AES-GCM), IKEv2 (ECDH, Cert/PSK Auth), PFS (Perfect Forward Secrecy).
  • WireGuard VPN: Noise Protocol Framework: Curve25519 (ECDH), ChaCha20-Poly1305, BLAKE2s, HKDF. Rất nhanh, code nhỏ, audit dễ.
  • MACsec (IEEE 802.1AE): Layer 2 Encryption (AES-GCM-XPN/GCM) cho Ethernet link. Line-rate, hop-by-hop.
  • SSH (Secure Shell): Key Exchange (curve25519-sha256), Host Key (Ed25519, RSA-SHA2-256/512), Encryption (chacha20-poly1305, aes256-gcm), MAC (hmac-sha2-256-etm).
  • DNSSEC / DoH / DoT / DoQ: Ký zone (ECDSA/Ed25519), Mã hóa truy vấn DNS (TLS/QUIC).
  • Certificate Transparency (CT): Log công khai chứng chỉ X.509 (Merkle Tree) để phát hiện mis-issuance.

7. Sai lầm thường gặp (Crypto Pitfalls)

  • Tự viết thuật toán crypto / Tự implement (Rolling your own crypto) → **KHÔNG BAO GIỜ**. Dùng thư viện chuẩn (OpenSSL, BoringSSL, libsodium, Go crypto, RustCrypto, Java Cryptography Architecture, .NET System.Security.Cryptography).
  • Dùng ECB mode (không IV/nonce).
  • Reuse Key/Nonce/IV (Key/IV reuse = Catastrophic cho Stream cipher/AEAD).
  • Hardcode Key/Secret trong code/repo.
  • Không verify Certificate / Hostname verification (MITM).
  • Dùng Random yếu (Math.random, rand()) cho Key/IV/Nonce/Salt. Dùng CSPRNG (OS: /dev/urandom, getrandom(), BCryptGenRandom, secrets.SystemRandom).
  • Không rotate key / Không có Key Management lifecycle.
  • Side-channel attack (Timing, Power, Cache) trên implementation - dùng constant-time libraries.

Kết luận: Cryptography là **xương sống kỹ thuật** của Network Security & Cybersecurity. Hiểu đúng **3 loại (Symmetric, Asymmetric, Hash)**, **nguyên tắc Kerckhoffs**, **Key Management**, **tiêu chuẩn hiện đại (TLS 1.3, AES-GCM, ChaCha20-Poly1305, Ed25519, Argon2id, Kyber/Dilithium PQC)** và **tránh các bẫy triển khai** là bắt buộc cho mọi Security Engineer/Architect/Developer.

Mục đíchKhuyến nghị (IETF/NIST/BSI/ANSSI)Tránh / Deprecated
Symmetric Encryption (AEAD)AES-256-GCM, ChaCha20-Poly1305, AES-128-GCMAES-CBC (padding oracle), DES, 3DES, RC4, AES-ECB
Key Exchange (KEM)ECDH (X25519, P-256), **Kyber (ML-KEM-768/1024) - PQC Standardized NIST 2024**RSA Key Transport, DH (finite field < 2048-bit), Static RSA/DH
Digital SignatureEdDSA (Ed25519, Ed448), ECDSA (P-256, P-384), **Dilithium (ML-DSA) - PQC Standardized NIST 2024**, RSA-PSS (RSASSA-PSS)RSA-PKCS#1 v1.5, DSA, ECDSA weak curves
HashSHA-256, SHA-384, SHA-512, SHA3-256, BLAKE2b, BLAKE3MD5, SHA-1, RIPEMD-160
Password Hashing (KDF)**Argon2id** (winner PHC), **scrypt**, **bcrypt**, PBKDF2-HMAC-SHA256 (iter ≥ 600k)MD5, SHA-1, SHA-256 (raw), DES-crypt
TLS VersionTLS 1.3 (RFC 8446) only. 0-RTT cẩn trọng.TLS 1.0, 1.1, 1.2 (nếu có thể). SSL v2/v3.