Lesson 03: Digital Signatures & PKI

RSA Sign/Verify · ECDSA k-reuse Attack · PKI Chain of Trust · Sony PS3 Hack

1. RSA Sign & Verify (số nhỏ)

Nhập RSA key (n, e, d) và hash H(m). Ký bằng private key d, verify bằng public key e. Xem từng bước fast exponentiation.

2. ECDSA k-reuse Attack — Recover Private Key

⚠ Demo tấn công: Nếu k bị dùng lại cho 2 signatures → attacker recover private key d. Đây chính là lỗi Sony PS3.

Sony PS3 Hack (2010) — fail0verflow

Sony dùng k = CONSTANT (không random!) cho mọi lần ký firmware. Kết quả: hai chữ ký bất kỳ đều có cùng r. fail0verflow thu thập 2 firmware packages:

Bước 1: Nhận thấy r₁ = r₂ trong hai firmware signatures → cùng k!
Bước 2: k = (H₁−H₂)·(s₁−s₂)⁻¹ mod n → tính ra k cụ thể
Bước 3: d = (s₁·k−H₁)·r⁻¹ mod n → recover master signing key
Bước 4: Ký bất kỳ game homebrew trông như Sony official → jailbreak!

Fix: Dùng Ed25519 (deterministic k = hash(privkey‖message)), hoặc dùng CSPRNG đúng cách.

3. Certificate Chain of Trust

Mỗi khi bạn truy cập HTTPS, browser verify một chuỗi certificate. Nhấn vào từng cert để xem chi tiết.

Phương thức revocation

CRL

Certificate Revocation List — danh sách serial bị thu hồi
✓ Đơn giản, offline capable
✗ CRL có thể lớn (>1MB)
✗ Cập nhật chậm (24h–7d)
✗ Lộ domain khi download

OCSP

Online Certificate Status Protocol — query real-time
✓ Real-time check
✗ Privacy: lộ domain cho CA
✗ OCSP down → browser lơ lửng
✗ Latency mỗi kết nối

OCSP Stapling

Server đính kèm OCSP response đã ký vào TLS handshake
✓ Không lộ domain cho CA
✓ Không latency cho client
✓ Server cache OCSP response
✗ Server phải support

Certificate Transparency

Append-only public log mọi cert — detect mis-issuance
✓ Phát hiện cert giả mạo
✓ Public, auditable
✓ Required by Chrome từ 2018
✗ Không ngăn immediate attack

4. So sánh thuật toán chữ ký

Thuật toánCơ sởkKý/sVerify/sSig sizeTrạng thái
RSA-PKCS1v1.5FactoringN/A~500~15,000256 B⚠ Legacy
RSA-PSSFactoringN/A~500~15,000256 B✓ Current
ECDSA-P256ECDLPRandom~15,000~12,00064 B⚠ k-reuse risk
Ed25519ECDLPDeterministic~140,000~70,00064 B✓ Recommended
Dilithium-3 (PQ)LatticeN/A~8,000~10,0003,293 B✓ PQ safe
Dilithium-3 là một trong các thuật toán NIST PQC — chống quantum. Xem chi tiết ở T3-L04: TLS & Frontier.