簡單好用的加密聊天工具
嗨!這次來介紹一下我開發來聊小秘密用的工具
https://codingman.cc/talk
這個網頁的目的是,讓你可以和另一個人在網路上安全地聊天、交換秘密訊息,而不用擔心內容被偷看。
而這個工具所有的運算都是在你的瀏覽器上完成的,你的私鑰、訊息內容完全不會傳送到我的伺服器或任何地方,所以隱私絕對安全。
這是怎麼運作的?
簡單來說,我用了「橢圓曲線迪菲-赫爾曼金鑰交換」(ECDH)這個酷東西。
你和你的朋友(我們叫他 Bob)會各自這樣做:
- 各自生成密鑰:每個人都有一把「公鑰」(公開的)和一把「私鑰」(絕對保密)。
- 交換公鑰:你把你的「公鑰」給 Bob,Bob 也把他的「公鑰」給你。
- 算出共同密鑰:你用你的「私鑰」+ Bob 的「公鑰」,算出一組密碼。神奇的是,Bob 用他的「私鑰」+ 你的「公鑰」,會算出一模一樣的密碼。
- 開始加密:這組密碼只有你們兩個知道,別人就算拿到你們交換的公鑰也算不出來。
接下來,你們就可以用這組密碼來加解密訊息了。
如果你想要更詳細的說明,你可以參考這篇文章:
密碼學 - 橢圓曲線密碼學 (ECC)
使用教學
首先你和你的朋友都打開了這個網頁。
步驟 1: 拿到你的公鑰
你一打開網頁,工具就已經幫你產生好密鑰了。
- 在「步驟 1: 你的密鑰」下面那框框裡,會有一長串文字,這就是你的公鑰。
- 點「複製公鑰」按鈕。
- 把這串公鑰文字,用你平常的方式(比如聊天軟體)傳給你的朋友。
提醒:你的朋友也要做一樣的事,請他網頁上的公鑰複製給你。
步驟 2: 貼上你朋友的公鑰
- 等你收到朋友傳來的公鑰(一樣是一長串文字)後,把它完整複製起來。
- 貼到「步驟 2: 輸入對方的公鑰」下面的大框框裡。
步驟 3: 對一下「指紋」
- 當你貼上朋友的公鑰,工具會馬上算出你們的「共同密鑰」。
- 在「步驟 3: 共同密鑰」那邊,你會看到一行「SHA-256 雜湊值」。
- 這不是密鑰本身,而是密鑰的「指紋」(或叫校驗碼)。
- !重要!
你必須和你的朋友確認一下,你們兩個網頁上顯示的這串「雜湊值」是不是一模一樣。- 你可以點「複製雜湊值」傳給他比對。
- 如果一樣,太好了!你們的秘密通道搭好了。
- 如果不一樣,那八成是有人貼錯公鑰了,或者不小心按到「重新生成密鑰對」,請回到上一步檢查。
步驟 4: 加密 & 解密訊息
確認雜湊值一樣之後,就可以開始傳秘密訊息了。
A. 加密 (你要傳訊息給朋友):
- 在「加密 & 解密」區的框框裡,打上你想說的秘密(例如:“今晚的計畫照常”)。
- 點「加密」按鈕。
- 下面「結果」框會跑出一堆加密後的亂碼。
- 點「複製結果」,把這串亂碼傳給你的朋友。
- (這就是重點!) 這串亂碼就算在你們的聊天軟體上被截圖、被平台存檔、或被別人看到也沒關係,因為沒有你們的共同密鑰,誰也解不開它。
B. 解密 (你看朋友傳來的訊息):
- 當你朋友傳給你一串加密亂碼時,把它完整複製。
- 貼到「加密 & 解密」區的框框裡。
- 點「解密」按鈕。
- 下面「結果」框就會還原出朋友想跟你說的原文。
注意一下
- 重新生成密鑰對:如果你按了「步驟 1」的「重新生成密鑰對」按鈕,那之前的所有密鑰都會失效。你必須把新的公鑰重新傳給朋友,全部重來一遍。
- 安全性:這工具的安全性是建立在「你確定你拿到的是你朋友的公鑰」這件事上。如果有人在中間冒充你朋友把假公鑰給你,那密碼就會被他算走(這叫中間人攻擊)。所以最好用你信任的管道來交換第一次的公鑰。
- 狀態顯示:網頁最下面會顯示「加密成功」、「解密失敗」之類的提示,方便你除錯。
