0

サードパーティがプラグインを作成できるようにするWin32プログラム(=ホスト)を開発します。一部のプラグインには貴重なコード(たとえば、高品質のビデオスカラー)が含まれているため、サードパーティはプラグインをホストプログラムでのみ機能するように制限したいと考えています。

私たちのアイデアは、MicrosoftAuthenticodeテクノロジーを使用してホストに署名することです。次に、サードパーティは、ホストをチェックするために次のアルゴリズムを実装するように求められます。(サードパーティは、アルゴリズムに対して十分なコード難読化を行うことが期待されています)。

  1. WinVerifyTrust()APIを使用して、ホストの証明書が有効であることを確認します(=取り消されていない、改ざんされていないなど)。

  2. 件名が当社であることを証明します。

問題はステップ(2)についてです。ホストのデジタル証明書は証明書の有効期限後に更新されるため、サードパーティは単にサムプリントまたはシリアル番号を確認することはできません。

私の考えは、米国で会社名の競合がないと仮定して、サブジェクトの識別名の一部、具体的には「国(C)」と「一般名(CN)」をチェックすることです。会社が移転する可能性があるため、州や都市などの他の属性を確認するべきではありません。実際、1年前にある都市から別の都市に移転しました。

質問:目標を達成するための良い方法ですか?

4

1 に答える 1

0

このスキームは機能しますが、プラグインにパッチを適用するだけで、比較的簡単に保護を回避して、署名を無視したり、署名の検証を完全にスキップしたりすることができます。

さらに重要なことは、複数のプラグイン/ベンダーを計画している場合、すべてのベンダーが検証コードを正しく難読化することを保証するのに苦労するでしょう。

次に、プラグインをアプリケーションのみに制限することは、プラグインベンダーの利益に反する可能性があると思います。より大きな市場が必要な場合は、同じプラグインをより広い範囲のホストで実行することをお勧めします。

于 2011-03-20T18:29:17.650 に答える