starymz / Whatsapp

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Whatsapp 安卓协议

这个github 适用于那些想要详细了解whatsapp 协议的人群,并且从中发掘出通信过程中的加解密方式。从注册一个账号,到实现最终的收发消息。

官方技术白皮书

想要了解whatsapp 的加密技术,可以看官方发布的技术白皮书,当然是英文的。这里涉及到很多加解密专业知识,了解就好,不需要自己去实现,各种开源库都有,甚至可以直接套用。

官方原版传送门

英文看不懂的话,国内有很多网友翻译的,可以看看

WhatsApp 加密概述 翻译

WhatsApp 加密概述 翻译

从登录到收发消息

1) 登录

要完成登录首先需要建立一个安全的传输通道,可以认为是和服务器握手协商过程。 比如 https, tcp-tls, 国内的微信 MMTLS。whatsapp 使用的是开源的Noise Protocol Framework。 这个框架有很多种语言实现。目前官网 支持 C, C#, Go, Haskell, Java, Javascript, Python, and Rust。 想要了解更详细的可以通过下面链接

Noise Protocol Framework

2) 消息收发

whatsapp 采用端到端消息加密,通俗一点就是除了收发双方谁也解密不了(相对的),并且每条消息的加密秘钥都不同,所以一次会话中即使破解了一条消息,后面的消息也需要重新破解。github 上有各种版本的实现。

signal 协议实现

3) XMPP 协议

whatsapp 使用的xmpp 协议并不是标准的,对xmpp 协议做了一些扩展。xmpp 协议使用xml 作为载体

About