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. 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. 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. 3

    Đối chiếu đặc trưng

    b$) được đối chiếu với các đặc trưng đã biết.

  4. 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 +/.
  • 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