关于受信任设备
对应的官方文档地址
受信任设备 SSO 允许用户使用 SSO 进行身份验证,并使用设备存储的加密密钥解密其密码库,而无需输入主密码。受信任设备必须在登录尝试前注册,或通过几种不同的方法获得批准。
受信任设备 SSO 可为企业终端用户提供零知识和端到端加密的无密码体验。这可以防止用户因忘记主密码而被锁定,让他们享受简化的登录体验。
开始使用受信任设备
要开始使用受信任设备 SSO:
为您的组织设置受信任设备 SSO。
向管理员提供有关如何批准设备请求的信息。
向最终用户提供有关如何添加受信任设备的信息。
工作原理
以下选项卡描述了不同的受信任设备程序中的加密过程和密钥交换:
当新用户加入组织时,会使用组织公钥对其账户加密密钥进行加密,从而创建账户恢复密钥(了解更多)。账户恢复是启用受信任设备 SSO 的先决条件。
然后询问用户是否想要记住或信任此设备。当他们选择这样做时:
客户端生成新的设备密钥。该密钥永远不会离开客户端。
客户端生成新的 RSA 密钥对:设备私钥和设备公钥。
用户的账户加密密钥使用未加密的设备公钥进行加密,然后将结果值作为公钥-已加密的用户密钥发送到服务器。
设备公钥使用用户的账户加密密钥进行加密,然后将结果值作为用户密钥-已加密的公钥发送到服务器。
设备私钥使用第一个设备密钥进行加密,然后将结果值作为设备密钥-已加密的私钥发送到服务器。
最重要的是,当用户开始登录时,公钥-已加密的用户密钥和设备密钥-已加密的私钥将从服务器发送到客户端。
如果用户需要轮换其账户加密密钥,将使用用户密钥-已加密的公钥。
当用户在已受信任的设备上使用 SSO 进行身份验证时:
用户的公钥-已加密的用户密钥(用于解密密码库数据的账户加密密钥的加密版本)从服务器发送到客户端。
用户的设备密钥-已加密的私钥(解密公钥-已加密的用户密钥所需的未加密版本)从服务器发送到客户端。
客户端使用设备密钥对设备密钥-已加密的私钥进行解密,设备密钥从未离开过客户端。
现在未加密的设备私钥用于解密公钥-已加密的用户密钥,从而产生用户的账户加密密钥。
用户的账户加密密钥解密密码库数据。
当用户使用 SSO 进行身份验证,并选择使用未受信任的设备(即设备对称密钥不存在于该设备上)解密其密码库时,他们需要选择一种方法来批准该设备,并选择信任该设备,以便将来无需进一步批准即可使用。接下来会发生什么取决于所选的选项:
从其他设备批准:
触发此处记录的流程后,客户端就获得并解密了账户加密密钥。
用户现在可以使用解密后的账户加密密钥解密其密码库数据。如果用户选择信任该设备,则会按照入职选项卡中的说明与客户端建立信任。
请求管理员批准:
发起请求的客户端向 Bitwarden 数据库中的验证请求表 POST 一个请求,其中包括账户电子邮件地址、唯一的身份验证请求公钥ª 和访问代码。
管理员可在设备批准页面上批准或拒绝此请求。
请求获得管理员批准后,被批准客户端会使用请求中包含的身份验证请求公钥对用户的账户加密密钥进行加密。
然后,被批准客户端将加密后的账户加密密钥 PUT 到验证请求记录,并标记为请求已完成。
发起请求的客户端 GET 到加密后的账户加密密钥,然后使用身份验证请求私钥ª 对它进行本地解密。
使用解密后的账户加密密钥,与客户端建立信任关系,详见入职选项卡。
ª - 身份验证请求公钥和私钥是为每一个无密码登录请求生成的唯一密钥,其存在时间与请求的存在时间相同。未被批准的请求,请求将在 1 周后过期。
使用主密码批准:
按照安全白皮书中「身份验证和解密」部分的说明,获取并解密用户的账户加密密钥。
使用解密后的账户加密密钥,按照入职选项卡中的说明与客户建立信任。
当用户轮换其账户加密密钥时,正常轮换过程如下:
用户密钥-已加密的公钥从服务器发送到客户端,然后使用旧的账户加密密钥(又称用户密钥)对其解密,得到设备公钥。
使用未加密的设备公钥对用户的新的账户加密密钥进行加密,然后将结果值作为新的公钥-已加密的用户密钥发送到服务器。
使用用户的新的账户加密密钥对设备公钥进行加密,然后将结果值作为新的用户密钥-已加密的公钥发送到服务器。
为此用户持久保存在服务器上的所有其他设备的受信任设备加密密钥都会被清除。这样,服务器上就只保留该单个设备所需的三个密钥(公钥-已加密的用户密钥、用户密钥-已加密的公钥和在此过程中未被更改的设备密钥-已加密的私钥)。
任何现在未受信任的客户端都必须通过批准选项卡中说明的方法之一重新建立信任。
用于受信设备的密钥
本表格提供了有关上述过程中所使用的每一种密钥的更多信息:
设备密钥
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 激活之前入职的,或者如果他们从组织邀请中选择了创建账户,则他们的账户将保留其主密码。
如果使用账户恢复功能恢复了用户账户,就必须为其分配一个主密码。目前,有了主密码后,就无法将其从账户中移除,因此,为了避免出现这种结果,我们建议:(i) 指导用户将数据导出到备份中;(ii) 完全删除丢失的账户;(iii) 要求用户使用受信任设备重新入职到您组织;(iv) 用户完成这些后,指导他们导入备份。
对于那些因使用受信任设备 SSO 而没有主密码的账户,将其从您的组织中移除或撤销其访问权限将切断其对 Bitwarden 账户的所有访问权限,除非:
您事先使用账户恢复功能为其分配了主密码。
用户在账户恢复后至少登录一次,以便完全完成账户恢复流程。
此外,除非在将用户从组织中删除之前执行上述步骤,否则用户将无法重新加入您的组织。在这种情况下,用户将需要删除其账户,并接收新的邀请以创建账户并加入您的组织。
撤销对组织的访问权限,但不将其从组织中移除,仍可让他们登录 Bitwarden 并只能访问其个人密码库。
对其它功能的影响
根据您的客户端内存中是否有主密码哈希(由客户端应用程序最初被访问的方式决定),它可能会表现出以下行为变化:
最后更新于