Ý tưởng đặt mật khẩu: vì sao ý tưởng của bạn vô dụng

Đăng ngày bởi David Carrero

Có một truy vấn lặp đi lặp lại không ngừng: ý tưởng đặt mật khẩu. Và điều đó dễ hiểu, vì biểu mẫu đang chờ, bạn phải nghĩ ra cái gì đó, và chưa ai từng giải thích cho bạn cách làm.

Vấn đề là chính chữ ý tưởng đã là sai lầm. Một mật khẩu tốt không phải là một ý tưởng tốt. Nó là một mật khẩu không có ý tưởng nào đằng sau.

Đây không phải câu văn hoa để mở đầu bài viết: một cuộc tấn công vận hành đúng như vậy, theo nghĩa đen.

Danh sách ý tưởng nảy ra trong đầu bạn chính là danh sách hắn thử trước tiên

Một cuộc tấn công từ điển không bắt đầu ở aaaaaaaa rồi đếm lên. Nó bắt đầu từ những mật khẩu đã rò rỉ hàng triệu lần, tiếp đến là tên người, danh từ thông thường, tên thành phố, câu lạc bộ bóng đá và những năm bốn chữ số. Và trên nền đó nó áp các quy tắc: chữ hoa ở đầu, chữ số hoặc ! ở cuối, a thành @, e thành 3, o thành 0, từ viết ngược, từ viết hai lần.

Những quy tắc ấy không phải bí mật, cũng chẳng mới mẻ. Chúng đã được ghi ra hàng chục năm và có sẵn trong mọi công cụ tấn công. Nói cách khác: danh mục những sáng kiến mà bạn sẽ gọi là «ý tưởng đặt mật khẩu» chính là, gần như theo đúng thứ tự, tệp cấu hình của kẻ đang tấn công bạn.

Từ đây trở đi, mọi con số đều lấy từ công cụ kiểm tra của nhà này, vốn giả định một cuộc tấn công ngoại tuyến với 10¹² lần thử mỗi giây nhắm vào một hàm băm nhanh. Điều đó được ghi ngay dưới kết quả, và không có dữ kiện đó thì không con số thời gian nào có nghĩa. Bạn có thể tự tái lập từng con số: gõ ví dụ vào và nhìn.

Ý tưởng thứ nhất: tên bạn và năm bạn sinh ra

Nguyen1985. Mười ký tự, một chữ hoa, bốn chữ số. Nó đáp ứng đúng những gì nửa internet đòi hỏi.

Công cụ kiểm tra bẻ đôi nó chỉ trong một cái liếc: «Có trong từ điển của chúng tôi» cho Nguyen, «Trông như năm hoặc ngày» cho 1985. Kết quả: 55.800 lần thử, tức là ở tốc độ đó thì chưa đầy một giây.

Và hãy để ý vì sao là 55.800 chứ không phải một con số thiên văn. Không phải vì nó ngắn. Mà vì đó không phải mười quyết định, chỉ là hai: tên nào và năm nào. Những cái tên phổ biến đếm bằng hàng nghìn; những năm mà người ta thực sự đặt vào mật khẩu đếm bằng hàng chục. Nhân lên là xong: bạn đã gõ mười ký tự và chọn trong chưa đến sáu mươi nghìn mật khẩu khả dĩ.

Ý tưởng thứ hai: thay chữ bằng số

Đây là mẹo mà ai cũng tin, và cũng là mẹo già đi tệ nhất.

Nguy3n1985 cho 101.600 lần thử. Có tăng, đúng vậy: đúng gấp đôi. Và gấp đôi của không có gì thì vẫn là không có gì — công cụ vẫn đo nó dưới một giây — bởi phép thay thế không tạo ra một mật khẩu mới. Nó chỉ thêm một câu hỏi có-hoặc- không mà kẻ tấn công đã tính vào từ lâu: người này có thay chữ e hay không?

Nhìn kỹ đi: công cụ thậm chí không đổi phán quyết. Nó vẫn nói «Có trong từ điển của chúng tôi», lần này kèm ghi chú dùng số thay chữ. Nó vẫn tìm ra từ đó.

Nếu muốn thấy chuyện này đi xa đến đâu, hãy thử ví dụ kinh điển. P@ssw0rd — với chữ hoa, dấu a còng, số không và cả cái vẻ đã được nghĩ kỹ — đổ trong 17 lần thử. Mười bảy. Đếm được trên ngón tay hai bàn tay với một chút kiên nhẫn.

Ý tưởng thứ ba: viết ngược lại

neyugn1985 cho 55.800 lần thử. Đúng cùng một con số, đến chữ số cuối cùng, như Nguyen1985.

Không phải đảo ngược giúp ích ít. Nó không thay đổi bất cứ điều gì. Đảo ngược từ là một trong những quy tắc mà từ điển mang sẵn, nên công cụ vẫn tìm ra y hệt và gắn nhãn y hệt, lần này kèm ghi chú viết ngược.

Lặp lại cũng vậy: NguyenNguyen tụt xuống 919 lần thử — gõ gấp đôi số chữ cái lại khiến bạn tệ hơn trước, vì «lặp lại một đoạn» cũng là một mẫu có tên riêng.

Ý tưởng thứ tư: đưa ngón tay đi dọc bàn phím

Khi người ta không muốn nghĩ, họ nhìn bàn phím và đi theo một hình. Ra được qwerty123, hoặc 1qaz2wsx, hoặc 1q2w3e4r, hoặc asdfghjkl.

Nó có cảm giác ngẫu nhiên vì chẳng mang nghĩa gì. Nhưng bàn phím có một hình học cố định và rất nhỏ, và đi dọc nó chính là việc mà một chương trình làm giỏi hơn bạn:

  • qwerty123273 lần thử.
  • 1qaz2wsx29 lần thử.

Hai mươi chín. Những mật khẩu này mòn đến mức chẳng cần đến quy tắc bàn phím nữa: chúng nằm nguyên xi trong các danh sách mật khẩu rò rỉ, và công cụ gạt chúng đi bằng một câu cụt lủn «Có trong từ điển của chúng tôi».

Ý tưởng thứ năm: con chó, và cái ngày không bao giờ quên

Toby2015! là một mật khẩu có tiểu sử: tên con chó, năm nó về nhà, và một dấu chấm than để làm hài lòng biểu mẫu. Nó cho 1,2 × 10⁸ lần thử, và vẫn là chưa đầy một giây.

Những cái tên thú cưng phổ biến nhất chỉ vài nghìn, và nằm chung danh sách với tên người. Dấu ! ở cuối đóng góp đúng bằng những gì một quy tắc mà ai cũng áp dụng đóng góp: không gì cả.

Với ngày kỷ niệm thì còn khó chịu hơn. 24121985 — một ngày, một tháng, một năm — đọc như tám chữ số, nhưng công cụ gắn nhãn «Chứa một ngày» và giải quyết trong 14.966 lần thử. Lý do nằm ở cuốn lịch: có 31 ngày, 12 tháng và hơn một thế kỷ các năm hợp lý. Tám chữ số trông như mười triệu tổ hợp thực ra chỉ khoảng mười lăm nghìn.

Đó là cái bẫy của ngày tháng: nó cho bạn độ dài mà không cho bạn sự bất định, và chỉ sự bất định mới được trả tiền.

Ý tưởng thứ sáu: biển số xe, và điều công cụ không thể thấy

4521KDR là trường hợp khác, và đáng dừng lại.

Ở đây công cụ nói «Chúng tôi không tìm thấy mẫu nào đã biết» và tính ra 3,9 × 10¹⁰ lần thử. Nhưng nó đánh dấu con số ấy là một trần, và chính chữ đó mới là phần quan trọng: nó không tìm ra mẫu của bạn, điều này không chứng minh rằng bạn không có mẫu nào. Ngay cả như vậy, và tính rộng rãi, thời gian vẫn là chưa đầy một giây.

Và đây là khoảng trống cần hiểu. Công cụ không biết bạn đi xe gì. Người quen bạn, người đang mở Instagram của bạn, hoặc người đã mua một bản đổ dữ liệu có biển số xe của bạn, không cần 3,9 × 10¹⁰ lần thử: họ cần một. Con số bạn thấy khi không có mẫu đo sự thiếu hiểu biết của một người lạ, chứ không phải của một người đã đi tìm hiểu về bạn.

Điều tương tự đúng với số nhà, số căn cước, số điện thoại và ngày cưới.

Điểm chung của cả sáu

Không ý tưởng nào trong số này thất bại vì «chưa đủ phức tạp». Tất cả thất bại vì cùng một lý do: chúng là tự truyện, và tự truyện thì đoán được. Tên bạn, năm của bạn, con chó của bạn, chiếc xe của bạn, cách bạn đi trên bàn phím. Mỗi quyết định ấy đều có vẻ riêng tư và thuộc về bạn, và chính vì thế mà nó nằm trong một danh sách ngắn mà ai đó đã viết ra từ lâu.

Thêm độ phức tạp chẳng sửa được gì, vì độ phức tạp mà bạn áp dụng cũng là một quyết định của bạn và cũng nằm trong danh sách. Vì thế Nguy3n1985 chỉ được thêm một hệ số hai đáng thương, còn neyugn1985 thì đến thế cũng không.

Nếu bạn muốn lập luận bằng con số, nó nằm ở bit entropy: điều đáng kể không phải bạn có thể đã viết bao nhiêu mật khẩu, mà còn lại bao nhiêu sau khi trừ đi mọi thứ người ta biết về sở thích của bạn.

Lối ra không phải một ý tưởng hay hơn: là thôi có ý tưởng

Cách duy nhất để rời khỏi danh sách đó là mật khẩu không ra từ đầu bạn.

Đó chính xác là điều Diceware làm: bạn gieo năm con xúc xắc, tra số đó trong một danh sách 7.776 từ và ghi lại thứ hiện ra. Mỗi lần gieo đáng giá 12,9 bit, và là 12,9 thật, vì xúc xắc không có sở thích, không có trí nhớ và không biết năm sinh của bạn. Sáu từ cho khoảng 77 bit.

Đưa một cụm như vậy vào công cụ và xem điều gì thay đổi: sáu từ thông thường được gieo bằng xúc xắc nhảy từ «Rất yếu» lên «Rất mạnh», và thời gian thôi được đo bằng giây. Không phải vì chúng cầu kỳ — chúng không hề, đó là sáu từ bình thường — mà vì đó là phần duy nhất trong mật khẩu của bạn mà bạn không quyết định. Nếu bạn thích để trình duyệt gieo hộ, bộ tạo thực hiện đúng phép rút thăm ấy và cho bạn thấy số bit trong lúc làm.

Vậy nên câu trả lời trung thực cho «cho tôi vài ý tưởng đặt mật khẩu» là bạn không cần chúng, thậm chí bạn có quá nhiều rồi. Thứ bạn thiếu là một con xúc xắc.


Nguồn: mọi con số trong bài này đều lấy từ công cụ kiểm tra của password.es, vốn công bố mô hình của nó ngay dưới kết quả — 10¹² lần thử mỗi giây, tấn công ngoại tuyến, hàm băm nhanh — và có thể tái lập bằng cách gõ từng ví dụ vào /vi/kiem-tra/ · bộ máy phân tích mẫu là zxcvbn của Daniel Lowe Wheeler (Dropbox), trình bày tại USENIX Security 2016 với tên «zxcvbn: Low-Budget Password Strength Estimation» · các quy tắc thay thế, đảo ngược và lặp lại được dẫn ở đây là những quy tắc mà công cụ tấn công từ điển mang sẵn · Arnold G. Reinhold, «The Diceware Passphrase Home Page» (1995), cho 7.776 từ và 12,9 bit mỗi lần gieo.

Ảnh của RDNE Stock project · Pexels

← Quay lại blog