Send 加密
最后更新于
最后更新于
协议对应的
Send 是一种安全和短暂的机制,用于向任何人传输敏感信息,包括纯文本和文件。正如 一文所指出的,Send 是端到端加密的,这意味着加密(如下所述)和解密发生在客户端内。当您创建一个 Send 时:
1、生成一个用于 Send 的新的 128 位秘钥。
2、使用 HKDF-SHA256,从秘钥中派生出一个 512 位的加密密钥。
3、派生的加密密钥用于 AES-256 加密 Send,包括其文件/文本数据和元数据(名称、文件名、备注等)。
任何用于保护 Send 的都不涉及 Send 的加密和解密。密码纯粹是一种验证方式,但是在密码验证成功之前,将受密码保护的 Send。
4、加密后的 Send 被上传到 Bitwarden 服务器,包括一个唯一的 Send ID,Bitwarden 会使用该 ID 来,但不包括加密密钥。
打开 即可解密 Send 内容,该链接由唯一的 Send ID 和衍生的加密密钥构成:
https://vault.bitwarden.com/#/send_id/encryption_key
这包括几个组件:
协议
https://
域名
vault.bitwarden.com
锚点/碎片/哈希
锚点/碎片/哈希包含 URL 的 Send ID 和 Send 密钥。
在示例链接中,表示为 #/send_id/encryption_key
。
锚点/碎片/哈希不会发送到服务器。该信息在浏览器本地用于识别和解密 Send 内容。
当您访问一个 Send 链接时:
网页浏览器向 Bitwarden 服务器请求 Send 访问页面。
Bitwarden 服务器将 Send 访问页面作为网页密码库客户端返回。
网页密码库客户端在本地解析包含 Send ID 和加密密钥的 URL 片段。
网页密码库客户端根据解析后的 Send ID 向服务器请求数据。加密密钥永远不会包含在网络请求中。
Bitwarden服务器将加密后的 Send 返回给网页密码库客户端。
网页密码库客户端使用加密密钥在本地对 Send 进行解密。
传输 Bitwarden Send 链接时,您可以使用一些可选的步骤来提高其安全性:
为 Send 添加密码并通过单独的通道分享密码。
发送不包含密钥的链接(最后一个正斜杠之前的所有内容)并通过单独的通道发送密钥。
同时使用上述两个选项。
重新组装 Send URL 时,请确保同时包含 Send ID 和加密密钥。
比如:https://vault.bitwarden.com/#/send/send_id/encryption_key
如果 Send 是有的,那么 Send 的解密将被身份验证所阻止。服务器验证密码,并且仅在密码正确的情况下才返回 Send。请勿将其与用于解密的密码相混淆。