2017-04-07 21 views
0

Javaプログラムがクライアントコンピュータからリモートマシンに.dllまたは.soファイルを送信する必要があることがあります。この.dll(.so)ファイルが実際に私によって作成され、ハッカーによって作成されないようにする可能性はありますか?まず、デジタル署名(java.securityパッケージ)が私の最初の選択だと思っていましたが、Javaがそこで利用できない可能性があるため、リモートマシンで署名を検証できません。他の選択肢はありますか?私がファイルを作成する方法を教えてください。

+0

Javaをお持ちでない場合は、なぜJavaソリューションをお探しですか? – Andreas

+0

クライアントプログラムはJavaで書かれているので、これらのファイルをJavaで送信します。基本的にはJavaを使用しています。私の質問は、Javaで実際にいくつかのファイルが私によって作成されていることを確認/検証する方法です。 – polis

+3

デジタル署名を検証できるのはJavaだけではありません。しかし、クライアントがハッカーに利用可能な場合、ハッカーはクライアントから鍵を引き出すことができます。 –

答えて

2

達成しようとしているのはnon repudiationです。それは次のとおりです。

  • 整合性の証明を提供するサービス(誰もあなたのファイルを変更していない)とのデータの原点(あなたが ファイルの本物の作成者です)。
  • 高い保証で本物であると主張できる認証。

それはあなたが使用しているプログラミング言語に依存しない概念ですが、JavaやC#や言語そのものについてではありません。 すべての言語には、それを扱うための独自のクラス、ライブラリ、マカニズムがあります。

具体的には、Javaでは、あなたは一見を見ることができるhere。必要な手順:

  • 一対のキーを生成します(1回だけ実行します)。
  • クライアント側で作成したすべての文書に署名します(誰もそれを変更できないようにします。誰も所有権を奪うことができず、誰もファイルの所有権を拒否できません)。
  • 文書とその署名を送信します。
  • サーバー側では、提供されたドキュメントに対する署名の有効性を確認します。あなただけのファイルは、あなただけのハッシュを作成し、署名することなく、簡単なdigest mecanismを使用することができます変更されていないかどうかを確認したい場合は

(...署名を検証、証明書を作成する必要はありません)と検証後で動作しますが、ハッシュだけでは、ファイルの作成者が誰であるかを確認することはできません。ハッシュ作成以降にファイルが変更されていないことを確認してください。

関連する問題