簡單好用的加密聊天工具

嗨!這次來介紹一下我開發來聊小秘密用的工具
https://codingman.cc/talk

這個網頁的目的是,讓你可以和另一個人在網路上安全地聊天、交換秘密訊息,而不用擔心內容被偷看。

而這個工具所有的運算都是在你的瀏覽器上完成的,你的私鑰、訊息內容完全不會傳送到我的伺服器或任何地方,所以隱私絕對安全。

這是怎麼運作的?

簡單來說,我用了「橢圓曲線迪菲-赫爾曼金鑰交換」(ECDH)這個酷東西。

你和你的朋友(我們叫他 Bob)會各自這樣做:

  1. 各自生成密鑰:每個人都有一把「公鑰」(公開的)和一把「私鑰」(絕對保密)。
  2. 交換公鑰:你把你的「公鑰」給 Bob,Bob 也把他的「公鑰」給你。
  3. 算出共同密鑰:你用你的「私鑰」+ Bob 的「公鑰」,算出一組密碼。神奇的是,Bob 用他的「私鑰」+ 你的「公鑰」,會算出一模一樣的密碼。
  4. 開始加密:這組密碼只有你們兩個知道,別人就算拿到你們交換的公鑰也算不出來。

接下來,你們就可以用這組密碼來加解密訊息了。

如果你想要更詳細的說明,你可以參考這篇文章:
密碼學 - 橢圓曲線密碼學 (ECC)

使用教學

首先你和你的朋友都打開了這個網頁。

步驟 1: 拿到你的公鑰

你一打開網頁,工具就已經幫你產生好密鑰了。

  1. 在「步驟 1: 你的密鑰」下面那框框裡,會有一長串文字,這就是你的公鑰
  2. 點「複製公鑰」按鈕。
  3. 把這串公鑰文字,用你平常的方式(比如聊天軟體)傳給你的朋友。

提醒:你的朋友也要做一樣的事,請他網頁上的公鑰複製給你。

步驟 2: 貼上你朋友的公鑰

  1. 等你收到朋友傳來的公鑰(一樣是一長串文字)後,把它完整複製起來。
  2. 貼到「步驟 2: 輸入對方的公鑰」下面的大框框裡。

步驟 3: 對一下「指紋」

  1. 當你貼上朋友的公鑰,工具會馬上算出你們的「共同密鑰」。
  2. 在「步驟 3: 共同密鑰」那邊,你會看到一行「SHA-256 雜湊值」。
    • 這不是密鑰本身,而是密鑰的「指紋」(或叫校驗碼)。
  3. !重要!
    你必須和你的朋友確認一下,你們兩個網頁上顯示的這串「雜湊值」是不是一模一樣
    • 你可以點「複製雜湊值」傳給他比對。
    • 如果一樣,太好了!你們的秘密通道搭好了。
    • 如果不一樣,那八成是有人貼錯公鑰了,或者不小心按到「重新生成密鑰對」,請回到上一步檢查。

步驟 4: 加密 & 解密訊息

確認雜湊值一樣之後,就可以開始傳秘密訊息了。

A. 加密 (你要傳訊息給朋友):

  1. 在「加密 & 解密」區的框框裡,打上你想說的秘密(例如:“今晚的計畫照常”)。
  2. 點「加密」按鈕。
  3. 下面「結果」框會跑出一堆加密後的亂碼。
  4. 點「複製結果」,把這串亂碼傳給你的朋友。
    • (這就是重點!) 這串亂碼就算在你們的聊天軟體上被截圖、被平台存檔、或被別人看到也沒關係,因為沒有你們的共同密鑰,誰也解不開它。

B. 解密 (你看朋友傳來的訊息):

  1. 當你朋友傳給你一串加密亂碼時,把它完整複製。
  2. 貼到「加密 & 解密」區的框框裡。
  3. 點「解密」按鈕。
  4. 下面「結果」框就會還原出朋友想跟你說的原文。

注意一下

  • 重新生成密鑰對:如果你按了「步驟 1」的「重新生成密鑰對」按鈕,那之前的所有密鑰都會失效。你必須把新的公鑰重新傳給朋友,全部重來一遍。
  • 安全性:這工具的安全性是建立在「你確定你拿到的是你朋友的公鑰」這件事上。如果有人在中間冒充你朋友把假公鑰給你,那密碼就會被他算走(這叫中間人攻擊)。所以最好用你信任的管道來交換第一次的公鑰。
  • 狀態顯示:網頁最下面會顯示「加密成功」、「解密失敗」之類的提示,方便你除錯。
狀態顯示

也許你也會想看看