KeysArk
← ブログに戻る

KeysArk はどう暗号化するのか:その設計

KeysArk のあらゆる設計上の選択は、一つのルールに従っています:鍵はあなたのブラウザから決して出ない。これがその連鎖です——あなたが書き留めた言葉から、クラウドの中の暗号文まで。

一組のフレーズですべてを守る

あなたのマスターシークレットは BIP39 のリカバリーフレーズです——新しいボールトでは24語の英単語(256ビットのエントロピー)。これは標準なので、MetaMask やあらゆる BIP39 ウォレットにインポートできます。ほかにダウンロードするものはなく、世話をする鍵ファイルもありません。

言葉から鍵へ

フレーズは決定論的に、完全にブラウザ内で鍵に変換されます:同じフレーズなら、どのデバイスでも毎回同じ鍵に——サーバーを一切介さずに。

BIP39 phrase
  → seed   (PBKDF2-HMAC-SHA512)
  → HKDF-SHA256
  → AES-256 key

あなたのコンテンツを暗号化する

各項目は認証付き暗号である AES-256-GCM で封印されます:内容を隠すと同時に、改ざんを検出します。暗号化のたびに、決して再利用されない新しいランダムな96ビットの IV を使います——GCM の nonce を再利用するのは破滅的なので、私たちは決してそうしません。

サーバーは単なる土管

私たちの API とストレージクライアントはバイト入力・バイト出力です:不透明な base64 の暗号文を運ぶだけで、内容には完全に無関係です。平文、フレーズ、そして派生鍵は、いかなるサーバーコード、リクエスト、URL、cookie、ログ、データベースにも現れることを禁じられています。

あなたのマシン上で解錠する

フレーズをローカルに(ウェブアプリまたは ark CLI で)保存するとき、それは Argon2id(512 MB、t=4、p=1)を使い解錠パスワードで包まれます——意図的にメモリを多く要する関数で、パスワードの総当たり攻撃を高コストにします。パラメータは認証情報とともに保存されるため、時とともに引き上げることができます。

私たちが受け入れるトレードオフ

真のエンドツーエンド暗号化とは、私たちでさえあなたのデータ復旧を手伝えないということです。リカバリーフレーズを失えば、それは失われます。それが、誰も——私たちを含めて——それを読めないことの代償です。