#data #encryption #requests #third-party #decryption #request #website

应用 redact-client

接收私有数据的请求并解密以在浏览器中安全显示

8个稳定版本

1.5.9 2021年12月7日
1.5.7 2021年12月2日
1.4.0 2021年9月12日
1.1.0 2021年7月27日

密码学 类别中排名 1720

每月下载量 23

自定义许可证

83KB
2K SLoC

redact-client

License: GPL-3.0 crates.io docs.rs Coverage Status

redact-client 是一个在用户设备上本地运行的二进制文件,用于响应第三方网站对加密数据的请求。

它通过在8080端口上监听HTTP请求来实现这一点。当一个网站在其网页上放置对私有数据的引用时,它实际上是在将iframe指向localhost,请求路径与请求的数据相对应,类似于 GET /data/.profile.firstName。客户端还提供了一些方便的查询参数,如下所示,用于各种功能。

加密

在幕后,客户端执行几个操作以确保数据在页面上安全。它首先从存储中获取适当的数据,这可能以另一个引用、加密的字节集或未加密的字节集的形式出现。如果字节是加密的,解密密钥本身也可以作为引用、加密的字节集或未加密的字节集检索。客户端将解析整个引用/加密链以获取最终的解密值,将其反序列化为其最终类型,并在安全iframe中提供服务。检索和解析的大部分工作由 redact-crypto 完成,它包含所有支持Redact加密类型系统的抽象。

不透明数据显示

redact-client 的最后一个核心组件是iframe安全性。它必须确保数据仅在安全上下文中提供,即在它控制的网页内,以阻止任何其他域名能够请求它。它通过将请求过程分为两个请求来实现这一点:一个不安全的请求和一个安全的请求。

不安全的URL是放置在第三方网站iframe中的URL,它不需要令牌或身份验证,只需在该位置放置一些数据。在此阶段,客户端生成一个令牌并将其设置在其会话存储中。然后,它通过包含另一个指向同一URL的iframe的HTML页面来响应请求,并将令牌附加为路径参数。它还在localhost上设置一个包含先前创建的会话ID的cookie。在安全路由阶段,在返回的HTML中提供数据之前,会比较查询参数令牌和会话令牌是否相等。如果第三方网站尝试自己发起请求,它不能同时提供有效的查询参数和有效的cookie。

运行

  1. gitclone https://github.com/pauwels-labs/redact-client
  2. 在config/config.yaml中设置您的存储URL。您可以去redact-store设置自己的存储。
  3. cargor

用法

请参阅Redact客户端文档以获取API文档。

测试

要运行单元测试

  1. cargot

要运行单元测试+代码覆盖率输出(macos或windows上不工作)

  1. cargo安装tarpaulin
  2. cargotarpaulin -ohtml

文档 & 支持

文档可在docs.redact.ws找到。

加入我们的Keybase频道!您可以从此处下载keybase客户端。

一旦进入,点击团队,选择加入团队,我们的团队名称是pauwelslabs。

进入后,Redact讨论发生在#redact频道。

Keybase团队中的讨论应尊重他人,专注于Redact,且不包含粗俗语言。

依赖项

~76MB
~1M SLoC