For the complete documentation index, see llms.txt. This page is also available as Markdown.

关于受信任设备

受信任设备 SSO 允许用户使用 SSO 进行身份验证,并使用设备存储的加密密钥解密其密码库,而无需输入主密码。受信任设备是指经用户经管理员批准的可用于无密码登录的 Bitwarden App,例如浏览器扩展或移动 App 的实例。即使位于同一台计算机或智能手机上,每个 Bitwarden App 都将作为独立的受信任设备,并拥有单独的批准权限。

受信任设备 SSO 可为企业终端用户提供零知识和端到端加密的无密码体验。这可以防止用户因忘记主密码而被锁定,让他们享受简化的登录体验。

开始使用受信任设备

要开始使用受信任设备 SSO:

  1. 为您的组织设置受信任设备 SSO

  2. 向管理员提供有关如何批准设备请求的信息。

  3. 向最终用户提供有关如何添加受信任设备的信息。

工作原理

以下选项卡描述了不同的受信任设备程序中的加密过程和密钥交换:

当新用户加入组织时,会使用组织公钥对其账户加密密钥进行加密,从而创建账户恢复密钥了解更多)。账户恢复是启用受信任设备 SSO 的先决条件。

然后询问用户是否想要记住或信任此设备。当用户选择信任时:

创建受信任设备
  1. 客户端生成新的设备密钥。该密钥永远不会离开客户端。

  2. 客户端生成新的 RSA 密钥对:设备私钥设备公钥

  3. 用户的账户加密密钥使用未加密的设备公钥进行加密,然后将结果值作为公钥-已加密的用户密钥发送到服务器。

  4. 设备公钥使用用户的账户加密密钥进行加密,然后将结果值作为用户密钥-已加密的公钥发送到服务器。

  5. 设备私钥使用第一个设备密钥进行加密,然后将结果值作为设备密钥-已加密的私钥发送到服务器。

最重要的是,当用户开始登录时,公钥-已加密的用户密钥设备密钥-已加密的私钥将从服务器发送到客户端。

如果用户需要轮换其账户加密密钥,将使用用户密钥-已加密的公钥

当用户在已受信任的设备上使用 SSO 进行身份验证时:

使用受信任设备
  1. 用户的公钥-已加密的用户密钥(用于解密密码库数据的账户加密密钥的加密版本)从服务器发送到客户端。

  2. 用户的设备密钥-已加密的私钥(解密公钥-已加密的用户密钥所需的未加密版本)从服务器发送到客户端。

  3. 客户端使用设备密钥设备密钥-已加密的私钥进行解密,设备密钥从未离开过客户端。

  4. 现在未加密的设备私钥用于解密公钥-已加密的用户密钥,从而产生用户的账户加密密钥。

  5. 用户的账户加密密钥解密密码库数据。

当用户使用 SSO 进行身份验证,并选择使用未受信任的设备(即设备对称密钥不存在于该设备上)解密其密码库时,他们需要选择一种方法来批准该设备,并选择信任该设备,以便将来无需进一步批准即可使用。接下来会发生什么取决于所选的选项:

  • 从其他设备批准:

1、触发此处记录的流程后,客户端就获得并解密了账户加密密钥。

2、用户现在可以使用解密后的账户加密密钥解密其密码库数据。如果用户选择信任该设备,则会按照入职选项卡中的说明与客户端建立信任。

  • 请求管理员批准:

1、发起请求的客户端向 Bitwarden 数据库中的验证请求表 POST 一个请求,其中包括账户电子邮件地址、唯一的身份验证请求公钥ª 和访问代码。

用户请求管理员批准(步骤 1)

2、管理员可在设备批准页面上批准或拒绝此请求

3、请求获得管理员批准后,被批准客户端会使用请求中包含的身份验证请求公钥对用户的账户加密密钥进行加密。

4、然后,被批准客户端将加密后的账户加密密钥 PUT 到验证请求记录,并标记为请求已完成。

管理员批准身份验证请求(步骤 3-4)

5、发起请求的客户端 GET 到加密后的账户加密密钥,然后使用身份验证请求私钥 ª 对它进行本地解密。

用户收到管理员批准(步骤 5)

6、使用解密后的账户加密密钥,与客户端建立信任关系,详见入职选项卡。

ª - 身份验证请求公钥私钥是为每一个无密码登录请求生成的唯一密钥,其存在时间与请求的存在时间相同。未被批准的请求,请求将在 1 周后过期。

  • 使用主密码批准:

    1. 按照安全白皮书中「身份验证和解密」部分的说明,获取并解密用户的账户加密密钥。

    2. 使用解密后的账户加密密钥,按照入职选项卡中的说明与客户建立信任。

只有拥有主密码的用户才能轮换其账户加密密钥了解更多

当用户轮换其账户加密密钥时,正常轮换过程如下:

  1. 用户密钥-已加密的公钥从服务器发送到客户端,然后使用旧的账户加密密钥(又称用户密钥)对其解密,得到设备公钥

  2. 使用未加密的设备公钥对用户的新的账户加密密钥进行加密,然后将结果值作为新的公钥-已加密的用户密钥发送到服务器。

  3. 使用用户的新的账户加密密钥对设备公钥进行加密,然后将结果值作为新的用户密钥-已加密的公钥发送到服务器。

  4. 随后,公钥-已加密的用户密钥会重新与每个受信任设备共享。

受信设备使用的密钥

本表格提供了有关上述过程中所使用的每一种密钥的更多信息:

密钥
详细信息

设备密钥

AES-256 CBC HMAC SHA-256,长度为 512 位(其中密钥 256 位,HMAC 256 位)

设备私钥和设备公钥

RSA-2048 OAEP SHA1,长度为 2048 位

公钥-已加密的用户密钥

RSA-2048 OAEP SHA1

用户密钥-已加密的公钥

AES-256 CBC HMAC SHA-256

设备密钥-已加密的私钥

AES-256 CBC HMAC SHA-256

对主密码的影响

虽然使用受信任设备 SSO 可以消除对主密码的需求,但并非在所有情况下都能消除主密码本身:

  • 如果用户是在受信任设备 SSO 激活之前入职的,或者如果他们从组织邀请中选择了创建账户,则他们的账户将保留其主密码。

  • 如果用户是在受信任设备 SSO 激活之后入职的,并从组织邀请中选择登录企业 SSO 进行 JIT 配置,则他们的账户将无需拥有主密码。如果您更改为主密码成员解密选项,只要这些用户仍然是组织的成员,系统就会在他们登录时提示创建一个主密码(了解更多)。

  • 如果使用账户恢复功能恢复了用户账户,就必须为其分配一个主密码。目前,有了主密码后,就无法将其从账户中移除,因此,为了避免出现这种结果,我们建议:(i) 指导用户将数据导出到备份;(ii) 彻底删除丢失的账户;(iii) 要求用户使用受信任设备重新入职到您组织;(iv) 用户完成这些后,指导他们导入备份。

对其它功能的影响

根据您的客户端内存中是否有主密码哈希(这取决于客户端应用程序最初被访问的方式),它可能会表现出以下行为变化:

功能
影响

验证

Bitwarden 客户端应用程序中有许多功能通常需要输入主密码才能使用,包括导出密码库数据、更改两步登录设置、检索 API 密钥等。

如果用户不使用主密码访问客户端,所有这些功能都将使用基于电子邮件的 TOTP 验证来取代主密码确认。

密码库锁定/解锁

一般情况下,被锁定的密码库可以使用主密码解锁。如果用户不使用主密码访问客户端,则被锁定的客户端应用程序只能使用 PIN生物识别解锁。

如果客户端应用程序既没有启用 PIN 也没有启用生物识别,则密码库将始终注销而不是锁定。解锁和登录始终需要互联网连接。

主密码二次验证

如果用户不使用主密码解锁其密码库,则主密码二次验证将被禁用。

更改电子邮箱地址

没有主密码的用户将无法更改他们的电子邮箱地址。

CLI

没有主密码的用户将无法访问密码管理器 CLI。

最后更新于