Trình tạo cụm mật khẩu Diceware - Cụm mật khẩu từ ngẫu nhiên
Tạo các cụm mật khẩu mạnh, dễ nhớ được xây dựng từ các từ thực ngẫu nhiên bằng phương pháp Diceware — tính ngẫu nhiên của mật mã thực sự, với entropy thực tế tính bằng bit được hiển thị trung thực.
kết quả
Công cụ này tạo ra các cụm mật khẩu theo cách của Diceware: thay vì một chuỗi ký tự ngẫu nhiên dày đặc khó gõ và thậm chí còn khó nhớ hơn, nó xâu chuỗi một số từ thông thường được chọn ngẫu nhiên một cách độc lập. Một cụm mật khẩu như "forest-comet-lantern-guitar-oasis-thistle" mang entropy thực, có thể tính toán được trong khi vẫn là thứ mà con người có thể đọc to, gõ trên bàn phím điện thoại hoặc ghi nhớ sau một vài lần thử - chính xác là thế hệ kiểu Diceware đánh đổi được thiết kế xung quanh.
Tính ngẫu nhiên là toàn bộ vấn đề, do đó, vấn đề này được xem xét nghiêm túc ở đây: mỗi từ được chọn bằng cách sử dụng trình tạo số ngẫu nhiên được bảo mật bằng mật mã crypto.getRandomValues() của trình duyệt, với tính năng lấy mẫu từ chối thích hợp trên mỗi lần rút thăm. Giá trị ngẫu nhiên 32 bit thô chỉ được chấp nhận nếu nó nằm trong phạm vi chia đều cho độ dài danh sách từ; các giá trị còn sót lại, phần còn lại không đồng đều sẽ bị loại bỏ và cuộn lại. Bỏ qua bước này và chỉ thực hiện giá trị % wordlistLength sẽ ưu tiên một chút các từ có chỉ mục thấp so với các từ có chỉ mục cao - một sai lệch thống kê tinh tế mà việc triển khai ngây thơ sẽ âm thầm đưa ra. Trình tạo này không bao giờ sử dụng phím tắt đó.
Sự trung thực về entropy là nửa còn lại của thiết kế. Danh sách từ đi kèm có 1.821 từ tiếng Anh hàng ngày, rõ ràng, độc đáo — một danh sách lớn, mang tính đại diện nhưng không phải là danh sách 7.776 từ cụ thể được dự án Diceware cổ điển sử dụng, vì vậy công cụ này không bao giờ yêu cầu con số 12,9 bit mỗi từ nổi tiếng chỉ áp dụng cho danh sách chính xác đó. Thay vào đó, entropy mỗi từ được tính trực tiếp dưới dạng log2 (độ dài danh sách), đạt khoảng 10,8 bit mỗi từ ở đây và kết quả trên màn hình luôn hiển thị công thức đầy đủ - số từ nhân với số bit mỗi từ, cộng với sự đóng góp trung thực của bất kỳ tính năng bổ sung nào - vì vậy bạn có thể biết chính xác tổng số đã đạt được như thế nào thay vì tin vào một con số tiếp thị.
Các nút chuyển đổi tùy chọn được xử lý một cách trung thực như nhau. Viết hoa mỗi từ là một quy tắc xác định, cố định được áp dụng theo cùng một cách mọi lúc, do đó, nó không thêm entropy thực sự nào cả - kẻ tấn công biết quy tắc này sẽ không thu được lợi ích gì nếu không biết chữ cái nào được viết hoa và công cụ này nói rất rõ ràng. Ngược lại, việc thêm một số có hai chữ số ngẫu nhiên là một phép rút ngẫu nhiên thực sự trên 100 giá trị có khả năng như nhau, thêm một số thực và đã nêu ~ 6,6 bit lên trên các từ. Mọi thứ đều được tính toán và hiển thị cục bộ trong trình duyệt của bạn mà không có máy chủ nào tham gia, do đó, bất kỳ ai ngoài bạn đều không thể nhìn thấy cụm mật khẩu bạn tạo.