• 区块链社交APP协议分析:BeeChat


     本文从协议解析的角度,对区块链社交应用BeeChat进行分析,发现其背后的机构,探讨破解的可能性。


    在之前的文章《区块链社交APP协议分析:Qbao》中,分析了区块链社交应用Qbao的协议,其安全性令人痛心,无需耗费很大精力即可对网络上传输的Qbao数据进行还原。


    本文对BeeChat进行了分析后,稍微挽回了对区块链社交应用安全性的信心,虽然区块链社交应用鱼龙混杂,但部分应用还是有些技术底蕴的。


    01

    BeeChat是什么


    对一个APP进行协议分析的第一步,是了解APP是做什么的,了解APP的功能,从而对APP有一个全局的印象。


    BeeChat官网为https://beechat.io/,其官网对该APP的介绍:

    640?wx_fmt=png

    要点提取:基于区块链,去中心化,安全加密


    产品特点:

    640?wx_fmt=png


    要点提取:节点多,端对端加密


    分析的APP版本:Android V2.2.5。

    登录后界面如下:

    640?wx_fmt=jpeg


    通过对这个APP的使用,可以将这个APP归入IM类,其具备单聊,群聊等功能,本文中,我们对APP还原可行性进行分析。


    后续几节,我们将对APP内部结构进行分析,探讨对聊天数据协议进行还原的可能性,并分析其隐藏的信息


    02


    BeeChat报文情况


    BeeChat使用过程中产生的报文如下:

    640?wx_fmt=png

    可以看到,其使用443端口,但内容并非SSL承载,格式不符合SSL,内容中含MsgNtf等明文串,但大部分字节无法确定其内容,需要进一步分析,初看上去,似乎和Qbao的报文很类似


    03


    BeeChat协议破解分析


    使用Android逆向工具,可以从BeeChat APK中提取出BeeChat的实现文件,包括库文件及smali文件。


    使用调试工具,可发现其传输的聊天内容为AES加密:

    640?wx_fmt=png


    AES实现如下:

    640?wx_fmt=png


    使用的加密方式为:AES/CBC/NoPadding,iv为"0102030405060708",AES密钥mAesKey为32字节内容,在连接建立时产生,并发往服务器。使用了RSA加密传输:

    640?wx_fmt=png


    而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实现代码的大概情况

    使用的库文件:

    640?wx_fmt=png

    Smali文件:

    640?wx_fmt=png

    项目配置文件:

    640?wx_fmt=png

    可以发现,BeeChat使用了SOMA,COCO等APK的相关配置、密钥等信息。

    进一步挖掘:

    640?wx_fmt=png

    部分备案信息如下:

    640?wx_fmt=png


    可以发现SOMA,COCO是同一个公司《杭州英坦网络科技有限公司》的IM作品,在Google play下载量都有千万级。所以BeeChat应为该公司为区块链热潮推出的一款新的IM,虽然从表面上看没有任何联系。


    当然,在APK内仍然没有找到区块链相关的去中心化技术和端对端技术,所有操作,都是与服务器交互,没有用户与用户之间的连接过程,服务器作为中转中心,需要解密所有连接的客户端的信息,然后向目的客户端发送。


    当然,这款软件的传输过程是加密的,无法使用旁路方式解析服务器与客户端间的传输内容。


    05


    BeeChat分析结论


    1、BeeChat是一个IM开发商开发的区块链社交APP;

    2、BeeChat传输过程使用RSA及AES加密,有一定安全性,但仅限于传输过程的安全性;

    3、BeeChat没有去中心化,没有点到点,本质上与该公司的其它两款IM相同;

    4、BeeChat协议无法解密内容,但可从报文中获取到动作数据,这也是协议还原的关注点。


    欢迎关注,共同探讨协议分析技术。

    640?wx_fmt=jpeg

    长按进行关注。





  • 相关阅读:
    详解C#break ,continue, return
    c# winform 全角自动转化半角问题(C#中ImeMode的值):转载
    简短总结一下C#里跨线程更新UI(转)
    必备:常用px,pt,em换算表(转)
    C# Textbox的ImeMode取值对中文输入法的影响 (转)
    转自:C#中TextBox水印提示的简单实现
    转载:C# this.invoke()作用 多线程操作UI 理解二
    转载:C# this.Invoke()的作用与用法 理解三
    MySQL数据库----基础操作
    python之路----线程
  • 原文地址:https://www.cnblogs.com/protosec/p/11673360.html
Copyright © 2020-2023  润新知