版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
當前各種即時通信軟件被人們廣泛使用,國內(nèi)以微信為代表,國外以WhatsApp、Telegram為代表,這些即時通信軟件的用戶量都超過了10億。即時通信幾乎完全取代了原來的短信服務,為人們的日常工作和生活提供了信息交互、消息發(fā)布、群組通信甚至支付功能,滿足了絕大多數(shù)人的溝通需求。正是因為每天的消息收發(fā)總量數(shù)以億計,即時通信用戶越來越關注消息的安全性。此外,考慮到用戶體驗,即時通信軟件的易用性也是至關重要的,比如是否支持群聊,是否支持多設備端同時在線,是否支持歷史消息獲取等。眾所周知,即時通信的安全性主要由密碼學技術來實現(xiàn),其中身份認證和消息加密是最基本的安全技術。但更關鍵的是如何在現(xiàn)實應用場景中正確使用這些安全技術來實現(xiàn)既定的安全目標。不同的即時通信軟件雖然都采用了身份認證和加密技術,但采用的威脅模型卻有比較大的差別,因此它們的消息加密模式和安全級別也不同。斯諾登事件揭露了國外專門機構對個人通信的監(jiān)控問題后,即時通信的消息安全性越來越受到人們的重視,學術界對即時通信的安全性也開展了一些研究。國內(nèi)的瞿曉海等人
研究了微信的加密通信原理,分析了微信的登錄驗證流程和加密密鑰生成原理。萬園春等人研究了微信交互協(xié)議和加密模式,并分析了密鑰生成時的隨機數(shù)安全性。國外的學者對即時通信的安全協(xié)議研究得比較多,Alexander,分別分析了同步通信協(xié)議Off-the-Record的認證、群聊通信以及安全性。對目前廣泛使用的端到端加密協(xié)議signal進行了形式化分析。從安全協(xié)議角度評估了即時通信軟件textsecure的安全性。利用符號化計算的方法對常見的即時通信協(xié)議進行了安全性的自動化驗證。Marlinspike等人對端到端加密中的密鑰交換協(xié)議X3DH進行了詳細的闡述。從用戶注冊、身份認證、消息加密層面比較了幾種國外主流的即時通信軟件,給出了針對安全性和易用性的一些改進建議。本文將著重研究主流即時通信中的兩類安全通信模型,一種是端到服務器加密模式下的安全通信模型,另一種是端到端加密模式下的安全通信模型。本文將分析兩種安全通信模型在用戶的單聊(一對一聊天)、群聊(群組聊天)以及多設備端在線(一個用戶同時登錄不同類型的設備端)3種主要場景下的聊天消息加密以及客戶端發(fā)送消息和服務器轉發(fā)消息時的差異性,并設計端到端加密模式下的多設備端同時在線通信的實用化模型。1即時通信的通信模型1.1威脅模型即時通信是一個包含服務器(運營商)和多個客戶端(用戶)在內(nèi)的網(wǎng)絡通信系統(tǒng)。根據(jù)攻擊來源和敵手能力可以分為以下3種威脅模型:(1)被動攻擊。該模型中敵手可以記錄下一切從網(wǎng)絡中獲取的信息,包括加密的消息數(shù)據(jù)、消息收發(fā)時間、密鑰協(xié)商時發(fā)送的公鑰等。(2)主動攻擊。該模型中敵手除了可以記錄網(wǎng)絡上獲取的信息,還具有消息篡改、延遲、阻斷及實施中間人攻擊等能力。(3)運營商攻擊。服務器參與用戶消息的加密、解密以及轉發(fā)等過程,服務器也可能作為攻擊方,獲取用戶的身份和聊天等各種信息。1.2端到服務器加密的通信模型端到服務器加密的通信模型場景可以概括為以下兩種:(1)單聊場景。如圖1所示,端到服務器加密是指每個客戶端都與服務器建立加密通道(一般是通過密鑰協(xié)商協(xié)議或者客戶端產(chǎn)生會話密鑰后,用服務器的公鑰進行加密,發(fā)送給服務器的方式建立共享密鑰),用戶A要與用戶B通信,用戶A的客戶端將發(fā)送的消息經(jīng)過共享密鑰(服務器與用戶A的共享密鑰KAS)加密后發(fā)送給服務器,服務器利用KAS解密后,再將消息利用共享密鑰(服務器與用戶B的共享密鑰KBS)發(fā)送給目標用戶B的客戶端。圖1端到服務器加密模式下的單聊通信模型(2)群聊場景:如圖2所示,在群組通信場景下,群內(nèi)的一個成員A將消息也通過與服務器的共享密鑰KAS加密后發(fā)送給服務器,服務器解密得到明文消息后,再將消息通過服務器與每個成員的共享密鑰加密發(fā)送給群里的每個成員,本質上與單聊的加密模式?jīng)]有區(qū)別。群內(nèi)的成員退出后,服務器將不會轉發(fā)群內(nèi)的消息,退出的群成員也無法通過捕獲其他成員的密文數(shù)據(jù)獲得消息,因為退出的成員沒有其他成員與服務器共享的解密密鑰。圖2端到服務器加密模式下的群聊通信模型端到服務器加密模型考慮的是主動攻擊威脅,通過身份認證和加密防御網(wǎng)絡竊聽者和第三方主動攻擊者。但用戶的所有消息都會被服務器知曉,如果服務器被攻破或者本身就是惡意的,則用戶的消息安全性不能保證。國內(nèi)用戶量最大的即時通信軟件“微信”就是采用端到服務器加密的通信模型。1.3端到端加密的通信模型同理,端到端加密的通信模型場景也可以概括為以下兩種:(1)單聊場景。如圖3所示,端到端加密實際上采用了兩層加密。內(nèi)層是僅對消息加密,消息加密密鑰通常是使用通信雙方的公鑰進行ECDH密鑰協(xié)商協(xié)議而生成。密鑰協(xié)商過程中服務器只是轉發(fā)相應的公鑰,因此服務器無法獲取消息加密密鑰。外層加密就是端到服務器加密模式,服務器與客戶端進行會話密鑰協(xié)商建立共享密鑰。內(nèi)層加密保護明文消息(服務器無法解密),外層加密保護通信雙方的身份信息,服務器解密這層消息后知道消息應該發(fā)給哪一個用戶。因為消息加密密鑰是由通信雙方客戶端上產(chǎn)生的公鑰協(xié)商得到,消息從一個客戶端發(fā)出后,只有擬定的另一端才能正常解密,所以稱為端到端加密。圖3端到端加密模式下的單聊通信模型(2)群聊場景。端到端加密模式下因為服務器無法解密出消息明文,因此不能像端到服務器加密那樣將消息明文重新加密轉發(fā)。此外,對于內(nèi)層加密,如果消息的發(fā)送者想利用與群組每個成員協(xié)商的消息加密密鑰進行加密,則發(fā)送端需要發(fā)送n-1條消息(假設群組成員總數(shù)為n),這樣會造成消息的發(fā)送端通信數(shù)據(jù)量太大。實際中是群組的每個成員首先生成一個自己發(fā)送消息時的消息加密密鑰Gk,其次將這個Gk發(fā)送給其他的群成員,如圖4所示。每個群成員都保存其他成員發(fā)過來的消息加密密鑰,形成一個密鑰庫。圖4端到端加密模式下群聊密鑰的發(fā)送如圖5所示,當某個成員要發(fā)送消息時,就利用之前生成的消息加密密鑰Gk加密消息,發(fā)送給服務器,由服務器轉發(fā)給其他成員。其他成員收到后,在密鑰庫中對應選擇出相應群成員的密鑰Gk進行解密。這樣消息發(fā)送端進行群聊時也只發(fā)送一條消息,由服務器實現(xiàn)多條消息的轉發(fā)。圖5端到端加密模式下的群聊通信模型端到端加密模型考慮的是運營商攻擊威脅,在這樣的通信模型下,運營商只知道用戶通信的通聯(lián)關系,而對用戶消息無法解密,進一步提高了用戶消息的安全性。國外主流的即時通信軟件如WhatsApp、Telegram等都采用端到端加密的通信模型,并且在單聊和群聊中的消息加密密鑰可以進行滾動迭代,每加密一條消息后,消息加密密鑰都會進行更換,可以做到加密的前向安全和后向安全,極大地提高了加密的安全強度。1.4安全性和復雜性比較對于即時通信模型的加密通信模型評測主要從安全性和復雜性2個方面出發(fā)來進行分析。(1)安全性。端到服務器加密模型中服務器能夠完全獲取通信用戶的所有消息,用戶的消息完全在服務器的掌控之下,如有需要,服務器可以對帶有敏感詞匯的用戶消息進行記錄、阻斷和追蹤等操作。在用戶隱私保護意識逐漸增強的情況下,國際主流即時通信軟件都先后采用了端到端加密模型。此時運營商服務器只能知曉用戶的通聯(lián)關系以及相關的元數(shù)據(jù)(如通聯(lián)時間、通聯(lián)消息條數(shù)等),無法知曉消息內(nèi)容。(2)復雜性。這兩種加密通信模型在安全協(xié)議實現(xiàn)的復雜性上有比較大的區(qū)別。這里主要分析密鑰生成機制。端到服務器加密中,客戶端和服務器通過密鑰協(xié)商協(xié)議或者公鑰加密會話密鑰的方式創(chuàng)建共享的消息加密密鑰,一般是一次會話(客戶端上線一次)就創(chuàng)建一次密鑰,當用戶的客戶端更新后(比如更換了設備或者在同一設備上重新安裝了客戶端軟件),客戶端和服務器將重新創(chuàng)建出新的消息加密密鑰。在該客戶端更新期間如果有別的用戶發(fā)來信息,由于服務器能獲取明文消息,當新的客戶端上線后,服務器只需要利用和這個客戶端新創(chuàng)建的密鑰加密該明文消息并發(fā)送給該客戶端即可,且不會出現(xiàn)消息無法解密的情況。端到端加密模型中密鑰更新時的情況則相對復雜。實際在端到端加密模型中,每個端用于密鑰協(xié)商的公私鑰對是客戶端安裝后隨機生成的,因此當用戶更換設備或者在同一設備上更新客戶端后,原來的公私鑰對被刪除,客戶端會將新產(chǎn)生的公鑰上傳到服務器。在客戶端更新期間,若有其他用戶給該客戶端發(fā)送信息,則消息加密密鑰仍是由舊的公鑰計算導出的。該客戶端安裝成功后,服務器將這條消息發(fā)送過來,該客戶端會發(fā)現(xiàn)無法解密。筆者經(jīng)過實際測試發(fā)現(xiàn),國際上主流的端到端加密的即時通信軟件對這種情況下的消息有不同的處理方式。WhatsApp處理得比較完善,若新的客戶端上線后發(fā)現(xiàn)收到的消息無法解密,則會反饋給服務器,服務器會要求消息的發(fā)送方使用該客戶端的新的公鑰導出的密鑰重新進行加密發(fā)送,這樣該客戶端作為消息的收方不會丟失消息。其他如Telegram、Signal等軟件則會丟失這樣的消息,并且由于客戶端更新密鑰,消息的發(fā)送方會收到服務器的提示消息,必須重新建立一個新的會話才能和該更新后的客戶端進行端到端加密通信。在群聊的場景下可以看出,群組會話密鑰的創(chuàng)建也是比較復雜的,每個群組成員都要存儲其他群組成員發(fā)送的消息加密密鑰,每個用戶發(fā)送群組消息時使用的加密密鑰都是不同的,密鑰的存儲和管理也更復雜。2多設備端在線通信模型一部分即時通信運營商為了提高軟件的用戶體驗和方便性,允許一個用戶在多個設備端同時登錄相同的賬戶,比如允許用戶同時在PC端、平板端和智能手機端進行登錄。這時用戶所收發(fā)的消息都會即時地同步到這些設備端,方便用戶進行通信。此時,不同的加密模型下的通信方式有很大的不同。2.1端到服務器加密情形端到服務器加密模型下,服務器只需要管理同一用戶的不同設備,并且與這些設備分別建立共享的消息加密密鑰。如圖6所示,假設用戶A和用戶B進行通信,用戶A和用戶B都各自登錄了多個設備端。用戶A給用戶B發(fā)送一條加密消息,服務器收到用戶A的消息后,進行解密,然后將這條消息加密并轉發(fā)給用戶A和用戶B的各個設備端,這樣這兩個用戶的每個設備端都完成了消息同步。用戶的每個設備都能獨立上線,比如只登陸PC端或者智能手機端。圖6端到服務器加密模式下的多設備端通信模型2.2端到端加密模式情形對于端到端加密,情形則比較復雜。端到端加密本質上是由加密密鑰在一對一的設備之間創(chuàng)建。同樣假設用戶A和用戶B進行通信,用戶A和用戶B都各自登錄了多個設備端。由于這些設備端上的公私鑰對彼此不同,而用戶A在發(fā)送消息時就必須選定其中一個設備端的公鑰進行密鑰協(xié)商導出消息加密密鑰。對A來說,若用戶B有B1和B2兩個設備端,則A的客戶端首先需要知道用戶B有這兩個設備端在線,其次將這條消息分別用與這兩個設備端協(xié)商的密鑰加密發(fā)送。假如此時用戶A自身也有多個設備端在線,則用戶A發(fā)送消息的客戶端還需要將這條消息加密發(fā)送給自己的在線設備端。這樣的協(xié)議過于復雜,而且每個客戶端還需要隨時保存自己賬號以及對方賬號的設備端登錄狀態(tài)(已下線的設備就不用發(fā)送消息了),此時,發(fā)送一條消息帶來的數(shù)據(jù)量較大,這為協(xié)議的設計帶來了非常大的困難。因此,目前的端到端加密方式的即時通信軟件多數(shù)不支持多設備端的在線通信。從上面的分析可知,要是用戶的多設備端都獨立上線,則協(xié)議的設計比較困難。為了使端到端加密的多設備端在線通信成為可能,設計了下面的通信模型。如圖7所示,用E(Key,M)表示使用加密算法E和密鑰Key對消息M進行加密。該通信模型中以用戶的智能手機端為兩端的通信主設備,即用戶A和用戶B通信時,消息加密密鑰都以對方智能手機端的公鑰進行密鑰協(xié)商并進行導出。用戶A同時有多個設備端在線,主設備之外的設備稱為從設備,比如從設備可以是PC端,也可以是平板端。主設備收到對方主設備發(fā)來的信息后進行正常解密得到消息明文,然后主設備與從設備之間利用端到端加密將該消息進行加密發(fā)送,從設備收到消息后進行解密,從而完成消息的多設備端同步。當用戶A的某個從設備發(fā)送消息時,也是首先將消息發(fā)送到用戶A的主設備,其次主設備解密后再將消息重新加密發(fā)送至用戶B的主設備。類似地,用戶B的主設備再將消息發(fā)送至用戶B的從設備。圖7端到端加密模式下的多設備端通信模型這樣設計的通信模型需要通信雙方的主設備都要在線,因為其他設備的消息不論收發(fā)都是通過主設備進行通信的。實際場景中很多用戶是為了消息編輯的方便而使用PC端,智能手機端也不會離線,因此這樣的設計是比較實用的。該模型中用戶設備只是與己方主設備進行通信,避免了己方的設備與對方的所有設備進行密鑰協(xié)商,較大地減少了對多設備在線狀態(tài)的感知需求和密鑰協(xié)商的復雜性。3
通信模型的適用場景建議在端到服務器加密模型中,服務器能解密所有用戶的密文消息,如有必要可對用戶通信的消息內(nèi)容進行查找和審計等操作。用戶消息的明文可在服務器端進行存儲,新加入用戶設備若是獲取到相應的權限,可以很方便地進行歷史聊天記錄的獲取,只需要用與新設備協(xié)商生成的消息加密密鑰加密之前的明文消息并發(fā)送即可,比如一個工作群進來了一個新成員,需要了解這個工作群之前消息中的工作內(nèi)容,這時就需要獲取群中的歷史消息。因此,端到服務器加密模型比較適合于一個公司內(nèi)部的即時通信,特別是公司對員工交流的工作消息內(nèi)容有審計的必要時,該加密模型可以滿足這樣的需求。端到端加密模型中服
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- KOL社交合作協(xié)議
- 中小企業(yè)數(shù)字化轉型運營方案
- 長沙2024年09版小學3年級上冊英語第三單元真題試卷
- 教育信息化經(jīng)費管理制度
- 小學語文課程評價與反饋方案
- 綠色停車位建設方案
- 餐飲行業(yè)食品安全制度
- 信訪崗位干部培養(yǎng)機制的探索
- 學校消防安全宣傳教育活動方案3篇
- 商場疫情防控實施方案
- 太陽系與八大行星英語教學課件
- 未成年人圖書館文獻分類排架講座(修訂)概要課件
- 教科版五年級科學上冊(風的作用) 教學課件
- 鹽酸-危險化學品安全標簽
- 部編版道德與法治三年級上冊知識點
- SB/T 10843-2012金屬組合貨架
- GB/T 4337-2015金屬材料疲勞試驗旋轉彎曲方法
- GB/T 40120-2021農(nóng)業(yè)灌溉設備灌溉用熱塑性可折疊軟管技術規(guī)范和試驗方法
- 各專業(yè)試驗報告-nvh m301s1樣車測試報告
- 化工課件-S-Zorb裝置運行特點及故障處理
- 頭發(fā)及頭皮知識講述資料課件
評論
0/150
提交評論