「暗号化された日記」というのは本来、平文のデータベースの前に PIN 画面があるという意味ではなく、ディスク上のファイルがあなたの鍵なしでは読み取れないという意味のはずです。Reflect はその区別を中心にすえて作られています。すべての日記は端末上で AES-256-GCM で暗号化され、生体認証の奥にロックされ、任意で、あなたのリカバリーコードだけが開ける形でクラウドにバックアップされます。
端末を離れる前に暗号化される
「プライベートな日記」や「セキュアなジャーナル」として売られているアプリの多くは、PIN 画面の裏で日記を平文の SQLite ファイルに保存しています。物理的に端末に触れられる人、フォレンジック ツールを使える人、あるいは少しの間借りた人なら、データベースを直接読めてしまいます。それは暗号化ではなく、セキュリティの「演出」です。
Reflect は中身そのものを暗号化します。各日記は、銀行の通信やセキュアなメッセージングを守るために使われる認証付き暗号化方式である AES-256-GCM で封をされます。その上に HMAC による改ざん検知が乗り、破損したり書き換えられたりしたファイルは、静かにゴミを返すのではなく、はっきりとエラーで止まります。日記に添付された写真とボイスメモも、ストレージに書き込まれる前に同じ方式で暗号化されます。
生体認証、PIN、パスワード — お選びください
iOS と Android で Face ID、Touch ID、または指紋認証を設定できます。数字の PIN や、より長いパスフレーズの方がいい方には、それも選べます。Reflect は 4 つすべてに対応しており、組み合わせて使うこともできます。普段は生体認証で、顔認証が 3 回失敗したときの予備としてパスフレーズを設定する、といった具合です。
アプリを切り替えたとき、または自分で設定したタイムアウト後に、自動ロックがかかります。マルチタスク切り替え画面に表示されるアプリのプレビューは目隠しされ、端末をちらっと見られても今日の日記の中身は見えません。これらは端末自体の画面ロックには依存しません。日記のロックは独立しています。
暗号化クラウドバックアップは、あなたの条件で
クラウドバックアップは任意で、有効にするまでオフのままです。有効にすると、Reflect は端末上でランダムなデータ暗号化鍵を生成し、リカバリーコードから Argon2id で鍵暗号化鍵を導出し、データ鍵をその鍵でラップします。端末を離れるのは、ラップされた鍵、ソルト、そして短いフィンガープリントだけです。
新しい端末では、サインインしてリカバリーコードを入力します。同じ導出によって鍵暗号化鍵が再生成され、データ鍵を開き、日記を復号します。暗号文とあなたの言葉の間に立っているのは、リカバリーコードただひとつです。これをなくすと、バックアップはあなたにも、私たちにも、誰にも読めなくなります。それが、実際の意味でのゼロ知識ということです。
暗号化された日記が、実際にあなたにもたらすもの
具体的な場面を考えてみましょう。タクシーに置き忘れた端末 — ロック画面を突破した人がいても、その先にあるのは AES-256 の壁です。パートナーや家族と共有している端末 — 日記には端末とは別の生体認証または PIN が必要です。クラウド事業者の侵害 — バックアップの塊は暗号文で、リカバリーコードなしでは読めません。
- すべての日記、画像、ボイスメモを含めて、AES-256-GCM の認証付き暗号化。
- HMAC による改ざん検知 — 破損した日記はエラーとして表面化し、静かに平文として現れることはありません。
- 生体認証、PIN、またはパスワードによるロック。自動ロックとアプリ切り替え画面のプレビューの目隠し付き。
- クラウドバックアップには Argon2id による鍵導出。開けるのはリカバリーコードだけです。
「暗号化された」と称する他のアプリと、Reflect の違い
Day One のようなアプリは、エンドツーエンドの暗号化をオプトインのプレミアム機能として位置づけています。Reflect はそれを初期設定としています。平文のモードは存在しません。平文のデータベースを PIN でロックしているだけのアプリは、意味のある意味で暗号化されているとは言えません。それが基準なら、画面ロックされたメモアプリでも同じことです。Reflect は、後から暗号化を足した日記というよりも、たまたま AI 機能を備えた、プライベートな暗号化ノートブックに近い存在です。