Có một khoảng cách rất lớn giữa một quy tắc bạn không tuân thủ và một quy tắc bạn không thể tuân thủ. “Mỗi nơi một mật khẩu khác nhau” thuộc loại thứ hai.
Trong toàn bộ giáo lý mà chúng ta từng học thuộc lòng — chữ hoa, chữ số, ký tự đặc biệt, bắt buộc đổi mật khẩu định kỳ —, NIST đã ném gần hết qua cửa sổ trong SP 800-63B. Độ dài trở nên quan trọng hơn độ ngoằn ngoèo. Việc bắt buộc xoay vòng mật khẩu biến mất, trừ khi có dấu hiệu bị lộ. Còn chuyện đòi ký tự đặc biệt được thay bằng một việc hợp lý hơn nhiều: đối chiếu mật khẩu với các danh sách đã bị rò rỉ.
Chỉ một quy tắc sống sót. Quy tắc không dùng lại. Và đó lại chính là quy tắc chúng ta phớt lờ nhiều nhất, bởi để làm được nó cần một thứ mà không tấm áp phích nội bộ nào trong công ty chịu nhắc tới.
Vì sao trí nhớ của bạn không kham nổi
Hãy thử đếm xem bạn có bao nhiêu tài khoản. Không phải những cái bạn đang dùng: tất cả những cái bạn có. Ngân hàng, hộp thư, cái hộp thư còn lại, cửa hàng nơi bạn mua một đôi giày năm 2019, cái diễn đàn, hãng bay, ứng dụng gửi xe, ứng dụng quản lý chung cư, cái cổng dịch vụ công bắt bạn đăng ký chỉ để làm một thủ tục mất năm phút.
Giờ hãy tưởng tượng bạn phải thuộc lòng một chuỗi dài, ngẫu nhiên và khác nhau cho từng cái. Vấn đề không phải là nó khó. Vấn đề là bộ não người không có cách nào đạt tới mục tiêu đó, và việc khăng khăng điều ngược lại suốt bao nhiêu năm là một trong những sự tàn nhẫn cỡ nhỏ của ngành an toàn thông tin.
Thế nên chúng ta làm điều duy nhất có thể làm: một mật khẩu tốt cộng với các biến
thể của nó. PhoBo2019! cho ngân hàng và PhoBo2019? cho diễn đàn. Hoặc thẳng
thừng dùng đúng một mật khẩu cho mọi nơi, kèm một dấu hoa thị trong đầu kiểu “ừ thì
riêng ngân hàng tôi để mật khẩu khác”.
Và vấn đề nằm ở đó, bởi đòn tấn công thật sự không phải là đoán mật khẩu của bạn. Nó là thử lại đúng cái mật khẩu đã bị lấy trộm của bạn ở một nơi khác. Cái diễn đàn năm 2019 bị rò rỉ — mấy cái diễn đàn năm 2019 luôn bị rò rỉ —, ai đó cầm cái danh sách email và mật khẩu ấy rồi đem thử tự động vào mọi dịch vụ mà họ nghĩ ra được. Chẳng cần phá gì cả. Bạn đã đưa chìa khóa cho họ rồi; họ chỉ đang đi thử từng cánh cửa. Đó là credential stuffing, và nó hiệu quả chính xác vì quy tắc duy nhất có ý nghĩa lại là quy tắc không ai làm nổi.
Trình quản lý mật khẩu không phải là tiện nghi
Đây là chỗ người ta hay rao bán trình quản lý mật khẩu như một món xa xỉ: tiện quá, tự điền hộ, khỏi phải gõ. Đúng là thế, và đó là phần ít quan trọng nhất.
Trình quản lý mật khẩu không giúp bạn đỡ việc: nó làm cho một quy tắc vốn bất khả thi trở nên khả thi. Nó là khác biệt giữa việc bắt bạn chạy một trăm cây số và việc đưa cho bạn một chiếc xe đạp. Con số không đổi; đổi ở chỗ bạn có làm nổi hay không.
Có nó trong tay, mọi thứ còn lại của SP 800-63B tự động được giải quyết. Dài quan trọng hơn phức tạp? Trình quản lý sinh mật khẩu dài bao nhiêu tùy bạn, vì bạn có phải gõ đâu. Mỗi nơi một mật khẩu khác? Chuyện vặt, theo đúng định nghĩa. Không bắt xoay vòng định kỳ? Tuyệt: bạn chỉ đổi cái nào đã bị rò rỉ, và nhiều trình quản lý còn báo cho bạn biết khi chuyện đó xảy ra. Cái duy nhất bạn vẫn phải nhớ là mật khẩu chính, và nó đáng để bạn tạo ra một cách cẩn thận — bốn hoặc năm từ ngẫu nhiên trong trình tạo mật khẩu rồi xem nó trụ được tới đâu trong công cụ kiểm tra —.
Lời phản bác trung thực
“Bỏ hết trứng vào một giỏ.” Tôi nghe câu này cả nghìn lần rồi và nó không hề ngớ ngẩn. Nếu ai đó vào được trình quản lý của bạn, họ vào được tất cả. Đó là một điểm lỗi duy nhất, và ai bảo bạn rằng không phải thì người đó đang bán cho bạn thứ gì đó.
Câu trả lời cũng phải trung thực: đúng, đó là một cái giỏ duy nhất, nhưng lựa chọn thay thế không phải là trứng được chia ra nhiều giỏ. Là trứng nằm lăn lóc dưới sàn. Không có trình quản lý, bạn không kết thúc với tám mươi mật khẩu độc lập; bạn kết thúc với cùng một mật khẩu ở tám mươi nơi, tức là vẫn cái giỏ ấy nhưng không nắp, không mã hóa, và được nhân bản trên tám mươi máy chủ của người khác mà mức độ an toàn thì bạn hoàn toàn không biết.
Hãy nhìn kỹ mô hình mối đe dọa thật. Để phá được kho dữ liệu đã mã hóa của một trình quản lý tử tế, người ta cần hoặc một lỗi nghiêm trọng của sản phẩm, hoặc mật khẩu chính của bạn. Để thử vào hộp thư của bạn cái mật khẩu bạn từng dùng ở một cửa hàng trực tuyến thì chẳng cần gì cả: một đoạn script và một danh sách. Bạn đang so sánh một đòn tấn công cần rất nhiều thứ với một đòn tấn công đang diễn ra rồi, liên tục, ở chế độ tự động.
Còn đây mới là sự đề phòng hợp lý: một mật khẩu chính dài và duy nhất, bật xác thực hai yếu tố cho trình quản lý, và ý thức rằng mật khẩu chính giờ là điểm sống còn của bạn. Hãy đối xử với nó đúng như vậy.
Chọn cái nào, và vì sao không có một câu trả lời duy nhất
Đến đây phải nói một điều hơi khó nghe với một trang có link tiếp thị liên kết: trình quản lý tốt nhất là cái bạn sẽ thực sự dùng, và có nhiều hơn một cái tốt.
Bitwarden là phần mềm tự do, có gói miễn phí đủ cho nhu cầu của gần như tất cả mọi người, và bạn có thể tự dựng máy chủ riêng nếu thích. Việc mã nguồn của nó kiểm toán được không phải là chiêu marketing: nó có nghĩa là bạn không phải tin vào lời hứa của ai cả.
KeePass — cùng các bản phái sinh — giữ mọi thứ trong một tệp nằm ngay trên máy bạn. Không đám mây, không tài khoản, không nhà cung cấp. Nếu nỗi lo của bạn là “tôi không muốn mật khẩu của mình nằm trên máy chủ của người khác”, thì nỗi lo đó được giải quyết theo đúng nghĩa đen. Đổi lại, chuyện đồng bộ giữa các thiết bị là việc của bạn.
1Password thì mất phí và là cái chúng tôi dẫn link từ đây — tiếp thị liên kết, xin nói rõ —. Thứ nó làm tốt lại chính là phần thường quyết định một trình quản lý có sống sót trong một gia đình hay không: người không rành công nghệ hiểu được nó, chia sẻ được với bạn đời, và không bỏ ngang sau một tuần. Nó không an toàn hơn Bitwarden chỉ vì nó mất phí. Với nhiều người, nó chỉ đơn giản là dễ không-bỏ-cuộc hơn.
Và trình quản lý có sẵn trong trình duyệt. Miễn phí, bạn đã cài sẵn rồi, nó còn đang chủ động hỏi có lưu không. Nó thua những cái trên về khả năng kiểm soát, về tính di động và về chia sẻ, lại còn trói bạn vào một hệ sinh thái. Không sao cả: dùng trình quản lý của trình duyệt vẫn tốt hơn không dùng gì hết, tốt hơn một trời một vực, vì nó giải quyết cái vấn đề lớn. Ai nói ngược lại là đang đặt sự thuần khiết lên trên rủi ro thật.
Câu tóm lại tất cả
Suốt bao nhiêu năm người ta bảo chúng ta từng mật khẩu phải như thế nào, và gần như không bao giờ nói chúng ta sẽ nhớ hết chúng bằng cách nào. Đó là bước còn thiếu, và thiếu nó thì quy tắc duy nhất sống sót không còn là một quy tắc: nó là một lời trách móc.
Chọn lấy một cái. Cái nào cũng được. Cuộc tranh cãi xem cái nào hơn chỉ là chuyện bên lề so với khoảng cách giữa việc có trình quản lý và không có.
Nguồn: NIST SP 800-63B, «Digital Identity Guidelines: Authentication and Lifecycle Management» (độ dài quan trọng hơn độ phức tạp, không bắt xoay vòng định kỳ trừ khi có dấu hiệu bị lộ, đối chiếu với danh sách mật khẩu đã bị lộ) · tài liệu và mô hình bảo mật do Bitwarden, KeePass và 1Password công bố.