Cryptile

Cryptile のセキュリティ設計を層ごとに説明

更新日

Cryptile は、すべてのファイル、サムネイル、インデックスを AES-256-GCM で暗号化します。鍵は、あなたが描くパターンから iPhone 上で作られます。アカウントもサーバーもありません。開発者が鍵を持つことはありません。

App Store で Cryptile を入手

わかりやすい要約はセキュリティのページにあります。

知っておくべきことは何ですか?

  • すべての鍵の元はあなたのパターンです。 パターンがなければ、読める形では何も保存されていません。
  • サイズとボールトの数はぼかされます。 ファイルはパディングされ、おとりスロットがボールトの数を隠します。
  • 自分で確かめられます。 暗号化のコアは、誰でも監査できるよう公開されています(ソース公開)。脅威モデルとテストベクターもあります:github.com/jasonbrelsford/cryptile-core。

パターンはどう鍵になりますか?

  1. パターンは、グリッドの大きさと、触れたマスを順番に並べたものとして記録されます。
  2. それが、この iPhone 専用として iPhone のキーチェーンに保存された 32 バイトのデバイスの秘密と組み合わされます。
  3. その上で PBKDF2-HMAC-SHA512 を 600,000 回実行します。推測 1 回ごとに、それだけの計算が必要になります。
  4. HKDF-SHA256 が結果を、参照用の鍵とラップ用の鍵に分けます。
  5. 参照用の鍵がボールトのインデックスファイルの名前を決めます。ラップ用の鍵がそれを開きます。

インデックスの中には、ボールトのランダムな 256 ビットのマスターキーがあります。HKDF はそこから、ファイル、サムネイル、インデックス用に別々のサブキーを作ります。1 つの鍵を 2 つの目的に使うことはありません。

ファイルはどう暗号化されますか?

サムネイルやインデックスのような小さな項目は、ランダムなノンスとともに AES-256-GCM でひとまとめに封じられます。

大きなファイルは、1 MB ずつのチャンクに分ける STREAM 形式を使います。各チャンクは専用のノンスを持ち、自分の位置と、最後のチャンクかどうかを記録します。チャンクを切り取ったり、並べ替えたり、入れ替えたりすると、復号に失敗します。

GCM はすべてのヘッダーも認証するので、変更されたファイルは表示されずに拒否されます。

サイズとボールトの数はどう隠されますか?

すべての小さなデータと、すべてのファイルの最後のチャンクは、64 KiB の倍数までパディングされます。コピーした人にわかるのはおおよそのサイズで、正確なサイズではありません。

ボールトの一覧はありません。アプリは、本物とおとりを合わせて、インデックスと同じ形のスロットを少なくとも 8 つ持ち、書き込みのたびにおとりを作り直します。どのスロットにも当たらないパターンを描くと、空のボールトが開きます。

復元はどう働きますか?

各ボールトには 9 語のリカバリーフレーズがあり、96 ビットのランダム性を持ちます。フレーズは、ボールトの別の復元用コピーを開きます。このコピーは、フレーズから作った鍵で封じられています。

iCloud バックアップは、暗号化されたファイルをそのままの形で写します。初期設定ではデバイスの秘密が含まれないので、バックアップだけではパターンの推測に使えません。

何が暗号化され、何がされませんか?

暗号化されるもの:写真、動画、ファイル、メモ、サムネイル、名前、フォルダ、お気に入り、認識されたテキスト、写真の位置情報。おとりと無料プランの件数を管理する小さなファイルは、デバイスの鍵で封じられます。

Cryptile が暗号化しないもの:

  • 設定。 自動ロックの時間、並べ替えの順序、バックアップのスイッチには、秘密は含まれません。
  • 追加を待っている共有項目。 ボールトを開くまで、iOS のファイル保護の下に置かれます。
  • コンテナ全体のサイズと書き込みの時刻。 10 GB のボールトが 10 MB に見えることはありません。
  • あなたが書き出したもの。 写真やファイルに保存したコピーは、ボールトの外にあります。

これは何から守りますか?

  • キーチェーンなしでアプリのファイルをコピーする人。 手に入るのは暗号文で、パターンを試すことはできません。
  • Apple、または Apple での情報漏えい。 iCloud にあるのは暗号文だけで、鍵はありません。
  • 改ざん。 変更されたり並べ替えられたりしたデータは、復号に失敗します。
  • 私たち。 私たちはサーバーを運用しておらず、鍵も持たないので、アクセスをリセットできません。

これは何から守りませんか?

  • 短いパターン。 パターンはパスフレーズより弱いものです。ファイルとキーチェーンがそろえば、4×4 のグリッドで 6 マスのパターンは、GPU で数分のうちに破られます。8 マス以上を使ってください。
  • ロックが解除された iPhone 上のマルウェア。 ボールトが開いている間にメモリを読み取るコードは、どのアプリにも防げません。
  • 描くところを見ている人。 手元が誰にも見えない場所で描いてください。
  • iPhone とフレーズの両方をなくすこと。 ボールトは失われます。リセットはありません。

Plus のパニックパターンはデバイスの秘密を破棄するので、復元するまで、その iPhone 上のどのボールトも開きません。

App Store で Cryptile を入手