セキュリティ上の理由 (知的財産の保護) のために、特定のハード ドライブ パーティション/USB ドライブにアクセスできないようにする方法を構築しようとしています。Windowsが「ロックされたドライブ/ USB」にアクセスしようとすると、試行が停止され、「ドライブにアクセスできません」などの何かが返されると考えていました。それはただのアイデアです、誰でもそれがもっともらしい/可能ですか? もしそうなら、何か指針はありますか?
C/C++
-ありがとう
セキュリティ上の理由 (知的財産の保護) のために、特定のハード ドライブ パーティション/USB ドライブにアクセスできないようにする方法を構築しようとしています。Windowsが「ロックされたドライブ/ USB」にアクセスしようとすると、試行が停止され、「ドライブにアクセスできません」などの何かが返されると考えていました。それはただのアイデアです、誰でもそれがもっともらしい/可能ですか? もしそうなら、何か指針はありますか?
C/C++
-ありがとう
目的を達成するには、フィルター ドライバーを作成する必要があります。ドライバーをディスク ドライバー スタックのどこかに配置し、ブロックするドライブ/パーティションの IRP_MN_START_DEVICE を失敗させる必要があります。
ドライバーを作成するには、 Windows Driver Kitが必要です。WDK にはフィルター ドライバーのサンプルがあります。このメーリング リストは非常に便利で、アーカイブを検索すると、ディスク フィルタ ドライバに関する多くの情報が見つかります。
フィルター ドライバーの作成に関する優れた記事がここにあります。読むには登録が必要だと思いますが、ドライバーを作成する場合は、このサイトに登録する必要があります。
関連書籍リストはこちら。
パーティションの問題は簡単です。特定のユーザーによるアクセスを防止するには、ACL を使用するだけです。
ドライブへのアクセスについては、Windows のどこかにそれを無効にする設定がある可能性があります。最悪の場合、ドライバーを強制的に削除しようとする可能性があります (そのため、ドライブ/スティックを読み取る Windows の機能)。
USB ドライブの場合は、それらを暗号化できます。
職場では、パスワードを持っている場合にのみ、任意のマシンのドライブにアクセスできるPointsec プロバイダーを使用しています。
フリーウェアの暗号化製品が利用できると確信しています
おそらくパーティションも暗号化できます。
(基本的に、他の方法で適切に管理できるもののためにc / c ++コードを書きたい理由がわかりません)
注意してください。カーネル作業に関係するものは、その分野での経験がまだない場合、開発に何年もかかります。
ドライブを暗号化する必要があります。暗号化しないと、攻撃者はドライブを別のマシンに接続してコンテンツを抽出することができます。
自分で暗号化を実装するべきではありません - 他の誰かがレビューしたコードに頼る方がはるかに良いです。ドライブの暗号化にはTrueCryptをお勧めします。
次に、アプリケーションが暗号化されたデータにアクセスするときにパスワードの入力を求めるフックをアプリケーションに配置したい場合があります。または、マシンに TrueCrypt をインストールし、データを操作する正確な方法に応じて、ユーザーがデータにアクセスしたいときにドライブを接続するようにします。