Bài 13: Cryptography Applications (Phần 1)
1. Mục tiêu bảo mật (Security Goals)
Trước khi đi vào các giao thức, cần hiểu rõ các mục tiêu bảo mật mà hệ thống cần đạt được:
| Mục tiêu | Ý nghĩa |
|---|---|
| Confidentiality | Bảo mật dữ liệu, chỉ người được phép mới đọc được |
| Authentication | Xác minh danh tính người dùng, thiết bị, tiến trình |
| Integrity | Dữ liệu không bị thay đổi trên đường truyền |
| Non-repudiation | Không thể chối bỏ hành động đã thực hiện |
| Availability | Hệ thống luôn sẵn sàng phục vụ |
| Privacy | Bảo vệ thông tin cá nhân |
Mỗi mục tiêu được đảm bảo bởi các cơ chế mật mã khác nhau:
- Cipher systems: DES, AES (đối xứng), RSA, ECC, CRYSTALS-KYBER (bất đối xứng)
- Hash functions: SHA-256, SHA3-512,…
- MAC (Message Authentication Code)
- Chữ ký số / Chứng chỉ số
- Kiểm soát truy cập: RBAC, ABAC, PBAC
2. Giao thức bảo mật mạng – Tổng quan
Một giao thức bảo mật mạng hoàn chỉnh phải giải quyết ba vấn đề cốt lõi:
3. Xác thực (Authentication)
3.1 Định nghĩa
Quá trình xác thực gồm hai bước:
- Identification: Cung cấp thông tin định danh (tên, ID,…)
- Verification: Hệ thống kiểm tra xem thông tin đó có hợp lệ không
Authorization (Ủy quyền) khác với Authentication: là quyền/phép mà thực thể được cấp để truy cập tài nguyên sau khi đã được xác thực.
3.2 Các yếu tố xác thực (Authentication Factors)
- Mật khẩu (Password)
- Mã PIN
- Câu hỏi bí mật
- Smartcard
- Thẻ khóa điện tử
- Chứng chỉ số (Digital Certificate)
- Thiết bị của người dùng
- Vân tay (Fingerprint)
- Võng mạc (Retina)
- Khuôn mặt (Face)
- Giọng nói (Voice)
- PUFs (Physical Unclonable Functions)
3.3 Xác thực bằng chứng chỉ số (Certificate-based Authentication)
Đây là phương pháp phổ biến nhất để xác thực server/tài nguyên. Ý tưởng cốt lõi:
Chứng chỉ số kết hợp:
- Public key của server
- Identity của server (IP, tên miền,…)
- Chữ ký của CA để xác nhận tính hợp lệ
# Kiểm tra certificate của một website thực tế
openssl s_client -connect facebook.com:443 -showcerts3.4 Xác thực bằng mật khẩu (Password-based Authentication)
Quy trình đăng nhập cơ bản:
3.5 Xác thực đa yếu tố (Multi-Factor Authentication – MFA)
Kết hợp nhiều yếu tố để tăng độ bảo mật:
Mật khẩu (Knowledge) + Smartcard/OTP (Possession) + Vân tay (Inherence)| Yếu tố | Lưu trữ | Xác minh |
|---|---|---|
| Biometric | Cần bộ nhớ bảo mật | So sánh 1-1 hay 1-nhiều? |
| Smartcard | Lưu trữ bảo mật trên thẻ | Tự thực hiện thuật toán xác minh |
| TPM/TEE/Secure Enclave | Lưu trữ phần cứng bảo vệ | Thực hiện thuật toán bảo mật |
4. Thỏa thuận khóa phiên (Session Key Agreement)
4.1 Tại sao cần khóa phiên?
Sau khi xác thực server (qua certificate), client cần thiết lập một khóa phiên bí mật (ssk – session secret key) để mã hóa dữ liệu trao đổi. Khóa này:
- Chỉ tồn tại trong một phiên làm việc
- Được tạo mới mỗi lần kết nối → Perfect Forward Secrecy (PFS)
- Thường dùng mã hóa đối xứng (AES) vì nhanh hơn
4.2 Diffie-Hellman trên ECC (ECDH)
Đây là phương pháp phổ biến nhất hiện nay:
Sau khi có ssk, mọi dữ liệu được mã hóa đối xứng:
C = E_AES(ssk, name || pw) ← Client gửi
D_AES(ssk, C) = name || pw ← Server giải mã4.3 Xác thực trong môi trường WiFi (Pre-shared Secret)
Khi không có chứng chỉ (ví dụ: WiFi gia đình), hai bên sử dụng pre-shared secret (mật khẩu WiFi):
WEP → WPA → WPA2 → WPA3Các giao thức này xây dựng cơ chế xác thực và thỏa thuận khóa dựa trên mật khẩu chung mà không cần PKI.
5. Giao thức bảo mật đa server (Multi-server AKA)
5.1 Mục tiêu
Trong môi trường thực tế, người dùng cần kết nối với nhiều server khác nhau (D₁, D₂,…, Dₖ). Thay vì đăng ký riêng với từng server, cần:
- Đăng ký một lần (One-time registration)
- Đảm bảo: Xác thực lẫn nhau, Thỏa thuận khóa, Không thể truy vết (Untraceability), Thu hồi (Revocation), Hiệu quả
5.2 Các biến thể giao thức
6. Triển khai giao thức bảo mật theo tầng mạng
6.1 Vị trí triển khai
6.2 So sánh ưu/nhược điểm
| Tầng | Ưu điểm | Nhược điểm |
|---|---|---|
| Application | Bảo vệ đầu-cuối; node trung gian không cần giải mã | Kẻ tấn công vẫn phân tích được header; phải sửa ứng dụng |
| Transport | Không cần sửa ứng dụng; bảo vệ TCP payload | Kẻ tấn công phân tích được IP header |
| Network | Không cần sửa ứng dụng; Transport mode hoặc Tunnel mode | Phức tạp hơn; Tunnel mode cần gateway |
| Data Link | Kẻ tấn công khó phân tích traffic | Chỉ bảo vệ trên một đường link vật lý |
7. Giao thức SSH
7.1 Kiến trúc phân lớp
┌─────────────────────────────┐
│ SSH Connection │ ← Quản lý nhiều channel (shell, SFTP,...)
├─────────────────────────────┤
│ SSH User Authentication │ ← Xác thực user (password hoặc PKC)
├─────────────────────────────┤
│ SSH Transport │ ← Xác thực server, trao đổi khóa, mã hóa
├─────────────────────────────┤
│ TCP │
├─────────────────────────────┤
│ IP │
└─────────────────────────────┘7.2 Luồng hoạt động SSH
8. Giao thức SSL/TLS
8.1 Lịch sử phát triển
| Phiên bản | Năm | Trạng thái |
|---|---|---|
| SSL 1.0 | Chưa phát hành | Không dùng |
| SSL 2.0 | 1995 | Deprecated 2011 (RFC 6176) |
| SSL 3.0 | 1996 | Deprecated 2015 (RFC 7568) |
| TLS 1.0 | 1999 | Deprecated 2021 (RFC 8996) |
| TLS 1.1 | 2006 | Deprecated 2021 (RFC 8996) |
| TLS 1.2 | 2008 | Vẫn được dùng |
| TLS 1.3 | 2018 | Khuyến nghị hiện tại |
8.2 Cấu trúc TLS
┌──────────────────────────────────────────────────┐
│ HTTP (HTTPS) │
├──────────────┬──────────────────┬────────────────┤
│ SSL Handshake│ Change Cipher │ SSL Alert │
│ Protocol │ Spec Protocol │ Protocol │
├──────────────┴──────────────────┴────────────────┤
│ SSL Record Protocol │
├──────────────────────────────────────────────────┤
│ TCP │
└──────────────────────────────────────────────────┘8.3 TLS 1.2 Handshake
Ba thành phần chính của TLS 1.2:
- Authentication: Digital certificate (PKI)
- Key Agreement: ECDH
- Algorithm Negotiation: Thỏa thuận cipher suite (AES-128-CBC, SHA256, v.v.)
8.4 TLS 1.3 – Cải tiến so với 1.2
TLS 1.3 (RFC 8446) giảm số lần RTT (Round-Trip Time):
9. Giao thức IPsec
9.1 Tổng quan
IPsec (IP Security) là bộ giao thức hoạt động ở tầng Network, mã hóa và/hoặc xác thực các gói IP. Gồm ba giao thức thành phần:
9.2 Hai chế độ hoạt động
Transport Mode – Bảo vệ host-to-host:
[ IP Header | IPsec Header | Payload (TCP/UDP) ]
↑ Mã hóa phần nàyCác endpoint phải là IPsec-aware. Thường dùng cho kết nối trực tiếp giữa hai host.
Tunnel Mode – Yêu cầu gateway:
[ Outer IP Header | IPsec Header | Inner IP Header | Payload ]
↑ Mã hóa toàn bộ phần nàyGateway đóng gói toàn bộ gói IP gốc → bảo vệ cả header nội bộ.
9.3 Security Association (SA)
Ba tham số định danh một SA:
- SPI – Security Parameters Index
- IP Destination Address
- Security Protocol Identifier (AH hay ESP)
Hai cơ sở dữ liệu quan trọng:
- SAD (Security Association Database): Lưu các SA đang hoạt động
- SPD (Security Policy Database): Quy tắc áp dụng SA cho gói tin nào
9.4 Authentication Header (AH)
┌─────────────┬──────────────┬────────────────────────────┐
│ Next Header │ Payload Len │ RESERVED │
├─────────────┴──────────────┴────────────────────────────┤
│ Security Parameters Index (SPI) │
├──────────────────────────────────────────────────────────┤
│ Sequence Number │
├──────────────────────────────────────────────────────────┤
│ Integrity Check Value (ICV) – variable │
└──────────────────────────────────────────────────────────┘9.5 Chống Replay Attack bằng Sliding Window
|← Quá cũ →|←── Cửa sổ ──→|← Quá mới →|
A B C- Vùng A: Sequence number quá nhỏ → Loại bỏ
- Vùng B: Trong cửa sổ → Kiểm tra xem đã nhận chưa (bitmap)
- Vùng C: Sequence number mới → Dịch cửa sổ và chấp nhận
9.6 Encapsulated Security Payload (ESP)
┌──────────────────────────────────────────────────────────┐
│ Security Parameters Index (SPI) │
├──────────────────────────────────────────────────────────┤
│ Sequence Number │
├──────────────────────────────────────────────────────────┤
│ Payload Data (variable length) │◄─ Mã hóa
├──────────────────────────────────────────────────────────┤
│ Padding (0-255 bytes) | Pad Len | Next Hdr │◄─ Mã hóa
├──────────────────────────────────────────────────────────┤
│ Authentication Data (variable length) │◄─ MAC
└──────────────────────────────────────────────────────────┘ESP trong Transport Mode vs Tunnel Mode:
Transport Mode:
[IP Hdr | ESP Hdr | TCP/UDP/... | ESP Trlr | ESP Auth]
|←── Mã hóa ──→|
|←────────── MAC ──────────────────→|
Tunnel Mode:
[Outer IP | ESP Hdr | Inner IP | Payload | ESP Trlr | ESP Auth]
|←────── Mã hóa ────────→|
|←──────────────── MAC ───────────────────→|9.7 Quản lý khóa – Oakley KDP và ISAKMP
Oakley Key Determination Protocol là Diffie-Hellman có tăng cường:
| Tính năng | Mục đích |
|---|---|
| DH cơ bản | Thiết lập khóa bí mật chung |
| + Authentication | Chống tấn công Man-in-the-Middle |
| + Cookies | Chống tấn công Clogging (DoS) |
| + Nonce | Chống Replay Attack |
ISAKMP (Internet Security Association and Key Management Protocol) định nghĩa format của các message trao đổi:
┌────────────────┬────────────────┐
│ 64-bit Initiator Cookie │
├────────────────┬────────────────┤
│ 64-bit Responder Cookie │
├──────┬──────┬──┴───┬────────────┤
│Next │Major │Minor │ Exchange │
│Pload │ Ver │ Ver │ Type │
├──────┴──────┴──────┴────────────┤
│ 32-bit Message ID │
├─────────────────────────────────┤
│ 32-bit Length │
└─────────────────────────────────┘Các loại payload ISAKMP hỗ trợ: SA, Proposal, Transform, Key-exchange, Identification, Certificate, Hash, Signature, Nonce, Notification, Delete,…