Mức Độ Ngẫu Nhiên Thực Sự Của Các Mã Xác Thực Hai Yếu Tố Là Như Thế Nào?

Bạn biết đến mã thông báo xác thực hai yếu tố, những con số sáng tạo, sáu chữ số bạn sử dụng như một lớp bảo vệ thứ hai khi đăng nhập vào, ví dụ, email của bạn? Những con số ngẫu nhiên, được tạo ra ngẫu nhiên đó là một trong những cách dễ nhất để bảo vệ tài khoản của bạn khỏi việc bị hack. Nhưng từ một thời gian, tôi nuôi giữ một lý thuyết âm mưu về những mã đó: Có lẽ chúng không phải ngẫu nhiên như chúng ta thường được tin.
Mọi thứ bắt đầu từ một quan sát: Mã của tôi thường dường như có chứa các yếu tố làm cho chúng dễ nhớ hơn. Các yếu tố như sự lặp lại số một chữ số (111 293; 134 441); sự lặp lại nhiều chữ số (112 222); đối xứng (353 595); dãy số tăng hoặc giảm (345 564); thứ tự số lặp lại (618 514); và sự kết hợp của chúng (876 565). Thỉnh thoảng, tôi sẽ nhận được những con số không mong muốn, như 031 472 hoặc 253 741, mà ít hấp dẫn hơn về mặt thẩm mỹ (thú thực, hơi mơ hồ) và khó nhớ hơn. Nhưng thường xuyên, các mã xác nhận xuất hiện trong ứng dụng Google Authenticator của tôi dường như được tùy chỉnh để giảm gánh nặng nhận thức khi lưu trữ chúng trong bộ nhớ làm việc của tôi, khuôn mẫu lưu trữ tạm thời mà não bộ chúng ta sử dụng để chứa thông tin trong vài giây quý báu trước khi quên mãi mãi.
Tôi không phải là người duy nhất có cảm giác này về các mã xác thực hai yếu tố. Khi tôi nhắc đến điều này với biên tập viên của tôi, đôi mắt của cô sáng lên như thấy quen thuộc. Andy Greenberg, người viết an ninh hàng đầu của MYTOUR, nói với tôi ông cũng từng nghĩ đến điều đó. Và khi tôi hỏi nhà tâm lý học kognitif Marisca Milikowski, chuyên gia về kiến thức về số của con người, cô ấy nói rằng cô ấy cũng đã chú ý đến điều đó.
"Nhiều trong những con số này, chúng thực sự tuyệt vời," cô nói với tôi khi thảo luận về những ví dụ trên, tất cả đều xuất hiện gần đây trong ứng dụng Authenticator của tôi. "Ý tôi là, nhìn vào 876 565. Khi bạn nhận được 876, giống như bạn chỉ cần nhớ một điều. Và khi có 565 phía sau, à, đó cũng là một mô hình tuyệt vời."
Như đã được biết, có bằng chứng chứng minh rằng những đặc tính chủ quan như sự tuyệt vời liên quan đến khả năng nhớ của một số. Thập kỷ 1990, Milikowski tiến hành nhiều nghiên cứu về những gì làm cho các số dễ nhớ hơn hoặc khó nhớ hơn. Trong một nghiên cứu, cô phát hiện rằng, đối với các số từ một đến 100, số đơn chữ số, số teen (12-19), số kép (11, 22, …, 99) và số trong bảng lớn (số xuất hiện trong bảng nhân, ví dụ: 49, 27, 36) tạo ấn tượng sâu sắc hơn đối với các đối tượng thử nghiệm so với những số còn lại, "Khác" như 37 chẳng hạn.
Trong một thử nghiệm khác, cô đã yêu cầu các đối tượng thử nghiệm đánh giá mỗi số từ 1 đến 100 trên nhiều thang đo, bao gồm một phổ tốt-xấu. 12 số được đánh giá cao nhất, theo thứ tự của sự tốt là 10, 100, 36, 8, 24, 66, 16, 4, 1, 88, 21 và 12. 12 số được đánh giá thấp nhất là 37, 93, 41, 51, 39, 17, 13, 59, 29, 43, 53 và 67. Đáng chú ý, tất cả các số tốt thuộc một hạng mục đặc quyền, nhớ được hơn, tất cả các số xấu thuộc hạng mục Khác ít nhớ. Trong một nghiên cứu tiếp theo, Milikowski phát hiện rằng, trong một nhiệm vụ trí nhớ ngắn hạn, các đối tượng thử nghiệm không chỉ có khả năng ghi nhớ đúng tất cả các số từ danh sách tốt hơn so với danh sách xấu; họ cũng có xu hướng nhớ sai các số từ danh sách "xấu", ghi nhớ các câu trả lời Khác khác nhau như 63, 19, 83 và 79. Đó chính là loại sai lầm bạn muốn tránh khi sao chép một mã xác thực hai yếu tố.
Milikowski không bao giờ nghiên cứu về các số có 6 chữ số, nhưng cuối cùng cuộc trò chuyện, cô ấy giả thuyết rằng, cố ý hay không, các mã xác thực hai yếu tố thực sự bao gồm các yếu tố giúp cải thiện khả năng nhớ của chúng. Điều lớn nhất, theo cô, là sự lặp lại: "Ngay cả khi mã bao gồm những số mà tôi gọi là 'xấu,' nó, tôi nghĩ, vẫn được lưu giữ bởi những mô hình."
Hãy dừng lại, bây giờ, để giải quyết những khuyết điểm rõ ràng trong lý thuyết của tôi. Hoàn toàn có khả năng những hình tượng này không phải do thiết kế. Con người xuất sắc trong việc tìm ra mô hình trong sự ngẫu nhiên. Hơn nữa, giác quan của chúng ta về những gì nên là ngẫu nhiên làm cho chúng ta kém có khả năng dự đoán, nhận diện và chấp nhận cái mà ngẫu nhiên thực sự trông như thế nào. Khi Apple lần đầu tiên ra mắt tính năng trộn bài hát, các danh sách phát thực sự ngẫu nhiên mà nó tạo ra thường nhóm nhiều bài hát từ cùng một nghệ sĩ. Khi người dùng phàn nàn, Apple sửa đổi tính năng để có ý tránh những hiệu ứng cụm (thực sự ngẫu nhiên!) này. Như Steve Jobs nói vào thời điểm đó: "Chúng tôi đang làm cho nó ít ngẫu nhiên hơn để khiến nó trở nên ngẫu nhiên hơn."
Hoặc hãy xem xét một loạt các lần tung đồng xu: Hầu hết mọi người ít có khả năng dự đoán một chuỗi năm mặt sấp hơn là dự đoán một cái gì đó như THTHT - mặc dù mỗi trong 32 kết quả có thể có khi tung đồng xu năm lần đều có xác suất xảy ra như nhau: 1/32.
Hãy tin tôi: Tôi hiểu tất cả điều đó. Và theo lý thuyết, tôi đồng tình: Có vẻ như một loại độ chệch nhận thức nào đó mới là một giải thích khả thi hơn cho các mã xác thực dễ nhớ của tôi.
Và tuy nhiên! Các kỹ sư bảo mật có thể có một số động cơ chính đáng để tạo ra các mã xác thực dễ nhớ hơn. Tại Hội nghị bảo mật Enigma tháng 1, kỹ sư bảo mật của Google, Grzegorz Milka, tiết lộ rằng dưới 10 phần trăm người dùng Google tích hợp 2FA. Lý do chính, theo ông ấy? Nó là phiền toái. Vì vậy, có lý thuyết rằng các mã xác thực dễ nhớ sẽ tạo ra trải nghiệm người dùng mượt mà hơn.
Thực tế, trải nghiệm người dùng là lý do tại sao các tiện ích mở rộng trình duyệt như Authy cho phép người dùng truy cập trực tiếp vào các mã xác thực 2FA từ máy tính của họ, mà không cần phải sao chép và dán chúng, hoặc nhớ chúng trên một thiết bị trước khi nhập lại chúng trên một thiết bị khác. Dịch vụ xác thực trên điện thoại thông minh giúp giảm thiểu rắc rối trong việc sao chép/dán và nhớ/gọi nhớ theo cách khác: Ứng dụng Authenticator của Google cho phép người dùng sao chép mã xác thực 2FA của họ với một lần nhấn thay vì lựa chọn giữ nút lâu như thông thường. Nó cũng chia nhỏ mã sáu chữ số thành hai nhóm ba chữ số.
Nhà tâm lý học gọi cách tiếp cận cuối cùng này là chunking, và đó là một kỹ thuật mạnh mẽ để cải thiện trí nhớ và khả năng truy xuất (một ví dụ thực tế kinh điển là cách chúng ta phân chia số điện thoại); việc trình bày thông tin theo dạng chunk đáng kể tăng khả năng nhớ của người đó.
Tất cả điều này để nói: Các kỹ sư bảo mật đúng nghĩ về trải nghiệm 2FA và cách họ có thể giảm gánh nặng kognitif trên bộ nhớ làm việc của người dùng. Liệu nó có thực sự điên rồ khi nghi ngờ rằng các bộ xác thực cũng có thể được thiết kế để tạo ra các mã xác thực dễ nhớ?
Điên rồ? Không. Nhưng mà nó chắc chắn là sai.
"Không, những dãy số này không được thiết kế để nhớ một cách có chủ ý," nói Google software engineer Diana Smetters, một chuyên gia về bảo mật máy tính và mật mã áp dụng có lịch sử sâu sắc về hệ thống xác thực. Google Authenticator tạo mã sử dụng thuật toán Time-Based One Time Password. Và vì TOTP là một tiêu chuẩn mở, hầu hết các bộ tạo mã 2FA khác cũng thực hiện như vậy. "Điều tuyệt vời khi làm một tiêu chuẩn là mọi người đều đồng tình về cách bước nhảy," Smetters nói.
Và bước nhảy đó là ngẫu nhiên. Hoặc chí ít, giả ngẫu nhiên; thuật toán TOTP tạo ra một loạt các số có chất lượng gần giống như một loạt số thực sự ngẫu nhiên. Điều đó có nghĩa là, giống như một đống lần tung đồng xu, hoặc một danh sách phát ngẫu nhiên, dãy số kết quả thường chứa các mô hình mà thách thức mong đợi của chúng ta về tính ngẫu nhiên. Đối với các hình thức xác thực khác, công ty tránh sử dụng chữ số "0" và chữ cái viết hoa "O," mà người dùng thường nhầm lẫn. "Nhưng chúng tôi không làm điều đó để làm cho mã xác thực dễ nhớ hơn," cô nói, "chúng tôi làm điều đó để chúng khó nhận diện hơn."
Nói vậy thôi, Google có thể bỏ qua một số mã. Các mã 2FA mà công ty gửi qua tin nhắn văn bản cũng được tạo ngẫu nhiên, nhưng loại bỏ các số mà người ta có thể thấy nhầm lẫn, khó xử, hoặc không may mắn. Ví dụ, Google làm sạch bất kỳ mã nào giống như số điện thoại ngắn mà họ sử dụng để gửi mã qua SMS.
Về mặt kỹ thuật, Google có thể loại bỏ một số dãy số khó nhớ. Nhưng có lẽ không phải ý tưởng tốt. "Bạn không thể loại bỏ quá nhiều thứ vì bạn muốn có không gian đầy đủ của giá trị có thể có cho entropy," Smetters nói. Theo cơ bản, thuật toán của bạn sẽ tạo ra ít mã hơn; nói chung, càng ít mã thuật toán của bạn tạo ra, càng dễ bị crack. Ngoài ra, cô nói, nhiều mô hình có lẽ đối với mọi người là dễ nhớ vì lý do khác nhau.
Cái mà với tôi dường như là điều quan trọng nhất: Google không cần phải thiết kế những kỹ thuật ghi nhớ vào các mã 2FA của mình. Não bộ chúng ta đã đủ giỏi để tự tìm ra những mô hình đó.
Thêm về An ninh
- Để nâng cao cấp độ hai yếu tố của bạn, hãy kiểm tra Advanced Protection của Google, tài khoản an toàn nhất bạn có thể tìm thấy
- Nếu bạn là người nhạy cảm với khả năng nghe lén tiềm ẩn, hãy dừng việc sử dụng tin nhắn cho yếu tố hai
- Đối với một yếu tố hai vật lý, hãy thử một YubiKey, nhưng hãy nhớ rằng chúng không hoàn toàn không lỗi; một cập nhật gần đây của Google cho Chrome đã làm cho chúng trở nên có thể bị tấn công giả định (tuy nhiên, điều đó chỉ xảy ra trên Google)
