3个版本
0.1.5 | 2019年3月28日 |
---|---|
0.1.4 | 2019年3月27日 |
0.1.3 | 2019年3月27日 |
#21 in #integrity
每月 49 次下载
30KB
565 代码行
revelio
免责声明: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/
用法
- Travis CI设置
- CircleCI设置
- 待办:GitLab CI
- 待办:Azure Pipelines
- 待办:Bitbucket Pipelines
- 待办:Jenkins
Revelio CLI工具
revelio
是一个命令行工具,可以执行以下操作
- 在公共CI中运行时,生成一个
revelio.json
文件。 - 验证包含公开
/.well-known/revelio.json
文件的URL。
有关更多详细信息,请参阅revelio
CLI文档。
常见问题解答
如何将其用于私有仓库/私有CI?
本项目的核心思想是通过透明度建立信任。因此,它只会与公共仓库和公共CI服务合作。
许可证
版权所有 (c) 2019 - 现在, François Best
依赖项
~27MB
~553K SLoC