“ 本文从协议解析的角度,对区块链社交应用BeeChat进行分析,发现其背后的机构,探讨破解的可能性。”
在之前的文章《区块链社交APP协议分析:Qbao》中,分析了区块链社交应用Qbao的协议,其安全性令人痛心,无需耗费很大精力即可对网络上传输的Qbao数据进行还原。
本文对BeeChat进行了分析后,稍微挽回了对区块链社交应用安全性的信心,虽然区块链社交应用鱼龙混杂,但部分应用还是有些技术底蕴的。
01
—
BeeChat是什么
对一个APP进行协议分析的第一步,是了解APP是做什么的,了解APP的功能,从而对APP有一个全局的印象。
BeeChat官网为https://beechat.io/,其官网对该APP的介绍:
要点提取:基于区块链,去中心化,安全加密
产品特点:
要点提取:节点多,端对端加密
分析的APP版本:Android V2.2.5。
登录后界面如下:
通过对这个APP的使用,可以将这个APP归入IM类,其具备单聊,群聊等功能,本文中,我们对APP还原可行性进行分析。
后续几节,我们将对APP内部结构进行分析,探讨对聊天数据协议进行还原的可能性,并分析其隐藏的信息。
02
—
BeeChat报文情况
BeeChat使用过程中产生的报文如下:
可以看到,其使用443端口,但内容并非SSL承载,格式不符合SSL,内容中含MsgNtf等明文串,但大部分字节无法确定其内容,需要进一步分析,初看上去,似乎和Qbao的报文很类似。
03
—
BeeChat协议破解分析
使用Android逆向工具,可以从BeeChat APK中提取出BeeChat的实现文件,包括库文件及smali文件。
使用调试工具,可发现其传输的聊天内容为AES加密:
AES实现如下:
使用的加密方式为:AES/CBC/NoPadding,iv为"0102030405060708",AES密钥mAesKey为32字节内容,在连接建立时产生,并发往服务器。使用了RSA加密传输:
而RSA公钥为soma_public_key.pem,内容如下:
-----BEGIN PUBLIC KEY-----
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA1v/vrIBIUASqx5CYjAUR
XqXGYuj0nApiwdK0ilUSm1HRxN2UWkK50bO2iw2P03HAPtwby6wa/OIqEAyPNvdJ
5v53G3FsYAh2niyVHKaigcORLMFPB4ekadhqaCRZpmV91vvDR4MBJuvv40GtVfi4
Dxlma1cYQ+2oi0n6bjqE5dPlmG+JBMcO4O7xGD8xcdYyiFHMbVxBa2dAqstcIORW
BIcaAk5oULLyGOSdp8CR3uz3k7RtAmdRR3+8WJaSuPc51R8CNsiN4Zx7G8c32pf2
i3Usb3xXG+2fKILN9TF7YusqSGHk1XSDr4elbM773C2/jCNLGeWR39+AYojlMHyZ
jwIDAQAB
-----END PUBLIC KEY-----
强度为2048位,目前基本无法爆破。
分析到这里,基本可以得出结论,虽然BeeChat报文中含明文动作信息,但具体内容还是进行了加密了,并且强度比较大,对内容的还原,以目前的技术水平,很有难度,只能在其它方面对其突破了。
04
—
BeeChat软件结构
在使用逆向工具分析APK后,可以看到BeeChat实现代码的大概情况。
使用的库文件:
Smali文件:
项目配置文件:
可以发现,BeeChat使用了SOMA,COCO等APK的相关配置、密钥等信息。
进一步挖掘:
部分备案信息如下:
可以发现SOMA,COCO是同一个公司《杭州英坦网络科技有限公司》的IM作品,在Google play下载量都有千万级。所以BeeChat应为该公司为区块链热潮推出的一款新的IM,虽然从表面上看没有任何联系。
当然,在APK内仍然没有找到区块链相关的去中心化技术和端对端技术,所有操作,都是与服务器交互,没有用户与用户之间的连接过程,服务器作为中转中心,需要解密所有连接的客户端的信息,然后向目的客户端发送。
当然,这款软件的传输过程是加密的,无法使用旁路方式解析服务器与客户端间的传输内容。
05
—
BeeChat分析结论
1、BeeChat是一个IM开发商开发的区块链社交APP;
2、BeeChat传输过程使用RSA及AES加密,有一定安全性,但仅限于传输过程的安全性;
3、BeeChat没有去中心化,没有点到点,本质上与该公司的其它两款IM相同;
4、BeeChat协议无法解密内容,但可从报文中获取到动作数据,这也是协议还原的关注点。
欢迎关注,共同探讨协议分析技术。
长按进行关注。