#metadata #decoding #codec #encoding #protocols

bin+lib provenance-rs

一种用于安全证明文档来源的拥有历史协议

3 个版本 (重大更改)

0.3.0 2024 年 3 月 17 日
0.2.0 2024 年 3 月 17 日
0.1.0 2024 年 3 月 3 日

#1098 in 加密学

每月 22 次下载

MIT 许可证

340KB
403

provenance-rs

Provenance 是一种协议,用于安全地指定图像、视频等的历史所有权。它最终可以告诉你图像是否由 AI 生成。

这是 provenance 协议的参考实现。

它解决了什么问题?

在没有 provenance-rs 的情况下

  • 你看到了一张教皇穿着病态的气垫夹克的照片。
  • 你不知道教皇竟然有这么多潮品。生活真美好。
  • 你的朋友告诉你,这张图片实际上是 AI 生成的。
  • 你感到怀疑,不知道该相信谁。
  • 经过一番争论,你的朋友说服你,教皇并没有那么多时尚感。
  • 你的失望难以言表,你的这一天毁了。

有了 provenance-rs

  • 你看到了一张教皇穿着病态的气垫夹克的照片。
  • 🚨 这张图片没有任何来源 🚨。如果照片是真的,为什么没有人声称拥有它?摄影师可能通过将照片卖给新闻网站赚很多钱,所以为什么他们不用 provenance 在照片上署名呢?
  • 你决定图片不可信,然后继续你的日子。

它是如何工作的?

provenance 协议背后的想法是,好的行为者应该愿意在他们的作品上签名。一个信誉良好的摄影师在分享在线照片之前签署照片应该没有问题,这样每个人都知道是谁拍了照片(如果照片看起来可疑,可以向谁提问)。

一个坏的行为者可能不会想签署他们的照片,因为他们会试图将其伪造成来自可信赖来源的照片。如果坏的行为者自己签署了照片,那么每个人都会知道它来自一个不可信赖的来源,并且会很快将其排除。

如果你发现一张看起来可疑且无人签名的照片,你应该感到可疑。为什么一个好的行为者不会声称拥有照片?只有不可信赖的行为者不会签署照片,所以你应该极其小心地处理照片,并预期它在某些方面是伪造的。

但我不想让每个人都知道我发布的所有内容

没关系!互联网是匿名的,这很棒。对于发送搞笑照片或迷因给朋友或者随意在网上发布内容,你并不真的关心验证迷因是否来自可信赖的来源。所以没有必要使用 provenance 协议。

然而,目前还没有办法知道图片和视频的来源。虽然我们并不真正关心是谁创造了最新的梗格式,但如果我们在网上看到一张可疑或指控性的照片,我们能够知道是谁拍摄的这张照片,他们是否使用Photoshop编辑了照片,以及这张照片是如何在互联网上传播的,这一点至关重要。

在现代互联网上,虚假信息泛滥,要求问责制是应对这一问题的方法之一。

我该如何使用它?

作为终端用户,你应该要求你使用的服务(社交媒体、新网站等)使用来源协议,这样你就可以知道你的信息来自哪里。如果你看到一张没有来源的照片或视频,你应该保持怀疑态度。

它是如何工作的?(幕后)

来源协议被设计成在数据被修改和共享时,为一条数据分配多个所有权的层次。在每一步,一个组织或设备的私有加密密钥被用来对数据条目进行数字签名。然后,这个签名与原始数据一起传递。任何人都可以通过将签名与组织或设备的公钥进行比较,来确认数据是由该组织/设备签名的,并且在签名之后数据没有被篡改。

一个例子可能会有帮助

  1. 约翰正在森林中散步,并留下了他的佳能相机和一些老虎。其中一只老虎用相机拍了一张自拍。
  2. 当相机拍摄自拍时,它使用该相机唯一的私有密钥对图像进行签名,并将签名与图像一起存储为单个文件。这个签名验证了这张照片来自那台佳能相机。
  3. 约翰对照片感到惊讶,但白平衡不对。他将包含原始照片和相机签名的文件上传到电脑,并使用Adobe Illustrator调整白平衡。
  4. 当他保存文件时,Adobe Illustrator对编辑后的照片+相机签名对进行签名,从而将原始照片由特定相机拍摄的来源与原始照片以某种方式被Adobe Illustrator编辑的来源结合起来。
  5. 然后,约翰将签名和编辑后的照片上传到他的最喜欢的社交媒体网站 www.share-it.com,使用他的用户名 @john。Share-It为他们的用户 @john 分配了一个公钥-私钥对,并使用 @john 的密钥对上传的图像进行签名。
  6. 起初,没有人相信这张照片,但照片有来源。他们可以查看来源,并确切地知道
    • 用户 @john 将照片上传到了 www.share-it.com
    • 照片是在Adobe Illustrator中编辑的
    • 照片是由佳能相机拍摄的
  7. 现在,并不能保证你信任用户 @john、Share-It、Adobe或佳能。他们可能没有安全地处理他们的秘密或存在其他漏洞。但至少现在你知道该指责谁了。

将上述内容与没有来源协议会发生的情况进行比较。某个用户 @john 会将一张令人难以置信的照片上传到Share-It,而每个人只能多少有点信任这张照片没有被编辑?或者进行一些严肃的数字侦探工作,试图弄清楚这张照片是否被篡改。

如何实现它?(作为开发者)

这个Rust包提供了可追溯协议的参考实现。您可以使用 cargo add provenance-rs 将其用作库。

待办事项:或者使用 cargo install provenance-rs 安装它作为命令行工具。

灵感

可追溯协议受到抗原呈递的启发,这是一种健康细胞向经过的免疫细胞展示其内部片段的过程,以证明健康细胞没有被病毒占领。经过的免疫细胞会杀死以下任何一种细胞:1) 没有展示任何内部片段或2) 展示了错误类型的内部片段。

依赖关系

~7–22MB
~313K SLoC