公鑰加密,不信任中間人怎麼辦?
使用公鑰/私鑰加密,您必須信任中央機構對嗎?
如果你不想相信中央權威,你能做什麼?有沒有辦法解決這個問題?
例如在聊天應用程序中
我想,無論如何,您都必須使客戶端開源,以便讓人們知道您沒有保存使用者的私鑰。
使用公鑰/私鑰加密,您必須信任中央機構對嗎?
不完全的。誠實的各方必須有一個經過身份驗證的(但不一定是保密的)渠道來獲取彼此的公鑰。雙方信任的中央權威是滿足該要求的一種方式,但不是唯一的方式。例如,可以通過面對面的會議來交換公鑰。
如果你不想相信中央權威,你能做什麼?有沒有辦法解決這個問題?
例如在聊天應用程序中
Signal 和 WhatsApp 等應用程序提供兩種身份驗證方法:
- 將服務本身用作“中央機構”,為您提供聯繫人的公鑰。
- 通過安全程式碼進行帶外聯繫人驗證,使用者可以獨立比較以驗證中央機構沒有欺騙他們。
來自Signal 的支持頁面:
**每個 Signal 對話都有一個唯一的安全號碼。**當您第一次與新聯繫人交換私人消息時,安全號碼會被儲存。如果對話的安全號碼發生變化,您將收到警報。如果其他人冒充他們,或者他們換了一部新手機並重新安裝 Signal,就會發生這種情況。
$$ … $$ **您手機上的安全號碼應與聯繫人手機上的號碼一致。**如果安全號碼相同,那麼您可以確定您正在與正確的人交流。如果安全號碼不匹配,請確保您和您的聯繫人使用的是 Signal 的更新版本,只與該聯繫人打開對話,然後重試。
您的每個聊天都有自己的安全程式碼,用於驗證您的通話和發送到該聊天的消息是否經過端到端加密。
注意:驗證過程是可選的,僅用於確認您發送的消息是端到端加密的。
此程式碼可以在聯繫資訊螢幕中找到,包括二維碼和 60 位數字。這些程式碼對於每個聊天都是唯一的,並且可以在每個聊天中的人之間進行比較,以驗證您發送到聊天的消息是否經過端到端加密。安全程式碼只是您之間共享的特殊密鑰的可見版本 - 不要擔心,它不是實際的密鑰本身,它始終保密。
如果這完全是您關心的問題,那麼當您親自與您的聯繫人會面時,您至少應該偶爾檢查一下您的對話的安全程式碼。為了使此類服務不被濫用於大規模監控,一小部分但相當大比例的使用者需要定期保持這種警惕性。