中央データベースなし


31

非常に機密性の高いデータ(銀行/カードの詳細よりも機密性の高いデータ)を扱うWebサイト/モバイルアプリ/デスクトップアプリを構築しようとしているクライアントがいます。データは機密性が高いため、中央のデータベースに保存したくありませんが、アプリの同期が必要です(モバイルアプリにデータを追加して、デスクトップアプリと同じデータを参照してください)。

これを行うための良い、信頼できる方法を考えることはできませんし、1つあるかどうかはわかりません。それが私がここにいる理由です。誰も私がこのデータをどのように扱うことができるか知っていますか?

私が考えていた解決策の1つは、アプリ間で何らかの形で同期するクライアント側のデータベースを各アプリに持たせることでした。


2
データを同期したい場合は、どこかでアクセスできる必要があるため、データをアプリケーションに取り込むことができます。データを複数のデータベースに分割することができます。したがって、データベースの1つが何らかの形で侵害されても、すべてのデータが漏洩することはありません。これで顧客が満足する場合は、アプリケーションにデータベース接続を追加して、そこからデータを取得するだけです。
アンディ

2
これはピアツーピアの問題ですか?または、1つのデスクトップが1つのスマートフォンと通信します(各データスペース)。
ebyrob

7
ユーザーのみが知っているキーを使用してサーバー上のデータを暗号化することにより、データベースの機密性を確保できます。
フィリップ

26
これは、セキュリティを理解していない人が考えているスキームのように聞こえます。この要件を思いついた人はだれでも、Security.SEでデータを保護することに関する質問を作成する必要があります。
jpmc26

4
@ user2424495:Webサイト経由でデータを利用する必要がある場合、データはWebサイトの提供元(通常は中央サーバー)で利用できる必要があります。または、クライアント側のデータを提供するブラウザプラグインを作成する必要があります。
ベルギ

回答:


60

多くの機密情報がデータベースに保存されます。実際、中央データベースは、おそらくこのデータを保存する最も安全な方法です。大規模なエンタープライズデータベースには、機密情報の暗号化、アクセスする人の監査、DBAを含む人々がデータを閲覧することを制限または防止するなどの機能があります。環境を監視する専門のセキュリティ専門家や、バックアップを監督する専門のDBAデータを失わないこと。適切に設計されたセキュリティインフラストラクチャに侵入し、適切な中央データベースを侵害するよりも、ランダムユーザーのモバイルデバイスまたはラップトップに保存されているデータを侵害することはほぼ間違いなく簡単です。

暗号化されたデータのみを保存し、ユーザーのデバイスにユーザーの秘密キーを保存する中央データベースを使用してシステムを設計できます。そうすれば、中央データベースが完全に危険にさらされても、データはユーザーだけが使用できます。もちろん、これは、ユーザーがキーを紛失した場合、ユーザーのデータを復元できないことを意味します(たとえば、唯一のコピーが携帯電話にあり、携帯電話が破損しているなど)。そして、誰かがキーと、おそらくログイン資格情報を侵害すると、データを見ることができるようになります。


24
@ user2424495-目標が実際のセキュリティである場合、データを一元的に保存することがほぼ確実に勝ちます。マーケティングの観点から、誰かの電話がハッキングされたとしてもあなたのせいではないかもしれません。しかし、ハッキングが比較的簡単であるという言葉が広まった場合、ほとんどの人のシステムは非常に安全性が低いため、確かにアプリに不適切に反映されます。データが軍用グレードのセキュリティを使用して暗号化されて保存されていることを、セキュリティが不十分な携帯電話がハッキングされても私を責められないことを願うよりも、むしろ人々に説明します。
ジャスティンケーブ

27
これは、質問に真に対処し、可能な限り最高のセキュリティ結果を提供する唯一の回答です。OPに与えられた要件は馬鹿げています。データが非常に機密性が高く、パブリックネットワークを介してデータを利用できるという考えがユーザーにとって不快である場合、アプリのアイデアは現実的ではありません。完全停止。クライアントデバイスは安全ではなく、信頼できません。
maple_shaft

2
@mharrデータベースが暗号化されたデータ(デバイスを離れる前に暗号化されたデータ)のみを保存する場合、裁判所の命令に関係なく、ユーザーのみが持つ暗号化キーなしでは物理的に解読できません。
リチャードティングル

9
@RichardTingle <tinfoil>政府機関がすでに暗号化を破っていないと言わない限り。</ tinfoil>
ボブ

3
問題が「おもしろい」ものではないと言ったことは一度もありません。これまでの質問と回答は非常に興味深く、考えさせるものです。これはまさにこのサイトをすばらしいものにする一種の質問です。私は本当に、データについて行われている可能性のある要件といくつかの仮定に本当に疑問を抱いています。私のスパイダーマンの感覚だけで...それ自体が知らさ空想と洞察に満ちた現実の続きであること、データの重要性について、これらの要件と前提条件がbloviatedと自己崇拝会社の黙想であることを私に叫ぶ
maple_shaft

38

いくつかの手順をバックアップし、クライアントと相談して脅威モデルを作成する必要があります。(はい、それは600ページの本へのリンクです。はい、すべてを読むことを真剣にお勧めします。)

脅威モデルは、次のような質問をすることから始まります

  • アプリがこの機密データを最初に保存する必要があるのはなぜですか?
    • 保管しないようにすることはできますか?
    • すぐに捨てられますか?
    • 本当に複数のデバイスからアクセスできる必要がありますか?
    • 複数のデバイスでアクセスできる必要がある場合、複数のデバイスに保存する必要がありますか?
  • 各ユーザーの機密データの閲覧を許可されているユーザーは誰ですか?
    • このリストを短くすることはできますか?
  • 仕事をしようとしているときに各ユーザーの機密データに接触する可能性があるが、それを知る必要がない人は誰ですか?
    • このリストを短くすることはできますか?
    • 仕事をする能力を損なうことなく、データにアクセスできないようにすることはできますか?
    • アクセスできない場合は、少なくとも理解できないようにすることはできますか?(これは暗号化が抽象的に行うことです:データを理解不能にします。)
  • 機密データを見たいが、許可されていない人は誰ですか?
    • データを入手するにはどのような機会が必要ですか?
    • データを取得したら、何をしたいのでしょうか?
    • 彼らが望むものを手に入れないなら、彼らはどれほど怒っているでしょうか?
    • どのくらいのお金、時間、CPUサイクル、および人間の努力を費やすつもりですか?
    • 誰もデータを見たこと知っていれば気にしますか?
    • 特定のユーザーの機密データにアクセスしたいのですか、それとも誰かがアクセスしますか?
    • 彼らはすでに何を知っていますか?
    • 彼らはすでに何にアクセスしていますか?

これらの質問に対する答えを知ったら、何をすべきかを理解するためのより良い場所にいます。

特に攻撃者(機密データを必要としているが、それを許可されていない人)に対処する質問の各セットには、複数の回答がある場合があることに留意してください。動機、目標、およびリソースが異なる、少なくとも半ダースの異なる典型的な攻撃者を考えることができない場合、おそらく何かを見逃しているでしょう。

また、あなた(および/またはクライアント)を最も悩ませる攻撃者は、攻撃が成功した場合にメディアに巨大なスプラッシュを作成する可能性が最も高いこと、または最大の損害を与える可能性が最も高いことを覚えておいてください攻撃が成功した場合に個々のユーザーに最大の損害を与える可能性のある攻撃者ではありません。クライアントの会社は、総体的な損害を合理的に気にしますが、ユーザーは、自分自身への害を合理的に気にします。


4
これは実際に質問に答えたり、反証しようとするものではありませんが、これは質問されなかった質問に対する本当に素晴らしい答えです。
maple_shaft

11
@maple_shaft:まあ、それはOPが尋ねることを意図していた質問に答えます。質問はXY問題に苦しんでいることがよくわかるので、これは良い答えのようです。
sleske

8

同期を行う1つのオプションは、ピアツーピアで行うことです。これには中央サーバーが必要ですが、そのサーバーはデータを一切処理しません。

デバイスがオンラインになると、中央サーバーはユーザーIDで通知を受け取ります。同じユーザーの2番目のデバイスがオンラインになると、サーバーは両方のデバイスに他方のIPアドレスを送信します。その後、デバイスはデータを直接交換できます。警告:1つのデバイスがサーバーとして機能する必要があるため、少なくとも1つのデバイスをNATルーターの背後に置くことはできません。

通知メカニズムとピアツーピア交換の両方に強力な認証と暗号化が必要になることを忘れないでください。


1
バージョン管理スキームはまた、すべてのデータの前後に2つのデバイス間のすべての時間を送るのを避けるために必要とされるであろうように聞こえる...
ebyrob

p2p交換は、エンドユーザーに不必要なセットアップを強制する必要がなければ、アプリケーションの使用をユーザーフレンドリーにしない、素晴らしいソリューションです。次に、アプリのセットアップ時に顧客がデータの脆弱性と少々手間を選択するかどうかという質問があります。これは、データの正確性とユーザーの関心に大きく依存します。
アンディ

1
@DavidPackerは、最初のサーバーをセットアップして保守すると仮定して、追加のセットアップ手順を教えてください。
ebyrob

@ebyrob誤解されるかもしれませんが、アプリの作成者が提供するサーバーには、p2p同期の手順以外は含まれていないことを理解しています。しかし、クライアントのデバイスの1つからこのサーバーを介してデータをプルする必要があり、クライアントは自分自身または自分のデータにアクセスできるようにする必要があります。これが私が話してきたセットアップです。
アンディ

1
@ David、Philippは、機密データのピアツーピア交換を提案しているため、中央サーバーを介して、または中央サーバーを介して送信することはありません。中央サーバーは、あるピアが別のピアを見つけやすくするためだけにあります。その後、邪魔になりません。
エリックエイド

5

他の人の問題にしてください。

データを各アプリにローカルに保存し、ユーザーが独自のアカウントを使用してサードパーティサービス(Dropbox、Googleドライブなど)との同期を有​​効にするオプションを提供します。また、サードパーティのサービスにアップロードされたデータを暗号化することを検討してください(それを行うことには賛否両論があります)。

これは、与え外観、彼らがオプトインデータ同期にまで持っているので、ユーザーは、自分自身のデータを所有していることを。共有を望まない人にとって、アプリは便利です。そして、共有データを安全に保つという現在進行中の頭痛の種として、他の誰かが(技術的に、場合によっては合法的に)責任を負います。


1

クライアントの懸念は、このデータの可視性にあるようです。顧客に最初に尋ねる質問は、データが暗号化されていた場合、どこに保存できるかということです。次に、データを復号化して処理する前に、どのような種類のアクセス制御が必要かを顧客に尋ねます-復号化キーはどこに保存できますか?ユーザーごとに個別のキーですか?等...

顧客がどこにもデータを保存したくない場合、ユーザーに毎回データを入力してもらいたいですか?

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.