您所在的位置: 首頁 >
新聞資訊 >
技術前沿 >
即時通信的安全加密通信模型研究
摘? 要
即時通信已經廣泛應用于人們的日常生活和工作之中,其安全性和易用性是使用者關心的核心問題。分析了國內外主流即時通信的安全通信模型,并詳細討論了其中的消息加密和發(fā)送流程。易用性方面,給出了不同加密模式下群聊和多設備端在線場景中的消息轉發(fā)原理,設計了端到端加密模式下的安全通信模型。最后分析了各種安全通信模型的適用場景,并提出了相應的選用建議。
內容目錄:
1 即時通信的通信模型
1.1 威脅模型
1.2 端到服務器加密的通信模型
1.3 端到端加密的通信模型
1.4 安全性和復雜性比較
2 多設備端在線通信模型
2.1 端到服務器加密情形
2.2 端到端加密模式情形
3 通信模型的適用場景建議
4 結? 語
當前各種即時通信軟件被人們廣泛使用,國內以微信為代表,國外以 WhatsApp、Telegram 為代表,這些即時通信軟件的用戶量都超過了 10 億。即時通信幾乎完全取代了原來的短信服務,為人們的日常工作和生活提供了信息交互、消息發(fā)布、群組通信甚至支付功能,滿足了絕大多數人的溝通需求。正是因為每天的消息收發(fā)總量數以億計,即時通信用戶越來越關注消息的安全性。此外,考慮到用戶體驗,即時通信軟件的易用性也是至關重要的,比如是否支持群聊,是否支持多設備端同時在線,是否支持歷史消息獲取等。
眾所周知,即時通信的安全性主要由密碼學技術來實現,其中身份認證和消息加密是最基本的安全技術。但更關鍵的是如何在現實應用場景中正確使用這些安全技術來實現既定的安全目標。不同的即時通信軟件雖然都采用了身份認證和加密技術,但采用的威脅模型卻有比較大的差別,因此它們的消息加密模式和安全級別也不同。斯諾登事件揭露了國外專門機構對個人通信的監(jiān)控問題后,即時通信的消息安全性越來越受到人們的重視,學術界對即時通信的安全性也開展了一些研究。國內的瞿曉海等人 研究了微信的加密通信原理,分析了微信的登錄驗證流程和加密密鑰生成原理。萬園春等人 研究了微信交互協議和加密模式,并分析了密鑰生成時的隨機數安全性。國外的學者對即時通信的安全協議研究得比較多,Alexander,Bian 和 Raimondo等人分別分析了同步通信協議 Off-the-Record 的認證、群聊通信以及安全性 [3-5]。Cohn-Gordon 等人 對目前廣泛使用的端到端加密協議 signal 進行了形式化分析。Frosch 等人從安全協議角度評估了即時通信軟件 textsecure 的安全性。Kobeissi 等人利用符號化計算的方法對常見的即時通信協議進行了安全性的自動化驗證。Marlinspike 等人對端到端加密中的密鑰交換協議 X3DH 進行了詳細的闡述。Johansen 等人從用戶注冊、身份認證、消息加密層面比較了幾種國外主流的即時通信軟件,給出了針對安全性和易用性的一些改進建議。
本文將著重研究主流即時通信中的兩類安全通信模型,一種是端到服務器加密模式下的安全通信模型,另一種是端到端加密模式下的安全通信模型。本文將分析兩種安全通信模型在用戶的單聊(一對一聊天)、群聊(群組聊天)以及多設備端在線(一個用戶同時登錄不同類型的設備端)3 種主要場景下的聊天消息加密以及客戶端發(fā)送消息和服務器轉發(fā)消息時的差異性,并設計端到端加密模式下的多設備端同時在線通信的實用化模型。
1、即時通信的通信模型
1.1 威脅模型
即時通信是一個包含服務器(運營商)和多個客戶端(用戶)在內的網絡通信系統(tǒng)。根據攻擊來源和敵手能力可以分為以下 3 種威脅模型:
(1)被動攻擊。該模型中敵手可以記錄下一切從網絡中獲取的信息,包括加密的消息數據、消息收發(fā)時間、密鑰協商時發(fā)送的公鑰等。
(2)主動攻擊。該模型中敵手除了可以記錄網絡上獲取的信息,還具有消息篡改、延遲、阻斷及實施中間人攻擊等能力。
(3)運營商攻擊。服務器參與用戶消息的加密、解密以及轉發(fā)等過程,服務器也可能作為攻擊方,獲取用戶的身份和聊天等各種信息。
1.2 端到服務器加密的通信模型
端到服務器加密的通信模型場景可以概括為以下兩種:
(1)單聊場景。如圖 1 所示,端到服務器加密是指每個客戶端都與服務器建立加密通道(一般是通過密鑰協商協議或者客戶端產生會話密鑰后,用服務器的公鑰進行加密,發(fā)送給服務器的方式建立共享密鑰),用戶 A 要與用戶 B 通信,用戶 A 的客戶端將發(fā)送的消息經過共享密鑰(服務器與用戶 A的共享密鑰 KAS)加密后發(fā)送給服務器,服務器利用KAS 解密后,再將消息利用共享密鑰(服務器與用戶B 的共享密鑰 KBS)發(fā)送給目標用戶 B 的客戶端。
圖 1 端到服務器加密模式下的單聊通信模型
(2)群聊場景:如圖 2 所示,在群組通信場景下,群內的一個成員 A 將消息也通過與服務器的共享密鑰 KAS 加密后發(fā)送給服務器,服務器解密得到明文消息后,再將消息通過服務器與每個成員的共享密鑰加密發(fā)送給群里的每個成員,本質上與單聊的加密模式沒有區(qū)別。群內的成員退出后,服務器將不會轉發(fā)群內的消息,退出的群成員也無法通過捕獲其他成員的密文數據獲得消息,因為退出的成員沒有其他成員與服務器共享的解密密鑰。
圖 2 端到服務器加密模式下的群聊通信模型
端到服務器加密模型考慮的是主動攻擊威脅,通過身份認證和加密防御網絡竊聽者和第三方主動攻擊者。但用戶的所有消息都會被服務器知曉,如果服務器被攻破或者本身就是惡意的,則用戶的消息安全性不能保證。國內用戶量最大的即時通信軟件“微信”就是采用端到服務器加密的通信模型。
1.3 端到端加密的通信模型
同理,端到端加密的通信模型場景也可以概括為以下兩種:
(1)單聊場景。如圖 3 所示,端到端加密實際上采用了兩層加密。內層是僅對消息加密,消息加密密鑰通常是使用通信雙方的公鑰進行 ECDH 密鑰協商協議而生成。密鑰協商過程中服務器只是轉發(fā)相應的公鑰,因此服務器無法獲取消息加密密鑰。外層加密就是端到服務器加密模式,服務器與客戶端進行會話密鑰協商建立共享密鑰。內層加密保護明文消息(服務器無法解密),外層加密保護通信雙方的身份信息,服務器解密這層消息后知道消息應該發(fā)給哪一個用戶。因為消息加密密鑰是由通信雙方客戶端上產生的公鑰協商得到,消息從一個客戶端發(fā)出后,只有擬定的另一端才能正常解密,所以稱為端到端加密。
圖 3 端到端加密模式下的單聊通信模型
(2)群聊場景。端到端加密模式下因為服務器無法解密出消息明文,因此不能像端到服務器加密那樣將消息明文重新加密轉發(fā)。此外,對于內層加密,如果消息的發(fā)送者想利用與群組每個成員協商的消息加密密鑰進行加密,則發(fā)送端需要發(fā)送n-1條消息(假設群組成員總數為 n),這樣會造成消息的發(fā)送端通信數據量太大。實際中是群組的每個成員首先生成一個自己發(fā)送消息時的消息加密密鑰Gk,其次將這個 Gk 發(fā)送給其他的群成員,如圖 4所示。每個群成員都保存其他成員發(fā)過來的消息加密密鑰,形成一個密鑰庫。
圖 4 端到端加密模式下群聊密鑰的發(fā)送
如圖 5 所示,當某個成員要發(fā)送消息時,就利用之前生成的消息加密密鑰 Gk 加密消息,發(fā)送給服務器,由服務器轉發(fā)給其他成員。其他成員收到后,在密鑰庫中對應選擇出相應群成員的密鑰 Gk進行解密。這樣消息發(fā)送端進行群聊時也只發(fā)送一條消息,由服務器實現多條消息的轉發(fā)。
圖 5 端到端加密模式下的群聊通信模型
端到端加密模型考慮的是運營商攻擊威脅,在這樣的通信模型下,運營商只知道用戶通信的通聯關系,而對用戶消息無法解密,進一步提高了用戶消息的安全性。國外主流的即時通信軟件如WhatsApp、Telegram 等都采用端到端加密的通信模型,并且在單聊和群聊中的消息加密密鑰可以進行滾動迭代,每加密一條消息后,消息加密密鑰都會進行更換,可以做到加密的前向安全和后向安全,極大地提高了加密的安全強度。
1.4 安全性和復雜性比較
對于即時通信模型的加密通信模型評測主要從安全性和復雜性 2 個方面出發(fā)來進行分析。
(1)安全性。端到服務器加密模型中服務器能夠完全獲取通信用戶的所有消息,用戶的消息完全在服務器的掌控之下,如有需要,服務器可以對帶有敏感詞匯的用戶消息進行記錄、阻斷和追蹤等操作。在用戶隱私保護意識逐漸增強的情況下,國際主流即時通信軟件都先后采用了端到端加密模型。此時運營商服務器只能知曉用戶的通聯關系以及相關的元數據(如通聯時間、通聯消息條數等),無法知曉消息內容。
(2)復雜性。這兩種加密通信模型在安全協議實現的復雜性上有比較大的區(qū)別。這里主要分析密鑰生成機制。端到服務器加密中,客戶端和服務器通過密鑰協商協議或者公鑰加密會話密鑰的方式創(chuàng)建共享的消息加密密鑰,一般是一次會話(客戶端上線一次)就創(chuàng)建一次密鑰,當用戶的客戶端更新后(比如更換了設備或者在同一設備上重新安裝了客戶端軟件),客戶端和服務器將重新創(chuàng)建出新的消息加密密鑰。在該客戶端更新期間如果有別的用戶發(fā)來信息,由于服務器能獲取明文消息,當新的客戶端上線后,服務器只需要利用和這個客戶端新創(chuàng)建的密鑰加密該明文消息并發(fā)送給該客戶端即可,且不會出現消息無法解密的情況。
端到端加密模型中密鑰更新時的情況則相對復雜。實際在端到端加密模型中,每個端用于密鑰協商的公私鑰對是客戶端安裝后隨機生成的,因此當用戶更換設備或者在同一設備上更新客戶端后,原來的公私鑰對被刪除,客戶端會將新產生的公鑰上傳到服務器。在客戶端更新期間,若有其他用戶給該客戶端發(fā)送信息,則消息加密密鑰仍是由舊的公鑰計算導出的。該客戶端安裝成功后,服務器將這條消息發(fā)送過來,該客戶端會發(fā)現無法解密。筆者經過實際測試發(fā)現,國際上主流的端到端加密的即時通信軟件對這種情況下的消息有不同的處理方式。WhatsApp 處理得比較完善,若新的客戶端上線后發(fā)現收到的消息無法解密,則會反饋給服務器,服務器會要求消息的發(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ā)送消息時就必須選定其中一個設備端的公鑰進行密鑰協商導出消息加密密鑰。對 A 來說,若用戶 B 有 B1 和 B2 兩個設備端,則 A 的客戶端首先需要知道用戶 B 有這兩個設備端在線,其次將這條消息分別用與這兩個設備端協商的密鑰加密發(fā)送。假如此時用戶 A 自身也有多個設備端在線,則用戶 A 發(fā)送消息的客戶端還需要將這條消息加密發(fā)送給自己的在線設備端。這樣的協議過于復雜,而且每個客戶端還需要隨時保存自己賬號以及對方賬號的設備端登錄狀態(tài)(已下線的設備就不用發(fā)送消息了),此時,發(fā)送一條消息帶來的數據量較大,這為協議的設計帶來了非常大的困難。因此,目前的端到端加密方式的即時通信軟件多數不支持多設備端的在線通信。
從上面的分析可知,要是用戶的多設備端都獨立上線,則協議的設計比較困難。為了使端到端加密的多設備端在線通信成為可能,設計了下面的通信模型。如圖 7 所示,用 E(Key,M) 表示使用加密算法 E 和密鑰 Key 對消息 M 進行加密。該通信模型中以用戶的智能手機端為兩端的通信主設備,即用戶 A 和用戶 B 通信時,消息加密密鑰都以對方智能手機端的公鑰進行密鑰協商并進行導出。用戶 A 同時有多個設備端在線,主設備之外的設備稱為從設備,比如從設備可以是 PC 端,也可以是平板端。主設備收到對方主設備發(fā)來的信息后進行正常解密得到消息明文,然后主設備與從設備之間利用端到端加密將該消息進行加密發(fā)送,從設備收到消息后進行解密,從而完成消息的多設備端同步。當用戶A 的某個從設備發(fā)送消息時,也是首先將消息發(fā)送到用戶 A 的主設備,其次主設備解密后再將消息重新加密發(fā)送至用戶 B 的主設備。類似地,用戶 B 的主設備再將消息發(fā)送至用戶 B 的從設備。
圖 7 端到端加密模式下的多設備端通信模型
這樣設計的通信模型需要通信雙方的主設備都要在線,因為其他設備的消息不論收發(fā)都是通過主設備進行通信的。實際場景中很多用戶是為了消息編輯的方便而使用 PC 端,智能手機端也不會離線,因此這樣的設計是比較實用的。該模型中用戶設備只是與己方主設備進行通信,避免了己方的設備與對方的所有設備進行密鑰協商,較大地減少了對多設備在線狀態(tài)的感知需求和密鑰協商的復雜性。
3、通信模型的適用場景建議
在端到服務器加密模型中,服務器能解密所有用戶的密文消息,如有必要可對用戶通信的消息內容進行查找和審計等操作。用戶消息的明文可在服務器端進行存儲,新加入用戶設備若是獲取到相應的權限,可以很方便地進行歷史聊天記錄的獲取,只需要用與新設備協商生成的消息加密密鑰加密之前的明文消息并發(fā)送即可,比如一個工作群進來了一個新成員,需要了解這個工作群之前消息中的工作內容,這時就需要獲取群中的歷史消息。因此,端到服務器加密模型比較適合于一個公司內部的即時通信,特別是公司對員工交流的工作消息內容有審計的必要時,該加密模型可以滿足這樣的需求。
端到端加密模型中服務器只能作為密文消息的轉發(fā)者,無法解密出明文的消息內容,通常情況下服務器甚至不存儲已經轉發(fā)成功的用戶消息。此外,用戶的新設備上線后也無法獲取之前的聊天記錄。但端到端加密模型對用戶的隱私保護更好,且采用的安全協議可以實現消息加密密鑰的頻繁更換,大大提高了用戶消息的安全性,比較適用于通用化的即時通信場景。
4、結? 語
本文主要研究了即時通訊的兩類安全通信模型,詳細分析了它們的單聊和群聊通信的加密和消息收發(fā)機制,并從實現層面比較了它們的安全性和復雜性。對于端到端加密模式的多設備端在線通信場景,設計了實用化的多設備端通信模型。本文最后對這兩類安全通信模型的適用場景進行了分析,并給出了選用建議。
引用格式:廖思捷 , 范佳 , 王迪 , 等 . 即時通信的安全加密通信模型研究 [J]. 通信技術 ,2023,56(2):207-213.
作者簡介 >>>廖思捷,女,碩士,工程師,主要研究方向為數據安全、區(qū)塊鏈技術;范? 佳,女,博士,高級工程師,主要研究方向為密碼學、信息安全;王? 迪,男,碩士,工程師,主要研究方向為區(qū)塊鏈、軟件工程;唐? 晉,男,碩士,高級工程師,主要研究方向為網絡安全、數據安全;白? 健,男,碩士,高級工程師,主要研究方向為數據安全、區(qū)塊鏈技術;楊春霞,女,碩士,工程師,主要研究方向為數據安全、區(qū)塊鏈技術。選自《通信技術》2023年第2期(為便于排版,已省去原文參考文獻)
來源:信息安全與通信保密雜志社