Điểm:0

Ở mức độ nào thì số lần lặp lại PKBDF-HMAC-SHA1 cao bù cho entropy cụm mật khẩu yếu?

lá cờ cn

Mất máy tính xách tay được mã hóa LUKS vào cuối năm 2019 và hiện đang cố gắng tìm ra khả năng kẻ tấn công rất tinh vi có thể đột nhập.

Vùng chứa LUKS được tạo vào giữa năm 2017 với cài đặt mặc định LUKS1.

CPU tôi sử dụng hồi đó là một Intel Core i7-6700K mà tôi vẫn còn.

Tôi đã chạy một số điểm chuẩn với điểm chuẩn cryptsetup đã tạo ra giá trị sau cho PBKDF2-sha1.

PBKDF2-sha1 1659139 lần lặp mỗi giây cho khóa 256 bit

Tôi không thể nhớ chính xác mật khẩu mình đã sử dụng (tôi có quá nhiều) ngoại trừ thực tế là nó dài ít nhất 14 ký tự và chứa [a-z0-9] và nó không có trong bất kỳ từ điển nào (đã kiểm tra rockyou2021.txt).

Tôi đã tìm thấy một bảng điểm chuẩn trên GitHub bằng cách sử dụng Nvidia GeForce RTX 3090.

Hashmode: 12000 - PBKDF2-HMAC-SHA1 (Số lần lặp lại: 999)
Tốc độ.#1.........: 9240,9 kH/s (47,48ms) @ Gia tốc:16 Vòng lặp:499 Thr:1024 Vec:1

Hashmode: 12001 - Atlassian (PBKDF2-HMAC-SHA1) (Lặp lại: 9999)
Tốc độ.#1.........: 923,3 kH/s (72,49ms) @ Gia tốc:8 Vòng lặp:1024 Thr:1024 Vec:1

Hashmode: 22600 - Mật mã ứng dụng Telegram Desktop (PBKDF2-HMAC-SHA1) (Lặp lại: 3999)
Tốc độ.#1.........: 328,7 kH/s (63,58ms) @ Gia tốc:8 Vòng lặp:128 Thr:1024 Vec:1

Dựa trên những con số này, tôi kết luận rằng GPU có thể tính toán 9249 kH/s cho 1000 lần lặp. Nếu số lần lặp tăng từ 1659 lên 1659139, điều đó có nghĩa là tốc độ GPU sẽ giảm xuống: $\frac{9249 kH/s}{1659}$ = 5575 H/s. Điều đó có nghĩa là kẻ tấn công chỉ có thể kiểm tra hiệu quả 5575 mật khẩu mỗi giây với một GPU đó.

Các mật khẩu có thể có dựa trên bộ ký tự ([a-z0-9], độ dài=14) là: $36^{14}$. Để đơn giản, chúng ta hãy cắt nó làm đôi để lại cho chúng ta một trường hợp trung bình là: $\frac{36^{14}}{2}=3*10^{21}$.

Điều đó có nghĩa là trung bình một kẻ tấn công sẽ $\frac{3*10^{21}}{5575}=5*10^{17}$ giây để tìm đúng mật khẩu tương đương với $3*10^{9}$ năm. Điều đó có nghĩa là ngay cả khi kẻ tấn công có 1 triệu GPU đó, vẫn sẽ mất 300 năm để bẻ khóa mật khẩu.

Câu hỏi của tôi là:

  1. Ở mức độ nào thì số lần lặp lại tương đối cao sẽ bù đắp cho entropy tương đối yếu của mật khẩu của tôi khi xem xét một cuộc tấn công từ điển hoặc từ điển vào GPU hiện đại?
  2. Tôi có bỏ sót chi tiết quan trọng nào trong phân tích của mình không?
Điểm:1
lá cờ in

Không gian mật khẩu của bạn không được coi là nhỏ $36^{14}$ dành cho mật khẩu rất mạnh, đây là 72 bit entropy.

Không gian mật khẩu nhỏ là những khoảng trống được thực hiện với các cuộc tấn công từ điển, bao gồm cả từ điển có phép biến đổi. Ngay cả XKCĐ phương pháp chỉ hứa hẹn 44 bit entropy.

Bạn không có khả năng ghi nhớ mật khẩu 14 ký tự ngẫu nhiên, vì vậy nếu bạn đang sử dụng trình quản lý mật khẩu và đang sử dụng mật khẩu ngẫu nhiên mạnh, thì thực sự thì ngay cả một KDF khá yếu cũng đủ.

Tuy nhiên, ví dụ, entropy 44 bit sẽ chỉ dẫn đến vài trăm giờ trên GPU mà bạn đã đề cập, điều mà hầu hết mọi người cho là không đủ.

Bạn có thể tăng số lần lặp lại, nhưng hãy nhớ rằng kẻ tấn công có lợi thế hơn, sẽ thực hiện theo đợt, sẽ thực hiện cắt bit, GPU và FPGA.Tôi nghĩ rằng một nguyên tắc chung là giả sử kẻ tấn công có lợi thế x1000 hoặc thậm chí x10K là hợp lý. Nếu bạn sử dụng KDF cứng bộ nhớ, bạn có thể giảm bớt điều này và có lợi thế nhỏ hơn (giả sử 100 lần). Khi tăng số lần lặp lại, bạn cũng đang làm chậm bản thân mình và cần đảm bảo trải nghiệm người dùng cũng như chi phí điện toán của riêng bạn vẫn ở mức hợp lý.

Đă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.