Khóa 0, khóa công khai ngang hàng
Byte khóa công khai X9.62 không nén (33 byte cho P-256). Điện thoại dùng cái này để thiết lập kênh mã hóa đã thỏa thuận.
Tiêu chuẩn · FIDO CTAP 2.2 hybrid (passkey QR)
Chỉ khi BẠN vừa bắt đầu đăng nhập passkey trên thiết bị đang hiển thị QR. Nếu ai khác tạo QR này, đừng quét.
Passkey là một thông tin xác thực — một cặp khóa công khai/riêng tư — được gắn với một trong các thiết bị của bạn. Nếu bạn đã đăng ký passkey cho example.com trên điện thoại, thì chỉ điện thoại của bạn mới có thể ký thách thức đăng nhập cho example.com.
Điều đó ổn khi bạn đăng nhập TRÊN điện thoại. Nhưng điều gì xảy ra khi đăng nhập trên laptop tại thư viện trong khi passkey ở trên điện thoại? Bạn có ba lựa chọn:
Lựa chọn 3 là những gì FIDO CTAP 2.2 "hybrid" định nghĩa. QR là cầu nối khởi động — nó mang đủ thông tin để hai thiết bị thiết lập kênh mã hóa được xác thực qua Bluetooth và/hoặc máy chủ relay, sau đó điện thoại ký xác nhận đăng nhập.
URI trông như sau:
FIDO:/0123456789012345678901234567890123456789...
Các chữ số thập phân là mã hóa base10 của bản đồ CBOR. Sau khi giải mã base10 + phân tích CBOR, bản đồ có các trường sau:
Byte khóa công khai X9.62 không nén (33 byte cho P-256). Điện thoại dùng cái này để thiết lập kênh mã hóa đã thỏa thuận.
10 byte dữ liệu ngẫu nhiên. Xác định QR cụ thể này; quảng cáo BLE phát một hash của nó để điện thoại có thể tìm thấy laptop.
0 = make-credential (đăng ký passkey mới), 1 = get-assertion (đăng nhập), 2 = discoverable-credential.
Máy chủ HTTPS làm trung gian đường hầm giữa hai thiết bị khi kết nối BLE trực tiếp không khả dụng (ví dụ: qua NAT). Thường là máy chủ do nhà cung cấp vận hành như cable.ua5v.com (Google) hoặc cable.auth.com (Apple/MS).
Giây kể từ epoch khi QR được tạo. Dùng để bảo vệ chống phát lại — điện thoại tuân thủ từ chối QR cũ hơn ngưỡng (thường 5 phút).
Boolean. Cho biết liệu laptop có muốn điện thoại tham gia duy trì trạng thái thụ động hay không (chủ yếu để đồng bộ BLE).
Giao thức về mặt mật mã học là đáng tin cậy. Kiểm tra Bluetooth gần đây là có thực — nó ngăn chặn các cuộc tấn công relay từ xa. Nhưng nó không bảo vệ bạn trước kỹ thuật xã hội về phía khởi tạo.
Thông qua kỹ thuật xã hội ở giai đoạn khởi tạo. Kẻ tấn công bắt đầu đăng nhập passkey trên trang ngân hàng thật của bạn, lấy QR, rồi thuyết phục bạn quét nó.
Nếu bạn quét, điện thoại của bạn chuyển tiếp chữ ký passkey về phiên của kẻ tấn công. Kẻ tấn công giờ đã đăng nhập thành công vào tài khoản của bạn.
Lưu ý rằng việc kiểm tra khoảng cách gần không có ích — kẻ tấn công đang hiện diện vật lý. Nội dung mã QR cũng không giúp được — chúng hợp lệ về mặt mật mã. Địa điểm đăng nhập cũng không giúp được — đó là trang web đúng mà bạn có passkey. Điều duy nhất có tác dụng là nhận ra tình huống: bạn không bao giờ nên quét mã QR FIDO mà chính bạn không tự tạo ra bằng cách nhấp “Đăng nhập” trên thiết bị của mình.
Khi bạn thả QR FIDO vào máy quét, kết quả hiển thị:
cable.ua5v.com của Google, máy chủ đường hầm của Apple)?Loại mối đe dọa luôn là đáng ngờ, không phải vì giao thức có lỗi mà vì không thể biết ai đã khởi tạo phiên đăng nhập. Đây là cách thiết kế đúng cho bối cảnh kiểm tra bảo mật.
An toàn: bạn ngồi vào laptop, mở trang ngân hàng hoặc email, nhấp "Đăng nhập bằng passkey" và laptop hiển thị QR này. Bạn quét bằng điện thoại để hoàn tất đăng nhập.
Không an toàn: bất kỳ ai khác đã khởi tạo đăng nhập. Điều này gồm cả kẻ tấn công qua mạng gửi QR qua tin nhắn, email hoặc hiển thị nó trên màn hình.
Nếu bạn không chắc QR có phải từ đăng nhập BẠN đã khởi tạo hay không, hãy hủy đăng nhập trên thiết bị gốc và thử lại.
Thả hình ảnh vào hoặc dán URI FIDO:. Kết quả hiển thị hoạt động, máy chủ tunnel, dấu thời gian và đánh giá rủi ro rõ ràng.