美文网首页
异步消息的前向加密

异步消息的前向加密

作者: Ashton | 来源:发表于2019-06-11 18:14 被阅读0次

传统上,电子邮件等异步消息传递系统依赖于 PGP 或 s / mime 等协议来实现加密安全。 这些协议的工作方式基本是这样的: 希望接收加密电子邮件的人发布一个公钥,需要发送加密电子邮件给那个人的人们使用这个公钥对邮件内容进行加密。

虽然这样做是有效的,但这意味着每次任何人向给定的收件人发送消息时,该消息都一遍又一遍的使用收件人的相同公钥进行加密。

如果攻击者在一段较长的时间内记录了攻击目标的所有密文流量,然后在未来的任何时候破解这个密钥(也许通过侵入目标所在的设备) ,他们就有能力解密之前记录的所有属于攻击目标的密文信息。

诸如 OTR(Off-the-Record Messaging) 之类的现代加密协议通过使用临时密钥交换来解决这个问题。 与其总是使用同一个静态公钥,不如在对话中协商一个临时密钥。由于这些密钥交换是临时的,记录密文通信对于潜在的攻击者没有帮助,因为没有固定的密钥供它们在未来去破解。 即使你的设备被破解了,设备上也没有任何密钥来帮助攻击者解密之前交换的密文。 这种特性通常被称为完备的前向安全性(Perfect Forward Secrecy
)。

OTR 是为同步传输而设计的。 它适用于桌面即时通讯客户端,但在异步通信特征明显的移动环境中就不一定那么好用了。为了发送消息,应用程序首先需要完成密钥交换。 然而,在一个无法保证迅速作出反应的移动世界里,要完成一次密钥交换,就要一个发送密钥交换信息和等待响应的一个完整过程。如果密钥交换请求信息不能得到及时响应,用户就无法发送真正要发的正文信息出去。

这里有个简单的技巧,在提供前向加密的同时提供异步消息传递。就是用户在登录应用时预先生成100个签名密钥交换消息,并将它们发送到服务器。我们称这些消息为 “prekeys”,这是另外一个用户要发送加密信息给该用户时,就可以做下面的事情:

  1. 连接到服务器并请求目标用户的下一个"prekey"。
  2. 生成自己的密钥交换消息的一半。
  3. 用它接收到的“prekey”和它自己的密钥交换信息的一半来计算一个共享密钥。
  4. 使用共享秘钥对消息进行加密。
  5. 将 prekey id、本地生成的密钥交换消息和密文打包,将它们一起发送到目标客户端。
    目标客户端将接收到的所有这些信息作为一个推送通知。 当用户点击它时,客户端拥有计算共享密钥所需要的所有密钥交换信息,可以立即计算出共享密钥并解密密文信息。
    对用户来说,他几乎感受不到这个密钥交换过程,可以随时发送信息出去。由于服务器不会两次发出相同的“prekey”(客户端也不会两次接受相同的“prekey”) ,因此我们就能够在完全异步的环境中提供前向加密了。

相关文章

  • 异步消息的前向加密

    传统上,电子邮件等异步消息传递系统依赖于 PGP 或 s / mime 等协议来实现加密安全。 这些协议的工作方式...

  • Signal前向安全端对端加密异步通信协议导读

    端对端加密(E2EE)-参考文章 Signal协议可以实现用户之间具有完美前向安全的端对端加密异步通信。具体协议包...

  • Des 对称可逆加密

    对称加密的思路非常简单,就是含有一个称为密钥的东西,在消息发送前使用密钥对消息进行加密,在对方收到消息之后,使用相...

  • Spring学习之消息

    这里主要说的是异步消息,异步消息时一个应用程序向另一个应用程序间接发送消息的一种方式,这种方式无需等待对方的响应。...

  • RFC 5277 笔记

    1. Introduction 本文档定义了如何向 NETCONF 协议提供异步消息 notification 传...

  • 异步消息

    异步消息有两个主要的概念:消息代理(message broker)和目的地(destination)。当一个应用发...

  • Android异步处理机制:Handler,Looper,Mes

    Android异步处理机制:Handler,Looper,MessageQueue 异步处理消息概念: 异步消息处...

  • nginx、swoole高并发原理初探

    阅前热身 为了更加形象的说明同步异步、阻塞非阻塞,我们以小明去买奶茶为例。 同步与异步 同步与异步的重点在消息通知...

  • 消息队列之异步消息基本概念以及ActiveMQ整合Spring常

    一 简介 (1)异步消息: 所谓异步消息,跟RMI远程调用、webservice调用是类似的,异步消息也是用于应用...

  • Kafka 与 RabbitMQ 如何做选择

    前言 我们在工作中经常会用到异步消息,主要使用两种消息模式: 消息队列 发布/订阅 消息队列:多个生产者可以向同一...

网友评论

      本文标题:异步消息的前向加密

      本文链接:https://www.haomeiwen.com/subject/bdqcfctx.html