2013-05-23 34 views
6

Chỉ là một câu hỏi đơn giản, như im tryng để hiểu thêm một chút về hàm băm, tôi biết cách chúng hoạt động và chúng làm gì nhưng chúng an toàn như thế nào?Làm thế nào an toàn là MD5 và SHA1

Tôi sẽ đánh giá cao một câu trả lời đơn giản không liên kết vì tôi không bao giờ thấy chúng hữu ích.

Trả lời

22

Với công nghệ ngày nay, cả hai có thể là cracked. Ngoài ra còn có hash dictionaries giúp tìm hiểu hàm băm có nghĩa là gì đối với các chuỗi ngắn.

Nếu chúng an toàn hay không, tùy thuộc vào những gì bạn muốn bảo vệ. Nếu bạn đang xây dựng một hệ thống ngân hàng trực tuyến, họ không được khuyến cáo gì cả (tùy thuộc vào nơi mà hệ thống ngân hàng trực tuyến mà họ sử dụng). Nếu bạn triển khai chúng chỉ dành cho băm mật khẩu người dùng trực tuyến, ví dụ: nó cũng phụ thuộc vào: bạn có đáng giá đến mức độ trang web không, bao nhiêu người dùng bạn có, v.v.

Lời khuyên chung là đầu tiên nghiên cứu mức độ bảo mật bạn muốn đạt được trong kịch bản của bạn và quyết định công nghệ nào (trong trường hợp này băm) bạn sử dụng. Cũng không có bảo mật 100%. Cũng đừng đầu tư quá nhiều thời gian vào một vấn đề an ninh và bỏ qua những người khác có thể không rõ ràng hoặc kỹ thuật (lỗi của con người, an ninh bởi sự tối tăm, kỹ thuật con người).

Kiểm tra này ra:

  1. tạo ra băm cho một từ nhỏ here. Ví dụ: password có hàm băm MD5: 5f4dcc3b5aa765d61d8327deb882cf99
  2. giờ hãy đi here và hỏi lại văn bản.

Ví dụ trên chỉ là một trong nhiều (tấn công từ điển) có thể có cách để crack chúng. Ngoài ra các bài viết wikipedia của mỗi thuật toán bảo mật cung cấp cho bạn một danh sách các lỗ hổng bảo mật.

CŨNG SEE:

SIDE LƯU Ý

Never trang web let tạo một hash cho một mật khẩu thực sự mà bạn có (trong trường hợp bạn cần nó ở đâu đó để kiểm tra hoặc lý do khác). Luôn luôn sử dụng mật khẩu thử nghiệm hoặc tạo băm trên máy cục bộ của bạn. Mọi người xây dựng cơ sở dữ liệu băm (tin tặc hay không), cũng cung cấp công cụ băm trực tuyến để chụp băm.

+0

Cảm ơn bạn rất hữu ích – user2160949

+0

Nếu bạn thấy nó hữu ích, hãy bỏ phiếu lên! Không phải (chỉ) cho danh tiếng của tôi, nhưng đối với những người khác có cùng một câu hỏi. –

0

Đây là sự so sánh giữa MD5 và SHA1. Bạn có thể có được một ý tưởng rõ ràng về cái nào tốt hơn.

enter image description here

+0

Vì lợi ích đầy đủ, đã có 'tấn công thành công' trên SHA-1 trong đó google tìm thấy hai thông điệp khác nhau tạo ra cùng một băm. MD5 không an toàn như có thể. Nếu bạn có thể, không sử dụng hoặc, nhưng đi đến SHA-512 hoặc các hàm băm an toàn hơn. – Ordoshsen

0

Khi thảo luận an ninh băm vs brute force không nên chúng tôi mất một số chi tiết trong tài khoản?

Trước hết, là md5 dữ liệu bị xáo trộn được lưu trữ trong vùng tin cậy hay không. Nói cách khác, chúng ta có tin tưởng quản trị viên db của chúng tôi không thử đọc mật khẩu người dùng từ cơ sở dữ liệu và lực lượng vũ phu đảo ngược chúng hay không. Điều này có thể được tin cậy hoặc kỹ thuật được cấp thông qua một số thủ tục bảo mật (quản trị viên db có thể không có quyền truy cập vào bảng lưu trữ băm mật khẩu, điều này có thể chỉ truy cập được cho nhân viên bảo mật).

Một số khác là khả năng đăng nhập + băm mật khẩu băm từ giao dịch khách hàng hoặc máy khách-máy chủ. Nếu không có con ngựa trojan trong máy khách và giao tiếp giữa máy khách và máy chủ được bảo mật TLS, thì cặp này sẽ được bảo mật khỏi các cuộc tấn công giữa các người.

Những gì còn lại cho kẻ tấn công là (ngoài kỹ thuật xã hội, xss và lưu trữ bảo mật) để gửi số lượng yêu cầu được tạo tới máy chủ đăng nhập và xem liệu có thành công hay không. Điều này có thể được quản lý quá:

  • sau khi cả hai đăng nhập thành công và không thành công có thể có một số ngẫu nhiên thời gian trễ trước khi dịch vụ đáp ứng để làm chậm quá trình brute force
  • quá trình đăng nhập
  • có thể xếp hàng yêu cầu đăng nhập song song từ cùng một IP và đăng nhập song song với tên đăng nhập giống nhau (để thực thi các quy tắc trên)
  • có thể có giới hạn thực hiện cho lần đăng nhập không thành công, sau khi nó vượt quá tài khoản bị khóa và cảnh báo an ninh được đưa ra

tôi tin rằng khi các quy tắc trên được triển khai, hàm băm md5 đủ an toàn. Trong thực tế nó là như nhau an toàn như mật khẩu đơn giản :) Tổng hợp nó lên nếu chúng tôi tin rằng băm md5 của chúng tôi là an toàn, chúng tôi chỉ đơn giản là có thể để lại mật khẩu phát hiện. Xoắn là ngày nay không có sử dụng md5 ở tất cả (trong vấn đề mật khẩu obfuscating). Những gì người ta nên làm là để cho nó đồng bằng trong việc lưu trữ trong khu vực đáng tin cậy hoặc sử dụng một số công cụ mạnh mẽ hơn (như SHA) khi khu vực đáng tin cậy không được quản lý. Và theo ý kiến ​​của tôi, khu vực đáng tin cậy vẫn có nguy cơ bị phá vỡ bảo mật máy chủ (lưu trữ dịch vụ), vì vậy không có vấn đề gì đơn giản là làm xáo trộn mật khẩu với SHA (hoặc tốt hơn) :) Điều này không tốn kém để làm tăng mật khẩu băm và mang lại một số lợi ích (giảm rủi ro) vì vậy lời khuyên của tôi không bao giờ được xem lại cuộc thảo luận này nữa.

Ngay cả khi SHA băm tất cả các quy tắc bảo mật được nói nên được triển khai. Đặc biệt TLS ngăn chặn việc xâm phạm cặp đăng nhập + mật khẩu (không có vấn đề mật khẩu được gửi đồng bằng hoặc băm với md5 hoặc sha nó có thể cho phép đăng nhập thành công). Các nỗ lực đăng nhập cũng cần được theo dõi. Ngay cả khi chúng tôi tin rằng trang web của chúng tôi là bằng chứng chống bạo lực, thật tốt khi biết ai đó đang cố gắng phá vỡ an ninh.

Các vấn đề liên quan