4

シナリオ: PHP で作成された Web アプリケーションは、Amazon Web サービスを利用しており、機能するためにアクセス キー ID とシークレット アクセス キーを手元に置いておく必要があります。このデータを安全に保存するための現在の推奨事項や API はありますか?

私の考えは、ローカルサーバー変数から作成されたキーに基づいて、ファイルに対称的に暗号化することです。そうすれば、誰かが FTP 経由でファイルのコピーを取得したり、ファイルがコピーされたラップトップを紛失したりした場合、[うまくいけば] 意味不明になります。私が懸念しているのは、熟練した攻撃者が独自のスクリプトをアップロードして復号化できることです。

これは一般的な状況のように思えますが、快適な解決策を見つけたことはありません。AWS に送信する HMAC を作成するには元のデータが必要なため、明らかに一方向ハッシュは使用できません。関連する SO の質問へのリンクは大歓迎です。

4

3 に答える 3

1

ああ。セキュリティの問題。

ここで尋ねるべき質問は、たとえばphp構成ファイルのmySQLパスワードなど、何をしているのかということだと思いますか?

率直に言って、誰かがあなたのファイルのコピーを取得できた場合、いずれにしてもセキュリティを再考する必要があります。私自身の使用のために、私は通常、パスワードを1か所(サーバー上で使用する必要があります)にのみ保持し、毎回ランダムに生成されたパスワードを使用するようにします(構成ファイルに貼り付けてください!)

正直なところ、自分のホストではない場合、機密データが危険にさらされる可能性があります.

自分のホストの場合は、Linux 内で適切なアクセス許可を使用し、PHPSuExecを使用して、自分が作成したスクリプトだけがファイルにアクセスできるようにすることをお勧めします。

とにかく、元の質問に答えるために、AWS アクセス / シークレット キーは MySQL のパスワードとまったく同じです。誰かがあなたのサービスにアクセスできるようになる可能性はありますが、あなたの個人情報へのアクセスは許可されません。対称暗号化を使用しても、スクリプトにセキュリティ ホールがあれば、情報にアクセスできます。

簡単に言えば、自分以外の誰もがアクセスできる場所にこれらのキーを配置すると、危険を冒すことになります。Amazon のサーバーが侵害されていないことをどの程度信頼していますか?

できるだけ多くのセキュリティを追加することをお勧めしますが、アカウントに注意してください。通常、cron ジョブを実行して、S3 アカウントへの変更をメールで送信します (新しいファイルのアップロード、新しいバケットのアップロードなど)そして、そこから何が起こっているかがわかります。

簡単な解決策はありません。それは、システムの各レイヤーを個別に保護することです。つまり、対称暗号化を使用する場合、そのパスワードはどこかに保存する必要がありますよね? それとも毎回入力しますか?

お役に立てれば

于 2008-12-06T23:26:56.713 に答える
0

あなたが提案するように、対称暗号化を使用します。サーバーを起動するときに、認証データを含むファイルを復号化するためのキーをサーバーに与える必要があります。

もちろん、ハッカーはメモリ ダンプを実行してそのようにパスワードを読み取ることができますが、クリアテキスト ファイルを読み取るよりもかなり困難です。完璧なソリューションはありません。セキュリティは常に、リスクと使いやすさの妥協点です。

したがって、サーバーのセキュリティは依然として重要な問題であり、どれだけのセキュリティで十分かという問題に過ぎません。サーバーを強化するためにBastille Linuxなどを検討することをお勧めしますが、それはまったく別のトピックです。

于 2008-12-24T03:25:00.157 に答える