CoverDrop 是一个旨在允许新闻机构移动应用程序用户秘密联系记者且不留下证据的系统。
CoverDrop系统由四个主要部分组成:
- 新闻机构常规移动应用程序中的一个模块
- 基于云的 API
- CoverNode:一组从安全位置运行的服务
- 新闻机构记者使用的桌面应用程序
CoverDrop 通过使新闻机构公共移动应用程序的每个实例都以相同的方式运行,无论它是用于安全通信还是用于正常的新闻消费,从而提供了强大的合理否认能力:
- 在 CoverDrop 的实施过程中,新闻机构应用程序的每个副本都会定期与该新闻机构的服务器交换少量加密信息。这些“掩护信息”通常包含毫无意义的密文。
- 当消息来源为记者撰写消息时,其消息加上该消息来源自动生成的公钥会使用记者的公钥进行加密。之后,该密文会被替换为一条常规的掩护消息。消息来源和掩护消息的加密方式相同,长度相同,并且发送时间也相同。因此,从网络观察者的角度来看,它们是无法区分的。
- 这些消息通过 CDN 背后的微服务附加到 Kinesis 流中。然后,新闻机构的安全服务器会异步轮询来自此 Kinesis 流的新消息。在那里,第一层加密被移除,以区分真实消息和伪装消息。然后,服务器会定期将消息集合发送到死信箱 (Dead Drops),发送给记者使用的应用程序。死信箱可能包含真实消息和虚假消息,以将每个死信箱填充到统一的大小。如果记者收到包含使用其公钥加密的消息的死信箱,他们将能够移除最后一层加密并阅读消息。
- 记者也可以回复这些消息,因为其中包含消息来源的公钥。记者的回复处理流程与消息来源回复记者的流程类似。
- 用户应用程序上的消息存储库会同时被修改,大小相同,并且无论是否包含真实消息,都会以相同的方式加密。因此,如果用于安全通信的设备被扣押,只要解密密码未知,该设备就不会留下任何证据,表明它是否曾用于与消息来源/记者的通信。
评论