機能 / メッセージとビデオ通話
メッセージもビデオ通話も、参加している人にしか読めない。
ZENOS Messages は Signal のプロトコルを使います。通話は自分たちで運用するサーバーで動き、映像と音声はエンドツーエンドで暗号化されます。サーバーは暗号化されたまま中継するだけで、鍵を持ちません。責任者は、承認の申請もここで受け取り、ここで署名します。
Signal のプロトコル
鍵の取り決めとダブルラチェットを、Signal 自身の libsignal で
自前の通話サーバー
は暗号化されたままのデータを中継するだけ
新しい鍵
を参加や退出のたびに。抜けた人は通話の続きを追えない
どう動くのか
結びつける、話す、通話する
1
結びつける
アカウントは、登録した端末のものです。そのアカウントの要求には、すべて身元の鍵で署名します。
- 署名のない要求、他人の鍵の要求、使い回した要求は拒否して記録します
2
話す
メッセージとチャンネルは、libsignal でエンドツーエンドに暗号化します。PC からの承認の申請も同じ仕組みで届きます。
3
通話する
通話の鍵は端末で作り、Signal で暗号化したメッセージの中でだけ参加者に渡します。誰かが参加したり抜けたりすると、全員が新しい鍵に切り替えます。
- 通話中の画面共有も同じように暗号化されます
証明していること、していないこと
テストしていること、信頼しているもの
テスト済み
乗っ取りに対するテスト
- アカウントの結びつけは、動いている中継サーバーへの乗っ取りの試みも含めてテスト済み
- 新しい端末がアカウントを引き継げるのは、すでに登録された番号を確かめたときだけ
- 中継サーバーの管理には、そのサーバーの機械にある合言葉が必要
証明ではなく信頼しているもの
テストし、一覧にして公開
- libsignal と WebRTC の仕組み
- 登録コードを有効にしていなければ、最初に名前を登録した人がその名前の持ち主になる
- 端末と番号の両方をなくすと、管理者がアカウントをやり直す必要がある
プレビュー版で試す
自分で試す
1
ZENOS Messages を開く
PC と自分のスマートフォンで開きます。
2
ビデオ通話を始める
もう一人を招きます。通話はエンドツーエンドで暗号化されます。
3
抜けて、もう一度入る
鍵が変わり、残っている人の通話はそのまま続きます。