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

ChaCha20-Poly1305: mã hoá dòng + xác thực trong một bước, và sự thật về tốc độ

ChaCha20-Poly1305 hay được giới thiệu là 'nhanh hơn AES' — nhưng đo thật trên máy có tăng tốc AES phần cứng thì AES-GCM lại nhanh gấp đôi. Bài này dựng demo thật bằng python cryptography: mã hoá AEAD sinh tag 16 byte, lật 1 bit ciphertext bị bắt ngay (InvalidTag), đổi AAD cũng bị bắt, và đo tốc độ trung thực trên CPU có lệnh AES.

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

mTLS: khi server cũng đòi client trình chứng chỉ — xác thực hai chiều tận tầng TLS

HTTPS thường chỉ có client xác minh server. mTLS lật thêm một nửa: server cũng bắt client trình chứng chỉ hợp lệ. Bài này tự dựng một CA nội bộ bằng openssl, ký cert cho server và client, rồi đo output thật ba tình huống: client hợp lệ bắt tay thành công, client không cert bị từ chối, và client giả cùng tên nhưng CA khác cũng bị chặn — vì danh tính đến từ chữ ký CA, không phải cái tên.

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

Vì sao KHÔNG lưu mật khẩu bằng SHA trần: salt, hàm cố ý chậm — đo thật

SHA-256 rất tốt để kiểm toàn vẹn, nhưng dùng nó lưu mật khẩu là sai lầm nguy hiểm — vì nó quá nhanh. Bài này đo thật: SHA-256 chạy 2,3 triệu hash/giây (kẻ bẻ khóa mơ ước), còn PBKDF2 cố ý chậm chỉ 10/giây — chậm hơn 231.000 lần mà người đăng nhập không hề thấy. Cùng salt để rainbow table vô dụng.

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 7 phút

Argon2: vì sao băm mật khẩu phải CHẬM và tốn bộ nhớ có chủ đích

Dùng SHA-256 để băm mật khẩu là một sai lầm bảo mật kinh điển — vì nó quá nhanh. Bài này đo THẬT bằng Go: SHA-256 chạy 31 triệu lần/giây mỗi lõi, trong khi Argon2id chậm hơn ~559.000 lần có chủ đích. Đo cách tăng bộ nhớ (8→128 MiB) kéo thời gian băm từ 3,7 ms lên 324 ms, và vì sao tính bộ-nhớ-cứng của Argon2 vô hiệu hoá GPU dò mật khẩu.