想問一下為何群組端到端加密都要搞那麼麻煩呢?我用了多年 matrix ,基本都不敢開加密。我設想的方式如下,想請教是否有考慮不周的地方,謝謝。
無論是 私聊 還是 群聊,非端到端加密基本都是使用 RSA 類型的方式維護好友 /成員,我認為:端到端加密應該在此基礎之上使用 AES 類型算法加密數據內容,因爲較大的數據用對稱加密效率高。
任何一個管理員(私聊的話,雙方都是管理員),都可以主動更新 AES key (依次用各成員的 RSA pub key 加密隨機生成的新的 AES key 然後分發),一個聊天室同一時段共享同一個 AES key 。
AES key 可以定時(或者根據聊天條數)更新,除非所有管理員都不在線才延遲更新,還有增減成員的時候要更新 key 。
至於安全性,羣聊本來就必然存在風險,譬如某個成員的 RSA private key 不小心泄漏,或者該成員故意截圖外發。
使用上述 AES 加密並不會增加風險。
AES key 每次由某個管理員更新時,用 RSA pub keys 加密的數據總共也不會很大,一個用戶 256 字節的加密數據(譬如使用 rsa-2048 ),一萬人的群總共也才 2.56 MByte 數據,此數據一次性上傳到服務器,每個成員只需要抓取自己對應的 256 字節數據就行。普通設備 rsa-2048 (或者更強)加密一萬次也才一兩秒而已。
無論是 私聊 還是 群聊,非端到端加密基本都是使用 RSA 類型的方式維護好友 /成員,我認為:端到端加密應該在此基礎之上使用 AES 類型算法加密數據內容,因爲較大的數據用對稱加密效率高。
任何一個管理員(私聊的話,雙方都是管理員),都可以主動更新 AES key (依次用各成員的 RSA pub key 加密隨機生成的新的 AES key 然後分發),一個聊天室同一時段共享同一個 AES key 。
AES key 可以定時(或者根據聊天條數)更新,除非所有管理員都不在線才延遲更新,還有增減成員的時候要更新 key 。
至於安全性,羣聊本來就必然存在風險,譬如某個成員的 RSA private key 不小心泄漏,或者該成員故意截圖外發。
使用上述 AES 加密並不會增加風險。
AES key 每次由某個管理員更新時,用 RSA pub keys 加密的數據總共也不會很大,一個用戶 256 字節的加密數據(譬如使用 rsa-2048 ),一萬人的群總共也才 2.56 MByte 數據,此數據一次性上傳到服務器,每個成員只需要抓取自己對應的 256 字節數據就行。普通設備 rsa-2048 (或者更強)加密一萬次也才一兩秒而已。