私は、アプリケーションにドングルベースのコピー防止スキームを実装する任務を負っています。私が何をしても、誰かがそれをクラックすることはわかっていますが、少なくとも、ドングルが存在するかどうかをチェックするifステートメントよりも少し難しくしたいと思います。
私のアプローチは、アプリケーションが適切に実行するために必要な重要なデータを暗号化することです。実行時に、復号化キーがドングルから取得され(選択したモデルには、それに適したAPI関数がいくつかあります)、データが復号化され、アプリケーションは正常に動作します。
もちろん、断固とした攻撃者はその復号化キーを傍受し、復号化されたデータを入手することもできます。それで大丈夫です。しかし、難しいのは、自分のデータを置き換えることです。そのため、復号化キーを知っていても誰かが自分のデータを暗号化できない暗号化スキームを探しています。
これは明らかに非対称暗号化です。しかし、これまでに見つけたそのようなアルゴリズムごとに、暗号化(または公開)鍵は復号化(または秘密)鍵から生成できます。これはまさに私が避けようとしていることです。
注:(私がそのような署名を完全に誤解していない限り)署名の検証は別のifステートメントであり、簡単に回避できるため、データに署名するだけではあまり役に立ちません。
だから...何かアイデアはありますか?