What is Nostr?
ps /
npub10nm…7024
2023-05-17 15:10:39

ps on Nostr: 最近摸鱼时间去了解下了和聊天加密相关的协议。 ...

最近摸鱼时间去了解下了和聊天加密相关的协议。

能用的nostr网友应该知道端对端加密(e2ee),也就是只有聊天双方才能解密消息内容,应用服务器管理员也解密不了。能够做到端对端加密的聊天app已经做的不错了,尤其是和国内的聊天app比起来。但是端对端加密也并不是安全性的全部内容。

主要经历了上世纪九十年的PGP (Pretty Good Privacy)协议,本世纪初的OTR (off the record)协议,到201x年的Signal协议。

PGP协议主要用在邮件加密上,但是并没有被大规模使用起来,主要被一群技术极客使用。PGP通过公钥加密,实现了消息的保密性和Authentication(可认证性?,也就是你可以判断对方是你要聊天的人)。PGP也实现了端对端加密,但是它的问题也很明显,当一切没有问题的时候,PGP很不错,一旦出现问题,比如私钥泄漏,过往的历史消息都会被解密出来(也就是没有前向保密),而且这些消息都有数字签名(也就是没有可否认性)。在PGP协议中,身份key和加密key是合二为一的,它既作为身份,有用它来加密消息。它作为身份key就决定了它是一个长期key,一旦时间拉长,私钥被暴露的概率就加大。

后面的OTR协议实现了前向保密,解决了PGP历史消息一直处于危险之中的问题。它的做法很简单,把身份key和加密key做分离,为每一段对话单独生成加密key,而且用完就删掉。

OTR协议也实现了可否认性。比如A使用PGP协议发消息告诉B他做过一些“不合法”事情,如果后面他的私钥泄漏,或者B去举报A,就会出现大麻烦。因为消息有A的数字签名。OTR通过一些密码学设计很不错地解决了这个问题。具有可否认性是OTR协议最大的特色。

一些XMPP的客户端实现了PGP和OTR协议。
Author Public Key
npub10nmgk3azkfpaqcezhldk58pyytackwsc6x99eyxz0dv73asj25lqfc7024