4

私は、多数のクラス、データベース ライブラリなどを介して 1 つのディレクトリ内の多数のファイルにデータを格納 (および頻繁にアクセス) する C++ アプリケーションに取り組んでいます。応用。

Windows では、アプリケーションがログイン ユーザーのパスワードに基づいて暗号化キーを使用するのではなく、暗号化キーを直接設定できる場合、プログラムでディレクトリの EFS を有効にすることが最適です。これは不可能のようです。

コードにはファイルを読み書きする場所が多数あり、一部は完全なランダムアクセスであるため、OS ファイル操作 API に似たものをエクスポートするライブラリは、OS の直接サポートがない場合に最も簡単です。

Windows は最大のユーザー ベースですが、Mac と Linux で使用できるものは大きなプラスになります。

助言がありますか?

4

4 に答える 4

2

アプリケーション専用のサービスアカウントとして実行するようにアプリケーションを構成します。次に、EFSを構成します。アプリケーションのサービスアカウントがファイルを所有するため、そのユーザー固有のキーが唯一の有効なEFSキーである必要があります。したがって、アプリケーション(この新しいサービスアカウントで実行される唯一のもの)のみがファイルにアクセスできます。 。

于 2013-01-24T23:20:20.503 に答える
1

私は専門家ではありませんが、いくつか提案があり
ます (「ユーザー」はここでは男性と見なされます)。

Windows では、ユーザーがログインすると、そのユーザーに属するファイルまたはフォルダーを操作するすべての権限が与えられます。
ただし、他のユーザーのファイルやフォルダを操作しようとすると、許可されません。そのため、他のユーザーのファイルを操作することはできません。
ユーザーが管理者である場合、そのユーザーはファイルを操作するすべての権限を持ちます。
あなたの場合、ユーザーは管理者ではないと思います。

したがって、次のことをお勧めします:
このアプリケーションのユーザーを作成します。たとえば、Bob とします (Bob は、このアプリケーションを使用するユーザーではありません)。
次に、ファイルを保存するフォルダーを作成し、Bob (および管理者) のみにすべての権限を与えます。
他のすべての場合、フォルダーに対して何もする権限はありません。
アプリケーションは管理者がインストールする必要があります

起動すると、アプリケーションは現在のユーザーにボブのパスワードを尋ねます。
パスワードが正しい場合は
、アプリケーションを使用して、現在のユーザーにフル アクセスのフォルダー権限を許可します。その後、アプリケーションは必要に応じて機能します。
ユーザーがアプリケーションを終了した場合、
現在のユーザーのすべての権限を削除して、このアプリケーションを終了した後に他のユーザーがそのコンテンツにアクセスできないようにします。
ただし、管理者は引き続きこのコンテンツにアクセスできます。

これは、Linux のユーザー管理に似ています。シェルを取得しているときは、作業が終了したときに
使用するユーザーを変更でき、シェルを終了すると、他のユーザーはそれらのファイルを使用できなくなります。su usernameしかし、root ユーザーは Linux で何でもできます。

しかし、1 つ問題があります
管理者は権限を変更できるため、完全なコンテンツとアクセス権を取得できます。
これを禁止するには、任意の手法を使用して圧縮し、パスワードを使用してファイルを保存します。そのパスワードは、それを使用するユーザーのみが知っています。ファイルをフォルダに保存する前に、パスワードを使用して圧縮してください。ファイルを使用する前に、パスワードを使用して解凍します。

圧縮パスワードがユーザー パスワードと同じ場合、問題があります。
管理者は、ユーザーのパスワードを何かにリセットして、自分のアカウントを開くことができます。
これを防ぐには、次の手法を使用できます:
zip パスワードをユーザー パスワードの逆として使用して、ユーザーのパスワードが 1234 の場合、圧縮パスワードが 4321 になるようにするか、ユーザー パスワードのハッシュ値を圧縮パスワードとして使用します。
zip パスワードが MD5 ハッシュや SHA-1 などのハッシュ値である場合、パスワードの長さが原因で zip ファイルに対するブルート フォースは機能しません。
これが実用的な解決策であるかどうか、またはこれを実装できるかどうかはわかりません。
しかし、これに良いアイデアがあると思うなら、ここからいくつかのアイデアを引き出すことができます。

于 2013-01-24T09:56:31.370 に答える
1

zip ファイルなどの暗号化されたアーカイブにファイルを保存することを検討しましたか? 作業している言語がわからないため、より具体的な回答をすることが難しくなります。

于 2013-01-18T18:38:19.123 に答える