1

去年の夏、私は見込み顧客のコンピュータが当社のハードウェアを統合するのに適しているかどうかをテストするアプリケーションに取り組んでいました。提案された概念の 1 つは、ツールによって生成された HTML レポートを、特定の状況での払い戻しの正当な理由として使用することでした。

私の即座の反応は、「これらの報告書が真正であることを確認するために、これらの報告書に署名しなければならない」というものでした。私が思い描いた解決策は、レポートの署名を作成し、それをメタ タグに埋め込むことでした。残念ながら、このシナリオではアプリケーションがレポートに署名する必要があるため、秘密鍵が必要になります。アプリケーションが秘密鍵を保存すると、真正性が保証されない振り出しに戻ります。

私の次のアイデアは、家に電話してサーバーにレポートに署名させることでしたが、ユーザーはハードウェアの互換性をテストするためだけにインターネット接続が必要です。さらに、アプリケーションはサーバーで認証する必要があり、関係者はそれを行うために使用している資格情報を把握できます。

だから私の質問はこれです。難読化以外に、アプリケーションが特定のレポートを実際に生成したことを確認する方法はありますか?

4

2 に答える 2

1

考えられるリスクを再評価する必要があると思いますが、おそらく、それらが思ったほど重要ではないことに気付くでしょう. その理由は、レポートはあなたにとって価値がありますが、顧客にとってはそうではないからです。したがって、これは多かれ少なかれビジネス タスクであり、プログラミングではありません。

具体的な質問に答えるために、署名に使用される秘密鍵が盗まれるのを防ぐ簡単な方法はありません(本当にしたい場合)。秘密鍵が内部に格納された暗号トークンを使用するより複雑なソリューションでは機能しますが、暗号トークン自体はハードウェアであり、シナリオではスキームが不必要に複雑になります。

于 2011-06-23T12:32:12.510 に答える
1

ユージーンが正しく指摘したように、私の最初の答えは受信者を認証することでした。送信者を認証するための代替アプローチを提案させてください

送信者を認証します。

アプリケーションがクライアント エンドにデプロイされると、秘密キーを保持する自己署名 PFX 証明書を生成してデプロイします。

クライアントの詳細と PFX のパスフレーズは、クライアントによって設定されます。生成したばかりのキーに対する責任をクライアントに負わせるために、クライアントに印刷して署名してもらうことができます。

これで、署名できる秘密鍵が得られ、HTML レポートをエクスポートするときに、証明書をレポートと一緒にエクスポートできます。

これは低コストのソリューションであり、以前の投稿で Eugene が指摘したように、秘密鍵を暗号トークンに格納するほど安全ではありません。

受信者を認証します。

受信側に RSA 2048 キー ペアを用意します。公開鍵を送信者にエクスポートします。

送信者がレポートを生成したら、AES 256 などの対称キーでレポートを暗号化します。対称キー自体を公開キーで暗号化/ラップします。

暗号化されたレポートを受け取ったら、秘密鍵を使用して対称鍵をアンラップ/復号化し、対称鍵で暗号化されたレポートを復号化します。

このようにして、目的の受信者だけがレポートを表示できるようにします。

于 2011-06-23T12:22:53.827 に答える