區塊鏈社交APP協議分析:BeeChat
「本文從協議解析的角度,對區塊鏈社交應用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協議無法解密內容,但可從報文中獲取到動作數據,這也是協議還原的關注點。
歡迎關注,共同探討協議分析技術。
長按進行關注。


TAG:Interception |