会話の機密性を確保するため、Duo では通話にエンドツーエンドの暗号化が使用されます。
- 通話の参加者以外の第三者が通話の音声を聞いたり、映像を見たりすることはできません。
- Google も通話の音声と映像を視聴したり、保存したりすることはできません。
エンドツーエンドの暗号化は、通信データを保護するための標準的なセキュリティ対策です。Duo のすべての通話にエンドツーエンドの暗号化が自動的に適用されるため、ユーザーがオンにする必要はなく、オフにすることもできません。
暗号化によりデータの機密性が確保されます
暗号化ではコードを使用してデータを隠すため、デコードするにはキーが必要になります。
Duo の通話では、エンドツーエンドの暗号化により、発信者のデバイスから通話相手のデバイスに送信される通話データ(音声と映像)が暗号化されます。暗号化された音声と映像をデコードするには共有シークレット キーが必要になります。
共有シークレット キーとは:
- 発信者のデバイスと通話相手のデバイスで生成される番号で、これらのデバイス上にのみ存在します。
- Google、第三者、その他のデバイスと共有されることはなく、
- 通話が終了すると直ちに消去されます。
誰かが通話データにアクセスできたとしても、キーがないのでデータを解読することはできません。
Duo ではトラブルシューティングのために一部の通話情報が保存されます
問題が発生した場合、Duo では次のような通話情報を使用して解決を試みます。
- 通話が途切れた、または遅延が発生した原因と日時
- 発信者と受信者のデバイス ID
- グループ通話参加者の電話番号
これらの情報は約 1 か月間 Google サーバーに安全に保存されます。
共有シークレット キーは通話参加者のデバイスに留まります
あなたのデバイスでは、共有シークレット キーを使用して通話の音声と映像が復号されます。このキーはあなたのデバイスと通話相手のデバイスで作成され、通話が終了すると削除されます。また、いずれのサーバーとも共有されません。
共有キーに必要なもの
共有キーを計算するには、各デバイスで次のものが必要です。
- 秘密鍵(あなたのデバイスにのみ保存されます)
- 公開鍵(Duo のサーバーに保存されます)
Duo を初めてセットアップするときに、デバイスで秘密鍵と公開鍵のペアが複数個生成されます。これで、エンドツーエンドで暗号化された複数の通話に対応できるようになります。
共有シークレット キーの生成方法
- まず、デバイス間で公開鍵の交換が行われます。ただし、各デバイスの秘密鍵は互いに明らかにはなりません。
- 次に、各デバイスが自分の秘密鍵と他のデバイスから受け取った公開鍵を使用して共有シークレット キーを計算します。計算には暗号化と呼ばれる数学的プロセスが使用されます。
Google サーバーが通話をデコードすることはできません
Duo から誰かに通話を発信すると、通常はその通話の音声と映像があなたのデバイスから通話相手のデバイスに直接送信されます(この接続をピアツーピアと呼びます)。つまり、通話が Google サーバーを経由することはありません。
ただし、場合によってはピアツーピア接続が利用できないことがあります(ネットワーク設定によってブロックされる場合など)。この場合は、あなたのデバイスから通話の音声と映像が Google のリレーサーバーを経由して相手のデバイスに送信されますが、共有シークレット キーがないため、リレーサーバーが通話をデコードすることはできません。
グループ通話の機密性はサーバー上で確保されます
グループ通話もエンドツーエンドで暗号化されますが、通話品質を維持するために、通話は Google サーバーを経由します。
このサーバーを経由して、参加者各自の通話音声と映像がグループの他のメンバーに転送されます。サーバーが通話を転送する際には、映像の送信元デバイスなどの通話情報が使用されます。ただし、サーバーはエンドツーエンドの鍵にはアクセスできず、当該のメディアを復号することもできません。
グループ通話では複数のキーが使用されます
サーバー経由の通話に参加する際には、グループ メンバー各自のデバイスで次のキーが自動的に使用されます。
- 通話の音声と映像を暗号化するための発信者キー。誰かがグループ通話を開始すると、メンバーのデバイス間でこのキーが交換されます。
- 通話情報を暗号化するためのクライアント/サーバー間キー。各デバイスとサーバー間でこのキーが交換されます。
キーの役割
キーの役割は次のとおりです。
- 通話の音声と映像を暗号化して、グループのメンバーのみが通話を視聴できるようにする。
- グループ通話に参加中の他のメンバーの音声、映像、情報をデコードする。
グループ通話中にキーが変わることがあります
次のいずれかの場合、参加者全員のデバイス間で新しい発信者キーが交換されます。
- 誰かがグループから退出した
- 通話中に、グループに新しいメンバーが追加された
グループ通話開始と同時に通話に参加しなかったメンバーがいても、その通話が行われている間はそのメンバーのデバイスでメンバー全員の発信者キーが使用可能になるため、後からいつでも通話に参加できます。
グループ通話が終了すると、全員の発信者キーが削除されます。