web-dev-qa-db-ja.com

暗号化されたデータの共有

暗号化したいが組織のメンバー間で共有したい組織に関連する情報を保存しているWebアプリがあります。組織のメンバーにのみ、サーバー管理者ではなく、この暗号化されたデータを表示できるようにしてください。

何らかの形の対称暗号化が必要なようです。各メンバーは、ユーザー提供のパスワードを使用して暗号化されたマスターシークレットのコピーを保持します。組織データへのアクセスを取得する手順は、マスターシークレットを取得するためのユーザーパスワードを提供し、マスターシークレットを使用して組織データのロックを解除することです。

私の懸念の1つは、組織に新しいメンバーを追加することです。新しいメンバーが暗号化されたマスターシークレットのバージョンを作成できるようにする明確な方法がわかりません。新しいユーザーが新しいアカウントを作成するときに、マスターシークレットを暗号化する必要がある場合がありますが、安全な方法でそれを行う方法がわかりません。

また、私はこれをすべて間違った方法で考えている可能性が非常に高いです。ありがとう。

3
seanbrant

通常、組織では、システム管理者は誰もが信頼する人です。

何らかの形の対称暗号化が必要なようです

  1. 対称暗号化の最大の問題は、組織のメンバー間で秘密鍵を共有することです。
  2. もう1つの問題は、秘密鍵が正常に共有されたがクライアントシステムに保存されている場合(ほとんどの怠惰な人がそれを行う)でも、管理者はシステムにログインしてキーにアクセスできます。

公開鍵と秘密鍵のペアを使用

  1. PKIを使用すると、データが確実に保護され、キー共有の問題が解決されますが、質問には、データにアクセスする人の数や、共有したいデータの量は含まれていません。

  2. ユーザーが100人いるとします。その場合、データをホストするサーバーは、すべてのユーザーの公開鍵を追跡する必要があります。

  3. あなたは管理者を信頼していないので、サーバーに保存されているデータは、すべてのユーザーの公開鍵を使用して事前に暗号化されると思います(そのユーザーだけが解読できるようにします)。これは、同じデータセットの100の異なるインスタンスがあることを意味します。データのサイズとユーザー数によっては、これがパフォーマンスの問題になる可能性があります。

Sysadminsの制御下にないユーザー認証とHTTPSが有効なイントラネットWebサイトを維持することをお勧めします(セキュリティポリシーで許可されている場合)。ただし、システムのメンテナンスとセキュリティの頭痛の種を取り除かなければなりません。

注:通常、システム管理者は組織内のすべてのシステムに対して物理的アクセスを持ち、データはどこかで平文で表示されます(使用のためにデータを復号化したクライアントシステム上)。 。イフとバットが多い….

6
Shurmajee

標準的な脅威モデルの免責事項:システムのコンテキスト、データの機密性、攻撃者の種類などを知らずに答えることは困難です。

あなたが心配している唯一の脅威エージェントがシステム管理者であり、Webアプリケーション、OS、およびデータベースに対する完全な管理者権限であると仮定すると、そのようなアプリケーションおよびデータベースに格納された情報を完全に保護することはほとんど不可能です。例えば。保管時に暗号化した場合でも、OSへのフルアクセスで、メモリ内の復号化データにアクセスします。

アプリケーション管理者アクセスとデータベース管理者アクセスのみがあり、明確にデータにアクセスするのをより困難にしたい場合(80/20ルール)、何らかの形のクライアント側の暗号化が最適です。非対称暗号化を使用して、複数のユーザー公開鍵を使用して暗号化されたデータでこれをアーカイブできます。各ユーザーの秘密鍵はユーザーによってローカルにのみ保存され、復号化に使用されます。キーのバックアップはありません。ユーザーが秘密キーを紛失すると、アクセスが取り消され、新しいユーザーアカウントが作成されます。

これには、各組織のメンバーがマスターキーを知る必要がなく、キーの配布が安全であるため、説明した対称キーの方法よりも優れています。

例えば:

High level client side encryption

アプリケーション管理者ではなくデータベース管理者のみに関心がある場合は、透過的なデータベース暗号化などの方法を使用する方が簡単です。つまり、データベースに直接アクセスする場合は情報を表示できません。

6
Rakkhi