#check #integrity #artifact #github #commit #url #sha-256

bin+lib revelio

开源Web项目的可审计性和完整性检查

3个版本

0.1.5 2019年3月28日
0.1.4 2019年3月27日
0.1.3 2019年3月27日

#21 in #integrity

每月 49 次下载

MIT 许可证

30KB
565 代码行

revelio

Travis CI Build CircleCI Build MIT License

免责声明:PoC / WIP - 欢迎反馈 !

Revelio为托管在Web上的开源项目带来了可审计性和完整性检查。

它试图回答以下问题

我机器上运行的是什么原始源代码,它是如何构建的?

Revelio通过链接自动化透明度检查

  • 可审计性,通过将URL链接到公开的构建过程和原始源
  • 完整性,通过检查构建的工件在存储或传输过程中是否被篡改

工作原理

在你的公共CI(请参阅支持的服务的列表),Revelio将创建一个包含以下内容的清单文件:

  • 构建上下文信息(构建URL,源,提交的SHA1...)
  • SHA256校验和哈希值的工件映射
{
  "version": 1,
  "datetime": "2019-03-20T13:37:32.248626882+00:00",
  "context": {
    "buildUrl": "https://travis-ci.org/acme/example.com/jobs/123456789",
    "sourcesUrl": "https://github.com/acme/example.com",
    "commitSha1": "4cc994bd49fd2bf827bfbf476488e963e9d565e8",
    "commitUrl": "https://github.com/acme/example.com/commit/4cc994bd49fd2bf827bfbf476488e963e9d565e8",
    "compareUrl": "https://github.com/acme/example.com/compare/e68714654da3...4cc994bd49fd"
  },
  "artifacts": {
    "https://example.com/404.html": "sha256:3mAC+oR66YjsNoV33fDK6AbN72N2okGtk9PjdIuRtsE=",
    "https://example.com/app.css": "sha256:R1+IjX4f2u7GRE/XQQfgVx+YTeGqReI4qUGqKDkHA9w=",
    "https://example.com/app.js": "sha256:0vGVpfjqMywtnj/hLODFi5ek6hK7aBQ+n2JZ9F/3Hx0=",
    "https://example.com/index.html": "sha256:03cfGvf3z4VUqCzuaFabxbA396AT63mSjwJwOlKsaHQ=",
    "https://example.com/robots.txt": "sha256:wBFPdm0K88T1Cdgftal2BpreVKzmqjb0FiGbZi9/cOg=",
    "https://example.com/sitemap.xml": "sha256:RMQZ2sZN8ef/vghv58Ccoz4N3s/Oq4Hb2mrw81WK/U0="
  }
}

然后,您可以将该revelio.json文件与您的工件一起部署。推荐路径是/.well-known/revelio.json

稍后,您可以使用Revelio CLI验证完整性和检索构建上下文信息

$ revelio verify https://example.com
🔎  Found https://example.com/.well-known/revelio.json
🔨  Build context:

     Build         https://travis-ci.org/acme/example.com/jobs/123456789
     Sources       https://github.com/acme/example.com
     Commit URL    https://github.com/acme/example.com/commit/4cc994bd49fd2bf827bfbf476488e963e9d565e8
     Compare URL   https://github.com/acme/example.com/compare/e68714654da3...4cc994bd49fd
     Commit SHA-1  4cc994bd49fd2bf827bfbf476488e963e9d565e8

🔬  Integrity:

    https://example.com/404.html
    https://example.com/app.css
    https://example.com/app.js
    https://example.com/index.html
    https://example.com/robots.txt
    https://example.com/sitemap.xml

  Verified https://example.com/

用法

Revelio CLI工具

revelio是一个命令行工具,可以执行以下操作

  • 在公共CI中运行时,生成一个revelio.json文件。
  • 验证包含公开/.well-known/revelio.json文件的URL。

有关更多详细信息,请参阅revelio CLI文档

常见问题解答

如何将其用于私有仓库/私有CI?

本项目的核心思想是通过透明度建立信任。因此,它只会与公共仓库和公共CI服务合作。

许可证

MIT许可证 (MIT)

版权所有 (c) 2019 - 现在, François Best

依赖项

~27MB
~553K SLoC