---
url: 'https://www.corbado.com/vi/blog/webauthn-passkey-ma-qr-bluetooth'
title: 'Mã QR & Bluetooth của Passkey WebAuthn: Vận chuyển lai (Hybrid Transport)'
description: 'Khám phá cách passkey tận dụng mã QR và Bluetooth để xác thực đa nền tảng, mang lại trải nghiệm đăng nhập liền mạch, an toàn trên các thiết bị mà không cần mật khẩu.'
lang: 'vi'
author: 'Vincent Delitz'
date: '2025-07-01T06:52:22.369Z'
lastModified: '2026-03-27T07:09:04.603Z'
keywords: 'webauthn ma qr, passkey bluetooth, passkey ma qr'
category: 'WebAuthn Know-How'
---

# Mã QR & Bluetooth của Passkey WebAuthn: Vận chuyển lai (Hybrid Transport)

## 1. Giới thiệu

Passkey đang ngày càng thay thế mật khẩu để trở thành tiêu chuẩn thực tế trong việc xác
thực người dùng. Không giống như mật khẩu truyền thống, passkey được liên kết với một hệ
sinh thái (ví dụ: [iCloud Keychain](https://www.corbado.com/glossary/icloud-keychain),
[Google Password Manager](https://www.corbado.com/blog/how-to-use-google-password-manager),
[Windows Hello](https://www.corbado.com/glossary/windows-hello) hoặc một trình quản lý mật khẩu như
[1Password](https://www.corbado.com/blog/1password-passkeys-best-practices-analysis) hoặc
[Dashlane](https://www.corbado.com/blog/dashlane-passkeys)); chúng không được thiết kế để ghi nhớ mà được xây
dựng để tích hợp liền mạch với các thiết bị của bạn, mang lại trải nghiệm người dùng tuyệt
vời ngay từ khi sử dụng.

Hãy tưởng tượng bạn đang ở xa máy tính cá nhân của mình, có thể là tại một máy tính công
cộng hoặc laptop của bạn bè, và bạn cần đăng nhập vào tài khoản được bảo vệ bằng passkey.
Tình huống này khá phổ biến và đòi hỏi một phương thức xác thực vừa an toàn vừa tiện lợi,
nhưng với passkey, nhiều người không biết phải làm gì vì passkey của họ không có sẵn ngay
lập tức trong tình huống này. Một trong những tính năng của passkey giúp bạn trong tình
huống như vậy là khả năng sử dụng passkey của mình trên nhiều thiết bị thông qua việc hỗ
trợ của [mã QR](https://www.corbado.com/vi/blog/phuong-phap-dang-nhap-xac-thuc-ma-qr) và công nghệ Bluetooth. Quá
trình này được gọi chính thức là **vận chuyển lai (hybrid transport)** trong
[đặc tả WebAuthn](https://www.w3.org/TR/webauthn-3/#dom-authenticatortransport-hybrid)
(trong các phiên bản trước của đặc tả, nó được gọi là **Bluetooth Năng lượng Thấp được hỗ
trợ bởi đám mây - caBLE**).

Quá trình này rất đơn giản: bạn cần một thiết bị đã lưu trữ passkey của mình và có khả
năng chụp ảnh, vì vậy rất có thể đó là một chiếc điện thoại thông minh hoặc máy tính bảng.
Thiết bị này có thể mở một đường hầm đến thiết bị mới chỉ cho một lần xác thực đó. Điều
này không chỉ duy trì tính toàn vẹn của passkey mà còn đảm bảo rằng quyền truy cập vào tài
khoản của bạn trên các thiết bị mới có thể được cấp, bất kể bạn đang ở đâu hay muốn sử
dụng thiết bị của ai để đăng nhập.

Tuy nhiên, tính năng xác thực đa nền tảng này của passkey lại bị bao quanh bởi những quan
niệm sai lầm và sự nhầm lẫn cả về tiện ích lẫn cách triển khai kỹ thuật. Đây là điều tôi
nhận thấy gần đây một lần nữa khi tham dự một buổi gặp mặt về an ninh CNTT tại địa phương.
Qua bài viết này, chúng tôi mong muốn làm sáng tỏ những phức tạp và cung cấp các khuyến
nghị để triển khai luồng [xác thực passkey](https://www.corbado.com/vi/blog/nha-cung-cap-passkey) đa nền tảng
(vận chuyển lai) này, đảm bảo bạn có thể cung cấp trải nghiệm đăng nhập tốt nhất cho người
dùng của mình.

## 2. Passkey: Được đồng bộ hóa hay chỉ có sẵn trên một thiết bị duy nhất

Passkey là một hình thức xác thực người dùng thay thế mật khẩu truyền thống bằng một cặp
khóa công khai-riêng tư mật mã hóa an toàn và tiện lợi hơn. Cặp khóa này là duy nhất cho
mỗi người dùng và được sử dụng để xác minh danh tính mà không cần phải nhớ các mật khẩu
phức tạp.

Ưu điểm của passkey là rất nhiều so với mật khẩu tiền nhiệm. Chúng giảm đáng kể nguy cơ bị
lừa đảo (phishing), vì chúng không thể bị lừa để chia sẻ với một trang web giả mạo. Hơn
nữa, chúng miễn nhiễm với các cuộc tấn công brute force và tấn công từ điển, là những
phương pháp phổ biến được sử dụng để bẻ khóa mật khẩu. Passkey cũng thân thiện với người
dùng hơn, loại bỏ nhu cầu phải nhớ hoặc quản lý một danh sách dài các mật khẩu.

Passkey được đồng bộ hóa trong các tài khoản đám mây, như những tài khoản được quản lý bởi
Google [Password Manager](https://www.corbado.com/blog/passkeys-vs-password-managers) hoặc Apple
[iCloud Keychain](https://www.corbado.com/glossary/icloud-keychain) (Microsoft với
[Windows Hello](https://www.corbado.com/glossary/windows-hello) sẽ sớm theo sau), hoặc những tài khoản được lưu
trữ trong các trình quản lý mật khẩu hiện đại sẵn sàng cho passkey, như
[1Password](https://www.corbado.com/blog/1password-passkeys-best-practices-analysis) hoặc
[Dashlane](https://www.corbado.com/blog/dashlane-passkeys). Tuy nhiên, điều cần thiết là phải biết rằng theo mặc
định, passkey được liên kết với hệ sinh thái và việc đồng bộ hóa tài khoản đám mây tương
ứng. Các hệ điều hành không cung cấp giao diện để xuất khóa riêng tư và trên hầu hết các
thiết bị, có một thành phần phần cứng cung cấp các biện pháp
[bảo mật](https://www.corbado.com/vi/blog/cach-bat-passkey-tren-android) bổ sung để tránh mọi truy cập vào khóa
riêng tư, ví dụ: [Secure Enclave](https://www.corbado.com/glossary/secure-enclave) trên các thiết bị
[iOS](https://www.corbado.com/blog/how-to-enable-passkeys-ios) hoặc Trusted Platform Module (TPM) trên các thiết
bị Windows. Chỉ nhà cung cấp hệ điều hành mới có thể đồng bộ hóa passkey đến các thiết bị
khác một cách mã hóa (cuối cùng được bảo vệ bởi
[sinh trắc học](https://www.corbado.com/vi/blog/sinh-trac-hoc-nhan-thuc-nguoi-thanh-toan), mật mã hoặc mã PIN của
người dùng). Khóa riêng tư chỉ có thể được khôi phục và giải mã bằng mật mã / mã PIN và sẽ
bị hủy trong trường hợp có quá nhiều lần đăng nhập không thành công vào tài khoản đám mây
(ví dụ: [Apple](https://support.apple.com/en-us/102195) giới thiệu giới hạn tốc độ để ngăn
chặn các cuộc tấn công brute-force ngay cả từ một vị trí có đặc quyền trên backend đám
mây;
[Google](https://security.googleblog.com/2022/10/SecurityofPasskeysintheGooglePasswordManager.html)
cũng làm tương tự).

Thiết kế vốn có này có nghĩa là nếu passkey không được đồng bộ hóa như mô tả, việc truy
cập passkey của bạn trên một thiết bị mới có thể là một thách thức. Đây chính là lý do tại
sao phương thức vận chuyển lai để [xác thực passkey](https://www.corbado.com/vi/blog/nha-cung-cap-passkey) đa nền
tảng (vận chuyển lai) với [mã QR](https://www.corbado.com/vi/blog/phuong-phap-dang-nhap-xac-thuc-ma-qr) và kiểm
tra sự gần gũi bằng Bluetooth tồn tại. Nó cung cấp một cầu nối an toàn cho passkey của bạn
giữa các thiết bị mà không cần phải đồng bộ hóa chúng thông qua tài khoản đám mây / trình
quản lý mật khẩu, do đó duy trì nguyên tắc rằng passkey có thể chỉ thuộc về người dùng.

## 3. Thiết lập kỹ thuật của xác thực Passkey đa nền tảng

Sử dụng [xác thực passkey](https://www.corbado.com/vi/blog/nha-cung-cap-passkey) đa nền tảng (vận chuyển lai)
giúp khắc phục các vấn đề giữa các thiết bị, khi một tài khoản được truy cập hoàn toàn qua
passkey. Vì không phải tất cả các passkey đều được đồng bộ hóa trong tài khoản đám mây
hoặc trình quản lý mật khẩu, sự cần thiết của một phương pháp đáng tin cậy để truy cập
passkey trên các thiết bị trở nên quan trọng, đặc biệt là khi chuyển sang một thiết bị mới
hoặc cần truy cập trên một thiết bị dùng chung.

### 3.1 Yêu cầu về phần cứng

Để tạo điều kiện cho việc xác thực passkey đa nền tảng (vận chuyển lai), có các yêu cầu về
phần cứng sau:

- **Hỗ trợ WebAuthn:** Các thiết bị phải hỗ trợ WebAuthn. Điều này đã có trên 99% thiết
  bị, theo phân tích dữ liệu passkey mới nhất của chúng tôi.
- **Camera để quét mã QR:** Các thiết bị sẽ cần một camera có khả năng quét
  [mã QR](https://www.corbado.com/vi/blog/phuong-phap-dang-nhap-xac-thuc-ma-qr). Hầu hết các điện thoại thông
  minh hiện đại đều được trang bị camera có chức năng này. Hơn nữa, camera cần có khả năng
  quét QR tích hợp (điều mà hầu hết các thiết bị đều có sẵn). Nếu camera của bạn không hỗ
  trợ, thì một [trình quét QR](https://www.minifier.org/qr-code-scanner) trực tuyến cũng
  là một lựa chọn tốt. Nếu không, việc cài đặt một ứng dụng mã QR cũng được.
- **Khả năng Bluetooth:** Bluetooth Năng lượng Thấp được hỗ trợ bởi đám mây (caBLE) được
  sử dụng để thiết lập một kết nối an toàn dựa trên sự gần gũi giữa các thiết bị. Các
  phiên bản cần tìm là Bluetooth 4.0 trở lên, cho phép mở rộng caBLE cho WebAuthn.
- **Kết nối Internet:** Cần có kết nối internet ổn định trên cả hai thiết bị, vì việc trao
  đổi liên quan đến việc mở một đường hầm để thực hiện các bước xác minh yêu cầu truyền dữ
  liệu thời gian thực.

### 3.2 Yêu cầu về phần mềm

Từ quan điểm phần mềm, có các yêu cầu sau:

- **Cấu hình máy chủ WebAuthn:** Rõ ràng, bạn cần có một máy chủ WebAuthn để quản lý các
  khóa công khai. Điều này cũng bao gồm việc cho phép tài khoản của người dùng được liên
  kết với nhiều trình xác thực và thiết lập máy chủ để bắt đầu nghi thức xác thực.
- **Web Bluetooth API:** Để kiểm tra sự gần gũi bằng Bluetooth, bạn sẽ cần truy cập
  [Web Bluetooth API](https://www.corbado.com/blog/web-bluetooth-api-passkeys) để kích hoạt khả năng Bluetooth
  của thiết bị từ trình duyệt.
- **Yêu cầu hệ điều hành:** Vui lòng xem [bảng](https://passkeys.dev/device-support/) sau
  về việc hỗ trợ Xác thực đa thiết bị cho các hệ điều hành khác nhau tính đến tháng 3
  năm 2025. Trình xác thực (Authenticator) có nghĩa là thiết bị có thể đóng vai trò là
  thiết bị giữ passkey (trong kịch bản của chúng ta là điện thoại thông minh). Client có
  nghĩa là thiết bị tạo mã QR và nơi người dùng cố gắng đăng nhập (trong kịch bản của
  chúng ta là máy tính để bàn):

![Hỗ trợ mã QR Passkey trên hệ điều hành](https://www.corbado.com/website-assets/operating_system_passkey_qr_code_support_298aac92f9.png)_Nguồn:
passkeys.dev_

## 4. Passkey: Mã QR

Quá trình sử dụng xác thực passkey đa nền tảng (vận chuyển lai) qua mã QR trông như sau:

![tổng quan về mã qr của passkey](https://s3.eu-central-1.amazonaws.com/corbado-cloud-staging-website-assets/passkeys_qr_code_overview_52c519fe2c.png)

### 4.1 Khởi tạo xác thực Passkey đa nền tảng

Mã QR để xác thực passkey đa nền tảng (vận chuyển lai) được tạo ra khi người dùng cố gắng
truy cập một dịch vụ trên một thiết bị không có passkey đã đăng ký, nhưng dịch vụ biết
rằng người dùng nên có một passkey. Thông thường, một nút Quét mã QR hoặc một lời kêu gọi
hành động tương tự được cung cấp trong giao diện xác thực.

### 4.2 Tạo mã QR

Theo yêu cầu của người dùng, thiết bị sẽ bắt đầu tạo mã QR. Mã QR này mã hóa một định danh
phiên duy nhất, có giới hạn thời gian. Định danh này được gắn với một phiên mà máy chủ xác
thực tạm thời duy trì, chờ đợi quá trình xác thực hoàn tất.

### 4.3 Quét mã QR

Người dùng quét mã QR này bằng một thiết bị có sẵn passkey của họ. Các biện pháp
[bảo mật](https://www.corbado.com/vi/blog/cach-bat-passkey-tren-android) bao gồm:

- **Sử dụng một lần:** Định danh phiên trong mã QR chỉ có giá trị cho một lần sử dụng duy
  nhất, ngăn chặn các cuộc tấn công phát lại (replay attacks).
- **Mã hóa:** Tất cả dữ liệu trong mã QR đều được mã hóa, đảm bảo rằng mọi thông tin liên
  lạc bị chặn đều không thể bị giải mã bởi các bên không được ủy quyền.

Mã QR được quét chứa một URI cụ thể với lược đồ FIDO, ví dụ:
FIDO:/07824133892604070278923969472008301099476228966286113051476699183587
6383562063181103169246410435938367110394959927031730060360967994421
343201235185697538107096654083332

### 4.4 Bắt đầu luồng dữ liệu và quá trình xác thực

Việc quét mã QR kích hoạt thiết bị thứ hai của người dùng (ví dụ: điện thoại thông minh
hoặc máy tính bảng) để diễn giải URI FIDO và giao tiếp với máy chủ xác thực, gửi một tín
hiệu rằng người dùng đang cố gắng xác thực qua một thiết bị mới (ví dụ: laptop của bạn
bè). Hành động này nhắc máy chủ tạo ra một thử thách mật mã, duy nhất cho lần xác thực
này.

### 4.5 Truyền dữ liệu kỹ thuật

Thử thách được gửi lại cho thiết bị thứ hai của người dùng (ví dụ: điện thoại thông minh
hoặc máy tính bảng), nơi lưu trữ passkey của họ. Thiết bị sau đó tạo ra một chữ ký số bằng
cách sử dụng khóa riêng tư được liên kết với passkey, mà không bao giờ để khóa riêng tư
rời khỏi thiết bị (ví dụ: điện thoại thông minh hoặc máy tính bảng). Thử thách đã ký (chữ
ký) sau đó được gửi lại cho máy chủ thông qua một đường hầm được mã hóa, an toàn qua
internet, xác minh tính toàn vẹn và nguồn gốc của nỗ lực xác thực.

### 4.6 Xác thực chữ ký

Máy chủ xác thực chữ ký bằng cách sử dụng khóa công khai tương ứng đã được liên kết với
tài khoản của người dùng. Sau khi xác thực thành công, máy chủ xác nhận việc xác thực, cho
phép người dùng truy cập dịch vụ trên thiết bị mới.

Một số khía cạnh quan trọng về quyền riêng tư và
[bảo mật](https://www.corbado.com/vi/blog/cach-bat-passkey-tren-android) cần xem xét:

- **Không trao đổi dữ liệu Bluetooth, hoàn toàn qua Internet:** Điều quan trọng cần lưu ý
  là trong quá trình xác thực passkey đa nền tảng dựa trên mã QR này (vận chuyển lai),
  Bluetooth không tham gia vào việc trao đổi dữ liệu. Quá trình này hoàn toàn dựa vào kết
  nối Internet để truyền dữ liệu được mã hóa giữa các thiết bị và máy chủ. Tuy nhiên,
  Bluetooth được sử dụng để kiểm tra sự gần gũi của hai thiết bị.
- **Khóa riêng tư không rời khỏi thiết bị:** Trong suốt quá trình này, khóa riêng tư của
  người dùng vẫn được giữ an toàn trên thiết bị của họ.
- **Không để lộ dữ liệu nhạy cảm:** Không có thông tin passkey nhạy cảm hoặc khóa riêng tư
  nào được chuyển hoặc để lộ trong quá trình xác thực.
- **Mật mã bất đối xứng:** Cơ chế thử thách-phản hồi đảm bảo rằng những gì được gửi đi chỉ
  là các phiên bản đã ký, không thể tái sử dụng của các thử thách mà không thể bị khai
  thác để truy cập trái phép.

Bằng cách tuân thủ các giao thức kỹ thuật và bảo mật này, phương pháp mã QR để xác thực
passkey đa nền tảng (vận chuyển lai) duy trì một tiêu chuẩn bảo mật cao đồng thời cung cấp
một cách thuận tiện cho người dùng để
[xác thực danh tính](https://www.corbado.com/vi/blog/digital-credentials-api) của họ trên các thiết bị mới.

## 5. Passkey: Bluetooth (caBLE)

Bên cạnh quá trình quét mã QR, còn có việc kiểm tra sự gần gũi qua Bluetooth (caBLE). Việc
đảm bảo rằng client và trình xác thực ở gần nhau về mặt vật lý là một trong những lợi ích
chính của
[giao thức WebAuthn](https://www.w3.org/TR/webauthn-3/#sctn-client-authenticator-proximity).
Thông tin chi tiết hơn về hoạt động bên trong của quá trình này được mô tả sau đây:

![tổng quan về bluetooth của passkey](https://s3.eu-central-1.amazonaws.com/corbado-cloud-staging-website-assets/passkeys_bluetooth_overview_2064227c37.png)

### 5.1 Bluetooth Năng lượng Thấp (BLE) trong xác thực là gì?

**Bluetooth Năng lượng Thấp (BLE)** là một công nghệ giao tiếp không dây được thiết kế để
trao đổi dữ liệu trong phạm vi ngắn. Nó đóng một vai trò quan trọng trong việc xác nhận sự
gần gũi vật lý của các thiết bị trong quá trình xác thực.

### 5.2 caBLE (Bluetooth Năng lượng Thấp được hỗ trợ bởi đám mây) là gì?

**caBLE** là một giao thức tạo điều kiện cho việc chuyển giao thông tin
[xác thực an toàn](https://www.corbado.com/vi/glossary/open-id-4-vp) giữa các thiết bị bằng BLE. Khi sử dụng
caBLE để xác thực passkey đa nền tảng (vận chuyển lai), thiết bị giữ passkey sẽ xác nhận
sự gần gũi của thiết bị yêu cầu thông qua tín hiệu BLE. Khi sự gần gũi được xác minh, quá
trình xác thực sẽ tiếp tục, tận dụng BLE để giao tiếp cục bộ, an toàn.

### 5.3 Trải nghiệm người dùng và bảo mật với caBLE

Trải nghiệm người dùng được nâng cao vì phương pháp này thường yêu cầu ít tương tác trực
tiếp của người dùng hơn; các thiết bị ở gần nhau về mặt vật lý sẽ tự động phát hiện nhau.
Về mặt bảo mật, **caBLE** mang lại một lợi thế đáng kể - nó đảm bảo rằng quá trình xác
thực chỉ được thực hiện khi hai thiết bị ở gần nhau, ngăn chặn những kẻ tấn công từ xa
khởi tạo quá trình xác thực.

### 5.4 Tình huống: Vấn đề nan giải giữa Mã QR và BLE

Hãy tưởng tượng bạn nhận được một mã QR chuyển hướng đến một trang web độc hại. Nếu việc
xác thực được thực hiện thông qua mã QR này, có nguy cơ phiên hoặc cookie có thể bị chiếm
đoạt. BLE giải quyết vấn đề này bằng cách không dựa vào việc quét hình ảnh, mà dựa vào sự
hiện diện vật lý của các thiết bị. Việc kiểm tra sự gần gũi này giảm thiểu nguy cơ tấn
công xen giữa (man-in-the-middle), vì việc kiểm tra sự gần gũi không diễn ra qua internet
hoặc một phương tiện trực quan.

### 5.5 Trao đổi dữ liệu và quyền riêng tư

Không giống như các phương pháp khác, caBLE thực sự không trao đổi dữ liệu xác thực như
passkey. Thay vào đó, nó sử dụng BLE như một kênh xác nhận để thiết lập rằng các thiết bị
đang ở gần nhau về mặt vật lý. Việc kiểm tra này được thiết kế để trở thành một phần của
quy trình xác thực đa yếu tố trong đó sự gần gũi của BLE là một trong các yếu tố, đảm bảo
rằng ngay cả khi các yếu tố khác bị xâm phạm, nếu không có sự gần gũi vật lý, quyền truy
cập sẽ không được cấp.

Bằng cách tích hợp giao thức caBLE, các nhà phát triển có thể cung cấp một phương pháp an
toàn và thân thiện với người dùng để xác thực passkey đa nền tảng (vận chuyển lai) giúp
tăng cường bảo mật tổng thể của quá trình xác thực. Việc kiểm tra sự gần gũi bổ sung một
lớp bảo vệ đơn giản cho người dùng nhưng lại bảo vệ hiệu quả chống lại một số loại tấn
công mạng tinh vi.

## 6. Lợi ích

Phương pháp xác thực passkey đa nền tảng (vận chuyển lai) này có những lợi ích sau:

### 6.1 Con đường đến trải nghiệm người dùng tốt

Xác thực passkey đa nền tảng qua mã QR và Bluetooth (vận chuyển lai) là một cách để cải
thiện UX trong các kịch bản đa nền tảng so với việc không cung cấp bất kỳ khả năng nào.
Tuy nhiên, luồng người dùng này hoàn toàn mới đối với hầu hết người dùng và chúng tôi
không mong đợi nhiều người dùng không rành về công nghệ sẽ hiểu được điều gì đang xảy ra
khi họ lần đầu tiên gặp phải luồng này. Sự tương đồng duy nhất của việc giới thiệu luồng
mã QR có thể là với các luồng đăng nhập cho ví dụ như [WhatsApp](https://www.corbado.com/blog/whatsapp-passkeys)
Web hoặc Discord nơi mã QR được sử dụng (mặc dù chức năng ở đây khác). Vì vậy, quy trình
xác thực passkey đa nền tảng được phân tích qua mã QR / Bluetooth (vận chuyển lai) giảm
thiểu nỗ lực của người dùng trong kịch bản đa nền tảng, vì không cần phải nhập thủ công
bất kỳ thông tin xác thực nào, nhưng luồng tổng thể vẫn chưa được nhiều người dùng biết
đến.

### 6.2 Bảo mật mạnh mẽ

Bảo mật của xác thực passkey đa nền tảng (vận chuyển lai) được củng cố bởi các kỹ thuật
mật mã tiên tiến. Khi một mã QR được quét hoặc một kết nối Bluetooth được thực hiện để xác
thực, các thử thách và phản hồi mật mã đảm bảo rằng chỉ thiết bị dự định mới có thể hoàn
thành thành công quá trình xác thực.

Việc kiểm tra sự gần gũi qua Bluetooth bổ sung một lớp bảo mật, xác nhận rằng nỗ lực xác
thực đang được thực hiện bởi một người có quyền truy cập vật lý vào thiết bị phụ.

### 6.3 Tính toàn vẹn của Passkey

Trong quá trình xác thực đa nền tảng (vận chuyển lai), passkey không bao giờ được lưu trữ
tạm thời trên các thiết bị hoặc máy chủ trung gian, điều này ngăn chặn nguy cơ passkey bị
chặn hoặc rò rỉ trong quá trình chuyển giao. Việc xác thực diễn ra trong thời gian thực,
và passkey vẫn được liên kết với thiết bị chính của người dùng, bảo toàn tính toàn vẹn của
nó.

### 6.4 Ngăn chặn lừa đảo (Phishing)

Các phương pháp xác thực bằng mã QR và Bluetooth vốn đã cung cấp sự bảo vệ chống lại lừa
đảo (phishing). Người dùng ít có khả năng bị lừa cung cấp passkey cho một trang web độc
hại vì quá trình xác thực yêu cầu các hành động vật lý cụ thể đối với các thiết bị đáng
tin cậy của người dùng.

Quá trình quét mã QR hoặc kết nối qua Bluetooth thường diễn ra trong một môi trường đáng
tin cậy, làm giảm khả năng người dùng vô tình làm lộ thông tin xác thực của họ.

## 7. Nhược điểm

Phương pháp xác thực passkey đa nền tảng (vận chuyển lai) này có những nhược điểm sau:

### 7.1 Sự quen thuộc và chấp nhận của người dùng

Việc giới thiệu bất kỳ công nghệ mới nào cũng có thể dẫn đến sự nhầm lẫn của người dùng,
đặc biệt nếu người dùng không rành về công nghệ. Xác thực passkey đa nền tảng qua mã QR và
Bluetooth (vận chuyển lai) là một sự thay đổi đáng kể so với các phương pháp xác thực
truyền thống, và một số người dùng có thể thấy quy trình mới này khó nắm bắt, có khả năng
dẫn đến tốc độ chấp nhận chậm hơn. Tuy nhiên, chúng tôi kỳ vọng rằng người dùng cuối cùng
sẽ quen với nó, vì vậy sự thay đổi có thể khó khăn hơn lúc đầu và sẽ trở nên mượt mà và
được chấp nhận nhiều hơn theo thời gian.

### 7.2 Phụ thuộc vào khả năng của thiết bị

Sự thành công của xác thực passkey đa nền tảng (vận chuyển lai) phụ thuộc rất nhiều vào
việc thiết bị của người dùng có các khả năng cần thiết, chẳng hạn như camera có thể quét
mã QR và chức năng Bluetooth. Người dùng có các thiết bị cũ hơn thiếu các tính năng này sẽ
không thể tận dụng xác thực passkey đa nền tảng (vận chuyển lai), tạo ra một sự phân chia
kỹ thuật số dựa trên các hạn chế về phần cứng.

### 7.3 Hành vi người dùng không nhất quán

Hành vi của người dùng có thể không thể đoán trước, và việc phụ thuộc vào người dùng để
thực hiện các hành động cụ thể như quét mã QR hoặc bật Bluetooth có thể gây ra lỗi người
dùng. Ví dụ, Bluetooth đôi khi có thể được xem là một thách thức về UX do các vấn đề ghép
nối, vấn đề khám phá và sự thiếu tin tưởng chung của người dùng đối với các công nghệ
không dây cho các giao dịch an toàn.

### 7.4 Sự thích ứng của nhà phát triển

Các nhà phát triển phải đối mặt với nhiệm vụ liên tục cập nhật và bảo trì hệ thống để hỗ
trợ các phương pháp xác thực mới nhất. Việc tích hợp xác thực passkey đa nền tảng (vận
chuyển lai) vào các hệ thống hiện có đòi hỏi các nhà phát triển phải cập nhật các tiêu
chuẩn mới, áp dụng các API mới và đảm bảo khả năng tương thích ngược, điều này có thể tốn
nhiều tài nguyên và thời gian.

### 7.5 Tạo Passkey mới

Đối với mỗi thiết bị mới hoặc yêu cầu đăng nhập tiếp theo, một passkey mới cần được tạo
nếu không sử dụng tài khoản đám mây được đồng bộ hóa như
[iCloud Keychain](https://www.corbado.com/glossary/icloud-keychain) hoặc trình quản lý mật khẩu. Điều này có thể
làm tăng thêm sự phức tạp cho trải nghiệm người dùng và có thể gây ra sự thất vọng nếu
người dùng không quen thuộc với quy trình hoặc nếu nó không được làm cho trực quan.

### 7.6 Giáo dục người dùng

Có một nhu cầu cố hữu về việc giáo dục người dùng khi triển khai các phương pháp bảo mật
mới như xác thực passkey đa nền tảng (vận chuyển lai). Việc đảm bảo rằng người dùng hiểu
cách sử dụng mã QR và Bluetooth một cách an toàn đòi hỏi sự giao tiếp rõ ràng và có thể là
hỗ trợ khách hàng rộng rãi.

Trong khi xác thực passkey đa nền tảng qua mã QR và Bluetooth (vận chuyển lai) thể hiện
một bước tiến đáng kể trong công nghệ xác thực, những nhược điểm tiềm tàng này nhấn mạnh
sự cần thiết của thiết kế thân thiện với người dùng, hệ thống hỗ trợ mạnh mẽ và một quá
trình chuyển đổi dần dần, được truyền đạt tốt từ các phương pháp truyền thống sang các
phương pháp đổi mới. Như với bất kỳ sự thay đổi công nghệ nào, việc cân bằng giữa lợi ích
của sự đổi mới và những thách thức của nó sẽ là chìa khóa để triển khai thành công và được
người dùng chấp nhận rộng rãi.

## 8. Thử nghiệm thực tế: Hành vi của Passkey vận chuyển lai

Lưu ý: chúng tôi bỏ qua các
[khóa bảo mật phần cứng](https://www.corbado.com/vi/blog/khoa-bao-mat-phan-cung-fido2-tot-nhat-2025) (ví dụ:
YubiKeys) trong thử nghiệm sau đây và chỉ sử dụng các trình xác thực nền tảng được tích
hợp sẵn trong các thiết bị (ví dụ: [Face ID](https://www.corbado.com/faq/is-face-id-passkey), Touch ID,
[Windows Hello](https://www.corbado.com/glossary/windows-hello)). Trong trường hợp của
[khóa bảo mật phần cứng](https://www.corbado.com/vi/blog/khoa-bao-mat-phan-cung-fido2-tot-nhat-2025) (ví dụ:
[YubiKey](https://www.corbado.com/glossary/yubikey)), các giá trị cho `transports` sẽ là
`[usb hoặc nfc]`([https://www.w3.org/TR/webauthn-2/#enum-transport](https://www.w3.org/TR/webauthn-2/#enum-transport))
chẳng hạn.

Chúng tôi đang sử dụng các kết hợp thiết bị / trình duyệt sau và
[Passkeys Debugger](https://www.passkeys-debugger.io) để kiểm tra hành vi.
[Android](https://www.corbado.com/blog/how-to-enable-passkeys-android) không được xem xét vì
[Android](https://www.corbado.com/blog/how-to-enable-passkeys-android) không thể đóng vai trò là client xác thực
đa nền tảng (vận chuyển lai) (xem bảng [ở trên](#32-software-requirements)):

![](https://www.corbado.com/website-assets/656e0d50740ce2c32c21d812_overview_tests_webauthn_allowcredentials_transports_544b9b36a3.png)

Để kiểm tra hành vi, chúng tôi tạo cho mỗi kết hợp một passkey mới với các thuộc tính sau:

- **userName:** alex muller (không ảnh hưởng trong thử nghiệm này)
- **authenticatorAttachment:** platform (vì chúng tôi muốn loại trừ
  [khóa bảo mật phần cứng](https://www.corbado.com/vi/blog/khoa-bao-mat-phan-cung-fido2-tot-nhat-2025) như
  YubiKeys)
- **residentKey:** preferred (không ảnh hưởng trong thử nghiệm này)
- **userVerification:** preferred (không ảnh hưởng trong thử nghiệm này)
- **attestation:** none (không ảnh hưởng trong thử nghiệm này)
- **hints:** empty (xem giải thích bên dưới)
- **usePRF:** no (không ảnh hưởng trong thử nghiệm này)

Sau khi tạo thành công passkey, chúng tôi sau đó sửa đổi đầu vào thuộc tính
[allowCredentials](https://www.corbado.com/glossary/allowcredentials) của máy chủ WebAuthn và khởi tạo một yêu
cầu đăng nhập. Chúng tôi muốn mô phỏng một passkey đã bị xóa trên thiết bị mà chúng tôi đã
[tạo passkey](https://www.corbado.com/vi/blog/thuc-hanh-tot-nhat-tao-passkey), để thiết bị / trình duyệt tìm kiếm
một thiết bị khác có thể cung cấp passkey qua mã QR / Bluetooth. Do đó, chúng tôi thay đổi
[credential ID](https://www.corbado.com/blog/webauthn-user-id-userhandle) và gán giá trị `CHANGED-ID`, để việc
khớp nối thất bại. Hơn nữa, chúng tôi thay đổi thuộc tính
[transports](https://www.w3.org/TR/webauthn-2/#dictdef-publickeycredentialdescriptor) của
một thông tin xác thực WebAuthn trong [allowCredentials](https://www.corbado.com/glossary/allowcredentials) và
gán cho mỗi kết hợp thiết bị / trình duyệt các giá trị sau:

1. **transports: `[internal, hybrid]`:** Passkey có thể được sử dụng từ trình xác thực nền
   tảng (ví dụ: [Face ID](https://www.corbado.com/faq/is-face-id-passkey), Touch ID, Windows Hello) hoặc qua xác
   thực đa nền tảng
2. **transports: `[internal]`:** Passkey có thể được sử dụng từ trình xác thực nền tảng
   (ví dụ: [Face ID](https://www.corbado.com/faq/is-face-id-passkey), Touch ID, Windows Hello)
3. **Không đặt thuộc tính transports:** hành vi mặc định không có giới hạn

Trong trang web thử nghiệm WebAuthn, cũng có tính năng mới của
[WebAuthn Level 3](https://www.corbado.com/blog/passkeys-prf-webauthn) cho các gợi ý của
[user agent](https://www.corbado.com/blog/client-hints-user-agent-chrome-safari-firefox). Tính năng này có thể
cải thiện trải nghiệm người dùng nếu [bên tin cậy](https://www.corbado.com/vi/glossary/ben-tin-cay) có những giả
định nhất định về cách yêu cầu đăng nhập có thể được hoàn thành một cách thân thiện nhất
với người dùng. Trong thử nghiệm này, chúng tôi đã bỏ qua tính năng này vì nó chưa được
triển khai rộng rãi. Vui lòng xem
[thông số kỹ thuật](https://www.w3.org/TR/webauthn-3/#enumdef-publickeycredentialhints) để
biết thêm chi tiết.

### 8.1 Windows 11 23H2 + Chrome 119

#### 8.1.1 transports: `[internal, hybrid]`

Đúng như dự đoán, không có passkey cục bộ nào khớp, vì vậy hệ thống đề nghị quét mã QR và
sử dụng passkey trên một thiết bị khác (vì hệ thống biết rằng có một passkey tồn tại cho
người dùng này).

![Windows Chrome Transports Internal Hybrid](https://www.corbado.com/website-assets/654c1f5b09bf2b7220209704_windows_chrome_transports_hybrid_internal_d9f6f6b81e.png)

#### 8.1.2 transports: `[internal]`

Khá khó hiểu, mã QR cũng được hiển thị ở đây, ngay cả khi chúng tôi chỉ cho phép thông tin
xác thực nội bộ. Chúng tôi không thể tìm thấy lý do hợp lệ cho hành vi này.

![Windows Chrome Transports Internal](https://www.corbado.com/website-assets/654c1f6e07c2e857e5de0960_windows_chrome_transports_internal_810b5ed722.png)

#### 8.1.3 Không đặt thuộc tính transports

Không có passkey cục bộ nào khớp, vì vậy hệ thống đề nghị quét mã QR hoặc sử dụng khóa bảo
mật phần cứng (ví dụ: [YubiKey](https://www.corbado.com/glossary/yubikey)) / trình xác thực đa nền tảng / trình
xác thực di động.

Vì một lý do nào đó, một phần của cửa sổ modal xuất hiện bằng tiếng Đức, là một trong
những ngôn ngữ được cài đặt.

![Windows Chrome No Transports](https://www.corbado.com/website-assets/654c1f7c40ea851fa10a89dd_windows_chrome_no_transports_03ec5939bf.png)

#### 8.1.4 allowCredentials rỗng

Đúng như dự đoán, tất cả các hình thức xác thực passkey đều được cho phép: qua Windows
Hello, qua mã QR, qua các thiết bị đã biết và qua khóa bảo mật phần cứng.

![Windows Chrome Empty AllowCredentials](https://www.corbado.com/website-assets/656e0de868019ba489b24512_windows_11_chrome_119_empty_allow_Credentials_68d90ba714.png)

### 8.2 Windows 11 23H2 + Edge 119

#### 8.2.1 transports: `[internal, hybrid]`

Đúng như dự đoán, không có passkey cục bộ nào khớp, vì vậy hệ thống đề nghị quét mã QR và
sử dụng passkey trên một thiết bị khác (vì hệ thống biết rằng có một passkey tồn tại cho
người dùng này).

![Windows Edge Transports Internal Hybrid](https://www.corbado.com/website-assets/654c1f886911a0090e885576_windows_edge_transports_hybrid_internal_a20488b2eb.png)

#### 8.2.2 transports: `[internal]`

Khá khó hiểu, mã QR cũng được hiển thị ở đây, ngay cả khi chúng tôi chỉ cho phép thông tin
xác thực nội bộ. Chúng tôi không thể tìm thấy lý do hợp lệ cho hành vi này.

![Windows Edge Transports Internal](https://www.corbado.com/website-assets/654c1f90d40c371a2059f8ae_windows_edge_transports_internal_8bb4ce60ac.png)

#### 8.2.3 Không đặt thuộc tính transports

Không có passkey cục bộ nào khớp, vì vậy hệ thống đề nghị quét mã QR hoặc sử dụng khóa bảo
mật phần cứng (ví dụ: [YubiKey](https://www.corbado.com/glossary/yubikey)) / trình xác thực đa nền tảng / trình
xác thực di động.

Vì một lý do nào đó, một phần của cửa sổ modal xuất hiện bằng tiếng Đức, là một trong
những ngôn ngữ được cài đặt.

![Windows Edge No Transports](https://www.corbado.com/website-assets/654c1f9f89423cbcd1c67e70_windows_edge_no_transports_c653d9bc38.png)

#### 8.2.4 allowCredentials rỗng

Đúng như dự đoán, tất cả các hình thức xác thực passkey đều được cho phép: qua Windows
Hello, qua mã QR, qua các thiết bị đã biết và qua khóa bảo mật phần cứng.

![Windows Edge Empty AllowCredentials](https://www.corbado.com/website-assets/656e0e0237b9a8e24c906511_windows_11_edge_119_empty_allow_Credentials_baad1ac445.png)

### 8.3 Windows 11 23H2 + Firefox 119

Khi [tạo passkey](https://www.corbado.com/vi/blog/thuc-hanh-tot-nhat-tao-passkey), chúng tôi nhận được lỗi sau
(nhưng một passkey vẫn được tạo):

_error: TypeError: 'toJSON' called on an object that does not implement interface
PublicKeyCredential._

#### 8.3.1 transports: `[internal, hybrid]`

Đúng như dự đoán, không có passkey cục bộ nào khớp, vì vậy hệ thống đề nghị quét mã QR và
sử dụng passkey trên một thiết bị khác (vì hệ thống biết rằng có một passkey tồn tại cho
người dùng này).

![Windows Firefox Transports Internal Hybrid](https://www.corbado.com/website-assets/654c1faab48ed06061c78b6b_windows_firefox_transports_hybrid_internal_395db978cb.png)

#### 8.3.2 transports: `[internal]`

Khá khó hiểu, mã QR cũng được hiển thị ở đây, ngay cả khi chúng tôi chỉ cho phép thông tin
xác thực nội bộ. Chúng tôi không thể tìm thấy lý do hợp lệ cho hành vi này.

![Windows Firefox Transports Internal](https://www.corbado.com/website-assets/654c1fb221d9f40ec2c98fdc_windows_firefox_transports_internal_d706bc716a.png)

#### 8.3.3 Không đặt thuộc tính transports

Không có passkey cục bộ nào khớp, vì vậy hệ thống đề nghị quét mã QR hoặc sử dụng khóa bảo
mật phần cứng (ví dụ: YubiKey) / trình xác thực đa nền tảng / trình xác thực di động.

Vì một lý do nào đó, một phần của cửa sổ modal xuất hiện bằng tiếng Đức, là một trong
những ngôn ngữ được cài đặt.

![Windows Firefox No Transports](https://www.corbado.com/website-assets/654c1fbbd7927473aed38c5f_windows_firefox_no_transports_7afb6db1ff.png)

#### 8.3.4 allowCredentials rỗng

Đúng như dự đoán, tất cả các hình thức xác thực passkey đều được cho phép: qua Windows
Hello, qua mã QR, qua các thiết bị đã biết và qua khóa bảo mật phần cứng.

![Windows Firefox Empty AllowCredentials](https://www.corbado.com/website-assets/656e0e2a6c3ecab809ecedca_windows_11_firefox_119_empty_allow_Credentials_17189f07d7.png)

### 8.4 macOS Ventura + Chrome 119

#### 8.4.1 transports: `[internal, hybrid]`

Đúng như dự đoán, không có passkey cục bộ nào khớp, vì vậy hệ thống đề nghị quét mã QR và
sử dụng passkey trên một thiết bị khác (vì hệ thống biết rằng có một passkey tồn tại cho
người dùng này). Hơn nữa, bạn có thể trực tiếp chọn một trong các thiết bị đã biết để sử
dụng passkey từ đó.

Cửa sổ modal này khá khác so với phiên bản tương tự trên Windows trong Chrome 119.

![macOS Chrome Transports Internal Hybrid](https://www.corbado.com/website-assets/654c1fc5227b32dc36e6ea46_macos_chrome_transports_hybrid_internal_e4abefb558.png)

#### 8.4.2 transports: `[internal]`

Đây là hành vi mong đợi, vì chúng tôi chỉ cho phép sử dụng passkey nội bộ nhưng không thể
tìm thấy thông tin xác thực nội bộ trên thiết bị (chúng tôi không được phép sử dụng
passkey lai). Việc xác thực passkey thất bại ở bước này và trong các triển khai thực tế,
bạn sẽ cần cung cấp một phương thức xác thực dự phòng.

![macOS Chrome Transports Internal](https://www.corbado.com/website-assets/654c1fdddac09b00d0bd3b2e_macos_chrome_transports_internal_71b31d4942.png)

#### 8.4.3 Không đặt thuộc tính transports

Không có passkey cục bộ nào khớp, vì vậy hệ thống đề nghị quét mã QR hoặc sử dụng khóa bảo
mật phần cứng (ví dụ: YubiKey) / trình xác thực nền tảng đa nền tảng / trình xác thực di
động. Hơn nữa, bạn có thể trực tiếp chọn một trong các thiết bị đã biết để sử dụng passkey
từ đó.

Cửa sổ modal này khá khác so với phiên bản tương tự trên Windows trong Chrome 119.

![macOS Chrome No Transports](https://www.corbado.com/website-assets/654c1fe730b66c728200bc32_macos_chrome_no_transports_d875932a07.png)

#### 8.4.4 allowCredentials rỗng

Đúng như dự đoán, tất cả các hình thức xác thực passkey đều được cho phép: qua Touch ID,
qua mã QR, qua các thiết bị đã biết và qua khóa bảo mật phần cứng.

![macOS Chrome Empty AllowCredentials](https://www.corbado.com/website-assets/656e0e406ac7f571113f8cde_macos_14_1_chrome_119_empty_allow_Credentials_99a9202253.png)

### 8.5 macOS Ventura + Safari 16.6

#### 8.5.1 transports: `[internal, hybrid]`

Đúng như dự đoán, không có passkey cục bộ nào khớp, vì vậy hệ thống đề nghị quét mã QR và
sử dụng passkey trên một thiết bị khác (vì hệ thống biết rằng có một passkey tồn tại cho
người dùng này).

![macOS Safari Transports Internal Hybrid](https://www.corbado.com/website-assets/654c1ff330b66c728200c300_macos_safari_transports_hybrid_internal_fbfcf996eb.png)

#### 8.5.2 transports: `[internal]`

Khá khó hiểu, mã QR cũng được hiển thị ở đây, ngay cả khi chúng tôi chỉ cho phép thông tin
xác thực nội bộ. Chúng tôi không thể tìm thấy lý do hợp lệ cho hành vi này.

![macOS Safari Transports Internal](https://www.corbado.com/website-assets/654c1ffc07913779f551177a_macos_safari_transports_internal_ea68c7e5a4.png)

#### 8.5.3 Không đặt thuộc tính transports

Không có passkey cục bộ nào khớp, vì vậy hệ thống đề nghị quét mã QR hoặc sử dụng khóa bảo
mật phần cứng (ví dụ: YubiKey) / trình xác thực đa nền tảng / trình xác thực di động.

![macOS Safari No Transports](https://www.corbado.com/website-assets/654c20077178565661c7b9ae_macos_safari_no_transports_4ff6aa97f5.png)

#### 8.5.4 allowCredentials rỗng

Đúng như dự đoán, hầu hết các hình thức xác thực passkey đều được cho phép: qua Touch ID,
qua mã QR và qua khóa bảo mật phần cứng. Vì một lý do nào đó, các thiết bị đã biết không
được hiển thị.

![macOS Safari Empty AllowCredentials](https://www.corbado.com/website-assets/656e0e5c1ebd36d824b3f8a4_macos_14_1_safari_17_1_empty_allow_Credentials_3f548fc22a.jpg)

### 8.6 iOS 17.1 + Chrome 119

#### 8.6.1 transports: `[internal, hybrid]`

Đúng như dự đoán, không có passkey cục bộ nào khớp, vì vậy hệ thống đề nghị quét mã QR và
sử dụng passkey trên một thiết bị khác (vì hệ thống biết rằng có một passkey tồn tại cho
người dùng này).

![iOS Chrome Transports Internal Hybrid](https://www.corbado.com/website-assets/654c20157279c6a5b35595fe_ios_chrome_transports_hybrid_internal_25b2bc95a9.png)

#### 8.6.2 transports: `[internal]`

Khá khó hiểu, mã QR cũng được hiển thị ở đây, ngay cả khi chúng tôi chỉ cho phép thông tin
xác thực nội bộ. Chúng tôi không thể tìm thấy lý do hợp lệ cho hành vi này.

![iOS Chrome Transports Internal](https://www.corbado.com/website-assets/654c2021b48ed06061c7da4c_ios_chrome_transports_internal_9c90430238.png)

#### 8.6.3 Không đặt thuộc tính transports

Không có passkey cục bộ nào khớp, vì vậy hệ thống đề nghị quét mã QR hoặc sử dụng khóa bảo
mật phần cứng (ví dụ: YubiKey) / trình xác thực đa nền tảng / trình xác thực di động.

![iOS Chrome No Transports](https://www.corbado.com/website-assets/654c2028347d6de2c424b8ea_ios_chrome_no_transports_800e1f28db.png)

#### 8.6.4 allowCredentials rỗng

Đúng như dự đoán, hầu hết các hình thức xác thực passkey đều được cho phép: qua Face ID,
qua mã QR và qua khóa bảo mật phần cứng. Vì một lý do nào đó, các thiết bị đã biết không
được hiển thị.

![iOS Chrome Empty AllowCredentials](https://www.corbado.com/website-assets/656e0e736ac7f571113fcbc3_ios_17_1_chrome_119_empty_allow_Credentials_594c94ef33.jpg)

### 8.7 iOS 17.1 + Safari 17.1

#### 8.7.1 transports: `[internal, hybrid]`

Đúng như dự đoán, không có passkey cục bộ nào khớp, vì vậy hệ thống đề nghị quét mã QR và
sử dụng passkey trên một thiết bị khác (vì hệ thống biết rằng có một passkey tồn tại cho
người dùng này).

![iOS Safari Transports Internal Hybrid](https://www.corbado.com/website-assets/654c2031a6f031f3de7f37c2_ios_safari_transports_hybrid_internal_962be3dc05.png)

#### 8.7.2 transports: `[internal]`

Khá khó hiểu, mã QR cũng được hiển thị ở đây, ngay cả khi chúng tôi chỉ cho phép thông tin
xác thực nội bộ. Chúng tôi không thể tìm thấy lý do hợp lệ cho hành vi này.

![iOS Safari Transports Internal](https://www.corbado.com/website-assets/654c20398e839fca2cd27610_ios_safari_transports_internal_2a5ed1c8ef.png)

#### 8.7.3 Không đặt thuộc tính transports

Không có passkey cục bộ nào khớp, vì vậy hệ thống đề nghị quét mã QR hoặc sử dụng khóa bảo
mật phần cứng (ví dụ: YubiKey) / trình xác thực đa nền tảng / trình xác thực di động.

![iOS Safari No Transports](https://www.corbado.com/website-assets/654c20429a4ea0f5059a19d1_ios_safari_no_transports_62cc32cf45.png)

#### 8.7.4 allowCredentials rỗng

Đúng như dự đoán, hầu hết các hình thức xác thực passkey đều được cho phép: qua Face ID,
qua mã QR và qua khóa bảo mật phần cứng. Vì một lý do nào đó, các thiết bị đã biết không
được hiển thị.

![iOS Safari Empty AllowCredentials](https://www.corbado.com/website-assets/656e0e912483530de38bce47_ios_17_1_safari_17_1_empty_allow_Credentials_2a9f57c8f5.jpg)

Sau đây, đối với các thiết bị Windows 10, chúng tôi quyết định đi sâu hơn một cấp và phân
tích hành vi trông như thế nào nếu Bluetooth bị tắt hoặc không có sẵn trên máy Windows 10
nói chung. Đặc biệt đối với các thiết bị máy tính để bàn cũ hơn, đây vẫn là một kịch bản
rất phổ biến vì các thiết bị này thường không có mô-đun Bluetooth, do đó không thể xác
thực đa nền tảng qua mã QR và Bluetooth.

### 8.8 Windows 10 21H2 + Chrome 119

#### 8.8.1 Bluetooth được bật

**8.8.1.1 transports: `[internal, hybrid]`**

Đúng như dự đoán, không có passkey cục bộ nào khớp, vì vậy hệ thống đề nghị sử dụng
passkey trên một thiết bị khác (vì hệ thống biết rằng có một passkey tồn tại cho người
dùng này - ảnh chụp màn hình đầu tiên) hoặc chọn quét mã QR (ảnh chụp màn hình thứ hai).

![Bluetooth Windows 10 21H2 Chrome Transports Internal Hybrid Stored Device](https://www.corbado.com/website-assets/655a41796c7b81432a8f8d0c_bluetooth_windows_10_21h2_chrome_transports_internal_hybrid_5ba8fc5778.png)

![Bluetooth Windows 10 21H2 Chrome Transports Internal Hybrid Selection](https://www.corbado.com/website-assets/655a420bfcb17d5a59e3b9b3_bluetooth_windows_10_21h2_chrome_transports_internal_hybrid_selection_cefe95683e.png)

**8.8.1.2 transports: `[internal]`**

Khá khó hiểu, bạn được nhắc nhập mã PIN Windows Hello (hoặc quét vân tay / khuôn mặt nếu
được thiết lập trên thiết bị), mặc dù chúng tôi đã thay đổi
[credential ID](https://www.corbado.com/blog/webauthn-user-id-userhandle) (vì vậy nó thực sự không nên tìm thấy
thông tin xác thực vì nó không được chỉ định trong thuộc tính
[allowCredentials](https://www.corbado.com/glossary/allowcredentials)). Tuy nhiên, sau khi gửi mã PIN Windows
Hello, một lỗi được đưa ra: "[NotAllowedError](https://www.corbado.com/blog/webauthn-errors): The operation
either timed out or was not allowed. See:
[https://www.w3.org/TR/webauthn-2/#sctn-privacy-considerations- client.](https://www.w3.org/TR/webauthn-2/#sctn-privacy-considerations-client)"
Từ góc độ người dùng, đây là một hành vi khá khó hiểu nhưng có lý vì nó có thể cung cấp
thông tin về passkey của người dùng mà không có sự đồng ý của họ.

![Bluetooth Windows 10 21H2 Chrome Transports Internal](https://www.corbado.com/website-assets/655a418dd296ce49e7790542_bluetooth_windows_10_21h2_chrome_transports_internal_2f821c99c4.png)

**8.8.1.3 Không đặt thuộc tính transports**

Không có passkey cục bộ nào khớp, vì vậy hệ thống đề nghị quét mã QR hoặc sử dụng khóa bảo
mật phần cứng (ví dụ: YubiKey) / trình xác thực đa nền tảng / trình xác thực di động.

![Bluetooth Windows 10 21H2 Chrome No Transports](https://www.corbado.com/website-assets/655a4198c91e9d877f8d18d2_bluetooth_windows_10_21h2_chrome_no_transports_8a81c90cb1.png)

**8.8.1.4 allowCredentials rỗng**

Đúng như dự đoán, tất cả các hình thức xác thực passkey đều được cho phép: qua Windows
Hello, qua mã QR, qua các thiết bị đã biết và qua khóa bảo mật phần cứng.

![Bluetooth Windows 10 21H2 Chrome Empty AllowCredentials](https://www.corbado.com/website-assets/656e0ef2cb6b0e0081620646_bluetooth_windows_10_21h2_chrome_empty_allowcredentials_c9034b924b.png)

#### 8.8.2 Bluetooth bị tắt

**8.8.2.1 transports: `[internal, hybrid]`**

Đây là một thông báo thực sự khó hiểu cho người dùng, vì không có tuyên bố rõ ràng về
những gì họ nên làm và cách họ có thể xác thực. Lựa chọn duy nhất họ có là nhấp vào "Hủy",
khiến kịch bản này trở thành ngõ cụt.

![No Bluetooth Windows 10 21H2 Chrome Transports Internal Hybrid](https://www.corbado.com/website-assets/655a42691f4650d9c5f048eb_no_bluetooth_windows_10_21h2_chrome_transports_internal_hybrid_fe23b5d98c.png)

**8.8.2.2 transports: `[internal]`**

Hành vi này giống như trường hợp Bluetooth được bật. Rất khó hiểu khi người dùng được nhắc
nhập mã PIN Windows Hello (hoặc quét vân tay / khuôn mặt nếu được thiết lập trên thiết
bị), mặc dù chúng tôi đã thay đổi [credential ID](https://www.corbado.com/blog/webauthn-user-id-userhandle) (vì
vậy nó thực sự không nên tìm thấy thông tin xác thực vì nó không được chỉ định trong thuộc
tính allowCredentials). Tuy nhiên, sau khi gửi mã PIN Windows Hello, một lỗi được đưa ra:
"[NotAllowedError](https://www.corbado.com/blog/webauthn-errors): The operation either timed out or was not
allowed. See:
[https://www.w3.org/TR/webauthn-2/#sctn-privacy-considerations- client.](https://www.w3.org/TR/webauthn-2/#sctn-privacy-considerations-client)"
Từ góc độ người dùng, đây là một hành vi khá khó hiểu nhưng có lý vì nó có thể cung cấp
thông tin về passkey của người dùng mà không có sự đồng ý của họ.

![No Bluetooth Windows 10 21H2 Chrome Transports Internal](https://www.corbado.com/website-assets/655a42782e4725cfe619d0bd_no_bluetooth_windows_10_21h2_chrome_transports_internal_2c0239090a.png)

**8.8.2.3 Không đặt thuộc tính transports**

Không có passkey cục bộ nào khớp, vì vậy lựa chọn duy nhất bạn có là sử dụng
[khóa bảo mật](https://www.corbado.com/vi/glossary/ctap) phần cứng (ví dụ: YubiKey) / trình xác thực đa nền tảng
/ trình xác thực di động.

![No Bluetooth Windows 10 21H2 Chrome No Transports](https://www.corbado.com/website-assets/655a428606a44b7254f3b15b_no_bluetooth_windows_10_21h2_chrome_no_transports_10b4b7be67.png)

**8.8.2.4 allowCredentials rỗng**

Xác thực passkey chỉ có thể thực hiện qua Windows Hello và khóa bảo mật phần cứng.

![No Bluetooth Windows 10 21H2 Chrome Empty AllowCredentials](https://www.corbado.com/website-assets/656e0f12e540402d134edfe0_no_bluetooth_windows_10_21h2_chrome_empty_allowcredentials_8a51d98916.png)

### 8.9 Windows 10 21H2 + Edge 119

#### 8.9.1 Bluetooth được bật

**8.9.1.1 transports: `[internal, hybrid]`**

Đúng như dự đoán, không có passkey cục bộ nào khớp, vì vậy hệ thống đề nghị quét mã QR và
sử dụng passkey trên một thiết bị khác (vì hệ thống biết rằng có một passkey tồn tại cho
người dùng này).

![Bluetooth Windows 10 21H2 Edge Transports Internal Hybrid](https://www.corbado.com/website-assets/655a41d9ba4706dfb36cdc27_bluetooth_windows_10_21h2_edge_transports_internal_hybrid_ef0d00b7b7.png)

**8.9.1.2 transports: `[internal]`**

Khá khó hiểu, bạn được nhắc nhập mã PIN Windows Hello (hoặc quét vân tay / khuôn mặt nếu
được thiết lập trên thiết bị), mặc dù chúng tôi đã thay đổi credential ID (vì vậy nó thực
sự không nên tìm thấy thông tin xác thực vì nó không được chỉ định trong thuộc tính
allowCredentials). Tuy nhiên, sau khi gửi mã PIN Windows Hello, một lỗi được đưa ra:
"[NotAllowedError](https://www.corbado.com/blog/webauthn-errors): The operation either timed out or was not
allowed. See:
[https://www.w3.org/TR/webauthn-2/#sctn-privacy-considerations- client.](https://www.w3.org/TR/webauthn-2/#sctn-privacy-considerations-client)"
Từ góc độ người dùng, đây là một hành vi khá khó hiểu nhưng có lý vì nó có thể cung cấp
thông tin về passkey của người dùng mà không có sự đồng ý của họ.

![Bluetooth Windows 10 21H2 Edge Transports Internal ](https://www.corbado.com/website-assets/655a41e9c91e9d877f8d69fd_bluetooth_windows_10_21h2_edge_transports_internal_a9be35d4e9.png)

**8.9.1.3 Không đặt thuộc tính transports**

Không có passkey cục bộ nào khớp, vì vậy hệ thống đề nghị quét mã QR hoặc sử dụng khóa bảo
mật phần cứng (ví dụ: YubiKey) / trình xác thực đa nền tảng / trình xác thực di động.

![Bluetooth Windows 10 21H2 Edge No Transports](https://www.corbado.com/website-assets/655a41faf4d3d4dd56d0a26c_bluetooth_windows_10_21h2_edge_no_transports_4e859da47f.png)

**8.9.1.4 allowCredentials rỗng**

Đúng như dự đoán, tất cả các hình thức xác thực passkey đều được cho phép: qua Windows
Hello, qua mã QR và qua khóa bảo mật phần cứng. Vì một lý do nào đó, các thiết bị đã biết
không được hiển thị.

![Bluetooth Windows 10 21H2 Edge Empty AllowCredentials](https://www.corbado.com/website-assets/656e0f3b6d7434294c3a1609_bluetooth_windows_10_21h2_edge_empty_allowcredentials_b809409ee2.png)

#### 8.9.2 Bluetooth bị tắt

**8.9.2.1 transports: `[internal, hybrid]`**

Đây là một thông báo thực sự khó hiểu cho người dùng, vì không có tuyên bố rõ ràng về
những gì họ nên làm và cách họ có thể xác thực. Lựa chọn duy nhất họ có là nhấp vào "Hủy",
khiến kịch bản này trở thành ngõ cụt.

![No Bluetooth Windows 10 21H2 Edge Transports Internal Hybrid](https://www.corbado.com/website-assets/655a429627bb0b39f6ce94c8_no_bluetooth_windows_10_21h2_edge_transports_internal_hybrid_e2ae87605f.png)

**8.9.2.2 transports: `[internal]`**

Hành vi này giống như trường hợp Bluetooth được bật. Rất khó hiểu khi người dùng được nhắc
nhập mã PIN Windows Hello (hoặc quét vân tay / khuôn mặt nếu được thiết lập trên thiết
bị), mặc dù chúng tôi đã thay đổi credential ID (vì vậy nó thực sự không nên tìm thấy
thông tin xác thực vì nó không được chỉ định trong thuộc tính allowCredentials). Tuy
nhiên, sau khi gửi mã PIN Windows Hello, một lỗi được đưa ra: "NotAllowedError: The
operation either timed out or was not allowed. See:
[https://www.w3.org/TR/webauthn-2/#sctn-privacy-considerations- client.](https://www.w3.org/TR/webauthn-2/#sctn-privacy-considerations-client)"
Từ góc độ người dùng, đây là một hành vi khá khó hiểu nhưng có lý vì nó có thể cung cấp
thông tin về passkey của người dùng mà không có sự đồng ý của họ.

![No Bluetooth Windows 10 21H2 Edge Transports Internal](https://www.corbado.com/website-assets/655a42a263c9530593b69e9d_no_bluetooth_windows_10_21h2_edge_transports_internal_d125e7e90b.png)

**8.9.2.3 Không đặt thuộc tính transports**

Không có passkey cục bộ nào khớp, vì vậy lựa chọn duy nhất bạn có là sử dụng
[khóa bảo mật](https://www.corbado.com/vi/glossary/ctap) phần cứng (ví dụ: YubiKey) / trình xác thực đa nền tảng
/ trình xác thực di động.

![No Bluetooth Windows 10 21H2 Edge No Transports](https://www.corbado.com/website-assets/655a42ae341c12df9fc8d407_no_bluetooth_windows_10_21h2_edge_no_transports_3eea0c1f8c.png)

**8.9.2.4 allowCredentials rỗng**

Xác thực passkey chỉ có thể thực hiện qua Windows Hello và khóa bảo mật phần cứng.

![No Bluetooth Windows 10 21H2 Edge Empty AllowCredentials](https://www.corbado.com/website-assets/656e0f571d60cb40e25cf67b_no_bluetooth_windows_10_21h2_edge_empty_allowcredentials_9e62a2cb74.png)

### 8.10 Windows 10 22H2 + Chrome 119

#### 8.10.1 Bluetooth được bật

**8.10.1.1 transports: `[internal, hybrid]`**

Đúng như dự đoán, không có passkey cục bộ nào khớp, vì vậy hệ thống đề nghị quét mã QR và
sử dụng passkey trên một thiết bị khác (vì hệ thống biết rằng có một passkey tồn tại cho
người dùng này).

![Bluetooth Windows 10 22H2 Chrome Transports Internal Hybrid](https://www.corbado.com/website-assets/655a42cf056f1bc183bd3de9_bluetooth_windows_10_22h2_chrome_transports_internal_hybrid_7233c3d8c3.png)

**8.10.1.2 transports: `[internal]`**

Khá khó hiểu, bạn được nhắc nhập mã PIN Windows Hello (hoặc quét vân tay / khuôn mặt nếu
được thiết lập trên thiết bị), mặc dù chúng tôi đã thay đổi credential ID (vì vậy nó thực
sự không nên tìm thấy thông tin xác thực vì nó không được chỉ định trong thuộc tính
allowCredentials). Tuy nhiên, sau khi gửi mã PIN Windows Hello, một lỗi được đưa ra:
"NotAllowedError: The operation either timed out or was not allowed. See:
[https://www.w3.org/TR/webauthn-2/#sctn-privacy-considerations- client.](https://www.w3.org/TR/webauthn-2/#sctn-privacy-considerations-client)"
Từ góc độ người dùng, đây là một hành vi khá khó hiểu nhưng có lý vì nó có thể cung cấp
thông tin về passkey của người dùng mà không có sự đồng ý của họ.

![Bluetooth Windows 10 22H2 Chrome Transports Internal ](https://www.corbado.com/website-assets/655a42e631cdcff15a6b0005_bluetooth_windows_10_22h2_chrome_transports_internal_70cb5c42ca.png)

**8.10.1.3 Không đặt thuộc tính transports**

Không có passkey cục bộ nào khớp, vì vậy hệ thống đề nghị quét mã QR hoặc sử dụng khóa bảo
mật phần cứng (ví dụ: YubiKey) / trình xác thực đa nền tảng / trình xác thực di động.

![Bluetooth Windows 10 22H2 Chrome No Transports](https://www.corbado.com/website-assets/655a42f5341c12df9fc94321_bluetooth_windows_10_22h2_chrome_no_transports_a1c084933a.png)

**8.10.1.4 allowCredentials rỗng**

Đúng như dự đoán, tất cả các hình thức xác thực passkey đều được cho phép: qua Windows
Hello, qua mã QR và qua khóa bảo mật phần cứng. Vì một lý do nào đó, các thiết bị đã biết
không được hiển thị.

![Bluetooth Windows 10 22H2 Chrome Empy AllowCredentials](https://www.corbado.com/website-assets/656e0f6d1df07c2e45039298_bluetooth_windows_10_22h2_chrome_empty_allowcredentials_d14bf6b868.png)

#### 8.10.2 Bluetooth bị tắt

**8.10.2.1 transports: `[internal, hybrid]`**

Đây là một thông báo thực sự khó hiểu cho người dùng, vì không có tuyên bố rõ ràng về
những gì họ nên làm và cách họ có thể xác thực. Lựa chọn duy nhất họ có là nhấp vào "Hủy",
khiến kịch bản này trở thành ngõ cụt. Vì một lý do nào đó, một phần của cửa sổ modal
Windows Security cũng được hiển thị bằng tiếng Đức (một ngôn ngữ thứ hai được cài đặt trên
thiết bị này).

![No Bluetooth Windows 10 22H2 Chrome Transports Internal Hybrid](https://www.corbado.com/website-assets/655a4361fcb17d5a59e49689_no_bluetooth_windows_10_22h2_chrome_transports_internal_hybrid_46e4dd0f06.png)

**8.10.2.2 transports: `[internal]`**

Hành vi này giống như trường hợp Bluetooth được bật. Rất khó hiểu khi người dùng được nhắc
nhập mã PIN Windows Hello (hoặc quét vân tay / khuôn mặt nếu được thiết lập trên thiết
bị), mặc dù chúng tôi đã thay đổi credential ID (vì vậy nó thực sự không nên tìm thấy
thông tin xác thực vì nó không được chỉ định trong thuộc tính allowCredentials). Tuy
nhiên, sau khi gửi mã PIN Windows Hello, một lỗi được đưa ra: "NotAllowedError: The
operation either timed out or was not allowed. See:
[https://www.w3.org/TR/webauthn-2/#sctn-privacy-considerations- client.](https://www.w3.org/TR/webauthn-2/#sctn-privacy-considerations-client)"
Từ góc độ người dùng, đây là một hành vi khá khó hiểu nhưng có lý vì nó có thể cung cấp
thông tin về passkey của người dùng mà không có sự đồng ý của họ.

![No Bluetooth Windows 10 22H2 Chrome Transports Internal ](https://www.corbado.com/website-assets/655a43754f327a0ea96c0f2f_no_bluetooth_windows_10_22h2_chrome_transports_internal_522e8d235f.png)

**8.10.2.3 Không đặt thuộc tính transports**

Không có passkey cục bộ nào khớp, vì vậy lựa chọn duy nhất bạn có là sử dụng
[khóa bảo mật](https://www.corbado.com/vi/glossary/ctap) phần cứng (ví dụ: YubiKey) / trình xác thực đa nền tảng
/ trình xác thực di động.

![No Bluetooth Windows 10 22H2 Chrome No Transports ](https://www.corbado.com/website-assets/655a439c6c7b81432a90cd09_no_bluetooth_windows_10_22h2_chrome_no_transports_64de3d513a.png)

**8.10.2.4 allowCredentials rỗng**

Xác thực passkey chỉ có thể thực hiện qua Windows Hello và khóa bảo mật phần cứng.

![No Bluetooth Windows 10 22H2 Chrome Empy AllowCredentials](https://www.corbado.com/website-assets/656e0f96d01b45cb7af49bd0_no_bluetooth_windows_10_22h2_chrome_empty_allowcredentials_3e15754828.png)

### 8.11 Windows 10 22H2 + Edge 119

#### 8.11.1 Bluetooth được bật

**8.11.1.1 transports: `[internal, hybrid]`**

Đúng như dự đoán, không có passkey cục bộ nào khớp, vì vậy hệ thống đề nghị quét mã QR và
sử dụng passkey trên một thiết bị khác (vì hệ thống biết rằng có một passkey tồn tại cho
người dùng này).

![Bluetooth Windows 10 22H2 Edge Transports Internal Hybrid](https://www.corbado.com/website-assets/655a4304fcb17d5a59e4440a_bluetooth_windows_22h2_edge_transports_internal_hybrid_bda614e4bf.png)

**8.11.1.2 transports: `[internal]`**

Khá khó hiểu, bạn được nhắc nhập mã PIN Windows Hello (hoặc quét vân tay / khuôn mặt nếu
được thiết lập trên thiết bị), mặc dù chúng tôi đã thay đổi credential ID (vì vậy nó thực
sự không nên tìm thấy thông tin xác thực vì nó không được chỉ định trong thuộc tính
allowCredentials). Tuy nhiên, sau khi gửi mã PIN Windows Hello, một lỗi được đưa ra:
"NotAllowedError: The operation either timed out or was not allowed. See:
[https://www.w3.org/TR/webauthn-2/#sctn-privacy-considerations- client.](https://www.w3.org/TR/webauthn-2/#sctn-privacy-considerations-client)"
Từ góc độ người dùng, đây là một hành vi khá khó hiểu nhưng có lý vì nó có thể cung cấp
thông tin về passkey của người dùng mà không có sự đồng ý của họ.

![Bluetooth Windows 10 22H2 Edge Transports Internal ](https://www.corbado.com/website-assets/655a43410ef35b5c92083b17_bluetooth_windows_10_22h2_edge_transports_internal_38d6fb5bcd.png)

**8.11.1.3 Không đặt thuộc tính transports**

Không có passkey cục bộ nào khớp, vì vậy hệ thống đề nghị quét mã QR hoặc sử dụng khóa bảo
mật phần cứng (ví dụ: YubiKey) / trình xác thực đa nền tảng / trình xác thực di động.

![Bluetooth Windows 10 22H2 Edge No Transports ](https://www.corbado.com/website-assets/655a4351056f1bc183bd7dad_bluetooth_windows_10_22h2_edge_no_transports_3c0dc6ae7d.png)

**8.11.1.4 allowCredentials rỗng**

Đúng như dự đoán, tất cả các hình thức xác thực passkey đều được cho phép: qua Windows
Hello, qua mã QR và qua khóa bảo mật phần cứng. Vì một lý do nào đó, các thiết bị đã biết
không được hiển thị.

![Bluetooth Windows 10 22H2 Edge Empty AllowCredentials](https://www.corbado.com/website-assets/656e0fab2483530de38c9c73_bluetooth_windows_10_22h2_edge_empty_allowcredentials_6f687e0ba4.png)

#### 8.11.2 Bluetooth bị tắt

**8.11.2.1 transports: `[internal, hybrid]`**

Đây là một thông báo thực sự khó hiểu cho người dùng, vì không có tuyên bố rõ ràng về
những gì họ nên làm và cách họ có thể xác thực. Lựa chọn duy nhất họ có là nhấp vào "Hủy",
khiến kịch bản này trở thành ngõ cụt.

![No Bluetooth Windows 10 22H2 Edge Transports Internal Hybrid](https://www.corbado.com/website-assets/655a43bb58ede3292022c780_no_bluetooth_windows_10_22h2_edge_transports_internal_hybrid_fde74a565b.png)

**8.11.2.2 transports: `[internal]`**

Hành vi này giống như trường hợp Bluetooth được bật. Rất khó hiểu khi người dùng được nhắc
nhập mã PIN Windows Hello (hoặc quét vân tay / khuôn mặt nếu được thiết lập trên thiết
bị), mặc dù chúng tôi đã thay đổi credential ID (vì vậy nó thực sự không nên tìm thấy
thông tin xác thực vì nó không được chỉ định trong thuộc tính allowCredentials). Tuy
nhiên, sau khi gửi mã PIN Windows Hello, một lỗi được đưa ra: "NotAllowedError: The
operation either timed out or was not allowed. See:
[https://www.w3.org/TR/webauthn-2/#sctn-privacy-considerations- client.](https://www.w3.org/TR/webauthn-2/#sctn-privacy-considerations-client)"
Từ góc độ người dùng, đây là một hành vi khá khó hiểu nhưng có lý vì nó có thể cung cấp
thông tin về passkey của người dùng mà không có sự đồng ý của họ.

![No Bluetooth Windows 10 22H2 Edge Transports Internal](https://www.corbado.com/website-assets/655a43c99e315820aa7f52dd_no_bluetooth_windows_10_22h2_edge_transports_internal_8b67007e33.png)

**8.11.2.3 Không đặt thuộc tính transports**

Không có passkey cục bộ nào khớp, vì vậy lựa chọn duy nhất bạn có là sử dụng khóa bảo mật
phần cứng (ví dụ: YubiKey) / trình xác thực đa nền tảng / trình xác thực di động.

![No Bluetooth Windows 10 22H2 Edge No Transports ](https://www.corbado.com/website-assets/655a43d487a5a72a403ed731_no_bluetooth_windows_10_22h2_edge_no_transports_68b9f0f7a2.png)

**8.11.2.4 allowCredentials rỗng**

Xác thực passkey chỉ có thể thực hiện qua Windows Hello và khóa bảo mật phần cứng.

![No Bluetooth Windows 10 22H2 Edge Empty AllowCredentials](https://www.corbado.com/website-assets/656e0fc8ebf49396fbbf5852_no_bluetooth_windows_10_22h2_edge_empty_allowcredentials_deaa7e2395.png)

## 9. Khuyến nghị cho nhà phát triển

### 9.1 Mẹo triển khai

- Sử dụng thư viện và framework giúp trừu tượng hóa một số phức tạp của API WebAuthn thuần
  túy.
- Xem xét các kịch bản xác thực đa nền tảng ngay từ đầu để đảm bảo một lượng lớn người
  dùng có thể hưởng lợi từ việc triển khai passkey của bạn. Tùy thuộc vào lựa chọn thiết
  kế của bạn, bạn cũng có thể cung cấp các phương thức đăng nhập thay thế trong các kịch
  bản này.
- Phát triển các cơ chế dự phòng cho các kịch bản mà xác thực đa nền tảng passkey (vận
  chuyển lai) có thể không thực hiện được do hạn chế của thiết bị.
- Quyết định thiết kế lớn nhất là quyết định xem bạn có muốn quảng bá xác thực passkey đa
  nền tảng qua mã QR / Bluetooth (vận chuyển lai) và biến nó thành một phương thức nổi bật
  để xác thực passkey hay sử dụng các gợi ý để không quảng bá nó một cách tích cực. Trong
  trường hợp sau, hệ thống luôn cố gắng sử dụng ngay lập tức các passkey được lưu trữ nội
  bộ và chỉ khi không tìm thấy passkey nội bộ nào, một mã QR cho xác thực đa nền tảng (vận
  chuyển lai) mới được hiển thị. Điều này cần được xác định trong các tùy chọn máy chủ
  WebAuthn của bạn trong các thuộc tính [excludeCredentials](https://www.corbado.com/glossary/excludecredentials)
  và allowCredentials. Trong thuộc tính [excludeCredentials](https://www.corbado.com/glossary/excludecredentials)
  của máy chủ WebAuthn của bạn, bạn có thể thấy thông tin vận chuyển về các thông tin xác
  thực đã được tạo. Trong thuộc tính allowCredentials, bạn có thể chỉ định hành vi trong
  quá trình đăng nhập (xem các thử nghiệm
  [ở trên](#8-real-life-test-hybrid-transport-passkey-behavior)).
- Hơn nữa, bạn không thể ngăn chặn hoàn toàn xác thực passkey đa nền tảng (vận chuyển lai)
  (xem các thử nghiệm ở trên với `transports: [internal]`), vì vậy bạn cần chuẩn bị rằng
  người dùng của bạn sẽ tìm thấy phương pháp này và sẽ có câu hỏi. Sự xuất hiện của xác
  thực đa nền tảng (vận chuyển lai) này sẽ xảy ra đặc biệt nếu người dùng bắt đầu
  [xóa passkey](https://www.corbado.com/vi/blog/webauthn-signal-api) cục bộ.

### 9.2 Chiến lược giáo dục

- Tạo các [hướng dẫn](https://www.corbado.com/vi/blog/ung-dung-crud-react-express-mysql) và bài học toàn diện
  [hướng dẫn](https://www.corbado.com/vi/blog/ung-dung-crud-react-express-mysql) người dùng qua quy trình xác
  thực passkey đa nền tảng (vận chuyển lai).
- Sử dụng các chú giải công cụ trong ứng dụng và các phần trợ giúp theo ngữ cảnh để hướng
  dẫn người dùng trong lần trải nghiệm xác thực passkey đa nền tảng (vận chuyển lai) đầu
  tiên của họ.
- Cung cấp các phần [Câu hỏi thường gặp (FAQs)](https://www.corbado.com/faq) và khắc phục sự cố trên trang web
  của bạn hoặc trong ứng dụng.

### 9.3 Cân nhắc về quyền truy cập tạm thời

- Triển khai các phiên có giới hạn thời gian cho các lần đăng
  [nhập passkey](https://www.corbado.com/vi/blog/giao-thuc-trao-doi-thong-tin-xac-thuc-cxp-dinh-dang-cxf) qua mã
  QR hoặc Bluetooth để đảm bảo rằng quyền truy cập chỉ là tạm thời và an toàn.
- Đảm bảo rằng xác thực passkey đa nền tảng (vận chuyển lai) không làm suy yếu bất kỳ giao
  thức bảo mật hiện có nào, duy trì tính toàn vẹn của dữ liệu người dùng.
- Xem xét các tác động về quyền riêng tư và đảm bảo rằng bất kỳ quyền truy cập tạm thời
  nào được cấp qua xác thực passkey đa nền tảng (vận chuyển lai) đều được ghi lại và giám
  sát theo các phương pháp bảo mật tốt nhất.

## 10. Kết luận: Passkey qua Mã QR / Bluetooth

Xác thực passkey đa nền tảng qua mã QR / Bluetooth (vận chuyển lai) mang lại sự cân bằng
giữa bảo mật và UX. Tuy nhiên, đây là một quy trình hoàn toàn mới đối với hầu hết người
dùng và có thể gây ra nhiều tình huống khó hiểu, vì vậy cần phải suy nghĩ kỹ xem bạn có
muốn quảng bá nó hay không.

Chúng tôi hy vọng rằng chúng tôi đã có thể làm sáng tỏ chủ đề xác thực passkey đa nền tảng
(vận chuyển lai) qua mã QR / Bluetooth, giải thích cách thiết lập mọi thứ và hành vi trên
các kết hợp thiết bị / trình duyệt khác nhau trông như thế nào. Nếu bạn có bất kỳ câu hỏi
nào, vui lòng liên hệ với chúng tôi qua
[cộng đồng passkey của chúng tôi](https://bit.ly/passkeys-community) hoặc đăng ký
[Substack về passkey của chúng tôi](https://passkeys.substack.com/). Hãy cùng nhau làm cho
Internet trở thành một nơi an toàn hơn bằng cách phổ biến passkey.
