アドオンとファイルの認証

authentication digital-signature security
アドオンとファイルの認証

オリジナルのスタートクラフトをプレイし、ブリザード製の公式マップを選択した場合、マップの横に小さな「ブリズ」アイコンが表示され、サードパーティ製ではなく公式であることがわかります。

私のアプリケーションに同様のシステムを実装して、アドオンやファイルを認証して、それらが私または他の人から来たかどうかをユーザーに知らせることができるようにします。

私はセキュリティについてほとんど知らないので、この問題について助けていただければ幸いです。

  0  0


ベストアンサー

http://en.wikipedia.org/wiki/Public-key_cryptography [公開鍵暗号化]。 クライアントアプリケーションには、公式作成者の公開署名キーのコピーがあり、作成者の秘密キーで作成されたアドオン/ファイルに適用された署名を検証します。

3


Macの答えは絶対に正しい。 より具体的には、プロセスは通常次のようになります。

署名:

  1. ハッシュ(例: SHA-1)はコンテンツから作成されます。

  2. 次に、ハッシュは秘密鍵を使用して署名され、結果として
    署名(例: DSAまたはRSAアルゴリズムを使用)。

  3. 署名はコンテンツに含まれています。 コンテンツが変更された場合、
    署名は無効になります。

検証:

  1. クライアントはコンテンツからハッシュを計算します。

  2. 署名は作成者の既知の公開鍵で復号化されます
    (すなわち 君は)。

  3. 署名内のハッシュが#1から計算されたハッシュと一致する場合
    それで構いません それ以外の場合、コンテンツは変更された/実際に著者からのものではない(つまり、 君は)。

いくつかの考慮事項:

  1. 総当たり攻撃を阻止するのに十分な大きさのキーサイズを使用する必要があります。

  2. これらのアルゴリズムには、ランダムデータのソースが必要です。
    鍵の生成時や署名時など。 これに違反した場合、多くの場合、秘密鍵が簡単に公開される可能性があります。

  3. 「公開鍵を使用してハッシュを暗号化する」は単純な説明です。
    たとえば、RSAの場合、ハッシュに他のデータを埋め込む必要があります。 検証時には、パディングも確認する必要があります。 そうしないと、署名を簡単に偽造できる可能性があります。 (参照:数年前のOpenSSLの大失敗)。

標準的なアドバイスは、より多くの経験を持つ人によって書かれた、実績のある市販の暗号化ライブラリを使用することです。 ライブラリにキーペア、および署名/検証するデータを供給し、最小限のコードで「これを署名/検証」する必要があります。 パディングの詳細、またはそのようなことを心配している場合は、おそらく間違っています。 参照:Microsoft .NETのSystem.Security.Cryptography名前空間(非常に使いやすい)、または標準のWindows C / C ++プログラミングを行っている場合はMicrosoft CryptoAPIを参照してください。 他のクロスプラットフォームライブラリも存在します。プラットフォームで適切に機能するものを選択してください。

0


タイトルとURLをコピーしました