安全說明

三個詞,和你在跟誰說話

影響 Kryfo 0.5.0 及更早版本。已在 0.5.1 和 0.5.2 中修正。

發生了什麼

在 Kryfo 裡,別人靠你的三個詞和你的臉認出你。它們從來證明不了一個人是誰,而且可以被複製。有人可以把你的三個詞放進一個邀請連結、QR 碼或個人頁面,而它們指向的是他自己的金鑰。加入它的人看到的像是和你的聊天,其實是在和另一個人聊。如果那個人還以加入者的名義傳訊息給你,他就能夾在你們兩人之間,讀到經過他的內容。

在 0.4.1 及更早版本中問題更嚴重:複製來的名字還能頂替一個已經存在的聊天。0.4.2 修正了這一部分。

我們沒有發現這被用來針對任何人。

誰受影響

使用 0.5.0 或更早版本,並透過連結、使用者名稱、配對碼、請求,或不是從對方本人手機上掃描的 QR 碼加入過別人的所有人。

不受影響:

我們改了什麼

在 0.5.1 中:

0.5.2 用核對卡片和這不是對方本人按鈕取代了「未核對」標記。如果安全碼不一致,這個按鈕會從你的手機上移除該聯絡人,並封鎖它的金鑰。

你該怎麼做

  1. 更新到 0.5.2。它現在已經在 kryfo.app 和 GitHub 上,幾天內會上架 F-Droid。
  2. 和重要的聯絡人當面核對安全碼:打開對方的頁面,點按驗證金鑰,核對全部 12 組。
  3. 如果安全碼不一致,點按這不是對方本人。然後用對方當面給你的連結或 QR 碼重新加入,並在新的聊天裡核對安全碼。

接下來

完整的修正會隨 0.6 的身分重新設計一起到來,它以 Signal 的官方函式庫為基礎。即使到那時,安全碼仍然是真正的核對方式。

更早的修正

0.3.2 和 0.4.1 修正了一個問題:在已解鎖的手機上點按通知,可能繞過應用程式鎖打開聊天。

致謝

感謝 Ami(SleepingAmi)和 sooox(sooox-cc),他們發現了這個問題,在自己的手機上做了驗證,並私下告訴了我們。

如果你發現問題,請先私下告訴我們:kryfo.app/security。