所謂的端對端加密,簡單來說就是雙方各自產生一對公私鑰,然後把公鑰分享出來
我要傳訊息給對方,就用對方分享出來的公鑰對訊息加密後丟給對方
期間可能會經過多台伺服器,但這些伺服器只負責傳送內容而不進行解密(也沒辦法解密)
對方收到加密過後的資料後在他自己的設備中進行解密
以上是一對一的情況,如果套用到群組聊天,假設群組有 我和另外 99 人
也就是會有總共 100 把公鑰存在,我在群組發送一個訊息我要加密 99 次才可以
然後把這 99 個加密訊息一次傳送給伺服器,伺服器再分發給 99 台設備
那動則上千人的聊天群組,伺服器吃得消嗎?
不知道實務方面是怎麼實現的?煩請有經驗的大神們幫小弟我解答一下
如果不透過伺服器轉發,對方設備又沒開 port 的情況下一般來說會怎麼做呢?
提醒一下, Line 群組的端對端加密, 限制只能有 50 人:
https://linecorp.com/en/security/encryption/2020h1
其他如 What's App 的端對群組加密:
視訊最多 8 人
傳訊好像是 256 人...
Signal 可以支援 1000 人的群組加密,
Telegram 說支援數千人, 但沒有明確的數字,
其他的請自行查官方文件...