---
url: 'https://www.corbado.com/zh/blog/testing-passkeys'
title: '测试通行密钥实施 (企业通行密钥指南 5)'
description: '通行密钥测试：关于功能、性能和渗透测试的全面指南，确保企业应用程序的安全、无缝身份验证。'
lang: 'zh'
author: 'Vincent Delitz'
date: '2026-05-22T15:52:06.412Z'
lastModified: '2026-05-22T15:55:52.812Z'
keywords: '通行密钥测试, 渗透测试, 性能测试, 负载测试, UAT测试, 身份验证测试'
category: 'Passkeys Strategy'
---

# 测试通行密钥实施 (企业通行密钥指南 5)

## 概述：企业指南

- 简介
- 第1部分：初步评估与规划
- 第2部分：利益相关者参与
- 第3部分：产品、设计与策略开发
- 第4部分：将通行密钥集成到企业技术栈

## 1. 简介

在将通行密钥集成到您的企业技术栈并完成实施之后，下一个关键阶段是确保系统功能完美无缺并符合所有内部标准。这需要全面的测试和精心规划的发布策略。在企业环境中，系统复杂且用户群庞大，严格的测试和监控对于降低风险并确保顺利推广至关重要。

在本文中，我们将重点讨论：

- **功能测试：** 验证通行密钥实施需要哪些基本的功能测试？

- **非功能测试：** 我们如何确保系统满足性能、安全性和可靠性标准？

通过解决这些关键问题，我们旨在为您提供有关测试通行密钥实施的全面指南。这将有助于确保您的部署稳健、安全，并为您的用户提供无缝的体验。让我们深入探讨企业环境中测试的具体细节，并概述成功推广通行密钥所需的步骤。

## 2. 如何测试通行密钥实施

测试和质量保证是企业环境中成功部署通行密钥的关键组成部分。鉴于大型企业系统的复杂性及其服务的大量用户，在全面推广之前，必须确保通行密钥实施的每个方面都正常运行并符合内部标准。这涉及一种全面的测试方法，既要解决系统的功能方面，也要解决非功能方面。由于不同企业的测试和质量保证处理方式差异很大，我们想简要总结一下我们认为的关键点：

1. **用户验收测试/手动测试**：允许测试人员像真实用户一样体验系统，发现可用性问题并确保工作流符合逻辑。
    - **通行密钥注册和身份验证**：确保用户可以在不同设备和平台上成功创建通行密钥并使用其进行身份验证。

    - **用户界面和体验**：验证用户界面是否直观、响应迅速，并提供无缝体验。

    - **错误处理**：测试系统如何处理不正确的输入、失败的身份验证和边缘情况，确保向用户提供适当的反馈和恢复选项。

    - **可用性评估**：从最终用户的角度评估通行密钥实施的易用性和直观性。

    - **无障碍合规性**：验证系统是否符合无障碍标准，以满足所有用户的需求。

    - **跨设备场景**：在各种设备上手动测试，以识别任何不一致之处或特定于设备的问题。

2. **自动化测试**：通过高效地执行重复任务和回归测试来补充手动用户验收测试。
    - **回归测试**：自动重新测试现有功能，以确保新的代码更改不会引入缺陷。

    - **性能脚本**：使用自动化工具在各种条件和负载下模拟用户操作。

    - **持续集成**：将自动化测试集成到开发流水线中，以便尽早发现问题。

3. **Passkey Intelligence 测试**：由于企业用户使用的设备、操作系统和浏览器的多样性，这一点至关重要。
    - **兼容性测试**：确保通行密钥系统在所有支持的平台和浏览器上无缝运行。

    - **设备矩阵**：开发一个测试矩阵，涵盖设备、操作系统版本和浏览器的不同组合。

    - **模拟器和真实设备**：利用模拟器进行广泛覆盖，并利用真实设备获得准确的结果。

4. **非功能测试**：解决通行密钥系统的性能、安全性和可靠性方面的问题。
    - **性能和负载测试**：验证系统能否在不降低性能的情况下处理预期的身份验证量。

    - **安全测试**：进行渗透测试和漏洞评估，以识别并缓解潜在的安全风险。

通过将这些注意事项集成到测试和质量保证流程中，可以降低与部署通行密钥等新身份验证方法相关的风险。在以下部分中，我们将介绍每个步骤，并概述 Corbado 和 Corbado Connect 系统如何在这些情况下提供帮助。

[Watch on YouTube](https://www.youtube.com/watch?v=8GaNhrY5TMY)

## 3. 通行密钥功能测试

功能测试是企业环境中通行密钥部署的关键阶段。它侧重于验证通行密钥实施的所有特性和功能是否按预期工作。这种类型的测试确保系统满足指定的要求并提供无缝的用户体验。功能测试是质量保证的基础，因为它在进行性能和安全等非功能方面的测试之前，验证了身份验证系统的核心操作。

**功能测试的主要目标：**

- **功能验证**：确保所有与通行密钥相关的功能（如注册、身份验证和管理）正常运行。

- **用户体验验证**：从最终用户的角度评估通行密钥实施的可用性和直观性。

- **错误处理**：确认系统能够优雅地处理错误，并向用户提供信息丰富的反馈。

- **兼容性**：在不同的设备、操作系统和浏览器之间进行测试，以保证所有用户都能获得一致的体验。

在通行密钥的上下文中，功能测试涉及对所有用户交互、身份验证流程和系统响应的全面检查。必须测试典型的用户场景和边缘情况，以确保系统在所有条件下都能正常运行。通过彻底验证每个功能，企业可以在部署过程的早期识别并纠正问题，从而降低在实际推广期间出现问题的风险。

### 3.1 用户验收测试 (UAT)：如何测试通行密钥实施？

用户验收测试 (UAT) 涉及人类测试人员手动与通行密钥系统交互，以验证其功能和用户体验。这种动手实践的方法对于发现自动化测试可能遗漏的问题（例如可用性问题、界面不一致和特定于设备的行为）至关重要。在通行密钥实施的上下文中，手动测试允许测试人员像真实用户一样体验身份验证流程，从而为了解系统的有效性和直观性提供有价值的见解。

**通行密钥用户验收测试的关键注意事项：**

- **多样的用户帐户：** 创建代表应用程序中不同用户角色或状态类型或帐户类型的测试帐户。这可确保通行密钥实施在所有用户群中都能正常运行。

- **设备与帐户映射：** 保持测试帐户和设备之间的严格映射。将特定帐户分配给特定设备，以支持跨设备身份验证测试。这种方法有助于准确测试用户在支持跨设备身份验证的场景（使用 + 邮件模式来识别它们）。

- **支持和不支持通行密钥的设备：** 在测试矩阵中包含支持通行密钥的设备和不支持通行密钥的设备。这使您能够验证系统是否在不支持通行密钥的设备上提供适当的备用身份验证方法。

- **跨设备身份验证测试：** 测试跨设备身份验证场景，即在一台设备上创建的通行密钥用于在另一台设备上进行身份验证。这包括测试启用跨设备通行密钥身份验证的二维码扫描。

- **跨平台一致性：** 确保用户体验和功能在不同的平台、操作系统和浏览器上保持一致。特别注意特定于设备的行为和界面差异。

**应该测试哪些功能？**

1. **通行密钥注册和身份验证**：
    - **创建通行密钥**：测试注册新通行密钥的过程，确保用户可以在各种设备上成功设置通行密钥。

    - **使用通行密钥登录**：验证用户是否可以使用其注册的通行密钥跨不同平台进行身份验证，并且登录过程顺畅且无错误。

    - **通过条件UI使用通行密钥登录**：验证用户是否可以在支持它的平台上使用条件UI (Conditional UI) 进行身份验证，并且UI响应适当。

    - **使用已删除的通行密钥登录**：测试是否正确处理了已删除的通行密钥。现代浏览器 (Chrome 132+，Safari 26+) 现在支持WebAuthn Signal API，该API允许服务器向客户端发出凭据删除信号。测试Signal API流程 (受支持时) 和备用错误消息 (适用于不支持Signal API的浏览器)。验证发出的删除信号是否将通行密钥从凭据选择器中移除，以及当Signal API不可用时是否出现适当的错误消息。

    - **跨设备身份验证**：检查在一台设备上创建的通行密钥是否可以在其他受支持的设备上使用，以及系统是否妥善处理此类场景。

2. **通行密钥管理**：
    - **添加通行密钥**：确保用户可以向其帐户添加多个通行密钥，以适应用户拥有多台设备的情况。

    - **删除通行密钥**：测试删除通行密钥的能力，确认系统正确更新了用户的帐户状态。

    - **列出通行密钥**：验证用户是否可以查看与其帐户关联的所有注册通行密钥，并提供清晰的信息和管理选项。

    - **电子邮件通知：** 确认电子邮件通知 (例如，在添加或删除通行密钥时) 已被正确触发并发送到正确的客户电子邮件地址。这些通知应进行适当的本地化，包含清晰的说明、通行密钥的描述，并遵循品牌准则。

3. **与现有MFA逻辑的交互**：
    - **MFA状态更改**：测试启用或禁用通行密钥对用户多因素身份验证 (MFA) 状态的影响。包括从帐户中删除所有通行密钥。

    - **备用机制**：确保在通行密钥身份验证不可用时 (例如，在不受支持的设备上)，向用户提供密码或OTP等替代身份验证方法。

    - **MFA转换**：验证从传统MFA方法到通行密钥的过渡过程，确保现有的安全措施保持完好。

4. **用户界面和体验**：
    - **可用性评估**：评估通行密钥工作流是否直观且用户友好，从而最大限度地减少混乱和错误。

    - **无障碍合规性**：确认界面符合无障碍标准 (例如，WCAG 准则)，以在需要时支持残疾用户。

    - **本地化和语言支持**：验证通行密钥功能是否已针对不同地区和语言进行了正确的本地化 (如果适用)。

5. **错误处理和边缘情况**：
    - **没有平台身份验证器的设备：** 测试设备不支持通行密钥时的行为 (即，当 isUserVerifyingPlatformAuthenticatorAvailable() 返回 false 或未定义时)。确认系统隐藏通行密钥选项，提供适当的替代身份验证方法或优雅地回退。

    - **中止的通行密钥仪式：** 测试系统如何处理用户中止通行密钥身份验证过程的情况，例如在仪式期间取消或退出。确保在第一次中止时，系统将其视为正常事件，提供清晰且令人放心的消息，并鼓励用户重试。如果用户第二次中止，验证系统是否提供替代身份验证方法并适当引导用户。这确保了即使通行密钥身份验证中断，也能提供无缝的用户体验。

    - **不正确的输入**：测试系统如何响应无效的数据或操作，例如不正确的生物特征输入、取消的身份验证尝试或无效的OTP。确保错误消息清晰并引导用户如何继续。

    - **特定于设备的问题**：识别并记录在特定设备、操作系统或浏览器上发生的任何不一致或问题。这包括UI渲染问题、功能差异或性能问题。

    - **网络条件**：模拟不同的网络条件 (例如，离线、连接缓慢、间歇性连接、通过开发者扩展程序阻止网络连接) ，以查看系统如何处理身份验证期间的连接问题。确保系统提供适当的反馈和恢复选项。

6. **帐户生命周期场景：**
    - **帐户创建和入职：** 测试新用户的完整入职流程，包括在帐户创建期间或首次注册后 (取决于用例) 设置通行密钥。验证用户是否可以作为初始MFA设置的一部分设置通行密钥。

    - **帐户恢复：** 测试用户需要恢复对其帐户的访问权限的场景，例如当他们失去对启用通行密钥的设备的访问权限时。确保恢复过程安全且用户友好。

    - **手机号码更改：** 测试更新手机号码的过程，特别是当手机号码用于MFA或帐户恢复时。验证更改是否正确反映在系统中，并且身份验证方法已相应更新。

7. **基于您的实施的其他功能：客户支持通知管理等。**
    - **测试完整的企业技术栈：** 在本文中，我们主要关注网站和身份验证系统的更改，因为它们代表了最关键的功能。但是，正如我们在上一篇文章中所讨论的，整体实施中还涉及其他组件。请记住还要彻底测试企业技术栈的所有元素。

![integration areas passkey](https://www.corbado.com/website-assets/integration_areas_passkey_eef6c6fe20.png)

- **客户支持：** 尽管主要重点是面向消费者的功能，但请测试客户支持功能是否已正确集成。验证支持代理是否可以查看与通行密钥相关的数据，并代表用户删除单个或多个通行密钥。确保UI提供足够的信息，以便支持代理能够准确地识别和管理通行密钥。

- **安全、日志记录和审计：** 验证支持代理执行的所有通行密钥操作是否正确反映在用户的帐户日志和面向客户的界面中。检查不同界面显示数据的一致性和完整性，确保提供统一、可靠的用户体验。

**应该使用哪些设备进行测试？**

跨各种设备进行测试对于确保通行密钥实施对所有用户都能一致地工作至关重要。这既包括支持通行密钥的现代设备，也包括不支持通行密钥的旧设备。以下是您可以根据您的用户群添加其他浏览器的示例设备矩阵：

**支持通行密钥的设备：**

| **设备类型** | **操作系统** | **浏览器** |
| --------------- | -------------------- | -------------- |
| iPhone 13       | iOS 17.6.1           | Safari 17.6.1  |
| Galaxy S21      | Android 14           | Chrome 130     |
| MacBook Pro     | macOS 15.0           | Safari 18.0    |
| Windows 笔记本电脑  | Windows 10 22H2      | Edge 131       |

**不支持通行密钥的设备：**

| **设备类型** | **操作系统** | **浏览器** |
| --------------- | -------------------- | -------------- |
| 较旧的 Windows   | Windows 7            | Chrome 109     |
| 较旧的 MacBook   | macOS Catalina       | Safari 13.1    |
| 较旧的 Android   | Android 9            | Chrome 128     |
| 较旧的 iPhone    | iOS 14.1             | Safari 14.1    |

通过将这些重点测试策略与全面的设备测试矩阵相结合，您将为确保通行密钥实施的质量打下良好的基础。跨各种设备（包括支持和不支持通行密钥的设备）进行彻底测试，使您能够识别并解决潜在问题，确保所有用户都能获得一致和无缝的用户体验。总之，这些努力有助于提供一个安全、用户友好的通行密钥身份验证系统，满足企业环境中所需的高标准。如果您无法充分访问旧设备，则可以使用 [Browserstack](https://www.browserstack.com) 等服务测试不支持通行密钥的设备。如果您使用的是 Mac，您也可以使用 Parallels 运行 Windows Virtual Desktop 进行测试。

### 3.2 自动化测试：如何实施自动化通行密钥测试？

自动化测试通过高效地执行重复任务和回归测试来补充手动测试。但是，测试通行密钥功能面临着独特的挑战，主要是因为在自动化环境中无法直接测试使用平台身份验证器的真实通行密钥授权。这是因为依赖于生物特征输入或硬件交互，这在标准测试框架中是不可行的。

为了克服这个限制，通行密钥的自动化测试依赖于使用**虚拟身份验证器 (virtual authenticator)**。[虚拟身份验证器](https://developer.chrome.com/docs/devtools/webauthn)是身份验证器的基于软件的表示形式，作为 Chromium 的一部分提供，可以通过自动化框架进行访问。它允许开发人员模拟通行密钥注册和身份验证过程，而无需物理设备或生物特征输入。

#### 3.2.1 激活虚拟身份验证器

在自动化测试中使用虚拟身份验证器之前，必须在您的测试环境中激活它。这通常涉及通过浏览器的调试协议（例如 Chrome DevTools Protocol）启动会话并启用 WebAuthn 域。需要注意的是，在某些情况下（如浏览器重启或上下文更改），虚拟身份验证器的状态可能会被重置。因此，必须仔细开发测试，以确保在整个测试过程中一致地初始化和维护虚拟身份验证器。身份验证器支持 CTAP2，并需要配置用户验证和常驻密钥 (resident key) 支持才能使用通行密钥。

#### 3.2.2 Selenium 3 是否支持通行密钥自动化测试？

使用诸如 **Selenium** 和 **Playwright** 等提供访问必要浏览器自动化协议的框架，已经实现了自动化通行密钥测试的成功实施。对于 **Selenium 4** 和 **Playwright**，原生地提供了对虚拟身份验证器的支持，提供了 API 来管理虚拟身份验证器的生命周期和模拟用户交互。**使用 Selenium 3 进行通行密钥测试**是可能的，但您需要直接实现该功能（如果需要帮助，请联系我们）。

#### 3.2.3 测试范围

自动化测试应涵盖您的通行密钥实施的最重要功能，包括：

- **创建通行密钥**：模拟用户注册新通行密钥的过程，确保注册流程正常工作。

- **使用通行密钥登录**：验证用户可以使用其注册的通行密钥进行身份验证，并且登录过程顺畅且无错误。

- **帐户管理功能**：测试添加、列出和删除与用户帐户关联的通行密钥，以确保通行密钥管理功能按预期运行。

- **错误状态和网络故障**：模拟后端响应失败，这对于移动操作尤其重要，因为网络并不总是可靠的。

通过将这些测试集成到您的自动化测试套件中，您可以一致地验证关键的通行密钥功能，降低回归风险，并提高身份验证系统的整体质量。

#### 3.2.4 其他注意事项

- **模拟用户验证**：由于虚拟身份验证器不涉及真实的生物特征输入，因此您可以将其配置为模拟用户验证的成功或失败。这使您可以测试系统如何处理成功的身份验证以及用户验证失败或被取消的场景。

- **处理虚拟身份验证器状态**：请注意，虚拟身份验证器的状态在某些情况下可能会重置（尤其是在 Selenium 3 中）。确保您的测试根据需要重新初始化虚拟身份验证器，并考虑将虚拟身份验证器的设置封装在可重用函数或测试钩子 (test hooks) 中以保持一致性。

#### 3.2.5 实施技巧

- **框架选择**：虽然 Selenium 和 Playwright 是常用的，但其他提供访问浏览器调试协议的自动化框架也可以用于通行密钥测试。选择适合您项目需求并且对 WebAuthn 测试有足够支持的框架。

- **测试可靠性**：由于通行密钥身份验证涉及异步操作和与浏览器 API 的交互，请确保您的测试包括适当的等待机制来处理这些异步事件。这可以防止测试不稳定并提高可靠性。

- **文档和示例**：参考在您选择的框架中设置虚拟身份验证器的详细指南和示例。例如，Playwright 提供了有关如何使用虚拟身份验证器的全面文档，包括代码片段和最佳实践。

由于涉及独特的挑战，自动测试通行密钥功能需要仔细设置。通过利用虚拟身份验证器并利用支持它的框架，您可以有效地自动化通行密钥注册、身份验证和管理的关键方面。这增强了您的测试策略，确保您的通行密钥实施在企业环境中是稳健的、可靠的和可以随时部署的。

### 3.3 Passkey Intelligence 测试

[Passkey Intelligence](https://docs.corbado.com/corbado-connect/features/passkey-intelligence) 是提供无缝且用户友好的身份验证体验的关键组件，尤其是在使用 **带有自动登录的标识符优先方法** 实施通行密钥时。该方法依赖于智能决策来根据通行密钥的可用性和成功身份验证的可能性，确定何时提示用户进行通行密钥身份验证。测试 [Passkey Intelligence](https://docs.corbado.com/corbado-connect/features/passkey-intelligence) 可确保您的系统准确检测通行密钥的可用性，并为每个用户场景提供最佳的身份验证方法。

#### 3.3.1 理解 Passkey Intelligence

**Passkey Intelligence** 是指系统分析各种信号和元数据以决定何时提供通行密钥身份验证，以及何时回退到替代方法（如密码或一次性密码 OTP）的能力。它通过以下方式增强了用户体验：

- **最大化成功登录**：在最有可能成功时提供通行密钥身份验证。

- **最小化失败尝试**：当可能失败时，避免不必要的通行密钥提示，从而减少用户的挫败感。

- **优化用户流**：提供针对每个用户的环境和历史记录量身定制的无缝身份验证过程。

这种智能在**标识符优先方法**中尤为重要，在这种方法中，输入用户名或电子邮件后，系统可能会自动提示用户进行通行密钥身份验证，而无需额外输入。准确检测通行密钥的可用性对于避免不必要的提示和提供适当的回退选项至关重要。

相比之下，**通行密钥按钮方法**涉及用户明确选择通过单击按钮使用通行密钥进行身份验证。虽然 Passkey Intelligence 仍然通过确定按钮的可见性和可用性来增强体验，但由于用户正在做出主动选择，它不如标识符优先方法那么关键。

#### 3.3.2 测试 Passkey Intelligence 的关键注意事项

测试 [Passkey Intelligence](https://docs.corbado.com/corbado-connect/features/passkey-intelligence) 涉及验证您的系统正确解释各种信号并提供适当的身份验证方法。以下是要关注的关键领域：

##### 3.3.2.1 检测通行密钥的可用性

为确保自动登录正常工作，您的系统必须准确检测用户是否有可用的通行密钥。测试应涵盖不同的场景以验证此检测：

- **未注册通行密钥的用户**：验证系统不提示进行通行密钥身份验证，并提供替代方法。

- **已注册通行密钥的用户**：确认系统识别出用户已注册通行密钥并提示进行通行密钥身份验证。

- **已注册通行密钥但无法访问的用户：** 确认系统识别出用户已注册通行密钥（例如在 Windows 上），但当他们尝试在 iPhone 上登录时，不会继续提供通行密钥登录。

- **设备功能**：在支持通行密钥和不支持通行密钥的设备上进行测试，以确保系统独立于帐户地适当适应设备。

- **通行密钥同步**：检查存储在云端（例如 iCloud Keychain，Google Password Manager）的通行密钥是否能在正确的设备上跨设备被检测到。

##### 3.3.2.2 使用不同的通行密钥提供商进行测试

Passkey Intelligence 必须与各种通行密钥提供商（第一方和第三方）有效合作。每个提供商可能有不同的行为和功能，从而影响检测和使用通行密钥的方式。

![passkey storage table](https://www.corbado.com/website-assets/passkey_storage_table_6035a7582c.png)

**第一方提供商：**

- **Windows Hello**：微软集成到 Windows 设备中的生物特征身份验证系统。请记住，Windows Hello 密钥未同步，但微软已宣布这一情况很快就会改变。

- **Google Password Manager**：Google 用于跨设备和浏览器存储和同步通行密钥的解决方案。请记住，GPM 不仅在 Chrome 上可用，在其他平台上也可用。

- **iCloud Keychain**：苹果存储通行密钥并在苹果设备上同步它们的服务。

**第三方提供商：**

- **1Password**：一款支持通行密钥并可跨平台同步的流行密码管理器。

- **Dashlane**：另一款具有通行密钥支持的广泛使用的密码管理器。

- **其他**：根据您的用户群和关注国家，其他第三方提供商可能更重要。

**测试步骤：**

- **注册和身份验证**：确保用户可以注册并使用每个提供商的通行密钥进行身份验证。

- **跨平台行为**：使用基于云的提供商时，验证通行密钥是否跨设备和浏览器正确同步。

- **错误处理**：测试系统如何处理特定提供商的通行密钥失败或不可用情况。

##### 3.3.2.3 跨设备身份验证场景

跨设备身份验证允许用户在一台设备上使用存储在另一台设备上的通行密钥进行身份验证。测试这些场景对于确保无缝体验至关重要。

**要测试的关键场景：**

- **iPhone 到 Windows PC**：用户尝试使用存储在其 iPhone 上的通行密钥在 Windows PC 上登录。

- **Android 手机到 Mac Safari**：用户在 Mac 上使用 Safari 利用存储在其 Android 设备上的通行密钥进行身份验证。

- **Android 到 Windows PC**：测试从 Android 设备到 Windows PC 的身份验证。请记住，从 Chrome 130 开始，用户可能不再需要进行跨设备身份验证。

**测试步骤：**

- **兼容性检查**：确保跨设备身份验证适用于不同的操作系统和浏览器。

- **用户提示和说明**：验证用户在身份验证过程中是否收到清晰的说明。

- **安全验证**：确认身份验证过程是安全的，并且能够抵抗中间人攻击 (MitM)。

##### 3.3.2.4 处理边缘情况和故障

测试还应涵盖 Passkey Intelligence 可能面临挑战的场景：

- **无法使用的通行密钥**：由于同步延迟或网络问题导致预期可用但实际无法使用的通行密钥。

- **用户取消**：用户取消通行密钥提示；系统应该优雅地回退到替代方法。在验证期间，断言这些预期的中止路径与实际缺陷分开跟踪（请参阅 WebAuthn 错误）。

- **第三方扩展程序**：与可能干扰通行密钥检测或条件 UI (Conditional UI) 的浏览器扩展程序或插件的交互。

##### 3.3.2.5 评估 Passkey Intelligence 逻辑

评估 Passkey Intelligence 系统的决策过程：

- **数据准确性**：确保用于决策的元数据和信号准确、最新并且正确存储在数据库中（BS 标志）。

- **自适应响应**：验证系统能够适应新信息，例如新注册的通行密钥或设备功能的改变。

- **性能影响**：检查情报逻辑是否没有在身份验证流程中引入显著的延迟。

##### 3.3.2.6 测试方法

要彻底测试 Passkey Intelligence，请考虑以下方法：

1. **创建具有不同配置的测试帐户**：设置代表不同状态的用户帐户，例如有或没有注册通行密钥，以及具有不同通行密钥提供商。

2. **使用全面的设备矩阵**：在您的测试中包含各种设备、操作系统和浏览器，以涵盖尽可能多的用户场景。

3. **模拟不同的网络条件**：在各种网络条件下进行测试，以评估同步延迟或连接问题如何影响通行密钥检测。

4. **复杂场景的测试**：对于跨设备身份验证和边缘情况，将需要进行手动测试，以全面捕获用户体验的细微差别。

5. **分析日志和指标**：收集和分析日志，以了解 Passkey Intelligence 的决策是如何制定的，并识别任何差异或故障。

##### 3.3.2.7 最佳实践

- **将用户体验置于首位**：确保身份验证流程保持流畅和直观，即使在 Passkey Intelligence 决定回退到替代方法时也是如此。

- **紧跟提供商的变化**：通行密钥提供商可能会更新其服务，从而影响通行密钥的存储或同步方式。定期更新您的测试场景以反映这些变化。订阅我们的 Substack 并加入我们的 Slack 社区。

- **记录发现**：保留测试用例、结果和遇到的任何问题的详细记录，以帮助故障排除和未来的测试周期。

测试 Passkey Intelligence 对于确保您的身份验证系统为用户提供最佳体验至关重要，特别是在采用带有自动登录的标识符优先方法时。通过彻底测试通行密钥可用性检测、与各种通行密钥提供商的交互、跨设备身份验证场景以及智能逻辑本身，您可以优化系统以在所有用户场景中提供无缝且安全的身份验证。

### 3.4 Corbado 如何协助企业测试

实施和测试通行密钥功能（包括 Passkey Intelligence）可能既复杂又占用资源。Corbado 提供了简化的全面解决方案，从而确保为您的企业提供稳健且用户友好的身份验证体验。

#### 3.4.1 跨浏览器和设备充分测试的组件

Corbado 提供的预构建 UI 组件和 SDK 经过了各种设备、操作系统和浏览器的全面测试，包括支持 JavaScript 的最新和旧版本。这种广泛的测试确保您的通行密钥实施对所有用户都能一致地工作，从而降低出现设备特定问题的风险并提高用户满意度。

![passkey login biometrics](https://www.corbado.com/website-assets/passkey_login_biometrics_f21538af7a.png)

- **跨浏览器兼容性**：我们的组件可在主要浏览器（如 Chrome，Safari，Firefox 和 Edge）上无缝工作，无论用户选择何种浏览器都能提供一致的体验。

- **设备多功能性**：我们支持支持通行密钥和不支持通行密钥的设备，从而在必要时允许无缝的回退机制。

- **响应式设计**：组件被设计为能够适应不同的屏幕尺寸和分辨率，以确保在台式机、平板电脑和移动设备上拥有最佳的可用性。

- [**错误状态**](https://www.corbado.com/blog/passkey-fallback-recovery)：所有组件均经过广泛测试以在所有网络条件下工作，并具有精确的错误消息和后备句柄，以处理用户中止仪式的情况。

![passkey error state](https://www.corbado.com/website-assets/passkey_error_state_d7c4ca170e.png)

#### 3.4.2 自动化测试集成

认识到自动化通行密钥测试的挑战，Corbado 开发了集成到我们组件的开发和 CI/CD 流水线中的自动化测试解决方案。我们的组件不仅在内部进行了全面测试，还附带了我们可以应用于企业安装的自动化测试套件。

- **自动化测试套件**：我们拥有全面的自动化测试，涵盖诸如通行密钥注册、身份验证和管理等关键功能。这些测试旨在全面测试我们的组件。

[Watch on YouTube](https://www.youtube.com/watch?v=f3Vj0Dd562A)

- **托管自动化测试服务**：对于企业客户，Corbado 将托管自动化测试作为我们企业包的一部分提供。我们处理为通行密钥设置和维护自动化测试（包括使用虚拟身份验证器）的复杂性，确保您的身份验证系统随着时间的推移保持稳健。

我们如何测试我们的组件的全面概述可以在单独的博客文章中找到。

#### 3.4.3 全面的 Passkey Intelligence

Corbado 的 **Passkey Intelligence** 引擎是经过广泛测试的解决方案，可优化身份验证体验。通过利用先进的算法和实时数据，我们的 Passkey Intelligence 能准确检测通行密钥的可用性，并为每个用户场景确定最佳的身份验证方法。

- **无需额外测试**：由于 Passkey Intelligence 由 Corbado 完全涵盖、测试和扩展，您可以信赖它的有效性，而无需进行广泛的内部测试。

- **自适应决策**：我们的引擎能够适应设备功能、用户行为和通行密钥提供商更新的变化，确保身份验证提示及时且相关。

- **最大化成功率**：通过智能地决定何时提供通行密钥身份验证，我们帮助最大化成功登录尝试，并最小化用户因尝试失败而产生的挫败感。

- **自定义：** 如果您希望自定义 Passkey Intelligence 使其更具防御性或主动性，您可以随时配置和自定义规则集。

#### 3.4.4 企业级支持和服务

对于企业客户，Corbado 提供额外的支持来简化您的通行密钥实施和测试流程。

- **托管自动化测试**：我们提供全面的测试服务，包括设置自动化测试、监控其性能并根据需要进行更新。这项服务减轻了您的团队维护复杂测试环境的负担。

- **现场专家咨询**：我们的专家团队随时准备帮助您应对在实施或测试过程中可能面临的任何挑战，提供针对您的特定需求量身定制的指导和解决方案。大型部署附带现场咨询，包括在您身边协助测试。

- **定制解决方案**：我们可以调整和微调我们的组件和服务，以符合您企业的特定要求、企业 CI 标准和其他标准。

- **减少开发工作量**：通过利用我们预构建且经过充分测试的组件，您可以节省大量的开发时间和资源。

- **增强可靠性**：我们严格的测试实践可确保您的通行密钥实施可靠，并在各种条件下表现良好。

- **优化用户体验**：借助 Passkey Intelligence，用户可享受无缝的身份验证过程，从而提高满意度和采用率。

- **面向未来**：我们不断更新我们的组件，以符合通行密钥技术和标准的最新进展，确保长期兼容性和合规性。

通过与 Corbado 合作，您可以使用一组简化了通行密钥测试和实施的组件、工具和服务。我们经过充分测试的组件、全面的 Passkey Intelligence 和企业级支持可确保您的身份验证系统稳健、可靠并准备好在企业环境中部署。这种合作使您的团队能够专注于为用户提供价值，而由我们来处理通行密钥技术的复杂性。

## 4. 通行密钥实施的非功能测试

虽然功能测试确保通行密钥实施满足所有必需的功能并提供一致的用户体验，但它无法解决系统在现实条件下的性能表现以及其应对各种压力形式的适应能力。非功能测试侧重于这些方面。它评估系统在处理高负载时的行为、对用户请求的响应速度、在峰值使用期间的稳定性以及其抵御潜在攻击的安全性。对于企业级通行密钥部署，非功能测试至关重要，原因如下：

- **高用户量**：庞大的用户群和频繁访问的身份验证流程意味着即使是轻微的性能问题也会对用户满意度和业务结果产生重大影响。

- **压力下的可靠性**：企业系统在登录高峰期、设备注册活动和大规模采用浪潮中必须保持稳定和高性能。

- **安全保证**：除了功能之外，确保 WebAuthn 和通行密钥工作流中不存在漏洞，对于保持信任和合规性也至关重要。

- **其他非功能测试：** 根据企业的不同，其他类型的非功能测试也很重要，但为了集中重点，我们将专注于大型企业（特别是在政府、受监管或[医疗保健](https://www.corbado.com/passkeys-for-healthcare)等安全敏感领域）最关键的那些测试。

通过进行严格的非功能测试，企业可以自信地推出既稳健又安全的通行密钥解决方案，确保所有用户在任何条件下都能获得无缝体验。

### 4.1 如何对通行密钥实施进行性能测试

性能和负载测试旨在验证通行密钥实施能否处理预期的（有时是意想不到的）身份验证量而不会降低性能。尽管通行密钥操作（例如生成和验证 WebAuthn 挑战）通常不会消耗大量资源，但彻底的性能测试对于企业级部署仍然至关重要。

> 阅读我们关于通行密钥性能测试的深入技术文章。

**性能和负载测试的关键注意事项：**

1. **建立切合实际的基线**：\
   首先通过分析历史身份验证数据来确定您的峰值使用模式。例如，回顾过去12个月的登录统计数据并找出身份验证负载最高的小时。使用该高峰小时作为计算每秒成功完成的身份验证的基线，并将其流量乘以三（3倍）。此方法：
    - **考虑增长和激增**：通过将您最强的历史负载增加三倍，您可以构建一个健康的性能裕度以适应意想不到的激增（例如，大规模的入职、产品发布期间的同时登录或安全重置）。

    - **设定明确的目标**：这个现实但保守的基线可确保您的系统能够轻松满足当前需求，并在高于预期的条件下保持稳定。

2. **了解身份验证流程的复杂性**：\
   通过通行密钥，身份验证流程可能涉及按需生成挑战、处理条件 UI 提示以及与后端服务交互以验证凭据或管理 MFA 状态。这些步骤可能会引入独特的负载模式，尤其是在频繁生成登录提示或挑战的情况下。

3. **负载均衡和可扩展性**：\
   当您从密码转换到通行密钥时，操作数量可能会增加。采用负载均衡、缓存和数据库优化策略来处理可能更高的请求率并保持一致的响应时间。

4. **条件 UI 的影响**：\
   如果登录字段可见或呈现在页面顶部，条件 UI 可能会触发持续的挑战生成，这可能导致意外负载。测试这些模式以确保可以快速可靠地提供挑战，而不会造成延迟或超时。

5. **并发授权和通行密钥创建**：\
   考虑许多用户同时创建通行密钥或尝试进行身份验证的场景。这可能发生在入职会话期间或在广泛的沟通活动之后。您的测试应模拟这些并发峰值，以确认系统保持稳健。

6. **测试工具和方法**：\
   标准负载测试工具可能无法完全复制 WebAuthn 流程的复杂性，并能完成 WebAuthn 仪式。寻找适用于流行性能测量框架（如 Jmeter 或 K6，Corbado 在使用）的插件。

7. **监控和指标**：\
   跟踪关键指标，例如响应时间、吞吐量、每秒 API 调用次数、每秒完成的交易/身份验证次数、错误率和资源利用率。利用这些洞察来识别瓶颈并指导优化工作。

8. **迭代测试和调优**：\
   性能测试是一个迭代过程。发现问题、实施改进并重新测试，以验证更改是否增加了容量和可靠性。将这些测试集成到您的 CI/CD 流水线中，以确保性能随时间保持稳定。

通过根据历史数据建立切合实际的基线，将容量增加三倍以确保安全，并在各种场景中进行全面测试，企业可以确保其通行密钥实施保持高效、稳定和响应迅速——即使在苛刻的条件下也是如此。

### 4.2 如何对通行密钥实施进行渗透测试

安全测试是确保您的通行密钥实施不仅功能正确，而且保持最高级别的信任和完整性的关键组成部分。虽然通行密钥简化并增强了身份验证体验，但必须验证您的 WebAuthn 和通行密钥工作流程是否受到保护，免受常见的攻击媒介、配置缺陷和基于硬件的身份验证的特定漏洞的影响。

**关键目标：**

- 验证所有 WebAuthn 操作（挑战生成、证明 (attestation)、断言 (assertion)）是否已正确、安全地实施。

- 确保受损、被篡改或删除的通行密钥不能用于身份验证。

- 确认用户验证（如果需要）得到严格执行并在每次登录时进行检查。

- 验证与现有 MFA 逻辑的集成，确认通行密钥维护或改善了整体安全状况，而不是削弱它。

**建议的测试区域和方法：**

1. **WebAuthn 挑战消耗：**
    - **挑战的唯一性和新鲜度：** 验证每个挑战都是唯一的，并且仅对一次身份验证尝试有效。这确保了重放的挑战不会导致成功身份验证。

    - **防止重复消耗：** 尝试重用以前附加（注册）或登录（断言）仪式中的挑战或证明响应。确认系统拒绝了这些尝试，并进行了适当的错误处理。

2. **已删除、未知或被篡改的通行密钥：**
    - **已删除的通行密钥：** 尝试使用与已被移除的通行密钥相关的凭据登录。系统应该拒绝这些尝试并返回错误。

    - **未知的凭据：** 提供从未向系统注册过的凭据（例如，不同的私钥或未知的凭据 ID）。确保系统不能被欺骗来验证这些凭据。

    - **被篡改的签名：** 修改 WebAuthn 断言中的加密签名或身份验证器数据。系统在验证步骤应失败并响应错误，防止未授权访问。

3. [**用户验证强制执行 (UV)：**](https://www.corbado.com/blog/webauthn-user-verification)
    - **强制用户验证：** 如果用户验证被设置为需要 (required)（表示相当于 2FA 的场景），确认所有没有 UV 标志的身份验证尝试都被拒绝。基于生物特征或 PIN 的验证检查不能被绕过（仅限用户在场 user presence）。

    - **篡改 UV 标志：** 尝试强制进入这样一种场景：身份验证器声称用户已验证，但实际并未进行用户验证。确认系统拒绝此类尝试。

4. **与现有 MFA 或安全控制的集成：**
    - **MFA 状态对齐：** 检查添加或删除通行密钥是否没有规避现有的 MFA 策略。例如，如果通行密钥旨在替换密码或作为第二因素，则系统不应该允许拥有被破坏的通行密钥的用户绕过更高级别的 MFA 控制。

    - **备用机制：** 验证仅当通行密钥确实不可用或不受支持时，才调用回退方法（例如密码、OTP）。攻击者绝不能将安全流程降级到较弱的流程。

5. **确保是最新的、符合标准的实施：**
    - **最新的 WebAuthn 规范：** 确认您的 WebAuthn 服务器和组件已更新至最新标准，修补了任何已知漏洞。定期查阅供应商公告并应用安全更新。

    - **OWASP Top 10：** 使您的测试符合公认的安全标准。典型的领域包括输入验证、会话管理和安全通信通道 (TLS)。检查处理 WebAuthn 数据的所有端点是否受到保护，不会泄漏敏感信息，并实施适当的安全标头。

6. **针对常见攻击媒介的渗透测试：**
    - **重放攻击：** 尝试重用已知的有效签名或陈旧的挑战。确认服务器拒绝它们。

    - **中间人 (MitM) 攻击：** 测试截获 WebAuthn 请求的攻击者是否可以更改挑战或签名。确保身份验证过程依赖于与客户端私钥绑定的加密验证，使得 MitM 攻击变得不可行。

    - **模糊测试 (Fuzzing) 和负面测试：** 引入格式错误、缺失或随机数据以进行证明和断言请求。服务器应该能优雅地处理这些无效输入，而不会崩溃或泄露敏感数据。

7. **针对通行密钥特定威胁的额外注意事项：**
    - **跨设备身份验证：** 测试跨设备身份验证场景，确保存储在另一台设备上的通行密钥不被滥用。服务器必须验证跨设备请求的真实性，确保没有发生冒充行为。

    - **吊销和恢复：** 确保如果用户或客户支持代理恢复了他们的帐户或吊销了通行密钥，该密钥会立即失效且不能在后续登录尝试中使用。

**实用示例和测试：**

- **被篡改的用户验证测试：** 尝试在 user verification=required 时使用通行密钥进行身份验证，但强制身份验证器出示 uv=false。确认服务器拒绝该请求。

- **挑战重放测试：** 在登录时重用先前用过的挑战。服务器必须拒绝该尝试，从而防止重放攻击。

- **无效签名测试：** 用随机或不正确的签名替换有效签名。确保服务器返回错误。

**维护持续的安全保证：**

- 定期进行第三方渗透测试，以发现新的或遗漏的漏洞。

- 及时了解不断演变的威胁、WebAuthn 规范更新，以及硬件身份验证器和客户端软件的供应商补丁。

通过结合上述测试技术并专注于基于通行密钥身份验证的独特性，您可以确保企业通行密钥实施始终安全、稳健且值得信赖。定期检查、更新和渗透测试将帮助维持强化的安全状况并持续符合行业标准。

### 4.3 Corbado 如何协助性能和渗透测试通行密钥实施

Corbado 的企业级产品不仅提供了强大的通行密钥解决方案，还包括全面的非功能测试服务——涵盖性能测试和安全评估或最终集成——以确保您的通行密钥部署可以满足最严格的企业要求。

#### 4.3.1 具有真实通行密钥场景的性能测试

Corbado 超越了传统的通用负载测试工具，利用先进的端到端性能测试（使用 [K6](https://k6.io/) 和虚拟身份验证器环境）。这种方法通过我们的组件 (CorbadoConnectLogin) 模拟实际的通行密钥身份验证流程，包括并行生成和管理数百甚至数千个通行密钥 (CorbadoConnectAppend) 和通行密钥管理功能 (CorbadoConnectPasskeyList)。与可能仅测量 API 端点的标准负载测试不同，我们的方法端到端地模拟了完整的 WebAuthn 仪式，从而使测试更具真实世界条件的代表性。我们还进行了复杂的并发测试，以确保您的系统可以处理峰值负载——例如大规模的入职活动或突然的身份验证激增——而不会降低响应速度或用户体验。

#### 4.3.2 安全测试和专业的渗透测试

Corbado 致力于提供安全的身份验证环境。我们定期接受由理解通行密钥技术独特复杂性的、可信赖的第三方专家进行的渗透测试。此外，我们的团队维护着以安全为中心的专用单元测试，旨在防止重新引入遭篡改或被删除的通行密钥等情况。这些测试和定期的渗透测试可防止不断演变的威胁，并确保您的通行密钥生态系统的完整性始终得到维护。

#### 4.3.3 企业级保证

高级性能测试和严格的安全测试方案都是我们企业包的一部分。通过与 Corbado 合作，您可以使用经过测试并被验证的方法，这可确保您的通行密钥实施经受得住大规模、任务关键型企业环境的考验——不仅能提供无缝的用户体验，还能针对潜在漏洞提供强大的保护。

## 5. 结论

在大规模企业通行密钥部署中，成功实施通行密钥不仅取决于整合技术，还取决于进行彻底的测试以确保性能、安全性和可靠性。正如我们所看到的，一种全面的测试方法——从功能验证到非功能的性能和安全评估——对于提供稳健、用户友好的身份验证体验至关重要。通过本文，我们回答了文章开头提出的问题：

- **如何对通行密钥进行功能测试？** 我们确定了必要的功能测试，重点在于验证通行密钥的注册、身份验证、用户界面的一致性以及适当的错误处理。通过手动用户验收测试和自动化方法，这些测试确认通行密钥工作流直观、可靠，并符合用户预期。

- **如何对通行密钥进行渗透测试和性能测试？** 我们探索了确保您的通行密钥实施满足严格性能和安全标准的策略。这包括处理峰值身份验证量的负载测试、压力下的弹性测试，以及严格的安全验证（例如，验证挑战不能被重放、被篡改的通行密钥被拒绝，并且严格执行用户验证）。

通过结合功能和非功能测试实践，您可以自信地推出通行密钥，同时保持高质量和安全的最高标准。在我们的下一部分中，我们将介绍下一个步骤：在不同用户群中逐步、分阶段地发布通行密钥，以及 Corbado 如何在这一过程中为您提供帮助。
