免費工具

為收件人加密

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

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

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

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

兩個人之間怎麼用

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

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

唯一的薄弱點

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

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

金鑰和訊息我們都不儲存

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

原理 →

常見問題

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