中継しかしないサーバー
暗号化されたメッセージは、受信者が受け取れるように最大 14 日間、暗号化されたままサーバーに置かれます。それ以外にサーバーが保存するのは、サービスの動作に必要な最小限の情報だけです。
graygate が必要な理由
世界の多くの国には、自由なやり取りを抑圧する法律や政策が今も残っています。graygate は、そうした環境でも安全に話すための道具です。
構造
暗号化されたメッセージは、受信者が受け取れるように最大 14 日間、暗号化されたままサーバーに置かれます。それ以外にサーバーが保存するのは、サービスの動作に必要な最小限の情報だけです。
受信者が 14 日以内にアプリで受け取らなかったメッセージは、サーバーが自動的に削除します。
現在 graygate に参加できるのは招待コードを持つ場合だけです。使いたい方は、コードを持っている人に頼んでください。
仕組み
登録時に RSA の鍵ペアを端末の中で生成します。秘密鍵は iOS Keychain と Android Keystore の外に出ません。サーバーには一度も送られないため、サーバーはどのメッセージも読めません。
各端末がルームのパスワードから自分でルーム鍵を導出します。サーバーが持つのはパスワードが正しいか確かめるためのハッシュだけで、パスワードも鍵もサーバーには届きません。
メッセージは送信前に暗号化されます。プッシュ通知は内容も送信者もルーム名も含まず、新着があることだけを伝えます。
復号した会話はその端末にのみ保存されます。端末を替えると過去の会話は引き継がれません。不便ではありますが、これは制約ではなく設計上の決定であり、会話がサーバーを経由しなかったことの証拠でもあります。
お伝えするのは配信までです。いつ読まれたかは表示せず、サーバーにも保存しません。
接続状態も入力状態も、同じくサーバーからは見えません。サーバーはメッセージを運ぶだけで、誰が接続しているか、誰が入力しているかを知りません。
サーバーはメッセージを中継するだけで、何も保管しません。すべてのデータは端末の中だけにあります。
本サービスは個人情報を集める手段も分析ツールも一切使いません。ソーシャルログインを含め、外部アカウントによるログインもいかなる形でも提供しません。利用者のプライバシーを最優先します。
端末側の追加保護
iOS の Face ID と Android の BiometricPrompt でアプリへのアクセスを保護します。生体認証のない端末はアプリ PIN を使います。
アプリ切り替え画面では内容を隠します。Android は OS レベルで画面キャプチャを禁じ、iOS はキャプチャを検知して同じルームに知らせます。
ルームごとの自動削除(1 日・7 日・30 日)を有効にすれば、端末にメッセージを残さずに使えます。
相手の鍵を英単語 12 個と数字のグループで確認します。これが、途中で鍵をすり替えようとするサーバーを止めます。
いいえ。アカウントを作るには招待コードが必要です。
取り戻せません。ルーム管理者に招待し直してもらうか、パスワードを教えてもらう必要があります。
登録時に受け取った 12 単語の復旧フレーズで、パスワードとアプリロックの PIN を初期化できます。過去の会話とルーム鍵は戻りません。復旧フレーズがなければ、そのアカウントは取り戻せません。
同期されません。すべての情報は自分の端末にのみ保存されます。
削除は自分の端末にのみ適用されます。相手の端末から消すには、相手が自分で削除する必要があります。