即時(shí)通信的安全加密通信模型研究_第1頁
即時(shí)通信的安全加密通信模型研究_第2頁
即時(shí)通信的安全加密通信模型研究_第3頁
即時(shí)通信的安全加密通信模型研究_第4頁
即時(shí)通信的安全加密通信模型研究_第5頁
已閱讀5頁,還剩8頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

當(dāng)前各種即時(shí)通信軟件被人們廣泛使用,國(guó)內(nèi)以微信為代表,國(guó)外以WhatsApp、Telegram為代表,這些即時(shí)通信軟件的用戶量都超過了10億。即時(shí)通信幾乎完全取代了原來的短信服務(wù),為人們的日常工作和生活提供了信息交互、消息發(fā)布、群組通信甚至支付功能,滿足了絕大多數(shù)人的溝通需求。正是因?yàn)槊刻斓南⑹瞻l(fā)總量數(shù)以億計(jì),即時(shí)通信用戶越來越關(guān)注消息的安全性。此外,考慮到用戶體驗(yàn),即時(shí)通信軟件的易用性也是至關(guān)重要的,比如是否支持群聊,是否支持多設(shè)備端同時(shí)在線,是否支持歷史消息獲取等。眾所周知,即時(shí)通信的安全性主要由密碼學(xué)技術(shù)來實(shí)現(xiàn),其中身份認(rèn)證和消息加密是最基本的安全技術(shù)。但更關(guān)鍵的是如何在現(xiàn)實(shí)應(yīng)用場(chǎng)景中正確使用這些安全技術(shù)來實(shí)現(xiàn)既定的安全目標(biāo)。不同的即時(shí)通信軟件雖然都采用了身份認(rèn)證和加密技術(shù),但采用的威脅模型卻有比較大的差別,因此它們的消息加密模式和安全級(jí)別也不同。斯諾登事件揭露了國(guó)外專門機(jī)構(gòu)對(duì)個(gè)人通信的監(jiān)控問題后,即時(shí)通信的消息安全性越來越受到人們的重視,學(xué)術(shù)界對(duì)即時(shí)通信的安全性也開展了一些研究。國(guó)內(nèi)的瞿曉海等人

研究了微信的加密通信原理,分析了微信的登錄驗(yàn)證流程和加密密鑰生成原理。萬園春等人研究了微信交互協(xié)議和加密模式,并分析了密鑰生成時(shí)的隨機(jī)數(shù)安全性。國(guó)外的學(xué)者對(duì)即時(shí)通信的安全協(xié)議研究得比較多,Alexander,分別分析了同步通信協(xié)議Off-the-Record的認(rèn)證、群聊通信以及安全性。對(duì)目前廣泛使用的端到端加密協(xié)議signal進(jìn)行了形式化分析。從安全協(xié)議角度評(píng)估了即時(shí)通信軟件textsecure的安全性。利用符號(hào)化計(jì)算的方法對(duì)常見的即時(shí)通信協(xié)議進(jìn)行了安全性的自動(dòng)化驗(yàn)證。Marlinspike等人對(duì)端到端加密中的密鑰交換協(xié)議X3DH進(jìn)行了詳細(xì)的闡述。從用戶注冊(cè)、身份認(rèn)證、消息加密層面比較了幾種國(guó)外主流的即時(shí)通信軟件,給出了針對(duì)安全性和易用性的一些改進(jìn)建議。本文將著重研究主流即時(shí)通信中的兩類安全通信模型,一種是端到服務(wù)器加密模式下的安全通信模型,另一種是端到端加密模式下的安全通信模型。本文將分析兩種安全通信模型在用戶的單聊(一對(duì)一聊天)、群聊(群組聊天)以及多設(shè)備端在線(一個(gè)用戶同時(shí)登錄不同類型的設(shè)備端)3種主要場(chǎng)景下的聊天消息加密以及客戶端發(fā)送消息和服務(wù)器轉(zhuǎn)發(fā)消息時(shí)的差異性,并設(shè)計(jì)端到端加密模式下的多設(shè)備端同時(shí)在線通信的實(shí)用化模型。1即時(shí)通信的通信模型1.1威脅模型即時(shí)通信是一個(gè)包含服務(wù)器(運(yùn)營(yíng)商)和多個(gè)客戶端(用戶)在內(nèi)的網(wǎng)絡(luò)通信系統(tǒng)。根據(jù)攻擊來源和敵手能力可以分為以下3種威脅模型:(1)被動(dòng)攻擊。該模型中敵手可以記錄下一切從網(wǎng)絡(luò)中獲取的信息,包括加密的消息數(shù)據(jù)、消息收發(fā)時(shí)間、密鑰協(xié)商時(shí)發(fā)送的公鑰等。(2)主動(dòng)攻擊。該模型中敵手除了可以記錄網(wǎng)絡(luò)上獲取的信息,還具有消息篡改、延遲、阻斷及實(shí)施中間人攻擊等能力。(3)運(yùn)營(yíng)商攻擊。服務(wù)器參與用戶消息的加密、解密以及轉(zhuǎn)發(fā)等過程,服務(wù)器也可能作為攻擊方,獲取用戶的身份和聊天等各種信息。1.2端到服務(wù)器加密的通信模型端到服務(wù)器加密的通信模型場(chǎng)景可以概括為以下兩種:(1)單聊場(chǎng)景。如圖1所示,端到服務(wù)器加密是指每個(gè)客戶端都與服務(wù)器建立加密通道(一般是通過密鑰協(xié)商協(xié)議或者客戶端產(chǎn)生會(huì)話密鑰后,用服務(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)群聊場(chǎng)景:如圖2所示,在群組通信場(chǎng)景下,群內(nèi)的一個(gè)成員A將消息也通過與服務(wù)器的共享密鑰KAS加密后發(fā)送給服務(wù)器,服務(wù)器解密得到明文消息后,再將消息通過服務(wù)器與每個(gè)成員的共享密鑰加密發(fā)送給群里的每個(gè)成員,本質(zhì)上與單聊的加密模式?jīng)]有區(qū)別。群內(nèi)的成員退出后,服務(wù)器將不會(huì)轉(zhuǎn)發(fā)群內(nèi)的消息,退出的群成員也無法通過捕獲其他成員的密文數(shù)據(jù)獲得消息,因?yàn)橥顺龅某蓡T沒有其他成員與服務(wù)器共享的解密密鑰。圖2端到服務(wù)器加密模式下的群聊通信模型端到服務(wù)器加密模型考慮的是主動(dòng)攻擊威脅,通過身份認(rèn)證和加密防御網(wǎng)絡(luò)竊聽者和第三方主動(dòng)攻擊者。但用戶的所有消息都會(huì)被服務(wù)器知曉,如果服務(wù)器被攻破或者本身就是惡意的,則用戶的消息安全性不能保證。國(guó)內(nèi)用戶量最大的即時(shí)通信軟件“微信”就是采用端到服務(wù)器加密的通信模型。1.3端到端加密的通信模型同理,端到端加密的通信模型場(chǎng)景也可以概括為以下兩種:(1)單聊場(chǎng)景。如圖3所示,端到端加密實(shí)際上采用了兩層加密。內(nèi)層是僅對(duì)消息加密,消息加密密鑰通常是使用通信雙方的公鑰進(jìn)行ECDH密鑰協(xié)商協(xié)議而生成。密鑰協(xié)商過程中服務(wù)器只是轉(zhuǎn)發(fā)相應(yīng)的公鑰,因此服務(wù)器無法獲取消息加密密鑰。外層加密就是端到服務(wù)器加密模式,服務(wù)器與客戶端進(jìn)行會(huì)話密鑰協(xié)商建立共享密鑰。內(nèi)層加密保護(hù)明文消息(服務(wù)器無法解密),外層加密保護(hù)通信雙方的身份信息,服務(wù)器解密這層消息后知道消息應(yīng)該發(fā)給哪一個(gè)用戶。因?yàn)橄⒓用苊荑€是由通信雙方客戶端上產(chǎn)生的公鑰協(xié)商得到,消息從一個(gè)客戶端發(fā)出后,只有擬定的另一端才能正常解密,所以稱為端到端加密。圖3端到端加密模式下的單聊通信模型(2)群聊場(chǎng)景。端到端加密模式下因?yàn)榉?wù)器無法解密出消息明文,因此不能像端到服務(wù)器加密那樣將消息明文重新加密轉(zhuǎn)發(fā)。此外,對(duì)于內(nèi)層加密,如果消息的發(fā)送者想利用與群組每個(gè)成員協(xié)商的消息加密密鑰進(jìn)行加密,則發(fā)送端需要發(fā)送n-1條消息(假設(shè)群組成員總數(shù)為n),這樣會(huì)造成消息的發(fā)送端通信數(shù)據(jù)量太大。實(shí)際中是群組的每個(gè)成員首先生成一個(gè)自己發(fā)送消息時(shí)的消息加密密鑰Gk,其次將這個(gè)Gk發(fā)送給其他的群成員,如圖4所示。每個(gè)群成員都保存其他成員發(fā)過來的消息加密密鑰,形成一個(gè)密鑰庫。圖4端到端加密模式下群聊密鑰的發(fā)送如圖5所示,當(dāng)某個(gè)成員要發(fā)送消息時(shí),就利用之前生成的消息加密密鑰Gk加密消息,發(fā)送給服務(wù)器,由服務(wù)器轉(zhuǎn)發(fā)給其他成員。其他成員收到后,在密鑰庫中對(duì)應(yīng)選擇出相應(yīng)群成員的密鑰Gk進(jìn)行解密。這樣消息發(fā)送端進(jìn)行群聊時(shí)也只發(fā)送一條消息,由服務(wù)器實(shí)現(xiàn)多條消息的轉(zhuǎn)發(fā)。圖5端到端加密模式下的群聊通信模型端到端加密模型考慮的是運(yùn)營(yíng)商攻擊威脅,在這樣的通信模型下,運(yùn)營(yíng)商只知道用戶通信的通聯(lián)關(guān)系,而對(duì)用戶消息無法解密,進(jìn)一步提高了用戶消息的安全性。國(guó)外主流的即時(shí)通信軟件如WhatsApp、Telegram等都采用端到端加密的通信模型,并且在單聊和群聊中的消息加密密鑰可以進(jìn)行滾動(dòng)迭代,每加密一條消息后,消息加密密鑰都會(huì)進(jìn)行更換,可以做到加密的前向安全和后向安全,極大地提高了加密的安全強(qiáng)度。1.4安全性和復(fù)雜性比較對(duì)于即時(shí)通信模型的加密通信模型評(píng)測(cè)主要從安全性和復(fù)雜性2個(gè)方面出發(fā)來進(jìn)行分析。(1)安全性。端到服務(wù)器加密模型中服務(wù)器能夠完全獲取通信用戶的所有消息,用戶的消息完全在服務(wù)器的掌控之下,如有需要,服務(wù)器可以對(duì)帶有敏感詞匯的用戶消息進(jìn)行記錄、阻斷和追蹤等操作。在用戶隱私保護(hù)意識(shí)逐漸增強(qiáng)的情況下,國(guó)際主流即時(shí)通信軟件都先后采用了端到端加密模型。此時(shí)運(yùn)營(yíng)商服務(wù)器只能知曉用戶的通聯(lián)關(guān)系以及相關(guān)的元數(shù)據(jù)(如通聯(lián)時(shí)間、通聯(lián)消息條數(shù)等),無法知曉消息內(nèi)容。(2)復(fù)雜性。這兩種加密通信模型在安全協(xié)議實(shí)現(xiàn)的復(fù)雜性上有比較大的區(qū)別。這里主要分析密鑰生成機(jī)制。端到服務(wù)器加密中,客戶端和服務(wù)器通過密鑰協(xié)商協(xié)議或者公鑰加密會(huì)話密鑰的方式創(chuàng)建共享的消息加密密鑰,一般是一次會(huì)話(客戶端上線一次)就創(chuàng)建一次密鑰,當(dāng)用戶的客戶端更新后(比如更換了設(shè)備或者在同一設(shè)備上重新安裝了客戶端軟件),客戶端和服務(wù)器將重新創(chuàng)建出新的消息加密密鑰。在該客戶端更新期間如果有別的用戶發(fā)來信息,由于服務(wù)器能獲取明文消息,當(dāng)新的客戶端上線后,服務(wù)器只需要利用和這個(gè)客戶端新創(chuàng)建的密鑰加密該明文消息并發(fā)送給該客戶端即可,且不會(huì)出現(xiàn)消息無法解密的情況。端到端加密模型中密鑰更新時(shí)的情況則相對(duì)復(fù)雜。實(shí)際在端到端加密模型中,每個(gè)端用于密鑰協(xié)商的公私鑰對(duì)是客戶端安裝后隨機(jī)生成的,因此當(dāng)用戶更換設(shè)備或者在同一設(shè)備上更新客戶端后,原來的公私鑰對(duì)被刪除,客戶端會(huì)將新產(chǎn)生的公鑰上傳到服務(wù)器。在客戶端更新期間,若有其他用戶給該客戶端發(fā)送信息,則消息加密密鑰仍是由舊的公鑰計(jì)算導(dǎo)出的。該客戶端安裝成功后,服務(wù)器將這條消息發(fā)送過來,該客戶端會(huì)發(fā)現(xiàn)無法解密。筆者經(jīng)過實(shí)際測(cè)試發(fā)現(xiàn),國(guó)際上主流的端到端加密的即時(shí)通信軟件對(duì)這種情況下的消息有不同的處理方式。WhatsApp處理得比較完善,若新的客戶端上線后發(fā)現(xiàn)收到的消息無法解密,則會(huì)反饋給服務(wù)器,服務(wù)器會(huì)要求消息的發(fā)送方使用該客戶端的新的公鑰導(dǎo)出的密鑰重新進(jìn)行加密發(fā)送,這樣該客戶端作為消息的收方不會(huì)丟失消息。其他如Telegram、Signal等軟件則會(huì)丟失這樣的消息,并且由于客戶端更新密鑰,消息的發(fā)送方會(huì)收到服務(wù)器的提示消息,必須重新建立一個(gè)新的會(huì)話才能和該更新后的客戶端進(jìn)行端到端加密通信。在群聊的場(chǎng)景下可以看出,群組會(huì)話密鑰的創(chuàng)建也是比較復(fù)雜的,每個(gè)群組成員都要存儲(chǔ)其他群組成員發(fā)送的消息加密密鑰,每個(gè)用戶發(fā)送群組消息時(shí)使用的加密密鑰都是不同的,密鑰的存儲(chǔ)和管理也更復(fù)雜。2多設(shè)備端在線通信模型一部分即時(shí)通信運(yùn)營(yíng)商為了提高軟件的用戶體驗(yàn)和方便性,允許一個(gè)用戶在多個(gè)設(shè)備端同時(shí)登錄相同的賬戶,比如允許用戶同時(shí)在PC端、平板端和智能手機(jī)端進(jìn)行登錄。這時(shí)用戶所收發(fā)的消息都會(huì)即時(shí)地同步到這些設(shè)備端,方便用戶進(jìn)行通信。此時(shí),不同的加密模型下的通信方式有很大的不同。2.1端到服務(wù)器加密情形端到服務(wù)器加密模型下,服務(wù)器只需要管理同一用戶的不同設(shè)備,并且與這些設(shè)備分別建立共享的消息加密密鑰。如圖6所示,假設(shè)用戶A和用戶B進(jìn)行通信,用戶A和用戶B都各自登錄了多個(gè)設(shè)備端。用戶A給用戶B發(fā)送一條加密消息,服務(wù)器收到用戶A的消息后,進(jìn)行解密,然后將這條消息加密并轉(zhuǎn)發(fā)給用戶A和用戶B的各個(gè)設(shè)備端,這樣這兩個(gè)用戶的每個(gè)設(shè)備端都完成了消息同步。用戶的每個(gè)設(shè)備都能獨(dú)立上線,比如只登陸PC端或者智能手機(jī)端。圖6端到服務(wù)器加密模式下的多設(shè)備端通信模型2.2端到端加密模式情形對(duì)于端到端加密,情形則比較復(fù)雜。端到端加密本質(zhì)上是由加密密鑰在一對(duì)一的設(shè)備之間創(chuàng)建。同樣假設(shè)用戶A和用戶B進(jìn)行通信,用戶A和用戶B都各自登錄了多個(gè)設(shè)備端。由于這些設(shè)備端上的公私鑰對(duì)彼此不同,而用戶A在發(fā)送消息時(shí)就必須選定其中一個(gè)設(shè)備端的公鑰進(jìn)行密鑰協(xié)商導(dǎo)出消息加密密鑰。對(duì)A來說,若用戶B有B1和B2兩個(gè)設(shè)備端,則A的客戶端首先需要知道用戶B有這兩個(gè)設(shè)備端在線,其次將這條消息分別用與這兩個(gè)設(shè)備端協(xié)商的密鑰加密發(fā)送。假如此時(shí)用戶A自身也有多個(gè)設(shè)備端在線,則用戶A發(fā)送消息的客戶端還需要將這條消息加密發(fā)送給自己的在線設(shè)備端。這樣的協(xié)議過于復(fù)雜,而且每個(gè)客戶端還需要隨時(shí)保存自己賬號(hào)以及對(duì)方賬號(hào)的設(shè)備端登錄狀態(tài)(已下線的設(shè)備就不用發(fā)送消息了),此時(shí),發(fā)送一條消息帶來的數(shù)據(jù)量較大,這為協(xié)議的設(shè)計(jì)帶來了非常大的困難。因此,目前的端到端加密方式的即時(shí)通信軟件多數(shù)不支持多設(shè)備端的在線通信。從上面的分析可知,要是用戶的多設(shè)備端都獨(dú)立上線,則協(xié)議的設(shè)計(jì)比較困難。為了使端到端加密的多設(shè)備端在線通信成為可能,設(shè)計(jì)了下面的通信模型。如圖7所示,用E(Key,M)表示使用加密算法E和密鑰Key對(duì)消息M進(jìn)行加密。該通信模型中以用戶的智能手機(jī)端為兩端的通信主設(shè)備,即用戶A和用戶B通信時(shí),消息加密密鑰都以對(duì)方智能手機(jī)端的公鑰進(jìn)行密鑰協(xié)商并進(jìn)行導(dǎo)出。用戶A同時(shí)有多個(gè)設(shè)備端在線,主設(shè)備之外的設(shè)備稱為從設(shè)備,比如從設(shè)備可以是PC端,也可以是平板端。主設(shè)備收到對(duì)方主設(shè)備發(fā)來的信息后進(jìn)行正常解密得到消息明文,然后主設(shè)備與從設(shè)備之間利用端到端加密將該消息進(jìn)行加密發(fā)送,從設(shè)備收到消息后進(jìn)行解密,從而完成消息的多設(shè)備端同步。當(dāng)用戶A的某個(gè)從設(shè)備發(fā)送消息時(shí),也是首先將消息發(fā)送到用戶A的主設(shè)備,其次主設(shè)備解密后再將消息重新加密發(fā)送至用戶B的主設(shè)備。類似地,用戶B的主設(shè)備再將消息發(fā)送至用戶B的從設(shè)備。圖7端到端加密模式下的多設(shè)備端通信模型這樣設(shè)計(jì)的通信模型需要通信雙方的主設(shè)備都要在線,因?yàn)槠渌O(shè)備的消息不論收發(fā)都是通過主設(shè)備進(jìn)行通信的。實(shí)際場(chǎng)景中很多用戶是為了消息編輯的方便而使用PC端,智能手機(jī)端也不會(huì)離線,因此這樣的設(shè)計(jì)是比較實(shí)用的。該模型中用戶設(shè)備只是與己方主設(shè)備進(jìn)行通信,避免了己方的設(shè)備與對(duì)方的所有設(shè)備進(jìn)行密鑰協(xié)商,較大地減少了對(duì)多設(shè)備在線狀態(tài)的感知需求和密鑰協(xié)商的復(fù)雜性。3

通信模型的適用場(chǎng)景建議在端到服務(wù)器加密模型中,服務(wù)器能解密所有用戶的密文消息,如有必要可對(duì)用戶通信的消息內(nèi)容進(jìn)行查找和審計(jì)等操作。用戶消息的明文可在服務(wù)器端進(jìn)行存儲(chǔ),新加入用戶設(shè)備若是獲取到相應(yīng)的權(quán)限,可以很方便地進(jìn)行歷史聊天記錄的獲取,只需要用與新設(shè)備協(xié)商生成的消息加密密鑰加密之前的明文消息并發(fā)送即可,比如一個(gè)工作群進(jìn)來了一個(gè)新成員,需要了解這個(gè)工作群之前消息中的工作內(nèi)容,這時(shí)就需要獲取群中的歷史消息。因此,端到服務(wù)器加密模型比較適合于一個(gè)公司內(nèi)部的即時(shí)通信,特別是公司對(duì)員工交流的工作消息內(nèi)容有審計(jì)的必要時(shí),該加密模型可以滿足這樣的需求。端到端加密模型中服

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論