サードパーティがプラグインを作成できるようにするWin32プログラム(=ホスト)を開発します。一部のプラグインには貴重なコード(たとえば、高品質のビデオスカラー)が含まれているため、サードパーティはプラグインをホストプログラムでのみ機能するように制限したいと考えています。
私たちのアイデアは、MicrosoftAuthenticodeテクノロジーを使用してホストに署名することです。次に、サードパーティは、ホストをチェックするために次のアルゴリズムを実装するように求められます。(サードパーティは、アルゴリズムに対して十分なコード難読化を行うことが期待されています)。
WinVerifyTrust()APIを使用して、ホストの証明書が有効であることを確認します(=取り消されていない、改ざんされていないなど)。
件名が当社であることを証明します。
問題はステップ(2)についてです。ホストのデジタル証明書は証明書の有効期限後に更新されるため、サードパーティは単にサムプリントまたはシリアル番号を確認することはできません。
私の考えは、米国で会社名の競合がないと仮定して、サブジェクトの識別名の一部、具体的には「国(C)」と「一般名(CN)」をチェックすることです。会社が移転する可能性があるため、州や都市などの他の属性を確認するべきではありません。実際、1年前にある都市から別の都市に移転しました。
質問:目標を達成するための良い方法ですか?