Webアプリケーションがアクセスする必要があるPHIのデータベースがあると仮定すると、Webアプリケーションがこのデータベースにアクセスするために使用するWebサーバーの資格情報をセキュリティで保護する必要がありますか?
標準のユーザーとパスの組み合わせを保存することはHIPAAに準拠した方法ですか、それともより安全な方法を見つける必要がありますか?
設定ファイルの例(Webルートの外部にdbConfig.something.phpとして保存されています)
$phiDb => array(
'dbUser' => 'webPHIUser',
'dbPass' => 'webPHIPass',
);
したがって、HHSセキュリティガイドラインによると、ユーザー名とパスワードの組み合わせは、個人を認証するための十分なメカニズムです。 ただし...設定ファイルにユーザーのパスワードをプレーンテキストで保存することは、通常、推奨される設計パターンではありません。確かに、プレーンテキストのパスワードとともに、データベースへのアクセスを許可されているすべての個々のユーザーのリストではありません。私はPHI/HIPAA監査人ではありませんが、私がこの設計を監査人に提示すると、彼がこれに問題を起こす可能性があることを強く期待します。
リスクを制限するために取ることができるいくつかの対策:
1)パスワードを保存しないでください。むしろ、認証のためにユーザーデータベースにアクセスするために必要なパスワードのみを保存し、PHIを含むデータベースへのパスワードは保存しないでください。データベースパスワードは、KDFを使用してユーザーのアプリケーションパスワードから取得でき、保存するのではなく、認証時に取得できます。
2)パスワードを保存しますが、構成ファイルを暗号化します。これが単純な難読化にならないようにするには、暗号化キーを、HSMなどの別の構成ファイルよりも安全な場所に格納する必要があります。
3)認証情報が盗まれた場合に備えて、間接的なデータベースアクセスがブロックされていることを確認します。データベースサーバーはファイアウォールで保護され、アクセスはホワイトリストを介して行われる必要があります。ほとんどの場合、アプリケーション(Web)サーバーのみにデータベースサーバーへのアクセスを許可する必要があります。この方法では、誰かが資格情報を盗んだとしても、自分のマシンからデータベースに単純にログインすることはできません。さらに、ルールによるデータは暗号化する必要があるため、データベースレベルの関数ではなくアプリケーションを使用して復号化すると、悪意のあるユーザーがアプリケーションの外部からデータベースにアクセスできたとしても、暗号化されていないデータにはアクセスできません。