0

公開鍵と秘密鍵のペアは、java スクリプト アルゴリズムを介してクライアント側で作成され、公開鍵はサーバーに転送されます。

個人の秘密鍵のコピーが、java スクリプト変数の形式でユーザーのコンピューターに保存されました。

ユーザー A がユーザー B にメッセージを送信する場合

サーバーは、ユーザー B の公開鍵を使用してメッセージを暗号化します。

ユーザー B はメッセージを取得し、Java スクリプト変数に保持されている非公開のユーザー B の秘密鍵を使用してメッセージを復号化 (Java スクリプトで記述されたアルゴリズム) します。

ユーザー B の秘密鍵がネットワークを介して開示されることは決してありません。

それは安全でしょうか?

4

3 に答える 3

2

「public」と「private」は、2 つのキーに付けられた名前にすぎません。使用法を混同しない限り、2 つのキーのどちらが公開キーでどちらが非公開キーであるかは問題ではありません。両方のキーが同時に誰かに利用可能になると、メッセージング システムのセキュリティは完全に破壊されます。

技術的には、キーは javascript 変数に格納されていると言うので、変数がブラウザベースの html/javascript に埋め込まれた状態で送信されたことを暗示しています。これはさらに、両方のキーがネットワークに公開されているため、セキュリティがないことを意味します。

于 2012-07-19T17:38:13.183 に答える
1

何かが「安全」かどうかを判断するには、セキュリティ要件が何であるかを知る必要があります。あなたのケースはいくつかの可能性のある要件を満たしていますが、満たされていない可能性のある要件がいくつかあります。例えば:

  • メッセージのプレーンテキスト コピーが明らかにネットワーク経由でユーザー A からサーバーに送信されるため、その時点で誰でも傍受できます。(これは深刻な問題になる可能性があります。)
  • 公開鍵がサーバーに送信される方法を説明していません。認証された方法で送信されない場合、中間者は自分の公開鍵と秘密鍵のペアを生成し、公開鍵をサーバーに渡すことができます。(これは深刻な問題になる可能性があります。)
  • ユーザー B は、受信したメッセージの信頼性を確認できません。メッセージは、サーバーから (そして最終的にはユーザー A から) 送信された可能性があります。または、公開鍵のコピーを持っている他のユーザーから送信された可能性があります。(アプリケーションによっては、これが深刻な問題になる場合とそうでない場合があります。)

したがって、全体として、この設計は「安全」であるとは考えていません。

于 2012-07-19T17:44:34.207 に答える
0

次の理由から、あまり安全ではありません。

  • 任意のユーザー(たとえばユーザーB)の秘密鍵は、挿入されたJSコード、または不正なブラウザーアドオンを介してアプリから漏洩する可能性があります
  • これが行われると、ユーザーBに向けられたメッセージのいずれかにアクセスできる人は誰でも、それを復号化して理解できるようになります。
  • もちろん、あなただけがアプリを使用している場合、上記は起こりません-ブラウザの設定/アドオン/閲覧動作などが異なる他のユーザーがいる可能性があるため、完全に可能です
  • ユーザーAがユーザーBに何かを送信しようとすると、サーバーはユーザーBの公開鍵を使用してメッセージを暗号化すると言いました。これで、JSを介して行われたこの要求は、仲介者が解釈できます。完了すると、この仲介者は、送信者、リファラーなどを操作することにより、任意のユーザーへの要求を開始できます。これにより、なりすましなどが発生する可能性があります。
  • また、生成後、公開鍵をサーバーに送信する予定であるとおっしゃいました。JSからのこの呼び出しは簡単に解釈できます。つまり、公開鍵が漏洩する可能性があります。
于 2012-07-19T17:41:51.280 に答える