これがこの質問をするのに適切なSEであるかどうかはわかりませんが、このリモートシステムに異なるパスワード/ログインを持つ複数の人が同じファイルにアクセスできないように暗号化する必要があるファイルのデータベースがあるようです資格情報の2番目のセットを入力します。
具体的には、以下をサポートできる必要があります。
セキュリティに関する私の知識はせいぜい理論的なものです。私はいくつかのドングルエンコーディングを行いました(十分な時間をかけてクラッカーがセキュリティを破壊することをよく知っています)、この種の分散システムは私を少し超えています。
私の現在の考えは:
このアプローチはいくつかの理由で良くありません:
だから私はこのコミュニティに尋ねます—このアプローチは実現可能でしょうか?この(またはその他の、より改善された)アプローチを検討する必要があるパッケージまたはユーティリティのグループはありますか?
明確にするために、このシステムは暗号化されたデータをリモートで保存し、ユーザーはそのデータにアクセスします。ユーザークライアントを任意のシステムに配置できますが、リモートデータにアクセスするためにユーザーに提供するプログラムになるという考えです。サーバーには平文のデータがあってはなりません。
したがって、ユーザーがWindowsを使用している場合は、クライアント、証明書、およびログイン資格情報があります。証明書はそれらの資格情報で暗号化されるため、復号化してこのリモートシステムからデータを読み取るために使用できます。ユーザーが使用するOSを変更できません。
これらは異なるセキュリティレベルであり、異なるソリューションが必要です。
ユーザーがファイルのプレーンテキストバージョンにアクセスできる場合、システム(およびファイルの暗号化)はユーザーに対して透過的であるため、そのファイルが暗号化されているかどうかは問題ではありません。ログインすると、自分がアクセスできるすべてのファイルが表示され、それらのファイルが暗号化されているかどうかさえわかりません。
Linuxシステムは、ここで必要なすべてを提供できます。異なるユーザーを作成し、証明書でログインするように設定して、適切なユーザー/グループ権限でファイルにアクセスできるようにします。ユーザーが暗号化されたファイルをアップロードできる必要がある場合は、RSAキーペアを作成し、サーバーの公開キーをユーザーに配布します。そのキーを使用して、ファイルを暗号化したり、サーバー側で復号化したりできます。
これは少し話題外のように聞こえるかもしれませんが、私はあなたが必要とするものを提供するシステムの基本を説明する公開講座に出席しました。聞いたことを共有します。
いくつかの当事者が関与しました:
それでは、ボブが自分とアリスのためにファイルを共有したいとします。彼がすることは次のとおりです。
これはすべて「オフライン」で行われます。キーエスクローやアリスに連絡する必要はありません。これで、ボブとアリスはKfを秘密鍵で復号化することで同じファイルを共有できます。ボブが解雇された場合、パスワードを失うか、許可が取り消される必要がある場合、エスクローが開始し、上で作成されたレコードを変更します(これには、Kfそしてファイルを再暗号化します)。