Trình tạo mã băm MD5

Thêm vào trang Siêu dữ liệu

Công cụ khác

Trình tạo mã băm MD5

Trình tạo mã băm MD5

MD5 là thuật toán băm 128 bit do nhà khoa học Ronald L. Rivest tạo ra vào đầu những năm 1990. Chữ viết tắt MD5 là viết tắt của Message Digest Phiên bản 5.

Mã hóa MD5 dựa trên hàm băm, bao gồm việc hình thành "dấu vân tay" hoặc "tổng" để xác minh thêm tính xác thực của chúng. Sử dụng phương pháp này, bạn có thể xác minh tính toàn vẹn của thông tin cũng như việc lưu trữ các hàm băm mật khẩu.

Lịch sử MD5

Lịch sử của Thuật toán phân loại thông báo (MD5) bắt đầu vào năm 1991, khi giáo sư Ronald L. Rivest của MIT báo cáo về việc tạo ra một thuật toán mới thay thế MD4 đã lỗi thời. Đối với MD4, nhà mật mã học người Đức Hans Dobbertin sau này đã viết về một số thiếu sót trong đó.

Rivest đã mô tả thuật toán MD5 mới trong RFC 1321.

Công việc về thuật toán được tiếp tục bởi các nhà nghiên cứu Bert den Boer và Anton Bosselars, những người vào năm 1993 đã chứng minh khả năng xảy ra va chạm giả trong MD5, khi các vectơ khởi tạo khác nhau có thể khớp với cùng một bản tóm tắt thông báo.

Hơn nữa, vào năm 1996, Hans Dobbertin tuyên bố đã tìm thấy một xung đột trong MD5. Vào thời điểm đó, nhiều thuật toán băm được ưa chuộng hơn đã được biết đến, chẳng hạn như hàm băm mật mã RIPEMD-160 - được phát triển bởi Hans Dobbertin, Anton Bosselars và Bart Prenel, Whirlpool - được phát triển bởi Vincent Raymen và Paulo Barreto và thuật toán băm mật mã SHA-1.

Do kích thước băm tương đối nhỏ (128 bit) trong MD5, người ta đã thảo luận về khả năng xảy ra các cuộc tấn công sinh nhật. Dự án MD5CRK do Jean-Luc Cook khởi xướng vào năm 2004 nhằm mục đích nghiên cứu lỗ hổng của thuật toán sử dụng các cuộc tấn công sinh nhật. Tuy nhiên, sau 5 tháng, vào ngày 17 tháng 8 năm 2004, dự án đã bị cắt giảm do phát hiện ra một lỗ hổng trong thuật toán bởi một nhóm các nhà mật mã Trung Quốc do Lai Xuejia đứng đầu.

Vào tháng 3 năm 2005, các nhà toán học và nhà mật mã học Benne de Weger, Arjen Lenstra và Wang Xiaoyun đã tạo ra hai tài liệu X.509 có cùng hàm băm và các khóa công khai khác nhau.

Một năm sau, vào tháng 3 năm 2006, nhà mật mã học người Séc Vlastimil Klima đã xuất bản một thuật toán cho phép bạn xác định các va chạm trên một máy tính đơn giản chỉ trong một phút. Thuật toán này được gọi là phương pháp "tạo đường hầm".

Do kết quả phân tích kết quả công việc, năm 2008, bộ phận của Cục Quản lý An ninh mạng Quốc gia thuộc Bộ An ninh Nội địa Hoa Kỳ (US-CERT) đã khuyến nghị tất cả những người tham gia vào quá trình phát triển của phần mềm, trang web cũng như người dùng mạng ngừng sử dụng thuật toán MD5 , bất kể mục đích ứng dụng của nó là gì. Lý do cho khuyến nghị như vậy là do tính không đáng tin cậy mà ông đã chứng minh trong quá trình nghiên cứu nó.

Vào tháng 12 năm 2010, các nhà mật mã học Trung Quốc Tao Xie và Feng Denguo đã phát hiện ra một xung đột tin nhắn 512 bit (một khối). Trước đây, xung đột chỉ được tìm thấy trong các tin nhắn có chiều dài từ hai khối trở lên. Sau đó, Mark Stevens đã đạt được kết quả tương tự bằng cách xuất bản các khối có cùng hàm băm MD5. Ông cũng đã phát triển một thuật toán để thu thập các va chạm kiểu này.

Tài liệu cuối cùng đặt dấu chấm hết cho lịch sử phát triển thuật toán MD5 là yêu cầu nhận xét - RFC 6151 (RFC là tài liệu chính thức được phát triển bởi Hội đồng Kỹ thuật Internet (IETF), mô tả các thông số kỹ thuật cho một thuật toán cụ thể technology), mà thực sự đã công nhận MD5 là một thuật toán băm không an toàn . Tài liệu khuyên bạn nên từ bỏ nó, chọn họ thuật toán mã hóa SHA-2 làm giải pháp thay thế.

Thuật toán MD5 đã thảo luận được coi là một trong những tiêu chuẩn thuật toán đầu tiên được sử dụng để kiểm tra tính toàn vẹn của tệp và lưu trữ mật khẩu trong cơ sở dữ liệu ứng dụng web.

Tuy nhiên, trên thực tế, chức năng tương đối đơn giản, độ dài đầu ra ngắn và tính đơn giản của các thao tác được thực hiện, là ưu điểm của thuật toán, cũng xác định nhược điểm của nó - MD5 đề cập đến các thuật toán dễ bị hack và có mức độ thấp bảo vệ chống lại các cuộc tấn công sinh nhật.

MD5 là gì?

MD5 là gì?

Thuật toán băm MD5 có thể được sử dụng trong nhiều lĩnh vực khác nhau liên quan đến việc tạo chữ ký số điện tử, mật khẩu an toàn, khóa mật mã trực tuyến. Tính năng này giúp kiểm tra tính toàn vẹn của thông tin trên PC.

Ban đầu, MD5 được coi là một thuật toán mã hóa tương đối mạnh, nhưng do những thiếu sót được xác định trong quá trình nghiên cứu, nên hiện tại nên thay thế nó bằng một thuật toán băm khác an toàn hơn.

Ví dụ sử dụng

Ưu điểm chính của thuật toán MD5 là phạm vi ứng dụng rộng rãi.

Thuật toán cho phép bạn kiểm tra tính xác thực và toàn vẹn của thông tin đã tải xuống

Ví dụ: cùng với các gói để cài đặt phần mềm, có một giá trị tổng kiểm tra để xác minh.

Người ta cũng sử dụng thuật toán MD5 để băm mật khẩu

Ví dụ: hệ điều hành Unix tích cực sử dụng thuật toán này làm công cụ băm. Cần lưu ý rằng trong một số hệ thống Linux, phương pháp MD5 cũng được sử dụng tích cực để lưu trữ mật khẩu.

Các cách lưu trữ mật khẩu sau đã được biết đến:

  • Lưu trữ tiêu chuẩn không băm. Nhược điểm của phương pháp này là nguy cơ rò rỉ thông tin cao khi cơ sở dữ liệu bị tấn công.
  • Chỉ các hàm băm mật khẩu mới được lưu trữ. Dữ liệu như vậy có thể dễ dàng tìm thấy bằng cách sử dụng các bảng băm được chuẩn bị trước. Để điền vào các bảng như vậy, các mật khẩu phổ biến có độ phức tạp thấp được sử dụng.
  • Thêm một vài ký tự vào mật khẩu có tên là "salt". Sau đó, kết quả sẽ được băm. Mật khẩu thu được do các hành động đó phải được lưu trữ ở dạng văn bản rõ ràng. Khi tìm kiếm mật khẩu được tạo theo cách này, các bảng sẽ không hữu ích.

Thuật toán băm MD5 có thể được sử dụng để xác minh các tệp được tải xuống từ web

Điều này có thể thực hiện được khi sử dụng các tiện ích chuyên dụng có thể thay đổi thuộc tính tệp và cho phép sử dụng thuật toán mã hóa hàm băm.

MD5 được sử dụng khi tạo ứng dụng web

Trong quá trình phát triển và định cấu hình hệ thống xác thực, tập lệnh hoặc bảng điều khiển, bạn có thể tạo mã băm cho từng dòng riêng lẻ.

Độ tin cậy của thuật toán MD5

Công nghệ băm mà chúng tôi gọi là thuật toán MD5 từ lâu đã được coi là khá đáng tin cậy. Đồng thời, không ai nói về lý tưởng của nó. Không có gì đảm bảo rằng thuật toán sẽ bất khả xâm phạm và cung cấp thông tin một trăm phần trăm bất khả xâm phạm.

Do kết quả nghiên cứu của một số nhà khoa học, một số thiếu sót nhất định của công nghệ này đã được xác định. Cái chính là một lỗ hổng do phát hiện xung đột trong quá trình mã hóa.

Xung đột là xác suất đạt được kết quả đầu ra giống nhau khi nhập dữ liệu đầu vào khác nhau. Xác suất này càng cao thì mức độ bảo vệ của thuật toán được sử dụng càng thấp.

Các nhà nghiên cứu đã tiến hành phân tích mật mã và xác định một số cách để bẻ khóa hàm băm MD5:

  • Một cuộc tấn công vũ phu có thể được coi là một phương pháp hack phổ biến. Tuy nhiên, nó cũng có nhược điểm - phương pháp này rất dài. Để chống lại nó, kỹ thuật tăng số lượng phím được sử dụng. Phương pháp này thường được sử dụng để đánh giá mức độ mạnh yếu của mã hóa mật khẩu.
  • RainbowCrack là một chương trình đặc biệt cho phép bạn tạo cơ sở băm, trên cơ sở đó việc bẻ khóa mật khẩu các chữ cái và số được thực hiện gần như ngay lập tức.
  • Để chọn mật khẩu bằng từ điển, cơ sở dữ liệu từ điển và các chương trình tạo sẵn được sử dụng.
  • Khi sử dụng phương pháp phát hiện va chạm, chúng lấy các giá trị hàm tương tự cho các thông báo khác nhau có cùng phần đầu. Phương pháp này được sử dụng tích cực vào cuối thế kỷ 20.

Công thức để có được mã băm giống hệt nhau là: MD5(4L1) = MD5(4L2).

Năm 2004, các nhà khoa học Trung Quốc đã phát hiện ra một lỗ hổng trong hệ thống giúp phát hiện một vụ va chạm trong thời gian ngắn.

Vào năm 2006, người ta đã tìm ra một phương pháp cho phép bạn phát hiện các tệp có hại trên máy tính thông thường bằng cái gọi là "đường hầm".

Mặc dù có một số vấn đề nhất định liên quan chủ yếu đến lỗ hổng MD5, thuật toán này vẫn được yêu cầu do nó được sử dụng tích cực trong quá trình phát triển độc lập các ứng dụng web cũng như trong các trường hợp cần thiết khác.