Bật lớp bảo vệ thứ hai bằng SMS là một trong những quyết định đúng đắn nhất bạn có thể làm hôm nay. Nó cũng là quyết định đầu tiên bạn sẽ phải xem lại.
Cả hai điều đó cùng đúng một lúc, và toàn bộ cái khó của câu chuyện nằm ở đấy. Tranh luận về SMS thường trượt về hai phe sai ngang nhau: phe coi SMS là bảo mật thật, và phe coi nó là diễn kịch. SMS tốt hơn không có rất nhiều, và cùng lúc là lớp bảo vệ thứ hai yếu nhất trong những lớp đang được dùng phổ biến. Không có gì mâu thuẫn ở đây. Có một cái thang, và SMS là bậc đầu tiên — cao hơn mặt đất rất nhiều.
Cái mà SMS làm tốt
Không có lớp bảo vệ thứ hai, tài khoản của bạn treo trên một bí mật có thể đã lưu lạc nhiều năm trong một bãi dữ liệu rò rỉ của người khác mà bạn không hề hay biết. Ai đó lấy cái danh sách ấy, thử hết dịch vụ này đến dịch vụ khác, và nếu bạn dùng lại mật khẩu, họ vào. Họ không nhắm vào bạn: dòng có tên bạn chỉ tình cờ nằm trong bảng tính.
SMS chặt đứt chuyện đó từ gốc. Ngay khi có lớp thứ hai, tấn công bạn thôi không còn là một thao tác tự động nữa mà trở thành một công việc nhắm riêng vào bạn. Phải biết bạn là ai, dùng số nào, và ai cấp số ấy cho bạn. Với nhiều kẻ, chuyện đó không bõ: còn khối tài khoản dễ hơn. Nên nếu một dịch vụ chỉ có SMS thì câu trả lời là có, khỏi bàn thêm. Phần bàn thêm để sau.
Chỗ hỏng không nằm trong điện thoại của bạn
Người ta cứ tưởng phá SMS nghĩa là chặn sóng, sao chép chip hay cài mã độc vào máy. Chẳng cần gì trong số đó. Đòn thật sự cuốn phăng tài khoản, và là đòn xuất hiện lặp đi lặp lại trong các vụ đã công khai, là SIM swapping, và nó nhàm chán hơn nhiều: có người gọi lên nhà mạng của bạn, bảo là mất SIM, trả lời vài câu hỏi xác minh, rồi xin cấp lại SIM. Từ giây phút đó, tin nhắn của bạn về máy của họ.
Hãy để ý những gì đã không xảy ra ở đó. Không có lớp mã hóa nào bị phá. Không ai động vào điện thoại của bạn. Bạn chẳng làm gì sai — và cũng chẳng biết gì, ngoài việc sóng đột nhiên tắt ngóm, mà nếu đang ngủ thì chuyện đó có thể rất lâu mới đập vào mắt bạn. SIM swapping không phải là đòn kỹ thuật nhắm vào bạn: nó là kỹ nghệ xã hội nhắm vào nhà mạng của bạn. Mắt xích gãy là một nhân viên chăm sóc khách hàng được trả lương để xử lý sự vụ cho nhanh, vừa được nghe một câu chuyện hoàn toàn hợp lý, bởi mất SIM là chuyện ngày nào cũng có người gặp. Các vụ việc đã được ghi chép rộng rãi và khuôn mẫu lặp lại đều đặn đến mức chẳng còn ai ngạc nhiên.
Điều khó chịu là bạn chẳng có vai vế gì trong đó: an toàn của bạn phụ thuộc vào quy trình xác minh của một công ty mà bạn đâu có chọn vì lý do ấy. Và còn một khiếm khuyết thứ hai, âm thầm hơn: số điện thoại của bạn không phải là bí mật. Bạn đưa nó cho phòng khám răng, cho công ty điện lực, cho quán tích điểm, cho anh shipper và cho nửa danh bạ cả nước. Một thứ định danh mà bạn phát cho ai cũng được đang bị đem ra làm chứng chỉ đăng nhập.
Bậc thứ hai: một ứng dụng
Bậc kế tiếp là TOTP — mấy dãy sáu chữ số xoay vòng mỗi ba mươi giây trong một ứng dụng như của Google, Aegis, 1Password hay Bitwarden.
Cơ chế của nó rất thanh nhã: dịch vụ và ứng dụng của bạn chia nhau một bí mật đúng một lần duy nhất, lúc thiết lập, và từ đó cả hai bên tự tính ra cùng một mã từ bí mật ấy cộng với giờ. Không có gì được gửi đi cả. Và toàn bộ khác biệt nằm ở đó: nếu không có gì di chuyển thì cũng chẳng có gì để chặn đường. Không có nhà mạng, không có số điện thoại, không có ai để gọi mà xin cấp lại SIM. SIM swapping không còn cửa nào để lách vào.
Đó là một bước nhảy lớn và tốn năm phút. Nhưng cũng chưa phải là đích, vì TOTP giữ lại một điểm mù rất người: cái mã đó chính bạn gõ cho kẻ nào hỏi xin. Nếu bạn đang gõ nó vào một trang trông giống ngân hàng của bạn mà không phải, kẻ tấn công nhặt lấy và chuyển tiếp sang trang thật trong mấy giây cuối đời của cái mã. Ứng dụng của bạn sinh ra một con số; nó không biết bạn dán con số ấy vào đâu.
Bậc thang không chịu để bị lừa
Khóa vật lý — chuẩn FIDO/U2F, một chiếc khóa USB hay NFC, hoặc chính điện thoại đóng vai bộ xác thực — giải quyết đúng chuyện đó. Lúc đăng ký, nó tạo một cặp khóa gắn với origin: với đúng tên miền của dịch vụ ấy. Lúc đăng nhập, trình duyệt nói cho nó biết chữ ký đang được yêu cầu cho tên miền nào, và chiếc khóa ký một thử thách có tên miền ấy nằm bên trong. Nếu trang web chỉ là bản sao đặt ở chỗ khác, tên miền không khớp và không ký ra được thứ mà dịch vụ thật chịu chấp nhận.
Nói cách khác: chiếc khóa không thông minh hơn bạn; nó chỉ không tin vào phán đoán của bạn. Nó không nhìn hình ổ khóa, không đọc URL, không cân nhắc xem cái email kia trông có chính chủ hay không. Nó so một chuỗi ký tự với một chuỗi ký tự. Đây là mắt xích duy nhất không thể bị thuyết phục bằng một câu chuyện hay — và đọc đến đây hẳn bạn đã nhận ra rằng những câu chuyện hay mới chính là vấn đề.
“Hạn chế” không phải là “cấm”
NIST, trong SP 800-63B, xếp việc xác thực ngoài băng qua mạng điện thoại — tức là SMS — vào loại hạn chế. Đáng dừng lại ở chữ này, vì cái sắc thái ấy chính là cả bài viết. Hạn chế không phải là cấm: đó là một hạng mục trung gian và được đặt ra có chủ ý. Vẫn dùng tiếp được, nhưng ai dùng thì phải gánh nghĩa vụ: đánh giá rủi ro, báo cho người dùng biết kênh đó có một điểm yếu đã biết, và có kế hoạch chuyển sang thứ tốt hơn.
Đó là một lập trường khôn ngoan hơn lệnh cấm, và nó giải thích vì sao SMS vẫn còn đứng đó. Một cơ chế tầm thường mà người ta chịu dùng bảo vệ được nhiều hơn một cơ chế xuất sắc mà chẳng ai bật. Nếu ngày mai nó bị cấm ở mọi nơi, phần lớn những tài khoản kia sẽ không leo lên một bậc nào: chúng sẽ tụt về chỗ chỉ còn mỗi mật khẩu, tức là mặt đất.
Làm gì, theo thứ tự
- Nếu một dịch vụ chỉ có SMS, hãy bật nó. Hôm nay luôn. Bậc đầu tiên là bậc nâng bạn lên cao nhất.
- Nếu có TOTP, hãy chuyển sang TOTP và gỡ SMS khỏi phần dự phòng nếu họ cho phép. An toàn của bạn bằng đúng phương thức yếu nhất mà bạn còn chấp nhận, vì kẻ tấn công mới là người chọn cửa vào.
- Với những thứ thật sự quan trọng — email, ngân hàng, trình quản lý mật khẩu — hãy dùng một chiếc khóa vật lý. Cả đời bạn quên mật khẩu ở đâu thì cái nút “tôi quên mật khẩu” cũng treo vào hộp thư ấy.
- Nếu nhà mạng cho đặt mã PIN hoặc khóa chuyển mạng, hãy đặt. Nó không chữa được gốc rễ, nhưng làm khó kẻ gọi điện xin cấp lại SIM.
- Và đừng quên lớp thứ nhất. 2FA là chiếc then thứ hai, không phải giấy ân xá cho chiếc thứ nhất: một mật khẩu dài, duy nhất, lấy từ trình tạo mật khẩu, và nếu bạn nghi ngờ một trong những mật khẩu đang dùng, hãy cho nó qua công cụ kiểm tra.
Kết luận thì nhạt nhẽo, và chính vì thế mà gần như chẳng ai nói ra: SMS dở, và bạn vẫn nên dùng nó nếu không có thứ nào khác. An toàn thật sự gần như chưa bao giờ là chọn phương án hoàn hảo, mà là biết đâu là cái tệ nhất trong những cái tốt, dùng nó chừng nào còn phải dùng, và đừng bao giờ nhầm nó với việc đã xong.
Nguồn: NIST SP 800-63B, xếp việc xác thực ngoài băng qua mạng điện thoại công cộng (SMS hoặc thoại) vào nhóm phương thức hạn chế, kèm các nghĩa vụ đánh giá rủi ro, thông báo cho người dùng và kế hoạch chuyển đổi mà hạng mục đó bao hàm · các đặc tả FIDO/U2F và WebAuthn, cùng việc kiểm tra origin (tên miền) ngay tại thời điểm ký · RFC 6238 (TOTP) · các vụ SIM swapping đã công khai, được ghi chép rộng rãi trên báo chí và trong hồ sơ tố tụng.