Windows では、単一のプログラム内でデータを保護することは可能でしょうか? 私はCryptProtectDataを調べてきましたが、これはユーザーベースであり、プログラムベースで似たようなものが欲しいです。私のプログラムには、同じデータへのアクセスを必要とする複数のユーザーがいますが、データは重要であり、どのユーザーにも読み取らせたくありません。
3 に答える
まず第一に、ユーザーが管理者権限を持っている場合、それらを締め出す確実な方法はありません。
第 2 に、そうしなかったとしても、ソフトウェアの一部をリング 0に実装する必要があるため、ユーザーよりも高い特権を持つことになり、プロセスのメモリやプロセスへのアクセスが難しくなります。実行可能ファイル。その後、データを暗号化し、ユーザーに提供するときに復号化できます。
上記のすべてが不可能な場合は、ソフトウェア開発者がクラッキングに対して使用するのと同じ難読化手法を採用できます。
これは通常、デバッグやパッチ適用の防止に帰着します。ここでのアドバイス: http://www.woodmann.com/crackz/Tutorials/Protect.htm
CryptProtectData は (間接的に) ユーザーの資格情報を使用してデータを暗号化します。
Windows (および他のほとんどの汎用コンピューター プラットフォーム) では、コンピューターはユーザーに属し、ユーザーはアプリケーションではなくマスターであるため、アプリケーションごとにデータを暗号化することはできません。
ユーザー (およびユーザーのアカウントで実行されている他のアプリケーション) がデータにアクセスできないようにする場合は、このデータをコンピューターから移動し、リモート システムに保存して、このデータへのユーザーのアクセスを制御する必要があります。