0

Crypticoは、非常に洗練されたRSA暗号化ライブラリのようです。

cryptico.wwwtyro.net

JavaScriptアプリケーションに関して、クライアントにデータを送信し、クライアントにデータに対して何かを実行させて、それを返したいとします。RSAを使用して、クライアントがサーバーに送り返すデータが改ざんされていないことを確認するにはどうすればよいですか?JavaScriptは簡単にリバースエンジニアリングされるので、crypticoの実用的なクライアント側アプリケーションはありますか?

4

2 に答える 2

0

あなたは-あなたの例では-あなたは彼のクライアントがデータで何をしているのかをユーザーから隠したいという意味ですか?もしそうなら-それは不可能です。クライアントからのデータは絶対に信用しないでください。暗号化されたデータをクライアントに送信して処理する場合、ユーザーが暗号化キーを知っている(または必要かどうかを知っている)と想定する必要があります。そうしないと、処理できなくなります。言い換えれば、クライアントが処理するものをユーザーから隠すための安全な方法はありません。難読化-お気づきのように、使用する言語に関係なく、常にクラックされる可能性があります。

このライブラリの最も一般的で実用的なクライアント側アプリケーションは、ユーザーのデータを暗号化してサーバーに送信すること、またはその逆であると思います。SSLが使えない場合があります。さらに、たとえば、Facebookに暗号化された投稿を作成して、友​​人だけが復号化できるようにすることができます(彼はキーを知っているため)。

于 2012-01-05T08:38:43.100 に答える
0

あなたが求めているものに対する解決策があります(私は複数あると確信しています)。私の答えは、私たちが「安全な接続」と呼ぶものと、「クライアントコード」を受け取る方法に対する2つの非従来型のアプローチを必要とします。

  1. 安全な接続を開始する物理的に事前共有されたキーが必要です。事前共有されているため、RSAである必要はありません。これにより、速度の機会とより高いレベルの暗号化セキュリティが実現します。

  2. 同様の方法でクライアントコードを物理的に事前共有します。つまり、雑誌のCDから、または市場で販売されているプリペイドカードからコードをダウンロードします。これにより、MITMが改ざんされて悪用されたクライアントを送信するのを防ぎます。これはsslで許可されています。クライアントが安全であることがわかり、(1)で説明した実際の安全な接続が確立されると、クライアントコードを更新できます。

安全な接続を開発する事前共有キーと、チェックサムに合格できるクライアントコードを組み合わせることで、目的を達成できます。

理想的には、事前共有された安全な接続キーを現在市場で入手できるようにする必要がありますが、そうではありません。したがって、あなたが一人でそれを行うには、この国の人々が実際のセキュリティと一緒に行動するまで、あなたのウェブサイトに似たようなものを実装する必要があります。クロスドメインのセキュリティ問題のため、電話やメールなどでキーを提供する必要があります。また、クライアントコードをインストールするには、ブラウザの拡張機能である必要があります。

于 2013-05-12T08:30:01.293 に答える