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