ユーザーマニュアル
Securmyの完全ガイド:登録とログインの方法、プライバシー機能の使い方、そしてこのプロトタイプが実際に何を守り、何を守らないのかを説明します。
1. 登録と初回ログイン
最初の画面で「登録する」をタップし、メールアドレスとユーザー名を入力します。電話番号は不要です。
登録後、次の3つの情報が一度だけ表示されます。パスワードマネージャーなど安全な場所にすぐ保存してください。
- ユーザー名とパスワード:ユーザー名が最初の入力欄で、パスワードが開くプロフィールを決めます。同じユーザー名で複数のプロフィールを持て、それぞれ別のパスワードを使います。
- 公開ID:連絡先に追加してほしい相手と共有するものです。メールアドレスは明かされません。
- 秘密の組み合わせ:非表示チャットを表示するために使います(専用の項目を参照)。
パスワードを失った場合はメールで再設定できますが、プロフィールのメールが確認済みである場合に限ります。パスワードも確認済みメールもない場合、プロフィールは復旧できません。
2. 同じ端末の複数プロフィール
同じユーザー名で異なるパスワードを使い、複数のプロフィール(例:個人用とカバー用)を作成できます。ユーザー名とパスワードを入力すると対応するプロフィールが開き、プロフィール数が分かる選択画面は表示されません。同じユーザー名の2つのプロフィールに同じパスワードは使えません。
3. 連絡先の追加とチャット
「+ 連絡先を追加」をタップして相手の公開IDを入力します。エンドツーエンドで暗号化されたリアルタイムのチャットが開きます(第7項を参照)。
5. カバープロフィール
登録時に「カバープロフィールとして作成」を選べます。確認を受けたときに見せるためのプロフィールで、同じ端末に他のプロフィールがあることを示す手がかりは含まれません。
6. 時限メッセージ(自動消去)
メッセージを送る前に、ドロップダウンから自動消去までの時間(30秒、5分、1時間)を選べます。その時間が過ぎるとメッセージは削除されます。
7. エンドツーエンド暗号化:本当の仕組み
これは宣伝文句ではありません。すべてのメッセージは、サーバーに送信される前にお使いのブラウザ内で次の方式で暗号化されます。
- 初回ログイン時に、端末がECDH鍵ペア(P-256曲線)を生成します。公開鍵はサーバーへ、秘密鍵はパスワードで暗号化して端末に残ります。使い捨ての公開鍵(「prekey」)の束も用意します。
- メッセージごとに、ブラウザが一時鍵を生成し、サーバーから相手の使い捨てprekeyを1つ取得します。3回のECDH交換(あなたのID、一時鍵、prekey)を組み合わせ、HKDF-SHA256でそのメッセージだけに有効な256ビットAES-GCM鍵を導出します。
- メッセージはその鍵とランダムなIVで暗号化され、ヘッダーは認証されるため改ざんできません。サーバーが受け取るのは暗号文だけです。
- 受信者は同じ鍵を再構成してメッセージを読み、直後に秘密のprekeyを削除します。以後は、あなたの長期鍵を使っても誰も復号できません。
これは多くの現代的な安全なプロトコルが使うのと同じ種類の数学(ECDH + AES-GCM)で、ここではブラウザ標準のWeb Crypto APIを使い、外部ライブラリなしで実装しています。
前方秘匿性:過去のメッセージは安全なまま
たとえ端末の盗難などで長期鍵を入手されても、すでに受信したメッセージは鍵が削除済みのため復号できません。読んだ内容は、端末の暗号化されたローカルキャッシュにのみ残ります。
鍵の金庫
秘密鍵、prekey、メッセージキャッシュは、パスワードからPBKDF2-SHA256(310,000回)で導出した鍵により、暗号化された状態(AES-GCM)でのみブラウザに保存されます。生体認証でログインした場合は、金庫を開くために一度パスワードを求められます。パスワードを変更すると金庫は再暗号化されます。
本人か確認する:安全番号
チャットで🔑アイコンをタップすると、二人で同じ60桁の番号が表示されます。相手と直接または声で照合してください。一致すれば誰も介入していません。相手の鍵が変わった場合(新しい端末や盗聴の可能性)は警告が出て、「新しい鍵を受け入れる」を選ぶまで送信できません。
8. 生体認証ロック解除(Face ID / Touch ID / 指紋)
プロフィール設定(⚙️アイコン)に「Face ID / 指紋でのロック解除を有効にする」があります。有効にすると、端末がWebAuthn/FIDO2でパスキーを作成してサーバーに登録します(公開鍵のみで、生体データは決して送られません)。
以降、ログイン画面に「生体認証でロック解除」ボタンが表示されます。パスワードの代わりに使え、Face ID、Touch ID、Androidの指紋、Windows Helloの確認はアプリではなくOSが行います。生体データが端末の外に出ることはありません。
同じ設定からいつでも無効にできます。
9. 言語の切り替え
アプリの各画面の上部に言語セレクターがあります。このサイトも同じ11言語で利用できます:イタリア語、英語、スペイン語、フランス語、ドイツ語、ポルトガル語、アラビア語、中国語、ヒンディー語、ロシア語、日本語。アプリで選んだ言語は端末に記憶されます。
10. ネイティブモバイルアプリ(iOS/Android)
iOS・Android 向けネイティブアプリ(React Native/Expo)が完成し、テスト中です。チャット、金庫、P2P 送信、通話、2 段階認証、生体認証ロック、内容を含まないプッシュ通知を備え、ウェブアプリと同じエンドツーエンド暗号化を使います。App Store と Google Play での公開は近日予定です。それまではウェブアプリを任意のブラウザで使え、ホーム画面に追加できます。
11. 明示している安全性の制限
正直に、暗号化は宣言だけでなく本物ですが、残っている制限をお伝えします。
- prekeyの枯渇:相手が長期間オフラインで使い捨て鍵が尽きると、メッセージは新しい鍵を使いますが使い捨て削除はなく、前方秘匿性は弱くなります。
- メッセージはこの端末に紐づく:設計上、復号済みの履歴は移動しません。新しい端末や、メールでのパスワード回復後は、以前の金庫を復元できません。新しいIDで始まり、連絡先には鍵変更の警告が表示されます。
- 金庫の強度はパスワード次第:長く固有のものを選んでください。ロック解除済みでアプリが開いた端末を手にした人は、どのアプリでも同様にチャットを読めます。
- サーバーに見えるメタデータ:送信者、時刻、リアクション、時限メッセージの期限は暗号化されません。
- 回復はメールのみ:パスワードと確認済みメールの両方を失うとプロフィールは復元できません。複数のプロフィール(例:カバー用)を使う場合は別々のメールを使ってください。回復リンクはメールの管理者にプロフィールの存在を知らせます。
12. トラブルシューティング
「暗号化できません:連絡先にまだ公開鍵がありません」
連絡先がアプリの最新アップデート後にまだログインしていない場合に起こります(鍵はログイン時に自動で生成・アップロードされます)。一度ログインしてもらえば、通常どおりメッセージを送れるようになります。
「パスワードを忘れた」
ログイン画面の「パスワードをお忘れですか?」を選び、メールとユーザー名を入力します。プロフィールのメールが確認済みなら、1時間有効のリンクが届きます。未確認の場合は復旧できず、新規作成が必要です。パスワードは必ずパスワードマネージャーで保管してください。
生体認証ロック解除が表示されない
Face ID、Touch ID、指紋、またはWindows Helloが設定された端末、最新のブラウザ、HTTPS接続(本番のウェブアプリはすでに使用しています)が必要です。また、設定で少なくとも一度は有効にしておく必要があります。
「メッセージが読めなくなった」
安全のため、各メッセージの鍵は読んだ直後に削除されます。テキストはこの端末の暗号化キャッシュにのみ残ります。端末を変える、ブラウザデータを消去する、メールでパスワードをリセットすると、以前のメッセージは復元できません。これが前方秘匿性の代償です。
13. Securmy 金庫とツール
サイドバーの 🛡️ ボタンから金庫を開きます。中身はすべて端末上でAES-256-GCMにより暗号化され、鍵は金庫内に保管されてパスワードで守られます。サーバーがファイル・メモ・パスワードを受け取ることはありません。
ファイル金庫
「ファイル」タブでファイルを追加します(1件あたり最大100 MB)。チェックが入っていれば、保存前に写真のメタデータが削除されます。各ファイルはダウンロード、P2P送信、削除ができます。
リンクでのP2P送信
ファイルと有効期限(10分または1時間)を選ぶと、使い捨てリンクが得られます。ファイルは受信者へ直接届き、リンクの # の後ろにだけある鍵で暗号化され、その鍵がサーバーに届くことはありません。転送が終わるまでページを開いたままにしてください。
写真を整える
画像を描き直して、EXIF・GPS位置・サムネイルを破棄します。JPEG、PNG、WebPに対応。それ以外の形式では自動削除はできません。
メモとパスワード
メモと認証情報は金庫内で暗号化されたまま保たれます。ジェネレーターがランダムなパスワードを作成し、コピーするとクリップボードは20秒後に消去されます。
一度だけ表示のメッセージ
メッセージ欄の横で「一度だけ表示」を選びます。受信者がタップして見ると、テキストは10秒間表示され、その後相手の端末とサーバー上で消去されます。画面を撮影されることは防げません。
音声・ビデオ通話
チャットのヘッダーにある 📞 と 🎥 のボタンを使います。音声と映像は端末間を直接、暗号化されて流れます。双方に4桁のコードが表示されるので、声で照合してください。一致すれば傍受されていません。
2段階認証
「セキュリティ」で、認証アプリ(Google Authenticator、Aegis、1Passwordなど)によるTOTPコードを有効にできます。有効にすると、パスワードでのログインに6桁のコードも必要になります。生体認証での解除は別のログイン方法として残ります。
バックアップと緊急消去
バックアップには、ご自身で決めた10文字以上のパスフレーズで暗号化したファイル・メモ・パスワードが含まれ、パスフレーズがなければ復元できません。メッセージは含まれません。緊急消去は端末から鍵・メッセージのキャッシュ・ファイル・メモ・パスワードを削除し、元に戻せません。
知っておくべき制限
- デバイス間の同期は任意の有料機能(容量パック)です。データは端末上で暗号化されたままで、サーバーは鍵を持ちません。プランがなければ金庫はローカルのみで、移行にはバックアップを使います。
- P2P 送信と通話で IP を隠すには、サービスに TURN サーバーがある場合に、セキュリティ → IP 保護(暗号化リレー)を有効にします。リレーがないと相手に IP が見えることがあり、制限の厳しいネットワークでは接続に失敗することがあります。
- パスワード管理は基本機能のみです。フォームへの自動入力はせず、業務用途では専用の管理ツールの代わりにはなりません。
- パスワードとバックアップのパスフレーズを両方失うと、暗号化データは復元できません。誰にも、私たちにも開けません。