免費工具

為收件人加密

用密碼加密的難處在於密碼總得想辦法送過去——而且要比消息本身送得更安全。這裏不需要:收件人把自己的公鑰公佈一次,你用它加密,只有他能用自己的私鑰讀出來。事先什麼都不用約定。

密鑰和加密都在你的瀏覽器裏計算。密鑰和文字我們都看不到。

留空——收件人能讀,但不知道是誰發的。填上密鑰——他能看到是用誰的密鑰加密的,而這無法偽造。

密鑰和消息都不會發往任何地方:全部在這個標籤頁裏計算。

兩個人之間怎麼用

收件人來到這裏,生成一對密鑰,把公鑰公佈出去——放在網站上、個人資料裏、置頂消息裏。私鑰自己留着。任何想給他寫信的人拿這個公鑰加密消息,然後把得到的那一行哪怕發在公開聊天裏都行。只有私鑰的主人能讀它。

公鑰只能用來加密——不能用來解密,所以分發它是安全的。這正是和密碼的根本區別:在密碼方案裏,同一個秘密既上鎖又開鎖,所以不得不把它傳來傳去。

唯一的薄弱點

不在算法,而在你從哪裏拿到的公鑰。能在半路篡改消息的人也能篡改密鑰——那樣你就是在給他加密,他讀完再轉給真正的收件人,誰也察覺不到。所以密鑰不能來自和通信相同的渠道:要來自收件人的網站、置頂消息、名片,或者他本人。

相關工具: 給消息簽名,如果要證明一段公開文字的作者; 用密碼加密文字,如果確實有共享密碼;還有 加密檔案.

密鑰和消息我們都不保存

就像 VPN 本身不保存訪問日誌一樣:真要交,也沒有什麼可交。

原理 →

常見問題

guest@404vpn:~$ cat box-faq.md
[01] $ 這比用密碼加密好在哪?
> 好在不需要共享秘密。密碼得通過另一條渠道送過去,和陌生人之間這幾乎是無解的。這裏收件人把公鑰公佈一次——放在網站上或個人資料裏——任何人都能給他寫信。公鑰不是秘密:用它只能加密,不能解密。
[02] $ 兩種模式——匿名和署名——是什麼?
> 匿名:每條消息都生成一次性的密鑰對,發送方根本不需要自己的密鑰。收件人能讀消息,但不知道是誰發的。署名:你用自己的私鑰,收件人能看到是用哪個密鑰加密的——這無法偽造。第一種適合寫給陌生的收件人,第二種適合在意“誰在寫”的通信。
[03] $ 我把私鑰弄丟了。消息還能恢復嗎?
> 不能。私鑰是讀它們的唯一辦法,而它從來沒在我們這裏。如果不想丟密鑰,就從口令推導它:那樣記住口令就夠了。但那樣鹽對所有人都一樣,否則密鑰就無法重現——也就是説,短口令等於把密鑰交了出去。
[04] $ 公鑰是在同一個聊天裏發給我的。這夠嗎?
> 不夠。能篡改消息的人也能篡改裏面的密鑰——那樣你就是在給他加密。密鑰必須來自已經用別的方式得到過確認的地方:收件人的網站、頻道的置頂消息、名片。這不是吹毛求疵,而是整套方案唯一的薄弱點。
[05] $ 你們會保存密鑰或消息嗎?
> 不會。頁面工作時一個網絡請求都不發——全部在這個標籤頁裏計算。密鑰、明文、密文,我們一樣都看不到。