Điểm:1

Tốc độ của hàm băm có phải là nhược điểm khi lưu trữ mật khẩu được băm trong cơ sở dữ liệu không?

lá cờ cn

Tôi biết một trong những ưu điểm của hàm băm là chúng rất nhanh.Tuy nhiên, tôi đã đọc ở đâu đó (tôi không biết chính xác ở đâu) rằng tốc độ là một bất lợi cho việc băm mật khẩu khi lưu trữ chúng trong cơ sở dữ liệu, nhưng tại sao lại như vậy? Ai đó sẽ giải thích cho tôi nếu tốc độ nhanh là một bất lợi cho việc băm mật khẩu và tại sao lại như vậy? (Nếu có thể, bạn cũng có thể viết một số liên kết đến các trang web/bài báo mô tả điều này không?) Ngoài ra, có những tình huống khác mà tốc độ nhanh là một bất lợi cho các hàm băm không? Cảm ơn trước sự giúp đỡ của bạn.

Swashbuckler avatar
lá cờ mc
Đó là bởi vì bạn có thể băm mật khẩu càng nhanh thì càng dễ dàng sử dụng mật khẩu đã băm trước đó. Bạn không muốn điều đó diễn ra nhanh, bạn muốn điều đó diễn ra chậm để kẻ tấn công có nhiều việc phải làm hơn và phải đầu tư nhiều hơn (thời gian, công sức, tiền bạc) vào việc tìm ra mật khẩu.
Baldovín Cadena Mejía avatar
lá cờ cn
Cảm ơn bạn rất nhiều @Swashbuckler.Vì vậy, quá trình càng chậm thì kẻ tấn công càng mất nhiều thời gian để tạo ra mật khẩu băm. Bây giờ tôi hiểu nó. Cảm ơn !
lá cờ jp
Cơ sở dữ liệu mật khẩu bị rò rỉ/bị đánh cắp và bạn muốn gây khó khăn nhất có thể cho người đã đánh cắp cơ sở dữ liệu của bạn để khôi phục mật khẩu. [Bài đăng trên blog này](https://medium.com/@cmcorrales3/password-hashes-how-they-work-how-theyre-hacked-and-how-to-maximize-security-e04b15ed98d) là một đoạn giới thiệu khá hay ; đồng thời, hãy đọc [câu hỏi và trả lời về security.SE](https://security.stackexchange.com/questions/211/how-to-securely-hash-passwords), [câu hỏi này tại đây về crypto.SE](https:// crypto.stackexchange.com/questions/72918) và [Wikipedia](https://en.wikipedia.org/wiki/Key_stretching).
lá cờ kr
@GordonDavisson: Chuyển nhận xét của bạn thành câu trả lời. Nó có thể hữu ích cho những người khác. Nhận xét có thể bị xóa và câu trả lời hay của bạn trong nhận xét sẽ biến mất.
lá cờ kr
@Swashbuckler: Tôi cũng khuyên bạn nên chuyển nhận xét của mình thành câu trả lời. Bình luận có thể bị xóa. Nhưng câu trả lời sẽ vẫn còn và có thể giúp đỡ người khác.
Điểm:1
lá cờ cn

Tốc độ có thể là một lợi thế vì lý do này và bất lợi cho lý do khác.

Khi nói đến bảo mật mật khẩu, các yêu cầu về bộ nhớ/cpu thấp của hàm băm mật mã mang lại một bất lợi, cụ thể là nếu các bản ghi hoặc cơ sở dữ liệu bị lộ hoặc bị tấn công, kẻ tấn công có rất ít việc phải làm để biến các hàm băm đó thành văn bản gốc mật khẩu mở khóa.

Điều này là do mật khẩu thường ngắn và có ít entropy hơn so với bảo mật hình ảnh trước của hàm băm. Nếu mật khẩu lớn và ngẫu nhiên, chẳng hạn như 32 chữ cái và số ngẫu nhiên, thì một lần lặp nhanh duy nhất của hàm băm là quá đủ.

Để bảo mật, bạn muốn một "chức năng băm mật khẩu" chiếm càng nhiều thời gian (tài nguyên tính toán) và bộ nhớ càng tốt để làm chậm các cuộc tấn công hàng loạt. Tuy nhiên, điều này trở thành một bất lợi đối với máy chủ sẽ so sánh hàm băm với giá trị cơ sở dữ liệu, vì trong hầu hết các trường hợp, máy chủ đó phải tính toán hàm băm từ mật khẩu do người dùng cung cấp.

Kẻ tấn công có thể khai thác nhược điểm đó bằng cách tiêu tốn một lượng lớn tài nguyên thông qua các nỗ lực đăng nhập hàng loạt được phối hợp của những tên người dùng đã biết hoặc dự kiến, thực sự là một cuộc tấn công từ chối dịch vụ băng thông thấp, máy chủ quá bận rộn để theo kịp các nỗ lực đăng nhập giả mà người dùng thực không thể đăng nhập.Điều này có thể được giảm thiểu bằng cách điều chỉnh các nỗ lực truy cập trên mỗi địa chỉ IP, mỗi tên người dùng và cũng có thể thêm độ trễ trước khi lỗi đăng nhập được hiển thị. Nếu người dùng không tồn tại, máy chủ sẽ không băm mật khẩu, nhưng sẽ trả về lỗi với độ trễ thích hợp như thể người dùng đã tồn tại, để kẻ tấn công không thể suy ra sự hiện diện của tên người dùng trong cơ sở dữ liệu.

PBKDF2 là một hàm băm mật khẩu cực kỳ phổ biến và cốt lõi của nó thường sử dụng HMAC, vì vậy, một số vòng như 40000 vòng PBKDF2-HMAC-SHA256 thực sự có thể mất khoảng 80000 lần so với một lần lặp lại hàm băm. Nếu trước đây máy chủ có thể thực hiện 4 tỷ lần lặp băm mỗi giây, thì giờ đây, máy chủ chỉ có thể thực hiện 50000 lần băm PBKDF2 trước khi làm bão hòa hoàn toàn CPU của nó. Nếu bạn muốn không quá 10% tài nguyên được phân bổ cho việc kiểm tra mật khẩu, thì nó cần phải được điều chỉnh ở mức 5000 lần đăng nhập mỗi giây... nghe có vẻ nhiều, nhưng bạn nghĩ có bao nhiêu người đăng nhập vào một thứ như Gmail, Lastpass hoặc Salesforce vào khoảng 9 giờ sáng Thứ Hai?

Phải có một cấu hình cân bằng và đủ phần cứng để xử lý tất cả thông tin đăng nhập của người dùng ngay cả khi tải nặng mà không gây ra độ trễ đáng kể cho những người dùng đó và ngăn những kẻ xấu từ chối dịch vụ đối với những người dùng đó. Độ mạnh của hàm băm mật khẩu cũng có thể cần thay đổi theo thời gian khi tài nguyên của kẻ tấn công tăng lên, mô hình mối đe dọa thay đổi, v.v. Chi phí cho thiệt hại về danh tiếng có thể cao hơn nhiều lần so với chi phí phần cứng để thực hiện hàm băm mật khẩu rất đắt đỏ.

Có những tình huống khác mà nhanh chóng là một bất lợi? Tôi thực sự không thể nghĩ ra bất kỳ điều gì, các hàm băm thường được sử dụng như một phần của sơ đồ, chẳng hạn như chữ ký số có liên quan đến thuật toán bất đối xứng đắt tiền về mặt tính toán, bảo mật trong trường hợp đó đến từ kích thước của hàm băm và sức mạnh hiệu quả của khóa ký, không phải tốc độ của hàm băm.

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.