私はDRMソリューションに使用される暗号化について学び始め、これが購入したソフトウェア資産を実行するカスタム組み込みシステムの有効なソリューションであるかどうか知りたいと思っています。
ECDSA公開鍵/秘密鍵は、デバイスの製造前に生成されます。
秘密鍵はデバイスに埋め込まれ、公開鍵はデバイスのシリアル番号に対して会社のサーバーに登録されます。
ソフトウェアを購入すると、ハードウェアのシリアル番号がトランザクションの一部としてサーバーに送信されます。
購入者がダウンロードできるようにする前に、ソフトウェアはハードウェアの公開鍵を使用して暗号化され、ソフトウェアがその特定のハードウェアに関連付けられます。
ソフトウェアはハードウェアに格納されると、埋め込まれた秘密キーを使用して実行するためにジャストインタイムで復号化されます。
このシステムは機能している可能性があり、経験の浅い他者を遅らせる可能性がありますが、これは最終的に効果的な防御策ではありません。
問題は、秘密鍵がデバイスに埋め込まれており、そのデバイスを購入した顧客がデバイスに無制限に物理的にアクセスできることです。デバッグインターフェイスとの通信、メモリダンプの取得、デバイスのシェル化などにより、秘密キーや独自のソフトウェアを復元できる場合があります。これの容易さは、デバイスのハードウェアとソフトウェアの設計に依存する可能性がありますが、いずれの場合も十分な時間と労力で打ち負かされる可能性があります。
つまり、誰かがデバイスを所有すると、デバイスに保存または処理されたものの機密性は期待できなくなります。
これは、Denuvoの動作の一部の単純なバージョンとは言わないまでも、非常に単純です。だれも知らないようですが 正確には ですが、卵を解読するために卵を理解する必要がないことがわかります。
提案されたソリューションには少なくともいくつかの脆弱性があります:
エンドユーザーは、サーバーに送信するシリアル番号を決定する必要があります。
暗号化/復号化モジュールが十分に保護されていない限り、秘密鍵は簡単に抽出されます。十分に保護されたモジュールからそれを抽出することは より困難ですが、確実に実行可能 です。
ソフトウェアが復号化されます。
その間、それはユーザーに大きな負担を課し、ソフトウェアの販売をさらに困難にします。
ソリューションが実際の組み込みシステムであることを意図している場合、著作権侵害はそもそも問題ではありません。他の目的に役立つ場合を除いて、システム全体をコピーするのは大変です。ハードウェアとソフトウェアの完全なパッケージを販売するだけです。
それが本当にコピーする価値がある場合、チップのデキャップは ロケットサイエンスではない であり、キーがダウンロードされ、チップ自体がコピーされます。
一般的な市場を対象とする場合、独自のカスタムチップ以外のハードウェアをサポートすることで、その市場は少なくとも数万倍大きくなるため、非現実的な99%の違法コピー率のユニバーサルハードウェアサポートでも収益性を獲得できます。