アカウント不要、メールアドレス不要、解析なし
登録するものはなく、アプリは使い方を報告しません。
「私の写真は見えるのですか?」という質問への短い答えは、「いいえ」です。その理由を、まずはわかりやすい言葉で説明します。確かめたい方のために、技術的な詳細はページの下にあります。
App Storeで近日公開写真、ビデオ、ファイル、メモは、iPhoneのストレージに書き込まれる前に、iPhone上で暗号化されます。名前や日付も同じです。パターン、パスフレーズ(覚えやすい短い文のようなもの)、復旧フレーズ(紙に書き留める12個の英単語)のどれかがなければ、ファイルは読めません。保管庫でFace IDをオンにすると、その保管庫は顔でも開きます。
短い例外が2つあります
パターンは、iPhoneのセキュリティチップから外に出ない鍵と組み合わされます。そのため、アプリのファイルをiPhoneからコピーしても、パターンの推測は始められません。推測するたびにお使いのiPhoneが必要で、5回間違えると、Underlockは待ち時間を設けます。
この待ち時間で、パターン画面での推測は遅くなります。ただし、iPhone本体に侵入できる相手は待ち時間を回避できます。だからこそ、長いパターンやパスフレーズが大切です。
アカウントはなく、保管庫を保存する私たちのサーバもありません。ファイルも、パターンも、鍵も、私たちに届くことはありません。そのため、私たちが保管庫を開くことも、誰かに渡すことも、漏らすこともできません。
登録するものはなく、アプリは使い方を報告しません。
誰かに保管庫を求められても、私たちには渡せるファイルも、パターンも、鍵もありません。
復旧フレーズはアプリが作成します。保管庫ごとに1つで、保管庫を作る前に、そのうち3つの英単語を確認します。「コピー」や「ダウンロード」のボタンはないので、フレーズは紙に書いて保管します。
パターンと復旧フレーズの両方をなくすと、誰も保管庫を開けません。私たちにも開けません。鍵が私たちに届くことはないので、パターンをリセットすることもできません。
一瞬でもアプリを離れると、無地のカバーが画面を覆います。
初期設定では、Underlockを離れた瞬間に保管庫がロックされます。1分後や5分後にしたい場合は、「アプリの設定」で「自動ロック」を変更します。
保管庫の中身が、Spotlight、Siriからの提案、通知に表示されることはありません。
読み込みの途中でアプリがクラッシュしたり、iPhoneの空き容量がなくなったりしても、保存済みのものはそのまま残り、何が起きたかをアプリが知らせます。破損したファイルや改ざんされたファイルは検出され、どのファイルかが示されます。意味のない表示になることはなく、保管庫のほかの部分はそのまま使えます。
私たちの設計を確かめたい方のために。構成要素はすべて標準的なもので、Appleのものか、広く知られた2つのライブラリのものです。
| 項目 | しくみ |
|---|---|
| ファイル | AES-256-GCM。ファイルごとに新しいランダムな鍵を使います。大きなファイルは64 KiBのチャンクに分割されるため、変更、切り取り、並べ替えされた部分は検出されます。 |
| 名前、日付、フォルダ | 保管庫ごとに1つの、暗号化されたデータベースに保存します(SQLCipher 4。ランダムな256ビットの鍵で開きます)。 |
| ファイルサイズ | 暗号化の前にパディングします(Padmé)。保存されたサイズから読み取れる情報を減らすためです。 |
| パターンまたはパスフレーズ | Argon2idでストレッチします。Argon2idは、わざと時間がかかり、メモリを多く使う方式です。そのうえで、推測1回ごとにSecure Enclaveの鍵と組み合わせます(ハッシュ化した点に対するP-256の鍵共有のあと、HKDF-SHA-256)。 |
| 保管庫ごとの鍵 | ランダムで、保管庫ごとに1つ。ラップした状態でのみ保存します。このiPhone上ではパターンかパスフレーズで、さらに復旧フレーズでラップします。Face IDがオンの場合は、Face IDでの認識を必要とする2つ目のSecure Enclaveの鍵でもラップします。 |
| 復旧フレーズ | アプリが生成する、BIP39の英単語リストから選んだ12個の英単語(128ビット)。自分で選ぶことはなく、コピーするボタンもありません。 |
| 間違えた回数 | パターン、パスフレーズ、復旧フレーズで、1つの回数を数えます。5回間違えると、30秒、続いて1分、5分、15分、それ以降は毎回1時間待つ必要があります。間違えた回数が理由で、データが消去されることはありません。 |
| 外部のコード | 2つのライブラリだけです。libsodium(Argon2idにのみ使用)とSQLCipherで、どちらもバージョンとチェックサムを厳密に固定しています。他社製の解析やクラッシュレポートのコードは含まれていません。 |
| おとりパターン | ほかの保管庫が依存しているSecure Enclaveの鍵のレコードとデバイスのソルトを置き換えます。これによりUnderlockはそれらの保管庫を開けなくなり、そのあとでファイルを削除します。 |
Argon2idのパラメータは実際のiPhoneで調整し、確定したらここで公開します。
security@underlock.appまでお知らせください。
いいえ。写真はiPhone上で暗号化してから保存され、ファイルも、パターンも、鍵も、私たちに届くことはありません。アカウントもないので、私たちにメールを送らない限り、名前やメールアドレスも私たちにはわかりません。
iPhone上でのAES-256暗号化で、ファイルごとに新しい鍵を使います。パターンやパスフレーズはArgon2idでストレッチされ、iPhoneに内蔵されたセキュリティチップであるSecure Enclaveと結び付けられます。
パターン、パスフレーズ、復旧フレーズのどれかがなければ開けません。まずiPhone自体のロックがあり、その内側に保管庫の暗号化があります。iPhone本体に侵入できる相手は、そのiPhone上でパターンを試すことができます。だからこそ、長いパターンやパスフレーズが大切です。
保管庫1つまで無料、ファイル数の上限なし。アカウントもメールアドレスも不要です。
UnderlockにできないことiOS 17以降のiPhoneで使えます。