iT邦幫忙

0

請問關於聊天群組使用端對端加密

所謂的端對端加密,簡單來說就是雙方各自產生一對公私鑰,然後把公鑰分享出來

我要傳訊息給對方,就用對方分享出來的公鑰對訊息加密後丟給對方

期間可能會經過多台伺服器,但這些伺服器只負責傳送內容而不進行解密(也沒辦法解密)

對方收到加密過後的資料後在他自己的設備中進行解密

以上是一對一的情況,如果套用到群組聊天,假設群組有 我和另外 99 人

也就是會有總共 100 把公鑰存在,我在群組發送一個訊息我要加密 99 次才可以

然後把這 99 個加密訊息一次傳送給伺服器,伺服器再分發給 99 台設備

那動則上千人的聊天群組,伺服器吃得消嗎?

不知道實務方面是怎麼實現的?煩請有經驗的大神們幫小弟我解答一下

如果不透過伺服器轉發,對方設備又沒開 port 的情況下一般來說會怎麼做呢?

淺水員 iT邦研究生 2 級 ‧ 2021-03-25 18:53:04 檢舉
僅供參考討論
非對稱加密只用來傳遞對稱加密的私鑰
後續訊息用這把私鑰
是整個群組都用同一把私鑰的意思嗎? 那麼那一把私鑰該存放在哪?
淺水員 iT邦研究生 2 級 ‧ 2021-03-26 00:36:51 檢舉
例如創群的管理員產生 AES私鑰

每當有人加入群組
管理員與新加入群組的人,透過原本非對稱加密的技術傳遞這個私鑰
這個AES私鑰保存在客戶端的裝置
群組內的訊息統一用這個AES私鑰加密解密
伺服器只負責傳遞加密後的數據

這只是提供一個想法,安全性還有待討論

1 個回答

2
raytracy
iT邦大神 1 級 ‧ 2021-03-25 23:02:20

提醒一下, Line 群組的端對端加密, 限制只能有 50 人:
https://linecorp.com/en/security/encryption/2020h1

其他如 What's App 的端對群組加密:
視訊最多 8 人
傳訊好像是 256 人...

這裡有官方的端對端加密演算法, 請參考:
https://scontent.whatsapp.net/v/t39.8562-34/122249142_469857720642275_2152527586907531259_n.pdf/WA_Security_WhitePaper.pdf?ccb=1-3&_nc_sid=2fbf2a&_nc_ohc=rBbcHOY9le4AX_nOPgo&_nc_ht=scontent.whatsapp.net&oh=17c52405db6e1a209de89f10ce778fea&oe=6081E199

Signal 可以支援 1000 人的群組加密,
Telegram 說支援數千人, 但沒有明確的數字,
其他的請自行查官方文件...

我要發表回答

立即登入回答