web-dev-qa-db-ja.com

チャットアプリケーションに非対称暗号化を使用することは良い考えですか?

チャットアプリケーションのような内部のWhats-appの設計ドキュメントを読んでいます。
開発者は、非対称暗号化を使用してすべてのメッセージを暗号化することを計画しています。

すべてのユーザーは公開鍵と秘密鍵のペアを持ち、新しいチャットごとにチャット公開鍵とチャット秘密鍵が生成されます。鍵は中央サーバーを介して関係者に配信されます。
ユーザーがメッセージを送信すると、メッセージはユーザーの秘密鍵とチャット公開鍵で暗号化されます。受信者は、送信者の公開鍵とチャットの秘密鍵を使用してメッセージを復号化します。
これは問題ありませんが、ほとんどの一般的なチャットアプリはPKIを使用して共有キーを交換し、対称暗号化を続行しています。

非対称メソッドに反対し、対称暗号化アルゴリズムを使用することを提案する理由はありますか?

2
mk_

はい、理由があります。公開キーの暗号化は非常に低速でCPUに負荷がかかり、画像、オーディオ、ビデオ、テキストなどのチャットデータの暗号化にはまったく適していません。だからこそ、それがどこで使用されても、実際のコンテンツの暗号化に使用される共有対称暗号化キーの送信にのみ使用されます。しかし、いずれにせよ、独自の暗号を導入することは決して良い考えではありません。このようなユースケース向けに設計されたTLSを使用してください。ユーザーアプリのすべてのインスタンスを取得してサーバーに公開鍵をアップロードする必要があります。これにより、他のユーザーはサーバーをチェックして、適切な人と話していること、および人に干渉されていないことを確認できます。中間攻撃。

4
Mike Scott

あなたのケースで対称暗号化を使用する理由:

  • 非対称暗号化よりもはるかに高速です
    非対称暗号化は、計算時間に関しては非常に高価です。
  • 対称暗号化を使用するための準備はすべて整っています。
    とにかく秘密鍵を配布しているので、対称鍵を配布するだけではどうでしょう。
  • 非対称暗号化は、データの大きなチャンクの暗号化にはあまり適していません
    もっとシンプルなテキストを送信するために使用してください。写真、ボイスメール...
0
Jens Krüger