Trình tạo MD4

5 trên 2 xếp hạng

Trình tạo MD4 là công cụ miễn phí giúp tạo hàm băm MD4 128 bit từ bất kỳ chuỗi đầu vào nào và trả về kết quả trong trường Mã băm MD4.

Hàm băm MD4 là gì và còn an toàn không?

Hàm băm MD4 là dấu vân tay có độ dài cố định của dữ liệu, nhưng MD4 hiện đã bị phá vỡ về mặt mật mã và không nên dùng cho các tác vụ cần bảo mật. MD4 chuyển đầu vào có độ dài bất kỳ thành một giá trị tóm lược có độ dài cố định. Thuật toán này được thiết kế để hoạt động một chiều, vì vậy kết quả không chứa đầu vào ban đầu.

Ronald Rivest thiết kế MD4 vào năm 1990. Thuật toán tạo ra giá trị tóm lược 128 bit, thường được biểu diễn bằng 32 ký tự thập lục phân, đồng thời được tối ưu để chạy nhanh trên máy tính 32 bit. MD4 có ảnh hưởng đến các thuật toán ra đời sau, trong đó có MD5, nhưng các nhà nghiên cứu đã phát hiện những điểm yếu nghiêm trọng về va chạm ngay sau khi thuật toán được công bố. Các cuộc tấn công va chạm trong thực tế cho phép kẻ tấn công tạo ra nhiều đầu vào khác nhau nhưng có cùng giá trị tóm lược MD4.

Về mặt mật mã, MD4 không phù hợp với chữ ký số, chứng chỉ, xác thực, kiểm tra phần mềm và bất kỳ phép kiểm tra tính toàn vẹn nào mà kẻ tấn công có thể thay đổi dữ liệu. Tuyệt đối không dùng MD4 để lưu mật khẩu. Các hệ thống hiện đại phải lưu mật khẩu bằng hàm băm có salt và được thiết kế để xử lý chậm, chẳng hạn như Argon2id, scrypt, bcrypt hoặc PBKDF2.

Cách dùng Trình tạo MD4

Nhập chính xác chuỗi cần băm, tạo kết quả rồi sao chép giá trị hiển thị trong trường Mã băm MD4. Giá trị tóm lược MD4 đại diện cho các byte đầu vào được cung cấp cho thuật toán, vì vậy chỉ một thay đổi nhỏ cũng tạo ra kết quả khác.

  1. Kiểm tra xem văn bản có dấu cách, dấu xuống dòng hoặc định dạng sao chép ngoài ý muốn hay không.
  2. Nhập chuỗi rồi chạy trình tạo.
  3. Sao chép kết quả 128 bit từ trường Mã băm MD4.
  4. Khi so sánh với một giá trị khác, hãy xác nhận rằng cả hai hệ thống dùng cùng cách mã hóa ký tự và cùng các byte đầu vào.

Ví dụ, chuỗi invoice-042 tạo ra một giá trị tóm lược MD4 128 bit, thường được hiển thị dưới dạng 32 ký tự thập lục phân. Nếu đổi đầu vào thành invoice-043, kết quả sẽ khác. Độ dài của giá trị tóm lược vẫn không đổi, dù đầu vào chỉ có một ký tự hay là một đoạn văn bản dài.

Quá trình xử lý diễn ra trên máy chủ. Dữ liệu đầu vào được gửi đến máy chủ qua HTTPS và không được lưu trữ. Vì văn bản phải rời khỏi thiết bị để được xử lý, đừng gửi mật khẩu, mã thông báo xác thực, khóa riêng hoặc thông tin bí mật khác.

Có thể giải mã hoặc đảo ngược MD4 không?

Không thể giải mã hàm băm MD4 vì băm không phải là mã hóa và không có khóa giải mã. MD4 loại bỏ một phần thông tin khi tạo kết quả 128 bit có độ dài cố định, nên giá trị tóm lược không chứa bản sao có thể khôi phục của đầu vào ban đầu.

Tuy vậy, giá trị tóm lược MD4 không phải là dữ liệu bí mật. Kẻ tấn công có thể đoán các đầu vào có khả năng xuất hiện, băm từng giá trị rồi so sánh kết quả. Mật khẩu ngắn, cụm từ phổ biến, số điện thoại và mã định danh dễ đoán thường bị tìm ra bằng cách dò từ điển hoặc dùng danh sách tính sẵn. Tấn công va chạm MD4 khác với tấn công đảo ngược. Va chạm là tìm hai đầu vào có cùng hàm băm, còn đảo ngược là cố xác định đầu vào cụ thể đứng sau một hàm băm đã biết.

MD4 vẫn xuất hiện ở đâu?

MD4 hiện chủ yếu còn xuất hiện trong các hệ thống và định dạng cũ, nơi không thể thay đổi thuật toán mà không làm mất khả năng tương thích. Những trường hợp sử dụng còn lại không có nghĩa là MD4 phù hợp với các thiết kế bảo mật mới.

  • Xác thực Windows cũ sử dụng MD4 trong định dạng hàm băm NT. Đây là yêu cầu về khả năng tương thích, không phải phương án lưu mật khẩu được khuyến nghị.
  • Mã định danh eDonkey và eMule sử dụng hàm băm tệp và khối dựa trên MD4 trong cơ chế ed2k.
  • Bản ghi tổng kiểm cũ có thể yêu cầu MD4 khi đối chiếu tệp lưu trữ với các giá trị đã được công bố trước đó.
  • Quy trình khử trùng lặp khép kín có thể tiếp tục dùng MD4 khi đầu vào đáng tin cậy và khả năng tương thích với chỉ mục hiện có quan trọng hơn khả năng chống va chạm do hành vi độc hại.

Với hệ thống tổng kiểm hoặc kiểm tra tính toàn vẹn mới, hãy dùng một giải pháp hiện hành thay cho MD4, chẳng hạn như SHA-256 hoặc SHA-3. Chuyển từ MD4 sang MD5 không giải quyết được vấn đề va chạm vì MD5 cũng đã bị phá vỡ. Trình tạo MD5 chỉ hữu ích khi một định dạng cũ yêu cầu rõ ràng MD5, còn Trình tạo Whirlpool phù hợp khi một đặc tả hiện có yêu cầu Whirlpool.

Vì sao hai kết quả MD4 đôi khi khác nhau?

Hai kết quả MD4 sẽ khác nhau nếu các byte đầu vào bên dưới khác nhau, ngay cả khi văn bản hiển thị trông giống nhau. Hãy kiểm tra cách mã hóa, khoảng trắng và dấu câu trước khi cho rằng một trong hai kết quả bị sai.

  • Dấu cách ở đầu và cuối là một phần của dữ liệu, vì vậy chúng làm thay đổi giá trị tóm lược.
  • Dấu xuống dòng trên Windows và Unix dùng các chuỗi byte khác nhau, nên văn bản nhiều dòng được sao chép có thể tạo ra hàm băm khác nhau.
  • Chữ hoa và chữ thường là hai đầu vào khác nhau.
  • Ký tự có dấu có thể tồn tại ở dạng Unicode dựng sẵn hoặc dạng phân tách. Chúng trông giống hệt nhau nhưng dùng các byte khác nhau.
  • Văn bản phụ thuộc vào cách mã hóa ký tự được dùng để chuyển thành byte.
  • Một số như 00123 được băm dưới dạng văn bản khi cung cấp dưới dạng chuỗi. Xóa các số 0 ở đầu sẽ làm thay đổi đầu vào.
  • Chuỗi byte rỗng có giá trị tóm lược MD4 hợp lệ, mặc dù giao diện có thể yêu cầu nhập dữ liệu trước khi chạy.

MD4 luôn trả về 128 bit, bất kể độ dài đầu vào. Với đầu vào rất dài, kích thước cố định của giá trị tóm lược không cho biết đã xử lý bao nhiêu văn bản hoặc dữ liệu.

Câu hỏi thường gặp

MD4 có giống MD5 không?

Không. MD5 là thuật toán ra đời sau, được Ronald Rivest công bố vào năm 1992, dù cả MD4 và MD5 đều tạo ra giá trị tóm lược 128 bit. Kết quả của hai thuật toán không thể dùng thay thế cho nhau và cả hai đều có điểm yếu va chạm có thể khai thác trong thực tế.

Chữ hoa, chữ thường trong hàm băm MD4 có quan trọng không?

Cách biểu diễn thập lục phân bằng chữ hoa và chữ thường có thể mô tả cùng một chuỗi byte của giá trị tóm lược. Ví dụ, các chữ cái thập lục phân A–F và a–f có cùng giá trị số. Một số phần mềm so sánh văn bản có phân biệt chữ hoa chữ thường, vì vậy khi cần, hãy chuẩn hóa cách biểu diễn hoặc so sánh các byte đã giải mã.

Vì sao hàm băm NT của Windows lại liên quan đến MD4?

Hàm băm NT được tính từ mật khẩu mã hóa theo UTF-16LE rồi xử lý bằng MD4. Định dạng này không có salt và tính toán nhanh, khiến các hàm băm bị thu thập dễ tổn thương trước các cuộc tấn công dò đoán. Trong một số cơ chế xác thực cũ, định dạng này cũng cho phép tấn công pass-the-hash, khi chỉ cần có hàm băm là có thể đủ để xác thực mà không cần khôi phục mật khẩu.

Có thể dùng MD4 làm mã xác thực thông điệp không?

Cách làm đơn giản là thêm bí mật vào trước thông điệp rồi băm bằng MD4 không an toàn, một phần vì MD4 có đặc tính mở rộng độ dài. Một số đặc tả cũ có quy định HMAC-MD4, nhưng chỉ nên dùng khi bắt buộc phải duy trì khả năng tương thích. Các hệ thống mới nên sử dụng cơ chế HMAC hiện hành, chẳng hạn như HMAC-SHA-256.

Trình tạo này có thể tính MD4 cho tệp không?

Công cụ này được thiết kế cho đầu vào dạng chuỗi, vì vậy đừng cho rằng dán nội dung tệp sẽ tương đương với băm các byte của tệp gốc. Tệp nhị phân, quá trình chuyển đổi ký tự và dấu xuống dòng bị thay đổi đều có thể tạo ra kết quả khác. Nếu cần tính tổng kiểm cho một tệp cũ, hãy dùng tiện ích băm tệp cục bộ có hỗ trợ rõ ràng MD4, sau đó xác minh xem giá trị dự kiến áp dụng cho toàn bộ tệp hay cho định dạng chia khối như ed2k.

Các công cụ tương tự

Trình tạo MD2

Tạo một hàm băm MD2 cho bất kỳ chuỗi đầu vào nào.

4,789
28
Trình tạo MD5

Tạo một mã băm MD5 có độ dài 32 ký tự cho bất kỳ đầu vào chuỗi nào.

4,711
33

Công cụ phổ biến