您好,登錄后才能下訂單哦!
這篇文章主要講解了“IM系統服務端消息怎么加解密”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“IM系統服務端消息怎么加解密”吧!
IM系統中信息可能涉及隱私或秘密,安全顯得尤為重要,怎么確保信息的安全呢?
端到端加密是最安全的,只有聊天雙方知道具體是什么消息,傳輸鏈路和消息服務器端都不知道消息內容。但是端到端加密在有些場景不適用,比如大規模群聊就不太好辦。另外基于某些合規性要求,端到端加密也不合適。
如果不采用端到端加密,消息的加密就分為網咯傳輸加密和服務端存儲加密兩部分。
傳輸過程,tcp長連接可以采用ssl協議(當然也可以自己實現加密《為什么相同的消息微信每次加密后發送的內容都不一樣?》),websocket采用wss協議。
難點變成了消息在服務端測的安全問題。消息在服務器端的路由過程怎么加密, 存儲怎么加密?
IM系統后臺邏輯很復雜,涉及眾多模塊,中間還有消息總線、緩存、數據庫等中間件。每個環節消息都需要以密文形式呈現,否則很容易泄漏。
第一反應是簡單寫個加密算法如AES對數據進行加密解密就搞定了。但是這樣存在一個非常大的隱患。密碼怎么保存?
日防夜防,家賊難防。寫代碼的程序員,部署系統的運維人員都可能拿到密碼,如果密碼寫在配置文件里,會與更多人得到密碼,比如能夠訪問git倉庫的人……總之,這種方式非常不安全。
因此,一套完善的加密系統顯得尤為重要。
加解密系統結構如下圖,主要包括4部分。1、加解密服務,2、加解密管理服務,3、加密服務器,4、秘鑰存儲庫。
1、加解密服務。
以HTTP,TCP等方式對業務系統提供加密、解密、轉加密等服務,提供加密服務器的負載均衡能力。同時提供業務系統可以直接使用的SDK。加解密服務以IP白名單+App_Key/App_Secret組合的方式對外提供訪問授權,確保只有授權的系統才能訪問
2、加解密管理服務。
核心是提供密碼生成、管理等服務(密碼是以加密后形式展示,只有加密服務器才能解密)。以及一些管理配置等功能
3、加密服務器
提供加密、解密的能力。加密服務器內置多種加密算法,通過超級秘鑰(root key),實現對加解密秘鑰(business key)的加密解密;通過加解密秘鑰(business key)實現業務數據的加解密。超級秘鑰(root key)被拆成3部分保存在秘鑰卡或U盤中。
4、秘鑰存儲庫
以密文形式存儲加密機生成的加解密秘鑰(business key),秘鑰只有加解密服務器能解密。
整個加密方案涉及幾個主要流程
1、加解密服務器初始化(或配置參數)
(1)啟動加解密服務器,插入3張秘鑰卡(U盤)
(2)加解密服務器已內置的算法(加密芯片)對root key進行加密,緩存到內存,同時保存的機器存儲介質。因此,內存及存儲上的數據處于密文狀態。
(3)根據root key初始化business key加解密服務
(4)初始化業務數據加解密服務
2、生成加解密秘鑰(business key)
(1)通過加解密管理服務,為即將生成的秘鑰起名(名字及秘鑰索引號),向加解密服務器發出生成秘鑰的命令。
(2)加解密服務器隨機生成business key,通過root key進行加密。把加密后的business key返回,關聯秘鑰索引號,并保存到秘鑰存儲庫。
3、加密及解密業務數據
(1)業務系統調用加解密服務,傳入 秘鑰索引號、算法以及業務數據
(2)加解密服務調用加密服務器,傳入加密后的business key、算法以及業務數據
(3)加密服務器完成加密,并返回結果
加密系統的核心要點是:業務數據和加密服務隔離,算法和秘鑰隔離。
感謝各位的閱讀,以上就是“IM系統服務端消息怎么加解密”的內容了,經過本文的學習后,相信大家對IM系統服務端消息怎么加解密這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。