web-dev-qa-db-ja.com

「認証固有のキーとソルト」機能はどのように機能しますか?

認証キーとソルトがWordPressでどのように機能するかについていくつかの情報を見つけようとしていますが、残念ながら私は何も便利なものを見つけることができませんでした。私が手に入れたのは、鍵はランダムで、長くて、互いに異なるものでなければならないということです。それらは「ユーザーのクッキーに保存されている情報のより良い暗号化を保証する」ことによって「サイトのセキュリティを大幅に向上させる」ので、wp-config.phpファイルに設定されるべきです。

実際には、1つだけではなくいくつかの質問がありますが、それらは密接に関連しているため、1つのスレッドに入れるべきだと思います。

  1. 「情報のより良い暗号化」とは正確にはどういう意味ですか?鍵がない状況とは対照的です。

  2. 1つだけではなく8つのキーが必要なのはなぜですか? AUTHSECURE_AUTHLOGGED_INNONCEという名前で判断すると、4つのCookieが設定されているはずです。それぞれhttpプロトコルとhttpsプロトコルを介した認証用に1つと2つ、ログに記録されるための3つと4 ...それが何になるのか私にはわかりません。

  3. 鍵と塩が必要なのはなぜですか?それはキーだけではうまくいかないでしょうか。それらはかなり長くてランダムなので、この場合追加の塩の目的は何ですか?

  4. 私は別の質問を読みました(私はそれがどこにあったのか正確には覚えていません)そしてあなたがwp-config.phpファイルからキーとソルトを削除するなら、それらはwp_optionsテーブルの下のWordPressデータベースに保存されるでしょう。そしてそれは本当です、私はそれをテストしました、キーは作成されて、テーブルに入れられました。しかし、wp-config.phpファイル内の(異なる)キーを復元した場合はどうなりますか?質問が示唆するように、wp-config.phpファイルとデータベースの2つのキーは1つにまとめられますか、それともどちらか一方だけが使われますか?

  5. ユーザーが私のブログにアクセスすると実際にはどうなりますか?彼はアカウントを持っていて、メインページを見てシステムにログインします、そして次に何が起こりますか?私はこの間にキー、クッキー(そして他のすべてのもの)で何が起こるのでしょうか? WordPress Webサイトにログインする正確なプロセスは何ですか?

  6. 鍵の最適なサイズは?デフォルトは64文字です。ここに制限はありますか?

  7. キーにどんな文字を入れることができますか(もちろん、'なしで)。 óŻなどの外国語の文字を使用できますか? ©と他の人たちはどうですか?

1
  1. 基本的に、それらはハッシュ塩です。それらはハッシュの結果をはるかに予測不可能にするのに慣れています。塩についての情報は https://en.wikipedia.org/wiki/Salt_(暗号化) をご覧ください。

  2. / wp-admin認証CookieにはAUTHが使用され、SSLを使用する場合はSECURE_AUTHが同じで、サイトの「フロントエンド」への識別にはLOGGED_INが使用されます。 NONCEは、WordPressがCSRF攻撃から保護するために生成するナンスに使用されます。

  3. 各スキームのKEYとSALTを組み合わせて、実際に使用される塩を作ります。 wp_salt関数はここで重複した文字列をチェックし、それらが同じではないことを確認し、一致している場合はランダムな文字列を生成します。

  4. WordPressはwp-config.phpファイルの値を優先的に使用します。それらが利用できない場合、または互いに重複している場合は、ランダムデータが生成され、データベースに保存されます。しかし、wp-config.phpで定義されている値が優先されます。

  5. ログインすると、パスワードが検証されます。その後、クッキーが生成されます。これらのクッキーには、将来の訪問のためにサイトへのあなたを認証するさまざまな情報が含まれています。 Cookieの値は、有効期限、ユーザー名、パスワードなど、さまざまな要因に基づいて変わります。基本的に、Cookieはユーザー名とパスワードの一体型です。このデータは認証キーとソルトを使用してハッシュされます。今後の訪問時に、Cookieがリクエストとともに送信され、WordPressはそれに含まれる情報を検証します。これはあなたがあなたであることを証明しているのであなたはログインしています。クッキーの中の値は安全です。それはさまざまな塩や他のすべての情報を知らなければ生成できないからです。

  6. それらのサイズは本当に無関係です。それらは長くてランダムであるべきです。制限はありませんが、収益が減少する点があります。長いほど良いのですが、ハッシュするのにより多くの時間がかかります。約120文字の後、それはやり過ぎです。

  7. はい。あなたは好きなデータを使うことができます。それが本当にランダムである限り、それが何であるかは関係ありません。どんなバイナリ文字列でも構いません。ラインノイズ.

4
Otto