1

Web サイトで許可されたユーザーが取得できるデータを安全に保管する必要があります。クレジット カードではありませんが、同様に、誰かに手に入れてほしくないデータです。

データを取得する唯一のユーザーは、それを投稿したユーザーです。

というわけで、以下のようにまとめてみようと思います。

  • すべてがSSL上で実行されます
  • ログインするには、ユーザーはユーザー名とパスワードを入力し、「キー」ファイルをアップロードする必要があります。ユーザーは、キー ファイルのコピーをサム ドライブなどに 1 つだけ保持することをお勧めします。
  • ユーザーのキーはサーバーに物理的に保存されません。ユーザーがログインするためのキーを提供すると、それはメモリに保存されます
  • 保存されたすべてのデータは MCRYPT_RIJNDAEL_256 を使用して暗号化され、暗号化に使用されるキーは、アップロードする必要があるキー ファイルの一部になります (つまり、サーバーに保存されていないファイル)。
  • ユーザーのキーがメモリに保持されている間、これも毎日変更されるキーを使用して MCRYPT_RIJNDAEL_256 を使用して暗号化されます
  • データの取得時に新しい 32 バイトの IV を生成するため、2 つの個別の取得で異なる結果が得られるはずです。
  • ユーザーは必要なときにいつでもキーを再生成できます。その時点で、保存されているすべてのデータが新しいキーで再暗号化されます。
  • ユーザーは、キーのメモリ内ストレージにタイムアウトを設定できます。たとえば、30 分ごとにキーを再提供する必要があります。
  • ユーザーは、メモリ内ストレージに非アクティブ タイムアウトを設定することもできます。たとえば、5 分間アクションを実行しないと、キーも期限切れになります。
  • ボックス自体はロックダウンされ、ポート 80 とポート 22 のみが単一の IP (私たちのオフィスの IP) に公開されます。

私の質問は:

私は正しい方向に沿って考えていますか?上記のソリューションは安全でしょうか?それとも、データを簡単に取得するための攻撃ベクトルが欠けているのでしょうか?

私の知る限り、攻撃者はマシンに物理的にアクセスする必要があり (またはオフィスのネットワークにアクセスする必要があります)、その場合でも、その時点でログインしているユーザーのデータしか取得できません (それらは保存される唯一のキーです)?私の仮定は正しいですか?

ログイン中にユーザーのキーをメモリに保存する必要をなくす方法はありますか (リクエストごとにキーを再提供するように依頼する以外に) あるとは思いませんが、私が考えたことのないものであることを願っています。

ありがとう!

4

2 に答える 2

3

これは、ローカル ネットワークでは少し神経質に聞こえますが、他にも考慮すべき点がいくつかあります。これらは、私が自分自身に遭遇したいくつかのことです。

  1. ボックスとボックスへの物理的なアクセスはロックされ、監視されていますか (安全な部屋、安全なラック、カメラ)? 「オンライン」になるスイッチと同じラックにある場合、パッチケーブルはこれをインターネットにリンクできます。また、誰かがワイヤレス ルーターを持ち込んでネットワークに接続し (机の下に隠して)、ブロードキャストしていることがわからないようにすることもできます。接続の共有には USB ルーターも使用できます。Mac アドレスを確認します。

  2. キーを要求している場合は、おそらく 2 番目のフレーズ (ユーザーが 2 段階のパスワードのように提供した可能性があります) と、あなただけが知っている隠しフレーズに対してキーをハッシュすることをお勧めします。どこにでも行きます。また、彼らがいくつかのパケットをキャッチした場合、彼らにダンプを解読させたくないでしょう。誰かが別のキーを提供し、ハッシュが失敗したときにハッシュしている場合、その人があなたが思っている人物ではないことがわかります。

  3. キーが交換される最初のハンドシェイクをキャッチすると (銀行のハイエンド ルーターが転送を高速化するためにこれを行う)、SSL を破ることができるため、接続を介して送信されるものはすべて Wireshark のようなもので傍受できます。ハードウェア層へのアクセスがある場合は?

  4. USB ポートにアクセスできる場合、キャプチャされたものはすべてマシン上で収集できます (そのため、ポートは物理マシン上でロックダウンする必要があります)。サムドライブを提供してもらう場合は、これも確認する必要があります (ルート キット、キー ロガーなど)。おそらく、実行されているサムドライブ上のアプリケーションのチェックサムです。また、誰かがキーロガーをインストールして待機する可能性がある他の USB サム ドライブを物理的に (おそらくマシンの背面に) チェックする必要があります。

  5. マシンの CD-ROM にアクセスできる場合、マシンを再起動して knoppix などを使用できますか? デジタル紙の証跡はありません。

  6. ブラウザでは、おそらく履歴を保持しないようにする必要があります。

  7. すべての Web ページはすぐに期限切れになる必要があります。

  8. 誰かがマシンに接続するたびに、クリーンな VM をインストールするようにすることができます。

  9. 別の既定の Web ポートを使用します。

  10. データセンターにあるため、ボックス自体が適切に機能するために特定の接続を検索することを確認する必要があります (ステイアライブ認証のようなものです)。そうすれば、ボックスがオンラインに戻るために、ボックスに中間者の試みがある場合、誰かが物理的に介入する必要があります。

  11. サーバー ファーム (同じラック内) に独自のファイアウォールまたはローカル ネットワークがある場合は、ボックスがローカル ネットワークを盲目的に信頼していないことを確認してください。私の過去のクライアントの一部は、「核対応」施設の「安全な」ケージでホストされ、エンタープライズレベルのファイアウォールの背後にあり、安全なサーバーと同じサブネット上にあるギガビットスイッチに他の人がパッチを適用したことを発見しました. 彼らは私のクライアント接続を使用してブロードキャストを行い、クライアントのボックスに侵入しようとはしませんでしたが、クライアントのメール サーバー (Microsoft) の 1 つにコード red を感染させました。私のクライアントのウイルス対策/スパム対策ファイアウォール (Fortinet) は、アウトバウンドのウイルス、ワーム、迷惑メールをすべてブロックしました (IP を求める新しい MAC アドレスについて、ファイアウォールからページが表示されました)。幸いなことに、私たちはそうではありませんでした

  12. 最善のセキュリティを確保するには、ラック自体が専用のケージにあるか、物理的にロックされている (スタンドアロン) ことを確認する必要があります。少し高価ですが、データがミッション クリティカルな場合、侵害が発生した場合は問題になる可能性があります。ほとんどのサーバー ファームは、ケージにアクセスできる認証済みのユーザーが常に稼働していると信じています。主要なサーバー ファーム。また、ほとんどのサーバー ファームには、カメラとログインを監視する 2 人の「警備員」または人員と、そこにホストされているものに応じた少数の技術者がいます。

  13. ボックス自体のファイアウォールが、独自の特定の静的 IP のカップルからの接続のみを受け入れるようにし、ボックス上のアプリケーションも同様に検証を行う必要があります。ファイアウォールを使用している場合は、信頼できる VPN 接続のみが必要なリソース (Web アプリケーション、データベースなど) 以外にアクセスできるようにします。

お役に立てれば。

于 2013-03-23T00:37:20.890 に答える
2

アップロードするユーザーのみがコンテンツを読み取れるようにする必要がある場合、公開鍵暗号化が役立つ可能性がありますか?

こうすれば、キーをメモリに保持したり、誰かがデータを盗聴するのを恐れたりすることを気にする必要がなくなります。クライアントは、世界中のどこからでも自分の公開鍵でファイルを暗号化します。誰かが自分の秘密鍵 (暗号化の時点では必要ありません) にアクセスできる場合にのみ、そのデータを復号化できます。

GPGはこのようなものに最適なツールであり、多くのグラフィカル ユーザー インターフェイスが存在します。

サーバーが何らかのバックアップである場合は、秘密鍵のコピーを安全な場所に保管してください。それは、インターネットにアクセスできない外部メディア上にある可能性があります。

于 2013-03-23T00:51:58.137 に答える