學習文章:即時通信的安全加密通信模型研究,具體見原論文
摘要
重點:即時通信的安全性和易用性。
主要工作:分析國內外即時通信的安全通道模型、詳細討論起消息加密和發送流程、給出不同加密模式下的羣聊和多設備端的消息轉發原理,設計端到端加密的安全通道模型,分析各種安全通信模型的使用場景,並給出建議。
引言
框架:
- 即時通信很重要,使用廣泛,所以安全性和易用性需要關注。
- 國內外現狀,當前存在問題
- 本文工作
易用性:是否支持羣聊、是否支持多設備端同時在線、是否支持歷史消息獲取等
即時通信的安全通信模型:
- 端到服務器
- 端到端
應用場景:
- 單聊
- 羣聊
- 多設備在線
通信模型
威脅模型
參與者:服務器(運行商)和客戶端(用戶)
- 被動攻擊:記錄信息
- 主動攻擊:篡改、延遲、阻斷等
- 運行商攻擊:服務器獲取祕密信息
端到服務器
可以防主動攻擊,但問題是服務器知曉所有消息,所服務器被攻破或是惡意的,則消息的安全性不能保證。
“微信”用的是端到服務器,我們的數據安全麼?
單聊
用戶和客戶端建立加密通道:
- 密鑰協商
- 客戶端用服務器端的pk加密會話密鑰,發送給服務器用sk解密
框架:
- 服務器相當於中間方傳遞數據
羣聊
本質和單聊沒有區別,服務器存儲每個用戶的共享密鑰。
端到端
解決運行商攻擊,這樣服務器不知道任何消息信息。
whatsApp和Telgram都是採用端到端加密
單聊
兩層加密:
- 內層:加密消息,密鑰是客戶端的公鑰協商而成,服務器只轉發公鑰,不知加密密鑰
- 外層:客戶端和服務器協商密鑰,用於保護身份信息
羣聊
思想:
- 客戶端都生成一個消息加密密鑰GK,並利用服務器將其祕密的發送給其他客戶端,最終每個客戶端都有一個密鑰庫
- 客戶端和服務器之間的會話密鑰保護身份
- 客戶端與其他客戶端通過密鑰協商獲得會話密鑰,加密GK
- 之後每次發消息只需用GK加密消息即可
多設備端在線
允許一個用戶在多個設備端同時登錄 相同的賬戶,比如允許用戶同時在 PC 端、平板端 和智能手機端進行登錄。
端到服務器
相當於羣聊
端到端
本質上是主設備發送消息給主設備,從設備需要同步主設備的消息。
需要兩方的主設備都在線。
實用場景
端到服務器:
- 公司內部即時通信,可對消息進行審計,且可以獲取聊天信息。
- 頓時覺得微信好不安全!
端到端:
- 安全性更高,可實現密鑰的頻繁更換。