web-dev-qa-db-ja.com

グループチャットでの非対称キー暗号化

シングルユーザーチャットとグループチャットの両方をサポートするチャットアプリケーションに取り組んでいます。

シングルユーザーチャットのメッセージを受信者の公開鍵で暗号化し、受信者の秘密鍵を使用して復号することを計画しました。

このアプローチを採用すると、グループチャットの場合に実装する手がかりがなくなります。

何かご意見は?

5
Devarshi

これは、グループチャットに使用するモデルによって異なります。

  • ピアツーピア:各メッセージを受信者のパブリックキーで暗号化し、各ユーザーに個別に送信し、グループチャットの「錯覚」を作成する必要があります。これにより、新しいグループ参加者が以前のメッセージを見ることができなくなります。
  • クライアントサーバー:サーバーに「署名」されたメッセージをアップロードし、各ユーザーに暗号化します。

または、この「グループ」のキーペアを作成し、プライベートのコピーをグループのすべてのメンバーに送信しますが、すでに問題が発生していると思います。

6
ndrix

最善の策は、おそらくチャットセッションのアイデアを持ち、その間セッションキーを使用することです。対称暗号化は、非対称暗号化よりもはるかに高速で安全です。そのため、セッションホストがセッションキーを決定し、それを会話の公開キーの各メンバーで暗号化して送信すると、各当事者は同じセッションキーを持ち、会話に参加できる。

あるいは、単にすべての受信者のメッセージを暗号化するか、各受信者との一意のセッションをセットアップすることもできますが、これははるかに遅く、プロセッサ集中型のプロセスですが、メッセージはそれぞれに個別に送信する必要があるため、ほぼ同じ量のデータを使用しますとにかく受信者(サーバーベースのリレーを使用している場合を除く)。

2
AJ Henderson