Web 22/09/2026 5 phút

TLS handshake từng bước: xem tận mắt bằng openssl s_client

Trước khi một byte HTTPS chạy, client và server làm một cuộc bắt tay TLS: thỏa thuận phiên bản, chọn cipher, trao khóa tạm, và server chứng minh danh tính bằng chứng chỉ. Bài này dùng openssl s_client -msg để xem từng handshake message thật của TLS 1.3 (ClientHello, ServerHello, Certificate, Finished), so TLS 1.3 với 1.2, và đọc chuỗi chứng chỉ.

Web 22/09/2026 6 phút

Chứng chỉ X.509 và chuỗi tin cậy: vì sao trình duyệt tin server — tự dựng CA để hiểu

Cái ổ khóa xanh trên trình duyệt dựa trên một chuỗi tin cậy: cert của site được một CA ký, CA đó lại được CA gốc ký, và trình duyệt chỉ tin sẵn vài CA gốc. Bài này tự dựng một CA rồi ký cert cho web.local bằng openssl, đọc cấu trúc cert (subject, issuer, SAN, hạn), và chứng minh xác thực chuỗi thành công với CA đúng, thất bại với CA sai.

Bảo mật 22/09/2026 5 phút

Hàm băm mật mã: dấu vân tay một chiều của dữ liệu — đo bằng openssl

Hàm băm biến dữ liệu bất kỳ thành một chuỗi cố định như dấu vân tay. Nhưng nhiều người nhầm nó là mã hóa. Bài mở đầu sê-ri mật mã đo thật bốn tính chất bằng openssl: cùng đầu vào cho cùng digest, đổi một ký tự thì digest khác hoàn toàn (chỉ 2/64 ký tự trùng), kích thước luôn cố định, và vì sao MD5 đã vỡ còn SHA-256 thì chưa.

Bảo mật 22/09/2026 5 phút

HMAC: xác thực toàn vẹn kèm khóa bí mật — và vì sao đừng tự chế bằng SHA(key+msg)

Hash trần chỉ chống lỗi ngẫu nhiên, không chống kẻ địch: ai cũng sửa thông điệp rồi tính lại hash. HMAC trộn một khóa bí mật vào hàm băm nên chỉ người có khóa mới tạo được mã đúng. Bài này đo thật bằng openssl: sai khóa hay sửa một chữ số đều làm HMAC khác hẳn, và vì sao SHA256(key+msg) tự chế dính length-extension attack.

Bảo mật 22/09/2026 5 phút

AES và chế độ mã hóa: vì sao ECB lộ mẫu dữ liệu — thấy tận byte

AES mã hóa từng khối 16 byte; chế độ quyết định cách ghép các khối, và chọn sai thì mã hóa mà vẫn lộ thông tin. Bài này đo thật: cùng bốn khối giống hệt, ECB cho bốn khối mã GIỐNG HỆT (lộ mẫu — như ảnh chim cánh cụt kinh điển), còn CBC cho bốn khối khác nhau. Kèm vai trò của IV: cùng bản rõ, IV khác thì bản mã khác.

Bảo mật 22/09/2026 5 phút

RSA: mã hóa bất đối xứng — hai khóa, và vì sao không mã được dữ liệu lớn

AES mã nhanh nhưng cả hai bên phải chung một khóa bí mật — làm sao trao khóa qua mạng không lộ? RSA giải: mỗi người một cặp khóa công khai + riêng. Bài này đo thật bằng openssl: ai cũng mã bằng khóa công khai, chỉ khóa riêng giải được; giải sai khóa thất bại; và giới hạn cốt tử — RSA chỉ mã được vài trăm byte nên thực tế dùng mã hóa lai.