淨係你同你寫俾嘅人先睇得到

Cryptico 係一個匿名通訊程式,喺網頁、Android 同 iPhone 都用得:冇電話號碼,冇電郵,冇真名。每一條訊息都經過端對端加密,而就算我哋想解開,伺服器嘅程式碼都做唔到。

唔使註冊,唔使電話號碼,喺瀏覽器直接開。

闊瀏覽器視窗入面嘅網頁版:左邊係聊天清單,右邊係一個開緊嘅群組對話。

帳戶係一組字詞,唔係一個人

註冊嗰陣你乜都唔使交。Cryptico 會產生一個隨機身分同一組十二個字詞嘅復原片語,而呢組片語本身就係帳戶——你所有金鑰都係由佢衍生出嚟。冇號碼要驗證,冇地址要確認,亦都冇任何個人資料可以連返去你身上。用戶名係可揀嘅:想俾人搵到就改一個,唔想就唔改。

01

四件我哋真係企得穩嘅事

  • 01

    伺服器睇唔到你嘅訊息

    呢個係編譯結果決定嘅,唔係一條政策。伺服器程式根本冇將訊息內容嘅定義編入去,所以裏面唔存在任何可以解開訊息嘅程式路徑。我哋流程入面有一項檢查:呢一點一旦唔再成立,建置就會失敗。

    check-proto-content-boundary.mjs
  • 02

    永遠唔會用現實世界嘅身分資料

    冇電話號碼、冇電郵、冇真名——程式入面冇,資料庫入面冇,通訊協定入面亦都冇。有一項自動檢查會擋走任何加返呢啲嘢嘅改動。名片草稿曾經溜咗個電話號碼欄位入去;佢已經被刪走,個位亦都永久封存。

    check-forbidden-columns.mjs
  • 03

    Signal Protocol,配抗量子金鑰協商

    交握用 PQXDH,訊息用 Double Ratchet,群組用 Sender Keys。每一次工作階段都會喺傳統演算法之上再加一次抗量子嘅 Kyber-1024 交換——唔係一個選項,而係次次交握都做——所以今日被錄低嘅流量,將來有量子電腦都唔會變成讀得明。交握之後嗰部分仍然係傳統密碼學,所以我哋講嘅係抗量子嘅金鑰協商,而唔係話成條路都係。

    libsignal · PQXDH · Kyber-1024
  • 04

    連我哋自己嘅伺服器都聽唔到嘅通話

    一對一通話直接喺裝置之間行,冇任何伺服器掂過媒體串流。群組通話會經我哋嘅媒體伺服器,但每一格畫面喺到埗之前已經加密咗,而嗰部伺服器永遠攞唔到金鑰。有一項建置檢查會將通話媒體金鑰完全擋喺伺服器程式碼之外。

    check-call-media-key-boundary.mjs
02

你實際上可以用佢做啲乜

呢個係通訊程式,唔係示範。清單上每一項都已經喺產品入面,而且喺每一個用得著佢嘅平台都有。

  • 聊天就應該係咁

    文字訊息有提及、回覆、編輯、對所有人刪除、表情回應、轉發、多選同個人書籤。送達同已讀回條、打緊字提示、草稿、單一聊天入面搜尋同埋全部聊天一齊搜尋。淨係文字唔夠用嗰陣,仲有投票、待辦清單、地圖位置同聯絡人名片。

  • 最多 128 人嘅群組

    開群組、加人同踢人、用有期限同使用次數上限嘅連結邀請、提及某一個人或者所有人。伺服器負責將訊息派出去,但由頭到尾都唔知個群組叫咩名、簡介寫咩,亦唔知你係跟邊個改嘅名。

  • 檔案、相片同語音

    八種附件,每個最大 100 MiB——相片、短片、語音訊息、影片留言、檔案、GIF、貼圖、音訊——仲有相簿同劇透遮罩。每個檔案都喺你部裝置度用一條專屬嘅一次性金鑰鎖住,開之前仲會檢查有冇被人改過。

  • 通訊程式入面嘅迷你程式

    有目錄、一撳即裝同沙盒執行環境,另外仲有開發者主控台同匿名舉報掣。檢查碼同資訊清單對唔上嘅程式,根本開唔到。

  • 真係擋得住嘅封鎖

    喺私人聊天入面,被封鎖嗰個人發嘅訊息永遠去唔到你度,而佢哋亦唔會知道訊息去唔到。一次封鎖行 180 日,佢哋每試發一次就順延一次。

  • 一個帳戶最多十部裝置

    用復原片語連結新裝置、睇晒成張清單、隨時解除任何一部嘅連結——就算你手上已經冇可用嘅工作階段,一樣可以解除其中一部。聯絡人、資料夾、聊天清單、封鎖名單同設定都會加密同步過去。你嘅訊息封存大部分唔會;呢一點寫喺「我哋唔會承諾嘅嘢」入面。

03

一對一同群組通話

語音同視像、前後鏡頭、最多同時 8 格視像畫面、舉手、分享螢幕,每格畫面上都有咪高峰同鏡頭指示。媒體串流預設行中繼,所以對方睇唔到你嘅位址。

四個人嘅群組通話,其中一個舉起咗手。喺手機上嘅群組通話。
04

資料夾、置頂同靜音聊天

按規則分類嘅資料夾、置頂聊天、靜音聊天、共用媒體檢視,仲有一條會老老實實話你知連線情況嘅橫幅。靜咗音嘅聊天入面,提及一樣會通知你——呢一點係特登留低嘅。

資料夾編輯器,以及決定邊啲聊天會入到去嘅篩選規則。手機上嘅聊天清單,以及開新群組嘅畫面。
05

佢實際上點運作

寫俾想自己查證、而唔係淨係信人嘅人睇嘅簡短版本。

私隱設定:已讀回條、PIN 碼同自動鎖定計時。手機上嘅私隱設定:生物認證解鎖、自動鎖定,以及用嚟核實聯絡人嘅安全碼。
交握
PQXDH:Curve25519 加一條 Kyber-1024 預先金鑰,次次工作階段都用,所以由第一條訊息開始,金鑰協商已經係抗量子。
訊息
Double Ratchet:每發一條訊息,金鑰就向前行一步,所以之後攞到嘅金鑰開唔到之前嘅內容。
群組
Sender Keys,最多 128 個成員。伺服器知道成員名單,因為佢要靠呢張名單派訊息;但佢唔知個群組叫咩名。
群組通話
畫面喺到達我哋嘅媒體伺服器之前已經加密。金鑰由發起通話嗰部裝置產生,經通訊程式本身派發,而且有人入嚟或者走嘅時候就會換。
檔案同相片
AES-256-GCM,每個檔案一條新金鑰,跟住加密信封一齊送出,解密之前仲要過一次 SHA-256 檢查。儲存端揸住嘅只係佢睇唔明嘅位元組。
喺你部裝置上
本機訊息資料庫靜態加密——Android 同 iPhone 用 SQLCipher,瀏覽器用 AES-256-GCM。
你嘅復原片語
十二個字詞。帳戶每一條金鑰都由佢衍生:先 BIP39,再用 Argon2id,每猜一次都要 64 MiB 記憶體同三輪運算,所以暴力破解唔化算。伺服器冇留低任何可以反推佢嘅嘢。
核實對方係邊個
每個對話有一組 60 位數字嘅安全碼,通話入面仲會顯示一組 6 位數字嘅驗證碼,由你哋其中一個讀出嚟。通話驗證碼淨係由呢一次連線計出,所以次次都唔同。
程式鎖
一組 4 位數 PIN 碼,外面包住 Argon2id 同 AES-256-GCM,最多試 5 次,裝置支援嘅話可以用生物認證,閒置之後自動鎖。PIN 碼開嘅係部裝置;帳戶屬於嗰組片語。
設定同聯絡人
以密文同步,金鑰由你嘅復原片語衍生——連每筆紀錄嘅名都係帶金鑰嘅雜湊,而唔係文字。伺服器存嘅係睇唔明嘅資料塊,唔係欄位。
用嘅函式庫
Android 同 iPhone 用 Signal 嘅官方函式庫。Signal 根本冇為瀏覽器出過任何版本,所以我哋自己由 Signal 嘅原始碼編譯網頁端引擎,鎖死喺一個確切版本——淨係改咗一行等佢喺呢度編譯得到,密碼學嗰部分一處都冇郁過。
06

我哋唔會承諾嘅嘢

每個通訊程式嘅首頁都會話你知佢保護到啲乜。呢一頁仲會話你知佢保護唔到啲乜,因為我哋修唔到嗰部分,先係你最需要知道嘅。

  • 我哋見到邊個同邊個講嘢

    端對端加密收埋嘅係你講咗乜,而唔係你講過嘢呢件事。要送到訊息,伺服器就一定要知道邊個收、幾時收。佢亦都會保存群組成員名單,因為冇名單就派唔到訊息。我哋冇辦法老實咁話自己唔知邊個同邊個講嘢。我哋講得出嘅係:我哋從來冇掂過內容,而伺服器嘅程式碼連解析都做唔到。

  • 推播通知會將時間資料洩漏俾 Google 同 Apple

    Android 嘅通知經 Firebase Cloud Messaging,iPhone 嘅就經 Apple 嘅服務。推播本身冇文字、亦冇寄件人——但傳送嗰邊睇到邊部裝置喺幾點被叫醒,淨係靠時間對照就已經夠還原到邊個同邊個講嘢。只要叫醒嘅通道仲喺人哋嘅服務手上,帳戶嘅匿名性就覆蓋唔到「有通訊發生、幾時發生」呢件事。

  • 你嘅歷史紀錄跟你跟得好淺

    喺新裝置登入,會還原你嘅身分、個人檔案、聯絡人、資料夾、聊天清單、封鎖名單同部分設定——但唔包括訊息封存。同你傾偈嗰啲人會再發返薄薄一層俾你,最多回溯 30 日,就係咁多。伺服器嗰邊冇你嘅歷史備份,呢個係刻意嘅設計。

  • 唔見咗片語,邊個都幫你唔到

    客服冇辦法俾你入返個帳戶,因為我哋呢邊根本冇任何嘢可以憑——冇號碼、冇地址、冇密碼提示。十二個字詞就係成個帳戶。呢個係呢一頁其餘內容嘅代價,我哋寧願你註冊之前就知,好過之後先知。

  • 我哋有留紀錄,只係入面冇你

    我哋保留維運服務紀錄,入面冇訊息內容、冇密文本體、冇金鑰,亦冇復原片語。話「乜紀錄都唔留」係假嘅;話「紀錄入面冇內容」係真嘅,而我哋承諾嘅正正係後者。

07

喺邊度用得

喺手機上開咗嘅群組對話。喺手機上嘅群組通話。手機上嘅邀請畫面,顯示一個 QR code 同一組可以轉交嘅邀請碼。
08

大家真係會問嘅問題

要幾錢?

唔使錢。冇付費方案、冇廣告、亦冇加購推銷——限制淨係技術上嘅,例如每個檔案 100 MiB、單一檔案存 30 日。如果將來真係出付費方案,我哋會喺出之前講,唔會事後先講。

程式碼公開咗未?

仲未。等開發穩定落嚟就會公開。喺嗰日之前,我哋唔會自稱 open source——你冇辦法查證呢個講法,我哋亦唔會要你單靠信任去接受。等程式庫公開嗰陣,網址就會擺喺呢度。

如果我唔見咗復原片語會點?

個帳戶就冇咗。冇重設連結,客服亦冇辦法俾你入返去——一條由我哋揸住嘅復原路徑,同樣會係第二個人入嚟嘅路徑。

邊個可以傳訊息俾我?

對方要有你嘅用戶名、你派出去嘅邀請連結,或者你嘅 QR code。如果你根本唔想俾人搵到,咁就唔好改用戶名。你可以封鎖任何人,被封鎖嘅人就再聯絡唔到你。

我可唔可以確認自己係同啱嘅人講緊嘢?

可以,有兩個方法。每個對話都有一組 60 位數字嘅安全碼,兩邊可以核對一次;通話嗰陣兩邊螢幕會顯示同一組 6 位數字嘅驗證碼——一個讀出嚟,另一個對。通話驗證碼每次通話都係新嘅。

我可唔可以喺多過一部裝置用?

可以,最多十部。每一部都用復原片語連結,亦都可以喺清單度解除連結。聯絡人、資料夾、聊天清單同設定會加密同步過去;你嘅訊息封存大部分唔會。

你哋會唔會分析我或者賣資料?

冇廣告,亦唔賣資料。呢一頁完全冇分析追蹤,亦冇任何第三方指令碼——一個請求都唔會去到人哋嘅伺服器。

得咗就話我知

等到真係有值得安裝嘅嘢嗰日,我哋淨係會發一封信。冇電子報、冇連環郵件,亦唔會經第三方寄信服務——個地址留喺我哋自己嘅資料庫,唔會去第二度。

我哋唔會發確認信,所以打錯咗就淨係得一片靜。撳送出之前再睇多次個地址。