it-swarm-vi.com

Làm thế nào đáng tin cậy là một kiểm tra sức mạnh mật khẩu?

Tôi đã kiểm tra công cụ từ Microsoft có sẵn tại đây để kiểm tra độ mạnh của mật khẩu và đánh giá chúng. Đối với một mật khẩu như "tôi sẽ ăn trưa tối nay", công cụ đánh giá sức mạnh của nó là "TỐT NHẤT" và đối với mật khẩu như "th1 $ .v4l" thì nó đánh giá là "Trung bình".

Tôi đang tự hỏi độ dài mật khẩu thực sự quan trọng như thế nào. Trong trường hợp này, mật khẩu đầu tiên tốt hơn theo công cụ của họ nhưng nó có thực sự tốt hơn không? Nó dựa trên các từ trong từ điển và không có sự kết hợp giữa các con số và các ký tự khác ngoài các khoảng trắng, và dường như rất dễ bị bẻ khóa (không xem xét sức mạnh vũ phu).

Là công cụ đó được ưu tiên cho chiều dài thay vì sức mạnh thực tế?

74
iijj

"Không xem xét sức mạnh vũ phu" - đó chính xác là những gì các công cụ này đo lường.
[.__.] Rõ ràng là họ không thử kỹ thuật xã hội hoặc cố gắng khám phá xem đó có phải là sinh nhật con chó của bạn gái đầu tiên của người dùng không. Kẻ tấn công có thể biết điều đó, nhưng những công cụ này thì không.

Những gì họ làm chỉ đơn giản là khó khăn cho một công cụ bruteforcing để bẻ khóa nó. Thậm chí không phải là entropy của mật khẩu, là một thuộc tính của phương thức tạo, chỉ là ước tính thời gian cần một công cụ bruteforcing để tìm thành công mật khẩu chính xác.
[.__.] Rõ ràng, entropy có ảnh hưởng đến điều này, nhưng nó chỉ tổng cộng entropy có vấn đề, không phải entropy-per-character. Vì vậy, có, có rất nhiều tùy chọn có thể cân bằng cho mỗi ký tự sẽ thêm vào entropy, nhưng độ dài có thể đóng vai trò quan trọng hơn nữa trong việc tạo mật khẩu không thể bẻ khóa, bằng cách nâng entropy-per-character lên mức cao hơn, theo ký tự đếm. Điều này làm cho mức cao hơn nhiều tổng entropy, đó là điều duy nhất quan trọng.

Vì vậy, trong trường hợp của bạn - có, cụm mật khẩu chỉ gồm 32 ký tự, alpha mạnh hơn nhiều so với mật khẩu chấm câu 8 ký tự.


Tôi sẽ thử và làm toán ở đây một chút: (vui lòng sửa cho tôi khi tôi sai):

Nếu chúng ta giả sử bàn phím kiểu Mỹ tiêu chuẩn, có 85 ký tự có thể in được (có thể có thể cạo thêm một vài lần nữa, nhưng bây giờ chúng ta hãy đi với điều này): chữ thường + chữ in hoa + chữ số + dấu chấm tiêu chuẩn + dấu cách.
[.__.] Điều này cấp sức mạnh ~ 6,3 bit cho mỗi ký tự; ở độ dài 8 ký tự, mật khẩu cung cấp cho bạn sức mạnh ~ 50,4 bit.
[.__.] Lưu ý thực sự rất mạnh mẽ ... Ngay cả khi chúng tôi ném thêm một vài nhân vật "đặc biệt", bạn sẽ không nâng cấp điều đó nhiều lắm.

Bây giờ, đối với 32 ký tự, cụm mật khẩu chỉ alpha ...
[.__.] Chúng ta chỉ giả sử chữ thường và chữ in hoa (mặc dù bạn không sử dụng bất kỳ), cộng với một khoảng trắng (U + 32). Không phải là số ...
[.___.] Điều đó cung cấp cho bạn 54 ký tự có thể, khoảng ~ 5,8 bit cho mỗi ký tự. Với 32 ký tự dài, đó là sức mạnh hơn 185 bit. Thực chất mạnh hơn. Và thậm chí không có chữ số, thường được chấp nhận ngay cả trong các lược đồ mật khẩu "đơn giản".


Bruce Schneier thường nói về việc chuyển sang các cụm mật khẩu dài đáng nhớ sẽ an toàn hơn nhiều so với các mật khẩu trông kỳ lạ, ngắn, ngẫu nhiên.
[.__.] Bây giờ bạn thấy tại sao.

60
AviD

Bạn lo lắng rằng vì cụm mật khẩu sử dụng các từ trong từ điển, nó có thể dễ bị bẻ khóa hơn so với cụm từ phải bị ép buộc.

tl; dr: Đây là một lo lắng lý thuyết hợp lệ, nhưng ngay bây giờ nó không phải là một mối quan tâm thực tế.

"Tôi sẽ ăn trưa tối nay" là một cụm từ năm từ sử dụng các từ trong số 5000 phổ biến nhất trong tiếng Anh. Ngây thơ, đoán nó là đẳng cấu để đoán mật khẩu 5 chữ cái trong bảng chữ cái 5000 chữ cái, đó là 3x10 ^ 18 khả năng. Điều đó giống như mật khẩu 10 ký tự sử dụng chữ hoa và chữ thường, số và ký hiệu.

Tất nhiên, một chương trình bẻ khóa đủ thông minh có thể làm giảm đáng kể điều này. Câu này là văn xuôi tiếng Anh chuẩn, tuân theo các quy tắc nghiêm ngặt đến mức nó có tỷ lệ entropy thông tin trong khoảng 1 bit mỗi chữ cái . Điều đó có nghĩa là cụm từ của bạn có 33 bit entropy, khiến nó chỉ phức tạp như một mật khẩu hoàn toàn ngẫu nhiên gồm 5 chữ có thể in ASCII ký tự.

Điều đó không phức tạp lắm.

Tuy nhiên, để khai thác sự thiếu phức tạp đó, bạn sẽ cần một "công cụ bẻ khóa mật khẩu tiếng Anh" chuyên dụng để có thể tối ưu hóa một cái gì đó như mô hình chuỗi markov thành hạt nhân để xử lý GPGPU. Theo hiểu biết tốt nhất của tôi, không có gì giống như vậy ngay cả trong sự phát triển tại thời điểm này. Vì vậy, trừ khi ai đó có tài nguyên để tạo phần mềm đó muốn cụm mật khẩu của bạn, bạn nên an toàn trong một thời gian.

17
user502

Entropy là một điều kỳ lạ để đo lường.

Ấn bản đặc biệt NIST 800-63, Hướng dẫn xác thực điện tử bao gồm các hướng dẫn để ước tính cường độ mật khẩu:

Entropy thay đổi rất nhiều tùy thuộc vào việc người dùng chọn mật khẩu hay được tạo ngẫu nhiên. Theo thống kê, việc đoán ký tự đầu tiên của mật khẩu được người dùng chọn là khó khăn, nhưng đoán thứ hai thì dễ hơn và thứ ba thì dễ hơn. Các hướng dẫn của NIST cung cấp cho ký tự đầu tiên 4 bit entropy khi sử dụng 94 ký tự có sẵn trên bàn phím tiêu chuẩn, nhưng chỉ có 2 bit cho mỗi bảy ký tự tiếp theo, v.v.

Mật khẩu được chọn ngẫu nhiên không hiển thị các mẫu, vì vậy mỗi ký tự mang cùng một mức entropy, khoảng 6,6 bit.

Điều này có nghĩa là mật khẩu tám ký tự được người dùng chọn có 18 bit entropy, trong khi mật khẩu ngẫu nhiên có cùng độ dài có khoảng 52,7 bit.

Nói cách khác, nếu bạn có thể xác định 3 ký tự đầu tiên của mật khẩu của tôi là

Kinh hoàng

Sau đó, tỷ lệ cược của ký tự tiếp theo là s là cách, cao hơn so với *.

Vì vậy, khi chúng ta nói một ký tự mật khẩu có thể là any ký tự, điều đó không thực sự đúng; hầu hết mọi người sử dụng các từ có các mẫu mạnh trong đó và hoàn toàn giảm tập hợp các ký tự sau - do đó tạo ra một mật khẩu với entropy thấp hơn (tính ngẫu nhiên).

15
Jeff Atwood

Tôi không chắc làm thế nào "tôi sẽ ăn trưa tối nay" là từ điển dễ bị tổn thương, đó là một cụm từ bảy từ. Trong đó "th1 $ .v4l" là một cụm từ hai từ có một ký tự và thay thế ký tự một cái gì đó mà những kẻ bẻ khóa mật khẩu đã xử lý từ đó mãi mãi.

Một vài người kiểm tra mật khẩu sử dụng cracklib + ajax như các bài kiểm tra với cơ sở quy tắc nhỏ để loại bỏ mật khẩu "this.val" của bạn.

14
hpavc

Câu hỏi về độ tin cậy của trình kiểm tra độ mạnh mật khẩu cũng mở rộng đến bảo mật của trình kiểm tra nói chung. Thật đáng sợ khi thấy sự gia tăng của máy đo mật khẩu trực tuyến. Bạn không cần thiết phải tiết lộ mật khẩu của mình cho một số trang web trên mạng! Ngay cả các ứng dụng địa phương để kiểm tra mật khẩu có thể là bất chính. Khẳng định rằng trang web sử dụng javascript và không bao giờ truyền mật khẩu qua Internet là không thể tin cậy được. Một số trang web kiểm tra độ mạnh mật khẩu chắc chắn được điều hành bởi mũ đen, họ chỉ cần thêm chúng vào từ điển của họ cùng với bất kỳ thông tin nào khác mà họ có thể thu thập về bạn. Các trang web khác được điều hành bởi những người có ý định tốt, nhưng có thể triển khai xấu, như máy chủ dễ bị tổn thương hoặc thiếu https. Và vẫn còn những người khác dễ bị tấn công bởi "chính quyền", những người có cách bắt buộc trang web tiết lộ, ví dụ: mật khẩu được gửi bởi các dải địa chỉ IP nhất định.

Tôi đề nghị rằng bất kỳ ai sử dụng một trang web như vậy không bao giờ nên gửi mật khẩu mà họ thực sự có ý định sử dụng.

8
nealmcb

Độ dài là gần như mọi thứ khi cố gắng chống lại các cuộc tấn công vũ phu.

Ngay cả các công cụ bẻ khóa mật khẩu cơ bản cũng cho phép thay thế kiểu nói 1337, vì vậy trong ví dụ của bạn, bạn đang so sánh hiệu quả cụm mật khẩu 7 từ với cụm mật khẩu 2 từ.

Miễn là bạn có cụm mật khẩu dài (trong đó định nghĩa chính xác về độ dài có thể thay đổi tùy theo nhu cầu của bạn, nhưng ít nhất phải trên 13 ký tự để làm cho tỷ lệ tấn công của bảng Rainbow tối thiểu), bạn buộc kẻ tấn công thử các hình thức tấn công khác , như kỹ thuật xã hội; tìm ra nơi bạn đã viết cụm mật khẩu; giữ con tin mèo của bạn, vv.

7
Rory Alsop

Về mặt lý thuyết, "máy đo cường độ mật khẩu" không thể hoạt động . Công cụ chỉ nhìn thấy kết quả của quá trình tạo mật khẩu, trong khi mật khẩu "sức mạnh" thực sự là một tài sản của quy trình. Xem câu trả lời này và sau đó câu trả lời đó để biết chi tiết.

Ứng dụng đo cường độ mật khẩu tốt nhất có thể cung cấp cho bạn là mất bao nhiêu thời gian để phá mật khẩu của bạn - nói cách khác, nó giả định rằng kẻ tấn công chạy cùng một mã chính xác và không biết gì thêm về bạn. Đây không phải là một giả định hợp lý trong thực tế: kẻ tấn công, khi anh ta tấn công bạn, cụ thể là, sau bạn, cụ thể. Dựa vào máy đo mật khẩu để bảo mật cũng giống như cầu nguyện rằng tất cả những kẻ tấn công sẽ không đủ năng lực: đó là một loại "bước nhảy đức tin".

7
Thomas Pornin

Nhìn vào Javascript cho công cụ Microsoft đó, có vẻ như nó chỉ có một danh sách giới hạn các từ trong từ (Xem Dòng 264 trở đi trong tệp js ), vì vậy điều đó có thể giải thích tại sao cụm mật khẩu của bạn được xếp hạng cao hơn có lẽ nó nên.

Cá nhân tôi muốn giới thiệu trình kiểm tra độ mạnh mật khẩu này nó phân tích tốt các yếu tố tạo nên mật khẩu của bạn và cho bạn biết làm thế nào để cải thiện nó. Nó đánh giá mật khẩu của bạn "tôi sẽ ăn trưa tối nay" ở mức 56% và mật khẩu thứ hai của bạn "th1 $ .v4l" ở mức 74% có vẻ thực tế hơn.

Tuy nhiên, công cụ này hoàn toàn không sử dụng bất kỳ danh sách từ nào - cụm mật khẩu của bạn được đánh dấu chỉ vì tất cả chữ thường, trong khi "tôi sẽ ăn trưa tối nay!" được 98%. Bạn có thể rút ra kết luận của riêng mình về mức độ hữu ích của xếp hạng% tuổi.

Liên quan đến ảnh hưởng đến độ dài khi kiểm tra thời gian bẻ khóa bài viết này . Tuy nhiên, xin lưu ý rằng từ năm 2009 trở lại đây, và các công cụ bẻ khóa mật khẩu dựa trên GPGPU hiện có thể quản lý 10 ^ 9/giây (mức độ tấn công cao nhất của "lớp F" trong bài viết) trên một máy tính chơi game/máy trạm có GPU 500 đô la Thẻ.

5
Mark Davidson

Tôi thấy một truyện tranh trên báo gần đây. Hoặc có thể đó là một bản sao kỹ thuật số trực tuyến của truyện tranh, tôi không nhớ lại.

Nó minh họa điều này rất tranh luận. Và bây giờ tôi sẽ giải thích cho bạn quan điểm mà nó đưa ra:

Chỉ vì mật khẩu ngắn không có nghĩa là dễ đoán, như trong trường hợp với "th1 $ .v4l". Nhưng chỉ vì mật khẩu dài không có nghĩa là nó cũng dễ đoán, như trong trường hợp với "tôi sẽ ăn trưa tối nay".

Thực tế của vấn đề là, không có tin tặc nghiêm trọng nào của con người sẽ ngồi đó và đoán mật khẩu của bạn. Họ có thể sử dụng các từ trong từ điển, nhưng những từ điển đó không chứa mọi câu có thể. Chỉ cần lời nói.

Không, những gì tin tặc làm (khi chúng đã sử dụng hết một từ điển điển hình của WORDS), là chúng thường có máy tính đi một cách có hệ thống thông qua mọi kết hợp có thể. Bắt đầu kết thúc. Nếu họ bị ép xuống con đường này, mật khẩu càng ngắn thì càng tệ. Càng lâu, càng tốt. Bất kể nếu có chữ số hoặc ký hiệu. Chữ số và ký hiệu chỉ quan trọng đối với con người ghi nhớ và con người đoán. Đối với máy tính, chúng giống nhau ... một chuỗi 1 và 0 ... và nó không có gì khác biệt.

Làm cho mình một việc. Giữ nó lâu nhưng đơn giản. Ngắn và phức tạp có thể tiêu tốn thời gian của hacker, nhưng dài và đơn giản sẽ làm điều tương tự. Câu hỏi là, bạn muốn một mật khẩu dễ nhớ hay khó nhớ?

4
CogitoErgoCogitoSum

Độ mạnh mật khẩu chỉ có thể được ước tính bằng bạn một mình hoặc bởi người khác nếu bạn cho họ biết cách bạn tạo mật khẩu. Ví dụ: nếu tôi sử dụng trình tạo mật khẩu ngẫu nhiên sử dụng bộ 50 ký tự và mật khẩu của tôi dài 8 ký tự, mật khẩu của tôi sẽ là 1 trong số khoảng 3,9 × 1013 hoặc 245. Nếu tôi sử dụng mật khẩu dựa trên Hán Việt và mật khẩu của tôi là cụm từ gồm 4 từ, với điều đó mỗi từ nằm ngoài khả năng 2.05 , mật khẩu của tôi là 1 trong số 1,8 × 10 có thể13. Phiên bản La Mã bính âm trung bình của một ký tự Trung Quốc dài khoảng 3 đến 4 ký tự, tạo mật khẩu "4 từ" khoảng 16 ký tự. Tuy nhiên, mật khẩu Bính âm này yếu hơn mật khẩu 8 ký tự được tạo từ bộ ký tự 50.

Nếu kẻ tấn công biết cách tạo mật khẩu (giả sử bằng cách kiểm tra mật khẩu văn bản đơn giản bị đánh cắp từ một số trang web không an toàn) bởi một người nào đó, họ có kiến ​​thức cần thiết để giảm bớt khó khăn của việc bắt buộc bằng cách rất nhiều ! Vì họ biết rằng bạn không sử dụng tất cả các ký tự có thể trên bàn phím của mình nữa, nên họ có thể loại bỏ các kết hợp không thể và tiết kiệm thời gian.

Lần tới khi bạn tạo mật khẩu, hãy nghĩ về thuật toán/phương thức bạn đang sử dụng để tạo mật khẩu. Sử dụng Mật khẩu an toàn để tạo mật khẩu 21 ký tự trong bộ 72 ký tự ([email protected]#$%^&<>/~\?abcdefghijkmnopqrstuvwxyzandABCDEFGHJKLMNPQRTUVWXY346789), bạn nhận được khoảng 1,0 × 1039 kết hợp có thể hoặc 130 bit bảo mật.

3
Kevin Li

Vâng tất cả các công cụ kiểm tra độ mạnh của mật khẩu xác minh sẽ mất bao nhiêu nỗ lực để tìm mật khẩu bằng cách sử dụng sức mạnh vũ phu và tấn công từ điển.

giống như nếu bạn so sánh kết quả của bạn ở đây của cả hai mật khẩu.

http://www.passwordmeter.com/

"$ 1 .v4l" là

Mật khẩu mạnh với 74%

"Tôi sẽ ăn trưa tối nay" là

Mật khẩu tốt 56%

mật khẩu này sẽ mất ít thời gian hơn để bẻ khóa bằng cách sử dụng vũ lực.

3
mr_eclair

Chà, nếu bạn xác định độ mạnh của mật khẩu là độ khó hoặc khả năng bị bẻ khóa, thì gần như ngược với trực giác, độ mạnh của mật khẩu là một chức năng có độ dài hơn độ khó nhớ.

Khi kẻ tấn công tiềm năng không biết gì về mật khẩu của bạn và chỉ có thể sử dụng brute-force để bẻ khóa mật khẩu của bạn, một mật khẩu dài hơn sẽ dễ nhớ hơn, như

"Tôi sẽ ăn trưa tối nay"

sẽ mất nhiều thời gian để crack hơn

"$ 1 .v4l"

đơn giản vì có nhiều ký tự mà kẻ tấn công sẽ cần đoán chính xác để bẻ khóa mật khẩu. Mật khẩu dài hơn thể hiện không gian tìm kiếm lớn hơn đến kiệt sức, hãy cho kim (mật khẩu) của bạn lớn hơn nhiều haystack để ẩn trong.

3
Daniel Miladinov

Kiểm tra sức mạnh mật khẩu, như một quy luật, không đáng tin cậy lắm. Họ có xu hướng dựa vào các tính toán quá đơn giản mà giả sử kẻ tấn công sẽ chỉ cố gắng đoán mật khẩu của bạn bằng cách thử mọi sự kết hợp có thể có của các ký tự, một giả định hiếm khi đúng trong thực tế.

Trong thực tế, một kẻ tấn công có động lực có thể đưa ra tất cả các loại chiến lược khác nhau để đoán mật khẩu của bạn, một số trong đó không có trình kiểm tra độ mạnh mật khẩu nào có thể được lập trình để xem xét.

Ví dụ: mật khẩu "! QAZXSW @ # EDC" có thể trông khá ngẫu nhiên, cho đến khi bạn nhận ra tôi đã viết nó bằng cách nhấn một mẫu phím rất đơn giản trên bàn phím tiếng Anh chuẩn. Kẻ tấn công sử dụng chương trình được thiết kế để đoán mật khẩu dựa trên bố cục bàn phím có thể dễ dàng bẻ khóa mật khẩu như vậy trong vài phút. (Và thực tế, tôi đã bị Pwned's Trình kiểm tra mật khẩu bị xóa chỉ ra rằng mật khẩu chính xác này đã được sử dụng và bẻ khóa nhiều lần.) Tương tự, "tối nay tôi sẽ ăn trưa" có vẻ mạnh đối với điển hình của bạn Trình kiểm tra độ mạnh mật khẩu, nhưng kẻ tấn công có thể dễ dàng bẻ khóa bằng cách sử dụng một chương trình được thiết kế để đoán các câu tiếng Anh thông dụng.

are Trình kiểm tra độ mạnh mật khẩu tốt hơn loại này ( ZXCVBN , ví dụ, có thể phát hiện Mật khẩu dựa trên mẫu bàn phím tôi đã đưa ra ở trên và đưa ra ước tính cường độ thực tế hơn) nhưng cuối cùng không phải lúc nào cũng có thể biết mật khẩu mạnh đến mức nào chỉ bằng cách phân tích chính mật khẩu . Sẽ không an toàn khi cho rằng chỉ vì trình kiểm tra độ mạnh mật khẩu bạn đang sử dụng không thể đoán được phương thức bạn đã sử dụng để chọn mật khẩu, kẻ tấn công đang cố đoán mật khẩu của bạn sẽ không. Giả định đó được gọi là "bảo mật bằng cách che khuất" và nó được coi là thông lệ xấu khi dựa vào cộng đồng bảo mật thông tin.

Vậy bạn nên làm gì thay thế? Chọn mật khẩu của bạn ngẫu nhiên, tốt nhất là sử dụng nguồn ngẫu nhiên như xúc xắc không thể bị suy yếu bởi các thiên kiến ​​của con người. Bằng cách đó, ngay cả khi bạn cho rằng kẻ tấn công biết chính xác cách bạn tạo mật khẩu, bạn vẫn có thể dễ dàng tính toán có bao nhiêu lần đoán kẻ tấn công sẽ phải thử trước khi đoán chính xác mật khẩu của bạn.

Diceware là một ví dụ điển hình về phương pháp tạo mật khẩu như vậy. Bốn từ Diceware ngẫu nhiên sẽ mất 77764/ 2 = ~ 1,83 triệu triệu người đoán trung bình để kẻ tấn công đoán, ngay cả khi họ biết chính xác danh sách các từ bạn đã chọn mật khẩu. Mật khẩu được tạo bởi người quản lý mật khẩu rất mạnh vì những lý do tương tự.

Để biết thêm thông tin về cách chọn mật khẩu an toàn, tôi khuyên bạn nên câu trả lời của Thomas Pornin cho "XKCD # 936: Mật khẩu phức tạp ngắn hoặc cụm mật khẩu từ điển dài?", Chi tiết về cách đặt mật khẩu và cách tính mật khẩu sức mạnh của mật khẩu được tạo ngẫu nhiên.

1
Ajedi32