TPM チップを搭載した x86_64 アプライアンスに TPM を使用して、ライセンス ドングルに相当するものを実装するように依頼されました。基本的に、アプライアンス用にリリースされたソフトウェアがアプライアンス自体でのみ実行できるようにすることが望まれます。これにより、ソフトウェアが仮想マシンまたは別のハードウェアに移行された場合に機能しなくなります。
私はこのソリューションがリバース エンジニアリングに耐性があるとは考えていませんが、通常のユーザーを妨害し、企業の顧客を正直に保つ典型的な「ドングル」タイプのソリューションだと思います。
TPM モジュール、TrouSerS、および openssl-tpm-engine コードを正常にビルドしてインクルードしました - TPM の所有権を正常に取得できますが、それ以上の利用可能なドキュメントではこのユースケースを完全にカバーしていません - またはこれまでのところ、わかりやすい英語の解決策を見つけることができませんでした。
可能であれば、プラットフォーム コンポーネントのハッシュを利用するよりも、TPM に格納されている秘密鍵の秘密の性質に依存することをお勧めします (ハード ドライブが故障したり、CPU が交換されたりする可能性があります。.定期的なハードウェアのアップグレード後にシステムが使用できなくなることはありません。
同様に、理想的には、このソリューションは、製造時に各アプライアンスの公開鍵を収集して署名キーチェーンに追加し、各アプライアンスが TPM に格納できた単一のキーに対してソフトウェアを署名できるように設計できるのではないかと考えています。 、ソフトウェアに複数回署名することを要求するのではなく? ここで間違っている可能性がありますが、プラットフォーム認証方法を満たすためのバルク方法が必要です。そうしないと、スケーリングが非常に困難に思えます。