whatsapp协议对于whatsapp辅助软件的开发非常重要,通常要想出色的使用whatsapp软件,需要对whatsapp协议有一定的了解,下面为大家介绍一下whatsapp协议简单分析。
whatsapp协议
whatsapp协议有非常多,不同的协议有不同的作用,端对端加密是其中一个很重要协议。
端对端whatsapp协议简单分析
whatsapp主要使用了libsignal这个端对端加密算法。
端对端whatsapp协议简单分析:基础概念
PreKey
该协议使用称为“ PreKeys”的概念。PreKey是由服务器存储在一起的ECPublicKey和关联的唯一ID。PreKeys也可以签名。
在安装时,客户端会生成单个已签名的PreKey以及大量未签名的PreKey,并将它们全部传输到服务器。
Sessions
信号协议是面向会话的。客户端建立一个“会话”,然后将其用于所有后续的加密/解密操作。建立会话后,无需拆除会话。
通过以下三种方式之一建立会话:
PreKeyBundles。希望向收件人发送消息的客户端可以通过从服务器检索该收件人的PreKeyBundle来建立会话。
PreKeySignalMessages。客户端可以从收件人接收PreKeySignalMessage并使用它来建立会话。
KeyExchangeMessages。两个客户端可以交换KeyExchange消息以建立会话。
State
建立的会话封装了两个客户端之间的许多状态。该状态保存在持久记录中,在会话的整个生命周期中都需要保留这些记录。
状态保存在以下位置:
身份状态。客户端将需要维护自己的身份密钥对以及从其他客户端收到的身份密钥的状态。
密钥前状态。客户将需要维护其生成的PreKey的状态。
已签名的PreKey状态。客户将需要维护其签名的PreKey的状态。
会话状态。客户将需要保持他们建立的会话的状态。
端对端whatsapp协议简单分析:密钥交互过程
1、注册时记录生产终端身份,已签名对密钥对,然后上报给服务器
2、登录时批量生产加密密钥
3、消息发送时,获取对方对加密密钥,加密发送对文本
4、消息接收时,使用本地对密钥,解密接收到对文本。