14

データベースが侵害された場合に長期アクセス トークンが盗まれないようにするには、どのようなセキュリティ対策を講じる必要がありますか?

寿命の長いアクセス トークンは、特定のサービスのユーザー名とパスワードと同じくらい優れていますが、他のユーザーの話によると、ほとんど (私自身を含む) はアクセス トークンをプレーン テキストで保存しているようです。これは、パスワードをプレーンテキストで保存するのと同じくらい悪いようです。明らかに、トークンをソルトしてハッシュすることはできません。

理想的にはそれらを暗号化したいのですが、特にオープン ソース プロジェクトでは、これを行う最善の方法がわかりません。

この質問への答えは、支払い情報の保存と PCI コンプライアンスに関するものと似ていると思いますが、なぜこれについてこれ以上議論されないのでしょうか? おそらく私は何かを見逃しています。

4

1 に答える 1

12

他の人が提供したトークンを検証したいだけですか? その場合は、パスワードと同じように扱ってください。Password Based Key Derivation Function 2 (PBKDF2) ( RFC 2898にも記載)のようなバイト派生アルゴリズムを 10,000 回反復して使用し、最初の 20 バイト程度を保存します。トークンを受け取ったとき。これは実質的に可逆的ではありません。

認証のためにトークンを他の人に提示しますか? もしそうなら、これは課題です。なぜなら、アプリケーションがトークンを復号化するか、別の方法でトークンにアクセスできるのであれば、攻撃者もそうできるからです。Shannon の Maxim を考えてみてください。攻撃者は、特にオープン ソース プロジェクトのシステムを知っています。

この場合、最善の方法は、強力なアルゴリズム (AES256 など) でトークンを暗号化し、強力な暗号化標準の乱数ジェネレーターを使用してキーを生成し、キーをデータとは別の場所に安全に格納することです。上記の例では、データベース外のアクセス許可で保護されたファイル。後者は、SQL インジェクション攻撃がキーを明らかにしないことを意味します。

于 2012-09-18T23:35:46.713 に答える