it-swarm-vi.com

Các băm SHA-256/512 được muối vẫn an toàn nếu băm và muối của chúng bị lộ?

Kịch bản: cơ sở dữ liệu mật khẩu băm và muối, bao gồm muối cho mỗi mật khẩu, bị đánh cắp bởi người dùng độc hại. Mật khẩu dài 6-10 ký tự và được lựa chọn bởi người dùng không có kỹ thuật.

Người dùng độc hại này có thể bẻ khóa các mật khẩu này không?

Tôi hiểu rằng MD5 và SHA-1 không còn an toàn nữa vì các công cụ khôi phục mật khẩu được hỗ trợ GPU có thể tính toán hàng tỷ băm này mỗi giây trên mỗi GPU.

Còn SHA-256 hay SHA-512 thì sao? Hiện tại họ có an toàn không? Thế còn trong một vài năm?

51
Seppo Erviälä

Câu hỏi không nêu rõ có bao nhiêu vòng băm được thực hiện. Và toàn bộ câu trả lời bản lề về điểm đó.

Tất cả các hàm băm là không an toàn nếu bạn chỉ sử dụng một lần lặp. Hàm băm, cho dù đó là SHA-1, hoặc một trong họ SHA-2, nên được lặp lại hàng ngàn lần. Tôi sẽ xem xét 10.000 lần lặp tối thiểu và 100.000 lần lặp là không hợp lý, với chi phí thấp cho phần cứng mạnh mẽ.

Mật khẩu ngắn cũng không an toàn. 8 ký tự phải là mức tối thiểu, ngay cả đối với các mục tiêu giá trị thấp (vì người dùng sử dụng lại cùng một mật khẩu cho nhiều ứng dụng).

Với thẻ đồ họa 150 đô la, bạn có thể thực hiện 680 triệu phép tính băm SHA-1 mỗi giây. Nếu bạn chỉ sử dụng một vòng băm, tất cả Mật khẩu 6 ký tự có thể được kiểm tra trong ít hơn 15 phút (giả sử tất cả 94 có thể in ASCII ký tự được sử dụng). Mỗi ký tự bổ sung nhân thời gian lên 94, vì vậy 7 ký tự yêu cầu một ngày, 8 ký tự cần 103 ngày cho thiết lập này. Hãy nhớ rằng, kịch bản này là một đứa trẻ 14 tuổi sử dụng GPU của mình, không phải là một tên tội phạm có tổ chức bằng tiền thật.

Bây giờ hãy xem xét hiệu quả của việc thực hiện nhiều lần lặp. Nếu 1.000 lần lặp băm được thực hiện, không gian mật khẩu 6 ký tự mất gần 12 ngày thay vì 15 phút. Một không gian 7 ký tự mất 3 năm. Nếu 20.000 lần lặp được sử dụng, những con số đó lần lượt lên tới 8 tháng và 60 năm. Tại thời điểm này, ngay cả mật khẩu ngắn cũng không thể được tìm kiếm toàn diện; Kẻ tấn công phải quay lại từ điển mật khẩu "rất có thể".

61
erickson

Muối có thể được coi là công khai thực tế theo định nghĩa .

Đối với việc sử dụng hàm băm nào và mức độ "an toàn" của nó, tôi sẽ tuân theo các khuyến nghị mà NIST đưa ra cho các cơ quan chính phủ Hoa Kỳ. Như bài viết trên Wikipedia nói:

SHA-1 đang được nghỉ hưu cho hầu hết các mục đích sử dụng của chính phủ; Viện Tiêu chuẩn và Công nghệ Quốc gia Hoa Kỳ cho biết, "Các cơ quan liên bang nên ngừng sử dụng SHA-1 cho ... các ứng dụng yêu cầu chống va chạm ngay khi thực tế và phải sử dụng họ hàm băm SHA-2 cho các ứng dụng này sau năm 2010 "

Bạn có thể suy đoán về các thuật toán khác nhau an toàn hoặc không an toàn như thế nào, nhưng tại sao phải bận tâm khi bạn có một thông số chính phủ Hoa Kỳ cho rằng đủ tốt để sử dụng riêng?

[biên tập]

Nhân tiện, câu hỏi của bạn dường như phản ánh sự hiểu lầm về cách các phân tích này được thực hiện. Có nhiều nhiều hơn cho hàm băm so với số bit của nó.

Brute-buộc băm 160 bit như SHA-1 đòi hỏi nỗ lực 2 ^ 160; điều đó chỉ đơn giản là sẽ không xảy ra, bất kể bạn ném bao nhiêu "GPU". Trong thực tế, nó có thể sẽ không xảy ra trong vòng đời của vũ trụ. (Đúng, bắt buộc phải va chạm đòi hỏi nỗ lực "chỉ" 2 ^ 80. Nhưng nó cũng cần 2 ^ 80 lưu trữ . Chúc may mắn với điều đó.)

Lý do MD5 và SHA-1 được coi là "có thể không an toàn" là do các điểm yếu đã được phát hiện trong mỗi thuật toán có thể làm giảm cách thức làm việc, thấp hơn nỗ lực vũ phu. Lý do để chuyển sang một thuật toán mới hơn (như SHA-2) là để tránh những điểm yếu đã biết; lý do sử dụng 256 bit là để cung cấp một số bộ đệm chống lại điểm yếu chưa biết . Nó không có gì để làm với "GPU"; để chống lại các cuộc tấn công vũ phu, 160 bit là rất nhiều.

Nhân tiện, báo cáo tương tự giữ cho tất cả mật mã.

Bây giờ, không thể nói quá nhiều về số người tại NSA biết về công cụ này hơn bạn hoặc tôi. Họ đưa ra khuyến nghị cho các cơ quan chính phủ Hoa Kỳ và ngành công nghiệp Hoa Kỳ thông qua NIST. bản thân nó là một chính phủ lớn trên thế giới, các khuyến nghị của NIST là quá đủ. Bỏ qua mọi "chuyên gia" tự xưng, những người cố gắng nói với bạn bằng cách khác; NSA tốt hơn những gì bạn có thể làm tưởng tượng.

Nếu đối thủ của bạn là một chính phủ lớn trên thế giới, không ai ở SO đủ điều kiện để giúp bạn. Và bạn có nhiều hơn vấn đề hơn chức năng băm để sử dụng.

[chỉnh sửa 2]

Tất nhiên tôi giả sử bạn đã sử dụng chức năng này như là một phần của sơ đồ băm mật khẩu tiêu chuẩn, như PKCS # 5 (còn được gọi là "PBKDF2"), và câu hỏi của bạn hoàn toàn là về chức năng băm nào sử dụng.

PBKDF2 khuyến nghị tối thiểu 1000 lần lặp, nhưng bạn có thể chọn bất cứ điều gì bạn muốn. Nỗ lực vũ phu của kẻ tấn công tăng lên một cách tuyến tính với con số đó, vì vậy 10000 lần lặp so với 1000 có nghĩa là chúng sẽ mất nhiều thời gian hơn 10 lần để bắt buộc mỗi mật khẩu.

17
Nemo

Nếu kẻ tấn công biết muối, anh ta/cô ta có thể tính toán một bảng Rainbow mới dựa trên giá trị muối.

Nó phụ thuộc vào thuật toán được sử dụng. Theo Coda Hale , MD5 và SHA họ thuật toán băm là mục đích chung và có nghĩa là tốc độ. Tóm lại, ông tiếp tục kết luận rằng những điều này là không đủ để ngăn chặn các cuộc tấn công từ điển và bcrypt là cách để đi, vì có nhiều thời gian thiết lập hơn liên quan đến việc bẻ khóa mật khẩu, làm chậm đáng kể kẻ tấn công. Đây là một bài viết thú vị khác về bcrypt .

Còn SHA-256 hay SHA-512 thì sao? Hiện tại họ có an toàn không? Thế còn trong một vài năm?

Được cảnh báo, có hai mặt của tranh luận này. Có bên bcrypt và bên SHA-256 và phía bên trên. Nếu bạn tin những người trong gia đình SHA, thì tôi tin rằng bạn sẽ an toàn hơn một vài năm với SHA-256, thậm chí một số người cho rằng SHA-1 với muối vẫn còn đủ tốt, nhưng nếu bạn muốn an toàn thì tôi sẽ sử dụng SHA-256. Có một diễn đàn cũng đề cập rằng MD5 vẫn còn 5-10 năm để được chứng minh là "không đáng tin cậy." Thật không may, tôi không thể đăng các liên kết với nó, bởi vì tôi đã đạt đến mức tối đa là hai.

Cá nhân tôi đang sử dụng SHA-256 với một loại muối, nhưng tôi chắc chắn sẽ phải đọc thêm về bcrypt và đánh giá lại. Hy vọng, điều này sẽ giúp. Đây là một loại câu hỏi bạn có thể dễ dàng dành vô số thời gian để nghiên cứu, nhưng dù sao cũng thú vị.

1
SantosLHalper