Nhận diện mật mã
Tìm thấy một chuỗi đáng ngờ trong đề CTF, tệp nhật ký hoặc tài liệu cũ mà không biết đó là Base64, hex, nhị phân, mã Morse hay thứ gì khác? Dán văn bản vào, công cụ nhận diện sẽ kiểm tra bộ ký tự và cấu trúc để xếp hạng các kiểu mã hóa và mật mã khả dĩ nhất. Đây là bước khởi đầu tốt trước khi dùng đến các bộ giải mã chuyên dụng.
Cách công cụ nhận diện mật mã hoạt động
-
1
Dán văn bản mã hóa
Bất kỳ chiều dài nào. Các chuỗi rất ngắn (< 20 ký tự) cho tín hiệu yếu hơn; văn bản dài hơn cho phép phân loại mạnh mẽ hơn.
-
2
Phân tích bộ ký tự
Phân phối các chữ cái, chữ số và ký hiệu thu hẹp các ứng cử viên (tất cả hệ thập lục phân, tất cả bảng chữ cái base64, tất cả chữ Latinh viết hoa, v.v.).
-
3
Đối chiếu đặc trưng
b$) được đối chiếu với các đặc trưng đã biết.
-
4
Dự đoán được xếp hạng
Tất cả ứng viên khớp được xếp hạng theo độ tin cậy và hiển thị dưới dạng phần trăm, để bạn biết nên thử bộ giải mã nào trước.
Heuristic phát hiện
| Manh mối | Mật mã / mã hóa khả dĩ |
|---|---|
Chỉ A-Z a-z 0-9 + / =, độ dài bội số của 4 |
Base64 |
Chỉ 0-9 a-f, chiều dài chẵn |
Hex |
Chỉ 0-1, từ 8 chữ số trở lên |
Nhị phân |
| Chỉ dấu chấm, gạch ngang, gạch chéo và dấu cách | Mã Morse |
| Chỉ chữ Latinh viết hoa, từ 5 chữ cái | Mật mã Caesar hoặc thay thế |
| Từ 20 chữ Latinh trở lên, không dấu cách | Mật mã đơn bảng chữ |
| Chữ Latinh lẫn hoa thường | Văn bản thuần, có thể không phải mật mã |
Ba đoạn phân cách bằng dấu chấm, bắt đầu với eyJ |
Mã thông báo JWT |
Bắt đầu với $2a$, $2b$ hoặc $2y$ |
Hàm băm bcrypt |
| Đúng 32 ký tự hex | Hàm băm MD5 |
| Đúng 40 ký tự hex | Hàm băm SHA-1 |
| Đúng 64 ký tự hex | Hàm băm SHA-256 |
Dấu hiệu ngoài bộ ký tự
- Base64: khối 4, phần đệm
=ở cuối, bao gồm+và/. - Caesar hoặc thay thế: chữ Latinh viết hoa, không có chữ số. Tần số giống văn bản thuần, chỉ bị dịch chuyển.
- Morse: chỉ dấu chấm, gạch ngang, gạch chéo, dấu cách.
- JWT: ba đoạn phân cách bằng dấu chấm, thường bắt đầu với
eyJ. - Băm (MD5/SHA): hex có độ dài cố định (32 ký tự cho MD5, 40 cho SHA-1, 64 cho SHA-256). Không thể đảo ngược, công cụ nhận diện sẽ đánh dấu điều này để bạn không mất công “giải mã”.
- Nhị phân: chuỗi dài các số 0 và 1, thường được nhóm thành 8.
Giới hạn nhận dạng tự động
- Đầu vào ngắn (<10 ký tự): độ tin cậy tổng thể thấp. Có thể là bất cứ điều gì.
- XOR tùy chỉnh với one-time pad: không thể phân biệt với dữ liệu ngẫu nhiên nếu không có khóa. Công cụ nhận diện sẽ không trả về kết quả khớp nào.
- Nhiều lớp: thủ thuật CTF phổ biến là Base64 → đảo ngược → Caesar → hex. Bóc từng lớp một.
- Ngôn ngữ nguồn không phải tiếng Anh: các kiểm tra chữ Latinh vẫn áp dụng, nhưng “văn bản thuần” chỉ là phỏng đoán; công cụ nhận diện không phát hiện ngôn ngữ.
Chấm điểm độ tin cậy
Mỗi ứng viên mang một độ tin cậy cố định dựa trên mức độ đặc trưng của nó. Trên 80%: nhiều khả năng đúng. 50-80%: hợp lý. Dưới 50%: khó xảy ra. Nhiều kết quả khớp thường có nghĩa là đầu vào quá ngắn hoặc là mật mã lai.
Câu hỏi thường gặp
Mọi kỹ thuật nhận dạng mật mã đều dựa vào các quy luật thống kê và số liệu thống kê cần có đủ dữ liệu để đáng tin cậy. Dưới 20 ký tự, nhiều mật mã trông giống hệt nhau; Hơn 50 ký tự cho tín hiệu chắc chắn.
Nó chỉ gợi ý sơ đồ khả dĩ nhất. Việc giải mã diễn ra trong các công cụ giải mã chuyên dụng và một số kiểu giải mã cần khóa mà bạn phải cung cấp.
Trước tiên hãy kiểm tra bộ ký tự (những chữ cái/ký hiệu nào xuất hiện), sau đó là độ dài và cấu trúc. Nếu vẫn chưa rõ ràng, hãy thử lần lượt các bộ giải mã nghi ngờ thông thường (Base64, hex, Caesar) - trên CTF, tần số + đoán thường sẽ phá vỡ nó sau một vài lần thử.
Có thể không phải là kết quả trùng khớp được đặt tên: nó trả về không có ứng viên hoặc một phỏng đoán có độ tin cậy thấp. Hãy so sánh bảng chữ cái và cấu trúc của văn bản mã hóa với bảng heuristic ở trên để đảo ngược các kế hoạch tự chế đơn giản.
Công cụ liên quan
Bộ mã hóa mật mã Caesar
Mã hóa và giải mã văn bản bằng mật mã Caesar. Hỗ trợ mọi độ dịch 1-25, có ROT13 như một trường hợp đặc biệt, giữ nguyên dấu câu và chữ hoa/thường.
Trình tạo bcrypt
Tạo hash bcrypt từ mật khẩu plaintext. Tùy chỉnh cost factor từ 4 đến 13, tương thích với Laravel, Django, Node và PHP.
Mã hóa / giải mã AES
Mã hóa và giải mã văn bản rủi ro thấp bằng các cipher AES của OpenSSL. Cụm mật khẩu được băm SHA-256 và đầu ra Base64 gồm IV cộng bản mã.
Bộ mã hóa và giải mã Base85
Mã hóa và giải mã Base85 theo biến thể Adobe Ascii85, biến thể dùng bên trong tệp PostScript và PDF. Gọn hơn Base64 cho dữ liệu nhị phân.
Bộ mã hóa và giải mã Base32
Mã hóa và giải mã chuỗi Base32 bằng bảng chữ cái RFC 4648. Hữu ích cho TOTP secrets, token không phân biệt hoa thường và mã định danh do người nhập.
Trình tạo hash bcrypt
Tạo hash bcrypt hoặc verify mật khẩu plaintext với hash bcrypt hiện có. Chế độ tạo và verify đặt cạnh nhau trong một công cụ.