Digital Signature (Chữ ký số): Cơ chế, Thuật toán & Vai trò trong Bảo mật mạng
Chữ ký số (Digital Signature) là kỹ thuật mật mã học dùng để xác thực nguồn gốc (Authentication), đảm bảo toàn vẹn (Integrity) và cung cấp không thể chối cối (Non-repudiation) cho thông điệp, tài liệu điện tử hoặc phần mềm. Nó là nền tảng của PKI, TLS, Blockchain, Email bảo mật (S/MIME, PGP), Ký hợp đồng điện tử.
1. Nguyên lý hoạt động (Cơ chế Asymmetric Cryptography)
- Sinh cặp khóa (Key Generation): Người ký (Signer) tạo cặp khóa bất đối xứng: Private Key (Khóa riêng - K_priv) (Giữ bí mật tuyệt đối) & Public Key (Khóa công khai - K_pub) (Phân phối công khai).
- Ký (Signing):
- Tính Hash (Message Digest) của dữ liệu gốc (Message M) bằng hàm băm an toàn (SHA-256, SHA-384, SHA3-256).
H = Hash(M). Hash đảm bảo toàn vẹn & độ dài cố định.
- Mã hóa Hash bằng Private Key (K_priv) của người ký:
S = Sign(K_priv, H). Kết quả S là Chữ ký số (Digital Signature).
- Gửi:
Message (M) + Signature (S) + Certificate (chứa K_pub & Info người ký).
- Xác minh (Verification):
- Người nhận lấy Public Key (K_pub) từ Certificate của người ký (Certificate phải hợp lệ, tin cậy - Chain of Trust đến Root CA).
- Tự tính Hash của Message nhận được:
H' = Hash(M).
- Giải mã Chữ ký số bằng Public Key:
H'' = Verify(K_pub, S).
- So sánh: Nếu H' == H'' → CHỮ KÝ HỢP LỆ (Dữ liệu không bị thay đổi, Người ký chính là chủ sở hữu Private Key).
2. 3 Tính chất bảo mật cốt lõi (Security Properties)
| Tính chất | Ý nghĩa | Cơ chế đảm bảo |
| Authentication (Xác thực nguồn gốc) | Xác định chính xác ai đã ký (Chủ sở hữu Private Key). | Chỉ có Private Key mới tạo ra Signature khớp với Public Key. |
| Integrity (Toàn vẹn) | Dữ liệu không bị thay đổi 1 bit kể từ khi ký. | Hash function (Collision resistance). Thay 1 bit -> Hash thay đổi hoàn toàn -> Verify fail. |
| Non-repudiation (Không thể chối cối) | Người ký không thể phủ nhận đã ký (trừ khi Private Key bị đánh cắp - Key Compromise). | Private Key chỉ có người ký nắm giữ. Binding pháp lý qua CA/Digital ID. |
3. Các thuật toán chữ ký số phổ biến
- RSA (Rivest-Shamir-Adleman): Cũ, phổ biến. Ký: RSA-PSS (Probabilistic Signature Scheme - an toàn hơn PKCS#1 v1.5). Kích thước khóa: 2048-bit (tối thiểu), 3072/4096-bit (khuyến nghị). Chậm hơn ECC.
- ECDSA (Elliptic Curve DSA): Nhanh, khóa ngắn (P-256 ~ RSA-3072, P-384 ~ RSA-7680). Dùng rộng rãi (TLS, Bitcoin, Ethereum, JWT, FIDO2). Cần RNG tốt (nonce k) - Lỗi RNG -> rò rỉ Private Key (PlayStation 3, Bitcoin Android).
- EdDSA (Edwards-curve DSA) - Ed25519, Ed448: Hiệu năng cao, xác định (Deterministic - không cần RNG khi ký), an toàn side-channel. Chuẩn hóa RFC 8032. Dùng trong OpenSSH, TLS 1.3, Signal, FIDO2, JWT.
- DSA (Digital Signature Algorithm) - FIPS 186: Cũ, chậm, phụ thuộc RNG. Đang bị thay thế bằng ECDSA/EdDSA.
- PQC (Post-Quantum Cryptography) - Chuẩn hóa NIST 2024:
- CRYSTALS-Dilithium (ML-DSA): Chữ ký số chính (Lattice-based). Thay thế RSA/ECDSA.
- FALCON: Chữ ký nhỏ, nhanh (Lattice-based). Dùng cho constrained env.
- SPHINCS+ (SLH-DSA): Hash-based (Stateless). An toàn cực cao (chỉ dựa vào Hash), nhưng chữ ký lớn (~8-50KB), chậm hơn. Dùng cho long-term archival, firmware signing.
4. Loại chữ ký số theo eIDAS (EU) & Pháp luật Việt Nam
| Loại (eIDAS) | Độ tin cậy | Yêu cầu kỹ thuật | Hiệu lực pháp lý (Việt Nam - Luật GDĐT 2023, Luật Chữ ký số 2023) |
| Simple / Basic Electronic Signature (SES) | Thấp | Bất kỳ dữ liệu điện tử nào gắn liền với người ký (Scan chữ ký mực, click "I agree", tên gõ). Không yêu cầu chứng chỉ. | Hợp lệ cho giao dịch dân sự thông thường. Khó chứng minh trong tranh chấp. |
| Advanced Electronic Signature (AES / AdES) | Cao | 1. Liên kết duy nhất với người ký. 2. Nhận diện người ký. 3. Tạo bằng dữ liệu chỉ người ký kiểm soát (Private Key). 4. Phát hiện thay đổi dữ liệu. Yêu cầu Certificates (PKI). | Hiệu lực pháp lý = Chữ ký viết tay (Điều 22 Luật GDĐT 2023). Phổ biến: Ký hợp đồng, hóa đơn, thủ tục hành chính. |
| Qualified Electronic Signature (QES / QAdES) | Rất cao (Tối đa) | Đáp ứng AES + Thiết bị tạo chữ ký an toàn (QSCD - Qualified Signature Creation Device: HSM, Token, Smart Card, Cloud QSCD) + Chứng chỉ đủ điều kiện (Qualified Certificate) do Nhà cung cấp dịch vụ tin cậy đủ điều kiện (QTSP - Qualified Trust Service Provider) cấp. Được giám sát bởi nhà nước. | Hiệu lực pháp lý tuyệt đối = Chữ ký viết tay + Dấu vân tay. Được công nhận tự động cross-border EU. Việt Nam: Chữ ký số đủ điều kiện (QCĐ) do Bộ TT&TT cấp phép (Viettel, VNPT, FPT, CMC, eSign...). |
5. Kỹ thuật chữ ký số (Digital Signature Techniques / Formats)
- Raw Signature: Chỉ giá trị chữ ký số (S). Cần truyền kèm Cert, Algorithm ID riêng.
- CMS (Cryptographic Message Syntax) / PKCS#7: Gói tin chuẩn hóa chứa: Content (Data), SignerInfo (Signature, Algorithm, Certs, Timestamp, Attributes). Dùng trong S/MIME, Authenticode, Document Signing.
- PAdES (PDF Advanced Electronic Signatures - ETSI EN 319 142): Chuẩn ký PDF chuyên nghiệp. Hỗ trợ LTV (Long Term Validation - nhúng OCSP/CRL/Timestamp vào PDF), Visual Signature (Hình ảnh chữ ký trên trang), Multiple Signatures. Tiêu chuẩn cho hợp đồng, hóa đơn điện tử tại VN.
- XAdES (XML Advanced Electronic Signatures): Ký tài liệu XML (E-invoice UBL, SAML Assertion, SOAP).
- JWS (JSON Web Signature - RFC 7515): Ký JSON (JWT, VC - Verifiable Credentials). Compact Serialization:
Base64URL(Header).Base64URL(Payload).Base64URL(Signature).
- COSE (CBOR Object Signing and Encryption - RFC 8152): Nhị phân, nhẹ cho IoT/Constrained.
- Authenticode (Microsoft): Ký file PE (.exe, .dll, .msi, .ps1, .cat). Dùng cho Driver signing, App reputation (SmartScreen).
- APK Signing (Android): v1 (JAR), v2 (APK Signature Scheme v2 - Whole file), v3 (Key Rotation), v4 (Incremental).
6. Ứng dụng trong Network Security
- TLS/SSL (HTTPS): Server ký Certificate (CA ký). Client verify Cert chain. Server ký
CertificateVerify message trong Handshake (TLS 1.3) bằng Private Key -> Chứng minh sở hữu Private Key.
- IPsec (IKEv2): Xác thực Peer bằng Chữ ký số (RSA/ECDSA/EdDSA) hoặc PSK. Chứng minh danh tính Gateway.
- SSH: Host Key (ECDSA/Ed25519/RSA) ký Host Key Fingerprint. User Key xác thực Public Key Auth.
- DNSSEC: Ký Record DNS (RRSIG) bằng ZSK. KSK ký DNSKEY. Chain of Trust đến Root KSK.
- Email Security (S/MIME, PGP/GPG, DKIM, ARC): Ký nội dung email (S/MIME, PGP). DKIM: Domain ký header/body email bằng Private Key -> Verifier kiểm tra Public Key trong DNS (TXT record).
- Code Signing: Ký Driver, App, Script, Container Image (Cosign, Notary v2), Firmware, OTA Update. Đảm bảo nguồn gốc & toàn vẹn phần mềm (Software Supply Chain Security - SLSA, SBOM).
- Blockchain / Crypto: Ký Transaction (ECDSA secp256k1, Ed25519). Chứng minh quyền sở hữu UTXO/Account.
- FIDO2 / WebAuthn / Passkeys: Relying Party (Website) gửi Challenge -> Authenticator (YubiKey, Windows Hello, Face ID, Android Phone) ký Challenge bằng Private Key (Credential Private Key) -> Gửi Assertion (Signature + ClientData) -> Server Verify bằng Public Key đã đăng ký. Passwordless, Phishing-resistant.
- Zero Trust / ZTNA: Device Identity Cert (mTLS), Workload Identity (SPIFFE/SPIRE) - Ký JWT/SVID.
7. An toàn của Chữ ký số (Security of Digital Signatures)
- An toàn về mật mã: Dựa vào độ khó bài toán toán học (Integer Factorization RSA, Discrete Log ECC, Lattice/Hash PQC). Không thể làm giả nếu thuật toán an toàn, khóa đủ dài, RNG tốt, Private Key không rò rỉ.
- Rủi ro thực tế:
- Mất/Chia sẻ Private Key (Malware, Phishing, Insider, Weak HSM config).
- CA bị xâm nhập (DigiNotar 2011, Trustico 2018) -> Phát hành Cert giả.
- Thuật toán bị phá (SHA-1 Collision - SHAttered 2017, MD5 Collision). BẮT BUỘC DÙNG SHA-256+.
- Quantum Computing (Tương lai) phá RSA/ECC -> Chuyển PQC (Dilithium, SPHINCS+).
- Implementation Bug (Heartbleed, CurveBall, Nonce reuse ECDSA).
- Social Engineering (Lừa ký tài liệu sai, Clickjacking).
- Bảo vệ Private Key: HSM (FIPS 140-2/3 L3), TPM 2.0, Secure Enclave, Smart Card/Token (ePass, Feitian, YubiKey), Cloud HSM/KMS (AWS CloudHSM, Azure Dedicated HSM, Google Cloud HSM, HashiCorp Vault HSM). KHÔNG BAO GIỜ LƯU PRIVATE KEY TRÊN DISK/FILE HỆ THỐNG VẬN HÀNH (PEM/PFX/P12) NẾU KHÔNG MÃ HÓA MẠNH (PBKDF2/Argon2) VÀ CÔ LẬP.
8. Tóm tắt: Digital Signature vs Electronic Signature (E-Signature)
| Đặc điểm | Digital Signature (Chữ ký số - PKI) | Electronic Signature (Chữ ký điện tử - Wide) |
| Cơ chế | Mật mã học Asymmetric (Private/Public Key + Hash + CA) | Bất kỳ: Click, Scan, Tên, Biometric, PIN, OTP... |
| Toàn vẹn dữ liệu | Có (Toán học đảm bảo) | Không bắt buộc (Tùy triển khai) |
| Không chối cối | Có (Mạnh - Private Key unique) | Yếu / Không có (Tùy bằng chứng) |
| Hiệu lực pháp lý (VN) | AES = Viết tay. QES = Viết tay + Vân tay. | SES = Hợp lệ giao dịch thường. Tùy bằng chứng. |
| Chi phí/Triển khai | Cao (PKI, CA, HSM, Token, Audit) | Thấp (Click, Scan, SMS OTP) |