7

そのため、データを暗号化し、データベースに保存し、mcrypt を使用して復号化しています。暗号化のキーを public_html ディレクトリの外にある php ファイルに保存しても安全かどうか疑問に思っています。

ファイルに保存する理由は、複数の暗号化に使用する必要があり、複数のユーザーが一部のデータを復号化できるようにするためです。ファイルに保存する方が、暗号化されたテーブルのすぐ隣にあるデータベーステーブルよりも安全であると考えましたデータ。

潜在的なセキュリティリスクは何ですか? ハッカーがこのファイル、ひいてはキーにアクセスすることは可能なのでしょうか?

4

2 に答える 2

9

public_html の上に格納することをお勧めします。ファイルには、それを必要とする Web サーバーまたはユーザーのみが読み取ることができるように、適切なアクセス許可が構成されている必要があります。

オプションとして、鍵を分割して別の場所に保管することもできます。例えば、鍵の一部をファイル・システム上のファイルに保管し、一部をデータベースに保管することができます。これの利点は、攻撃者がファイル システムとデータベースの両方にアクセスする必要があるため、完全なキーを取得するのが難しくなることです。

また、サーバー環境がセキュリティに影響を与えることも考慮してください。たとえば、共有ホスティングは専用サーバーよりも安全ではありません.

サーバーのセットアップと構成全体に依存するため、攻撃者がキーにアクセスすることは不可能だとは誰も言えません。サーバーは、ほとんどの場合、Web サーバーなどのソフトウェアの脆弱性によって侵害されるため、ソフトウェアを最新の状態に保つなどの適切なセキュリティ プラクティスに従う必要があります。

于 2012-12-11T11:23:56.063 に答える
8

サーバー(OS など) が侵害された場合、キーがファイルに保存されているかデータベースに保存されているかに関係なく、「ゲーム オーバー」になります。そうです、サーバーの OS に侵入することによって、「ハッカーがこのファイルにアクセスしてキーにアクセスすることはまったく可能です」。

OS ではなく apache または PHP が侵害された場合、鶏が先か卵が先かという問題が発生します。apache/PHP がアクセスできる場所にキーを配置すると、apache/PHP に侵入する人が誰でもキーを取得できます。 . そうでない場合は、webapp で使用できません。

これにより、Web アプリケーションが侵害され、周囲のインフラストラクチャが侵害されないというシナリオのみが残ります。この場合、ファイルは確かに良い考えかもしれません。ただし、ファイル システムではありません。

機密性の高い環境では、暗号化/復号化が一対の FIFO を介して処理され、外部プロセスによって実際の暗号化が行われるモデルを選択することがあります。

于 2012-12-11T11:26:10.707 に答える