Cách tạo và ghi nhớ mật khẩu mạnh. Thuật toán mới để kiểm tra độ mạnh của mật khẩu


Mọi người đều biết rằng mật khẩu có thể phức tạp và không quá phức tạp. Ví dụ, núi cao không phải là một mật khẩu quá phức tạp và việc đặt nó làm mật khẩu gốc trên một triệu thiết bị kết nối Internet ít nhất là không khôn ngoan. 7_U]À"C ngược lại, mật khẩu khá phức tạp. Bất kỳ người dùng Internet nâng cao nào cũng sẽ xác nhận điều này với bạn và một số thậm chí có thể giải thích lý do. Giống như, nó dài hơn và có rất nhiều ký hiệu khác nhau trong đó: ở đây bạn có chữ hoa và chữ in hoa cũng như tất cả các loại ký hiệu đặc biệt. Nói chung, nó phức tạp và chắc chắn phức tạp hơn mật khẩu núi cao.

Làm thế nào bạn có thể so sánh độ phức tạp của hai mật khẩu khi sự khác biệt không quá rõ ràng? Ví dụ: mật khẩu nào khó hơn: 7_U]À"C hoặc xrmdCawGZ? Mặc dù mật khẩu thứ hai dường như bao gồm nhiều ký tự nhỏ hơn - các chữ cái viết hoa khác nhau - nhưng nó dài hơn một ký tự. Liệu điều này có đủ để bù đắp cho sự thiếu hụt của bảng chữ cái?

Bảng chữ cái là tập hợp các ký tự mà mật khẩu có thể bao gồm. Trong ví dụ của chúng tôi, mật khẩu 7_U]À"C bao gồm một bảng chữ cái chứa các ký tự sau:

  • Chữ cái Latinh trong cả hai trường hợp: a-z, A-Z(26*2=52 chiếc.)
  • Số: 0-9 (10 miếng.)
  • Các ký hiệu đặc biệt: ! , " , # , $ , % ... (32 chiếc.)
Kích thước của một bảng chữ cái như vậy là M = 52 + 10 + 32 = 94 và độ phức tạp của mật khẩu gồm 8 (N=8) ký tự được tính theo công thức M**N = 94**8.

Độ phức tạp của mật khẩu (hoặc khóa mật mã) được thể hiện trong cái gọi là. hệ số phức tạp của mật mã(hệ số công việc). Lời giải thích phổ biến nhất về bản chất của CTS nghe như thế này: đó là thời gian và tài nguyên máy tính, cần thiết để bẻ khóa mật khẩu bằng vũ lực ( lực lượng vũ phu ) tất cả của anh ấy những lựa chọn khả thi. Từ tổ hợp, chúng ta biết rằng số lượng kết hợp từ M (kích thước bảng chữ cái) đến N (độ dài mật khẩu) bằng M**N (M lũy thừa của N).

Độ phức tạp của mật khẩu thường được gọi là tốc độ bit. Nói mật khẩu là gì K-bit, ý chúng tôi là độ phức tạp của nó tương đương với độ phức tạp của mật khẩu K số 0 và số 1 (một bảng chữ cái chỉ có hai ký tự: 0 và 1). Ví dụ, 7_U]À"C -- Mật khẩu 52 bit: K = log2 (94**8) = log2 (6095689385410816) ~ 52 .

Mật khẩu xrmdCawGZ một bảng chữ cái khiêm tốn hơn: từ các chữ cái Latinh trong cả hai thanh ghi, tổng số là 26*2 = 52 biểu tượng. Độ phức tạp tương ứng bằng M**N = 52**9 = 2779905883635712 và độ sâu bit - K = log2 (2779905883635712 ) ~ 51 . Do đó, mật khẩu đầu tiên phức tạp gấp đôi mật khẩu thứ hai, điều này thường không phải là một lợi thế.

Câu hỏi đặt ra là tại sao chúng ta lại cần bảng chữ cái được tạo thành từ tất cả những dấu ngoặc kép, dấu ngoặc và những dòng chữ ngoằn ngoèo khác? Chẳng phải việc tạo mật khẩu dài bằng cách sử dụng các ký tự quen thuộc hơn sẽ dễ dàng hơn sao? Câu trả lời rất đơn giản: không có lý do. Sẽ tốt hơn và đáng tin cậy hơn nếu bạn nhớ một cụm mật khẩu dài, ngay cả khi nó không chứa các dấu hiệu lạ. Hiện tại, cụm mật khẩu có độ sâu bit từ 128 trở lên được coi là đáng tin cậy. Tức là một cụm từ gồm 20 chữ cái sẽ khá đủ.

Các chuyên gia trong bảo mật máy tính từ Đại học Cambridge đã phân tích cấu trúc của hơn 70 triệu mật khẩu. Và họ phát hiện ra rằng hầu hết mật khẩu phức tạp trên thế giới có người dùng đến từ Đức và Hàn Quốc. Hơn nữa, họ làm việc đó một cách thoải mái và tự nhiên, không đào tạo đặc biệt. Và bí mật của sự ổn định của sự kết hợp nằm ở tính đặc thù của ngôn ngữ của họ. Họ sử dụng cùng các ký hiệu Latinh, cùng các con số, nhưng lấy các từ “khó” bản địa của họ làm cơ sở - tên, địa chỉ, thuật ngữ, v.v. Ví dụ: Annaberg-Buchholz#122. Thật dễ dàng để nghĩ ra và ghi nhớ những lựa chọn này, nhưng việc chọn chúng khó hơn nhiều so với các từ vựng trong các ngôn ngữ khác.

Nếu bạn, độc giả thân mến, không biết tiếng Hàn hoặc tiếng Đức, tất nhiên điều này không có nghĩa là bạn nên bỏ qua những mật khẩu phức tạp. Chúng là chìa khóa bảo mật dữ liệu của bạn trên Internet (trong các hệ thống thanh toán trực tuyến, trên các trang web, diễn đàn). Bài viết này sẽ cho bạn biết những yêu cầu chính để truy cập vào tài khoản của bạn là gì (cần phải có những gì) và cách tạo nó.

Định nghĩa khó khăn

Độ phức tạp của khóa là thước đo khả năng chống lại việc lựa chọn ở cấp độ biểu tượng bằng các phương pháp thủ công và tự động (tính toán logic, lựa chọn từ điển). Nó được xác định bởi số lần thử mà người bẻ khóa thực hiện, tức là anh ta sẽ mất bao nhiêu thời gian để tính toán sự kết hợp do người dùng biên soạn.

Các yếu tố sau ảnh hưởng đến độ phức tạp của mật khẩu:

  • Số lượng ký tự trong khóa. Càng nhiều ký tự trong chuỗi thì càng tốt. Tổ hợp 5 ký tự có khả năng cao bị hack nhanh. Nhưng việc chọn một chuỗi gồm 20 ký tự có thể mất nhiều năm, nhiều thập kỷ và thậm chí nhiều thế kỷ.
  • Chữ hoa và chữ thường xen kẽ nhau. Ví dụ: khóa dfS123UYt sử dụng thanh ghi chữ in hoa phức tạp hơn nhiều so với sự kết hợp tương tự, nhưng chỉ với các chữ cái nhỏ - dfs123uyt.
  • Bộ nhân vật. Một loạt các loại biểu tượng tăng cường sự ổn định. Nếu bạn tạo một chìa khóa từ nhỏ và chữ in hoa, số và ký tự đặc biệt dài 15-20 ký tự, thực tế không có cơ hội nhặt được.

Làm thế nào để tạo ra sự kết hợp ổn định?

Các phương pháp sau đây sẽ giúp bạn nghĩ ra một chìa khóa tượng trưng rất phức tạp và dễ nhớ.

1. Tạo đường nét trực quan hình hình học hoặc bất kỳ đối tượng nào trên bàn phím máy tính của bạn. Và sau đó gõ các ký tự dọc theo dòng.

Chú ý! Tránh những “công trình” đơn giản - đường thẳng, hình vuông hoặc đường chéo. Họ rất dễ dự đoán.

2. Tạo một câu phức tạp, không logic. Nói cách khác, một số cách chơi chữ:

Ví dụ: Con mèo Vaska bắt được một con cá pike trên Sao Mộc.

Sau đó lấy 2-3 chữ cái đầu tiên của mỗi từ trong câu tạo thành:
Mèo + Va + Na + Yup + st + pike

Gõ các âm tiết bằng chữ cái Latin:
Rjn + Df + Yf + >g + ek + oer

Sau khi phiên âm, hãy chèn vào giữa các âm tiết một số con số quen thuộc với bạn: ngày sinh, chiều cao, cân nặng, tuổi, chữ số cuối hoặc đầu của số điện thoại.
Rjn066Df 45Yf 178>g 115ek1202oer

Đó là tất cả! Như bạn có thể thấy, nó hóa ra là một sự kết hợp khá “mạnh”. Để ghi nhớ nhanh, bạn chỉ cần phím (câu chơi chữ) và các số được sử dụng.

3. Lấy 2 ngày đáng nhớ làm cơ sở. Ví dụ: hai ngày sinh nhật (của bạn và người thân yêu của bạn).
12.08.1983 05.01.1977

Phân cách ngày, tháng, năm bằng một số ký tự đặc biệt:
12|08/1983|05\01|1977

Bây giờ hãy thay số 0 trong ngày bằng một chữ cái nhỏ “o”.
12|o8/1983|o5\o1|1977

Hóa ra đó là một chiếc chìa khóa khá phức tạp.

4. Tạo một bảng đặc biệt: đặt ma trận theo chiều dọc và chiều ngang bức thư và số, theo hàng và cột - các ký hiệu theo thứ tự hỗn loạn.

Để tạo khóa, hãy thực hiện một vài từ ngữ đơn giản viết bằng chữ cái tiếng Anh, ví dụ, mật khẩu của tôi rất mạnh

Lấy cặp chữ cái đầu tiên. Trong trường hợp của chúng tôi, nó là “của tôi”. Tìm “m” trong danh sách dọc và “y” trong danh sách ngang. Tại giao điểm của các dòng, bạn sẽ nhận được ký tự đầu tiên của mật khẩu.

Tương tự như vậy, thông qua cặp tiếp theo, tìm các ký tự chính còn lại.

Nếu bạn quên mật khẩu, hãy sử dụng cách đơn giản từ khóa và một cái bàn.

Làm cách nào để kiểm tra độ mạnh của mật khẩu?

Sự bền vững kết hợp ký tựđể lựa chọn có thể được tìm thấy trên các dịch vụ web đặc biệt. Hãy xem xét phổ biến nhất:

Dịch vụ trực tuyến từ phòng thí nghiệm chống virus Kaspersky. Xác định, dựa trên bộ ký tự và độ dài của khóa, sẽ mất bao lâu để bẻ khóa nhiều máy tính khác nhau. Sau khi phân tích trình tự, thống kê hiển thị thời gian tìm kiếm trên ZX-Spectrum (máy 8 bit huyền thoại của thập niên 80), Mac Book Pro (model 2012), siêu máy tính Tianhe-2 và mạng botnet Conficker.

Tiện ích trực tuyến trên cổng dịch vụ khổng lồ 2IP.ru. Sau khi gửi khóa đến máy chủ, nó sẽ hiển thị trạng thái (đáng tin cậy, không đáng tin cậy) và thời gian dành cho việc bẻ khóa.

Việc kiểm tra độ mạnh của mật khẩu là cần thiết khi bạn không chắc chắn hoặc nghi ngờ độ phức tạp và mức độ bảo mật đầy đủ của nó. May mắn thay, có những dịch vụ trực tuyến cho phép bạn kiểm tra mức độ an toàn của một mật khẩu cụ thể. Thêm về điều này.

Tại sao phải kiểm tra độ mạnh của mật khẩu của bạn?

Trên thực tế, việc kiểm tra độ mạnh của mật khẩu là cần thiết chủ yếu đối với những người không biết mật khẩu nên là gì. Bài viết đưa ra các mẹo tạo mật khẩu phức tạp, hầu như không thể bẻ khóa. 3 dịch vụ trực tuyến được thảo luận trong bài viết này sẽ giúp bạn tạo mật khẩu như vậy.

Làm thế nào để kiểm tra độ phức tạp của mật khẩu?

Có những dịch vụ trực tuyến cho phép bạn kiểm tra độ phức tạp của mật khẩu cũng như mất bao lâu để những kẻ tấn công đoán được mật khẩu đó. Hôm nay chúng ta sẽ xem xét 3 dịch vụ đáng được quan tâm nhất.

Dịch vụ số 1.

Dịch vụ này, như bạn có thể đoán, có thể là của Kaspersky Lab, có tên là “Giải cứu thế giới bằng lời nói”. Dịch vụ này giúp bạn tạo mật khẩu mạnh bằng cách kiểm tra độ phức tạp của chúng.

Dịch vụ này cho thấy rằng mật khẩu đã cho hack trong 1 giây. Đúng vậy, ngay cả khi có sự trợ giúp của Brute Force (một chương trình đoán mật khẩu), mật khẩu này sẽ được đoán nhanh hơn việc bạn có thể nói “Ồ!”

Nhưng đây là một mật khẩu phức tạp hơn sử dụng , số và chữ cái có kiểu dáng khác nhau:

Mật khẩu như vậy sẽ rất khó đoán, mật khẩu chungđáng tin cậy và ở một mức độ nào đó không thể hack được (không thể chọn được).

Như bạn có thể thấy, dịch vụ này cho biết mất bao lâu để bẻ khóa một mật khẩu cụ thể trên nhiều máy tính khác nhau, đó là ZX Spectrum (thập niên 80), Mac Book Pro (2012), Tianhe-2 (siêu máy tính được phát triển ở Trung Quốc) và cả sử dụng mạng máy tính (botnet).

Dịch vụ số 2.

Dịch vụ kiểm tra độ mạnh mật khẩu tiếp theo của Microsoft. Nó nằm ở địa chỉ này.

Mọi thứ đều đơn giản ở đây, hãy nhập mật khẩu bắt buộc và chương trình cho thấy nó đáng tin cậy như thế nào. Không có gì thêm. Mức độ tin cậy được biểu thị bằng 4 hình chữ nhật bên dưới. Một hình chữ nhật là một mật khẩu rất đơn giản và bốn hình chữ nhật màu xanh lá cây có nghĩa là một mật khẩu phức tạp.

Dịch vụ số 3.

Thứ ba và dịch vụ cuối cùng kiểm tra độ phức tạp của mật khẩu cho ngày hôm nay. Trang web có tên là “Mật khẩu của tôi an toàn đến mức nào? "

Giao diện bằng tiếng Anh nhưng không sao. Ở dòng “Mật khẩu”, bạn phải nhập mật khẩu và dịch vụ cũng sẽ hiển thị mức độ an toàn của nó, đây là mật khẩu của bạn.

Trong ví dụ trên, dịch vụ cho biết mật khẩu tốt (điều này được biểu thị bằng nền xanhđịa điểm). Nếu nền của trang web có màu đỏ thì mật khẩu cũng không đáng tin cậy.

Dưới đây bạn cũng có thể thấy thời gian gần đúng cần thiết cho một lựa chọn thô (bạo lực). Ngoài ra, nếu mật khẩu bạn nhập không phức tạp và đáng tin cậy, dịch vụ sẽ chỉ ra điều này và đưa ra lời khuyên về cách tạo mật khẩu an toàn hơn.

Tất nhiên, không có mật khẩu nào không thể bẻ khóa được; những dịch vụ này chỉ hiển thị số lượng mật khẩu mà người chọn sẽ phải bẻ khóa (sử dụng vũ lực). Nhưng có nhiều cách khác để hack - kỹ thuật xã hội, việc sử dụng keylogger mà người dùng PC không hề hay biết, v.v. Vì vậy, hãy lưu trữ mật khẩu của bạn một cách khôn ngoan và không chia sẻ chúng với bất kỳ ai.

Nhiều trang web cố gắng giúp người dùng đặt mật khẩu phức tạp hơn. Để làm điều này, hãy đặt quy tắc cơ bản, thường yêu cầu bạn chỉ định ít nhất một chữ viết hoa, một chữ cái thường, một chữ số, v.v. Các quy tắc thường nguyên thủy như thế này:

"password" => [ "bắt buộc", "đã xác nhận", "min:8", "regex:/^(?=\S*)(?=\S*)(?=\S*[\d]) \S*$/", ];
Thật không may, như vậy quy tắc đơn giản có nghĩa là mật khẩu Abcd1234 sẽ được coi là tốt và có chất lượng cao, giống như Mật khẩu1. Mặt khác, mật khẩu mu-icac-of-jaz-doad sẽ không vượt qua được quá trình xác thực.

Đây là hai mật khẩu đầu tiên.

Đây là hai mật khẩu sẽ không vượt qua được kiểm tra bảo mật.

Phải làm gì? Có lẽ bạn không nên ép buộc sử dụng các ký tự đặc biệt và ngày càng đưa ra nhiều quy định mới, chẳng hạn như cấm lặp lại nhiều ký tự liên tiếp, sử dụng không phải một mà là hai hoặc ba ký tự và số đặc biệt, tăng độ dài mật khẩu tối thiểu, vân vân.

Thay vì tất cả những điều này, chỉ cần làm là đủ điêu đơn giản- dễ dàng để cài đặt ràng buộc entropy tối thiểu mật khẩu, thế là xong! Bạn có thể sử dụng công cụ đánh giá zxcvbn được tạo sẵn cho việc này.

Có những giải pháp khác ngoài zxcvbn. Mới tuần trước, một bài báo (pdf) của các nhà nghiên cứu bảo mật từ Symantec Research và viện nghiên cứu Eurecom của Pháp đã được trình bày tại hội nghị An ninh Máy tính và Truyền thông ACM. Họ đã phát triển chương trình mớiđể kiểm tra độ mạnh của mật khẩu, ước tính số lượng gần đúng các lần thử dùng vũ lực cần thiết bằng phương pháp Monte Carlo. Phương pháp được đề xuất khác ở chỗ nó yêu cầu lượng tài nguyên tính toán tối thiểu trên máy chủ và phù hợp với số lượng lớn mô hình xác suất và đồng thời khá chính xác. Phương pháp này đã được thử nghiệm trên các mật khẩu từ cơ sở dữ liệu gồm 10 triệu mật khẩu Xato thuộc phạm vi công cộng (bản sao trên Archive.org) - nó cho thấy kết quả tốt. Đúng, nghiên cứu này của Symantec Research và Eurecom có ​​bản chất khá lý thuyết, ít nhất họ đã không xuất bản chương trình của mình trên truy cập mở dưới bất kỳ hình thức nào có thể chấp nhận được. Tuy nhiên, quan điểm của công việc này rất rõ ràng: thay vì các quy tắc heuristic để kiểm tra mật khẩu, các trang web nên triển khai kiểm tra entropy.

Trình phân tích mật khẩu SeaMonkey

Trình phân tích mật khẩu này được phát triển như một phần của dự án SeaMonkey, một bộ chương trình Internet miễn phí được tạo ra và duy trì bởi Hội đồng Seamonkey, một nhánh của Quỹ Mozilla. Bản thân cơ chế phân tích mật khẩu là một phần của . Thuật toán công việc của nó là tính toán trọng số của mật khẩu, dựa trên dữ liệu về các ký tự tạo nên mật khẩu. Trọng lượng mật khẩu được tính theo công thức sau:
sức mạnh= ((pwlength * 10) - 20) + (số * 10) + (ký hiệu chữ số * 15) + (trên * 10) , trong đó
  • chiều dài bằng 5 nếu số ký tự trong mật khẩu lớn hơn 5 hoặc bằng độ dài của mật khẩu;
  • số bằng 3 nếu số chữ số trong mật khẩu lớn hơn 3, nếu không thì bằng số chữ số;
  • ký hiệu sốđược coi là bằng 3 nếu số ký tự trong mật khẩu không phải là chữ cái, số và dấu gạch dưới lớn hơn 3, nếu không - số lượng ký tự đó;
  • phía trên bằng 3 nếu số chữ in hoa lớn hơn 3 hoặc số chữ in hoa nếu không.
Sau khi tính toán, trọng số mật khẩu được chuẩn hóa sao cho giá trị của nó nằm trong khoảng từ 0 đến 100. Việc chuẩn hóa được thực hiện khi giá trị trọng số không nằm trong phạm vi này. Trong trường hợp khi sức mạnh nhỏ hơn 0, giá trị sức mạnh bằng 0 và khi lớn hơn 0, giá trị trọng số được đặt thành 100. Việc xếp hạng mật khẩu theo độ mạnh tùy theo quyết định của các nhà phát triển sử dụng thư viện.
Như bạn có thể thấy, trình phân tích được mô tả không sử dụng bất kỳ kiểm tra nào bằng từ điển, điều này khiến cho các ước tính của nó có phần phiến diện và có thể kém chính xác hơn so với các chương trình của Google và Microsoft đã thảo luận ở trên.

Máy đo cường độ mật khẩu (plugin jQuery)

Một tùy chọn đánh giá mật khẩu phía máy khách khác là Máy đo cường độ mật khẩu(), một plugin được thiết kế cho Khung JavaScript jQuery.
Quy trình đánh giá hoạt động như sau. Có nhiều đặc điểm đã biết khiến mật khẩu tăng hoặc giảm khả năng đoán mật khẩu. Mỗi chất lượng đều có trọng lượng được xác định nghiêm ngặt riêng. Thuật toán bao gồm kiểm tra từng bước về sự hiện diện của những phẩm chất này trong mật khẩu và nếu chúng xuất hiện, tổng trọng lượng của mật khẩu sẽ tăng lên, dựa trên giá trị của nó, sau khi xem tất cả các đặc điểm, sẽ đưa ra kết luận được thực hiện về mức độ mạnh của mật khẩu.
Hãy xem xét thuật toán hoàn chỉnh cho quy trình đánh giá mật khẩu:
  1. Trọng lượng mật khẩu được đặt thành 0.
  2. Nếu độ dài mật khẩu nhỏ hơn 4 ký tự thì thuật toán kết thúc và trả về kết quả “mật khẩu quá ngắn”. Nếu không, hãy chuyển sang bước 3.
  3. Chúng tôi tăng trọng lượng mật khẩu lên Ống kính 4 *, Ở đâu len- độ dài mật khẩu.
  4. Một nỗ lực đang được thực hiện để nén mật khẩu bằng cách sử dụng đến thuật toán sau. Nếu mật khẩu chứa một chuỗi con như SS, Ở đâu S là một chuỗi có độ dài 1 thì phần đầu tiên của chuỗi con này bị loại bỏ và quá trình nén tiếp tục từ vị trí bắt đầu của phần thứ hai của chuỗi con này. Ví dụ: áp dụng thuật toán này cho chuỗi aaabbcab, đầu ra sẽ là chuỗi ABC. Sau khi thực hiện thao tác nén, trọng lượng mật khẩu giảm đi một lượng len - lenNén, Ở đâu len là độ dài mật khẩu và lenNén– độ dài mật khẩu sau khi nén.
  5. Đang cố gắng nén mật khẩu cho các trường hợp chuỗi S dài 2, 3 và 4 ký tự. Trọng lượng mật khẩu được giảm tương tự một lượng len - lenNén. Lưu ý rằng việc nén được thực hiện mỗi lần đối với mật khẩu đang được kiểm tra chứ không phải trên các chuỗi thu được trong các lần thử trước.
  6. Nếu mật khẩu có ít nhất 3 chữ số thì tăng trọng số lên 5.
  7. Nếu mật khẩu có ít nhất 2 ký tự thì tăng trọng số lên 5.
  8. Nếu mật khẩu có cả chữ hoa và chữ thường thì tăng trọng số mật khẩu lên 10.
  9. Nếu mật khẩu chứa chữ và số thì tăng trọng số mật khẩu lên 15.
  10. Nếu mật khẩu chứa ký tự và số thì tăng trọng số lên 15.
  11. Nếu mật khẩu chứa các chữ cái và ký hiệu thì tăng trọng số lên 15.
  12. Nếu mật khẩu chỉ bao gồm các chữ cái hoặc chỉ số thì hãy giảm trọng lượng mật khẩu xuống 10.
  13. Nếu trọng số mật khẩu nhỏ hơn 0 thì đặt bằng 0. Nếu lớn hơn 100 thì đặt bằng 100.
  14. Mật khẩu có trọng số nhỏ hơn 34 được coi là “yếu”. Nếu trọng số từ 34 đến 67 thì mật khẩu được phân loại là “tốt”, còn nếu lớn hơn 67 thì mật khẩu được coi là “xuất sắc”.
Máy phân tích được phân tích, giống như sản phẩm của SeaMonkey, không kiểm tra mật khẩu bằng bất kỳ từ điển nào. Ngoài ra, câu hỏi vẫn còn bỏ ngỏ về tính hợp lệ của việc chọn các giá trị nhất định của hệ số trọng số khi hình thành đánh giá mật khẩu.
Có sẵn thể hiện chức năng của plugin này.

Đại học Cornell - Trình kiểm tra độ mạnh mật khẩu

Dịch vụ trực tuyến chính thức được cung cấp bởi Trung tâm An ninh Đại học Cornell (Ithaca, Hoa Kỳ). Với sự trợ giúp của nó, người dùng có thể kiểm tra mật khẩu của mình bằng cách điền vào biểu mẫu web và gửi nó để xác minh. Đánh giá mật khẩu, như trong trường hợp dịch vụ của Google, được thực hiện ở phía máy chủ.
Việc thực hiện thuật toán không được tiết lộ cho truy cập công cộng, tuy nhiên, mô tả dịch vụ chỉ ra các yêu cầu mà mật khẩu phải đáp ứng để xác minh thành công:
  1. mật khẩu phải dài ít nhất 8 ký tự;
  2. Khi soạn mật khẩu, các ký tự từ ít nhất ba bảng chữ cái trong danh sách sau sẽ được sử dụng:
    • chữ cái la tinh viết hoa
    • chữ cái Latinh viết thường
    • con số
    • các ký tự đặc biệt (chẳng hạn như ! * () : |)
  3. mật khẩu không được chứa các từ trong từ điển;
  4. Mật khẩu không được chứa các chuỗi ký tự lặp lại (ví dụ: AAA) và các chuỗi như abc, qwerty, 123, 321.
Những yêu cầu này phải được tuân thủ nghiêm ngặt. Nếu ít nhất một số yêu cầu không được đáp ứng, mật khẩu được coi là không đáng tin cậy.
Những lời chỉ trích sau đây có thể được đưa ra đối với cách tiếp cận này. Vì vậy, mật khẩu có độ dài tùy ý, chẳng hạn như một số câu bằng ngôn ngữ tự nhiên, sẽ không đáp ứng điều kiện số 3, điều này sẽ tự động cung cấp mật khẩu có điểm thấp, mặc dù điều này có thể không hoàn toàn hợp lý.

Trình kiểm tra độ mạnh mật khẩu

Trình phân tích mật khẩu JavaScript, được phát triển và duy trì như một phần của dự án Rumkin.com.
Thuật toán đánh giá được triển khai trong máy phân tích này dựa trên các quy định chung lý thuyết thông tin. Đánh giá chính của mật khẩu là entropy của nó, được tính bằng bảng digram cho ngôn ngữ tiếng Anh.
Entropy (dung lượng thông tin) của mật khẩu là thước đo tính ngẫu nhiên của việc lựa chọn chuỗi ký hiệu tạo nên mật khẩu, được ước tính bằng phương pháp lý thuyết thông tin.
Năng lực thông tin Eđược đo bằng bit và mô tả khả năng chống đoán mật khẩu bằng phương pháp vũ phu, với điều kiện là không có thông tin tiên nghiệm về bản chất của mật khẩu và kẻ tấn công sử dụng chiến lược bạo lực tối ưu, trong đó số lần thử trung bình dự kiến ​​​​trước khi thành công một là 2 E-1 . Theo người tạo ra bộ đánh giá này, để giảm lượng thông tin được tải về phía máy khách, tất cả các ký tự không phải chữ cái đã được kết hợp thành một nhóm. Nhóm này hoạt động như một loại ký hiệu phổ quát, được sử dụng trong bảng tần số. Như nhà phát triển lưu ý, với giả định này, giá trị của entropy thu được sẽ nhỏ hơn trong trường hợp tất cả các ký hiệu được trình bày riêng biệt trong bảng tần số.
Tùy thuộc vào giá trị entropy thu được, mật khẩu được gán đặc tính độ mạnh tương ứng của nó.
Sự hỗn loạn Mức độ bền