微信音頻通話私密性如何?
微信音頻通話私密性如何?
眾所周知,在互聯(lián)網(wǎng)高速發(fā)展的時代,網(wǎng)絡(luò)安全無疑是一個重大的問題。首先我們就一個知道數(shù)據(jù)的傳輸模式,了解其傳輸過程。咋此前提下,做好網(wǎng)絡(luò)通信的安全護(hù)盾。
傳輸?shù)闹髁骷夹g(shù)
采用無線介質(zhì)連接的網(wǎng)絡(luò)稱為無線網(wǎng).目前無線網(wǎng)主要采用三種技術(shù):微波通信,紅外線通信和激光通信.這三種技術(shù)都是以大氣為介質(zhì)的.其中微波通信用途最廣,目前的衛(wèi)星網(wǎng)就是一種特殊形式的微波通信,它利用地球同步衛(wèi)星作中繼站來轉(zhuǎn)發(fā)微波信號,一個同步衛(wèi)星可以覆蓋地球的三分之一以上表面,三個同步衛(wèi)星就可以覆蓋地球上全部通信區(qū)域.
傳輸加密的方式
無加密:早期的IM軟件沒有采用任何加密,聊天內(nèi)容以明文的形式發(fā)送,這無異于在網(wǎng)絡(luò)上裸奔。
普通加密:現(xiàn)在的IM軟件大多實(shí)現(xiàn)了客戶端與服務(wù)器間的加密通信,盡管采用的加密算法各不相同,一般是將使用服務(wù)器公鑰進(jìn)行加密后的信息傳送到服務(wù)器,服務(wù)器用自己的密鑰解密后再使用對話者的公鑰加密并發(fā)送到對方客戶端。這意味著服務(wù)器方是知道消息的具體內(nèi)容的。但是這已經(jīng)可以有效防止第三方竊取通信信息。有些IM軟件提供商聲稱不會保留聊天數(shù)據(jù),但是顯然,他們是具有這個能力的。
端到端加密(E2EE):端到端加密直接使用對話者的公鑰進(jìn)行加密,服務(wù)器方(如果存在服務(wù)器的話)只負(fù)責(zé)傳遞消息,并不能知道消息的具體內(nèi)容。
微信消息是一種即時通訊;消息即時傳遞和用戶交互性。
即時通信是一種基于網(wǎng)絡(luò) 的通信技術(shù), 涉及到IP/TCP/UDP/Sockets、P2P、C/S、多媒體音視頻編解碼/傳送、Web Service等多種技術(shù)手段。無論即時通信系統(tǒng)的功能如何復(fù)雜,它們大都基于相同的技術(shù)原理,主要包括客戶/服務(wù)器(C/S)通信模式和對等通信(P2P)模式。(來自百度文庫)這里主要說說C/S架構(gòu)的通訊模式(微信就是基于這種模式)。
如圖,假設(shè)一種情景。用戶A登錄微信后,連接到IM服務(wù)器(即微信通訊服務(wù)器),同時用戶B也登錄上來了。用戶A要給用戶B發(fā)送一條消息,這個消息會先發(fā)送到IM服務(wù)器,再由IM服務(wù)器發(fā)送給B。用戶A并沒有直接和用戶B建立連接的。這個消息數(shù)據(jù)包里面包含了哪些信息呢?必須要告訴IM服務(wù)器,這個消息是發(fā)給誰的,即用戶B。用戶B要發(fā)送消息給用戶A同樣的原理。
C/S結(jié)構(gòu)軟件
C/S結(jié)構(gòu)軟件(即客戶機(jī)/服務(wù)器模式)分為客戶機(jī)和服務(wù)器兩層,客戶機(jī)不是毫無運(yùn)算能力的輸入、輸出設(shè)備,而是具備了一定的數(shù)據(jù)處理和數(shù)據(jù)存儲能力;通過把應(yīng)用軟件的計(jì)算和數(shù)據(jù)合理地分配在客戶機(jī)和服務(wù)器兩端,可以有效地降低網(wǎng)絡(luò)通信量和服務(wù)器運(yùn)算量。由于服務(wù)器連接數(shù)量和數(shù)據(jù)通信量的限制,這種結(jié)構(gòu)的軟件適于在用戶數(shù)目不多的局域網(wǎng)內(nèi)使用。
C/S架構(gòu)的通訊模式
C/S結(jié)構(gòu)軟件在保護(hù)數(shù)據(jù)的安全性方面有著先天的弊端。由于C/S結(jié)構(gòu)軟件的數(shù)據(jù)分布特性,客戶端所發(fā)生的火災(zāi)、盜搶、地震、病毒等都將成為可怕的數(shù)據(jù)殺手。另外,對于集團(tuán)公司內(nèi)部網(wǎng)絡(luò)中常見的多級應(yīng)用,C/S結(jié)構(gòu)的軟件必須安裝多個服務(wù)器,并在多個服務(wù)器之間進(jìn)行數(shù)據(jù)同步。如此一來,每個數(shù)據(jù)點(diǎn)上的數(shù)據(jù)安全性都將影響到整個應(yīng)用的數(shù)據(jù)安全性。
Protocol Buffer通信協(xié)議
微信通信系統(tǒng)選用 Protocol Buffer作為通信協(xié)議。 Protocol Buffer:是 Google的一種數(shù)據(jù)交換的格式, Google公司內(nèi)部的混合語言數(shù)據(jù)標(biāo)準(zhǔn),目前已經(jīng)正在使用的有超過48,162種報(bào)文格式定義和超過12,183個 proto文件。他們用于RPC系統(tǒng)和持續(xù)數(shù)據(jù)存儲系統(tǒng)。
Protocol Buffers是一種輕便高效的結(jié)構(gòu)化數(shù)據(jù)存儲格式,可以用于結(jié)構(gòu)化數(shù)據(jù)串行化,或者說序列化。它很適合做數(shù)據(jù)存儲或RPC數(shù)據(jù)交換格式。可用于通訊協(xié)議、數(shù)據(jù)存儲等領(lǐng)域的與語言無關(guān)、與平臺無關(guān)、可擴(kuò)展的序列化結(jié)構(gòu)數(shù)據(jù)格式。目前提供了C++、Java、 Python三種語言的API
Protocol Buffer還有一個非常重要的優(yōu)點(diǎn)就是可以保證同一消息報(bào)文新舊版本之間的兼容性。它獨(dú)立于語言,獨(dú)立于平臺。由于它是一種二進(jìn)制的格式,比使用xml進(jìn)行數(shù)據(jù)交換快許多。可以把它用于分布式應(yīng)用之間的數(shù)據(jù)通信或者異構(gòu)環(huán)境下的數(shù)據(jù)交換,作為一種效率和兼容性都很優(yōu)秀的二進(jìn)制數(shù)據(jù)傳輸格式,可以用于諸如網(wǎng)絡(luò)傳輸、配置文件、數(shù)據(jù)存儲等諸多領(lǐng)域,屬于開源項(xiàng)目。
微信的登錄流程
從流程圖可以看出,微信的通信保密性很大程度依賴于隨機(jī)AES密鑰的不可破解性,但是從另一方面來說,只要獲取了這個隨機(jī)AES的密鑰微信的通信信息的保密性就會大大降低。
關(guān)于AES的破解
如果是single-key model,對于非滿輪的AES(256位的aes應(yīng)該要迭代14輪),有如下研究(從左到右分別為輪數(shù),數(shù)據(jù)量,時間復(fù)雜度,空間復(fù)雜度,方法,文獻(xiàn)來源):
對于滿輪的AES256的攻擊,維基百科上說研究的復(fù)雜度為2^254.4.
這不經(jīng)讓我想起了一個故事,話說在一個非常大的互聯(lián)網(wǎng)公司,網(wǎng)絡(luò)經(jīng)常斷線,懷疑是收到了黑客的攻擊,并開始請來網(wǎng)絡(luò)安全專家,經(jīng)過一系列的網(wǎng)路安全檢查。結(jié)果沒有發(fā)現(xiàn)任何問題。最后在不經(jīng)意間發(fā)現(xiàn)網(wǎng)絡(luò)安全管理人員被買通了,每隔一段時間就切斷網(wǎng)絡(luò)數(shù)據(jù)鏈接。現(xiàn)在在高速發(fā)展的時代,網(wǎng)絡(luò)漏洞永遠(yuǎn)都是待完善的,而最為致命的是人為物理性的攻擊。