WordPressのパスワードセキュリティとハッシュ

公開: 2017-11-10

パスワードは、ユーザーまたはプロセスに関連付けられた認証の形式です。 これらは、コンピューターシステムまたはリソースに対してユーザーまたはプロセスのIDを検証するために使用されます。 IoTデバイスとモバイルの超接続性の今日の最新のウェブでは、パスワードセキュリティはこれまで以上に深刻なトピックです。 パスワードデータベースのリークは常に発生しており、LinkedIn、Tumblr、Yahooなどの大手企業が影響を受けています。 MacKeeperSecurityのBobDiachenkoは、今年初めに、インターネット上を自由に飛び回っていることが判明した5億6000万通の巨大な電子メール/パスワードリストについて書いています。

したがって、この記事では、パスワードとWordPressに関連する3つのことについて説明します。

  1. 強力なパスワードの生成と管理。
  2. WordPressがパスワードハッシュを行う方法。
  3. 独自のパスワードハッシュを実装します。

弱くて強いパスワード

ブルートフォースの複雑さの観点から見たパスワードの強度は、多くの議論の的となっています。パスワードの強度の概念は、より強力なコンピューティングリソースが個人にすぐに利用できるようになるにつれて、数十年にわたって大幅に再定義されてきました。 世界的に有名なセキュリティの専門家であるBruceSchneierが、パスワードのセキュリティと安全なパスワードの選択方法について説明した優れた投稿を書いています。

パスワード強度について話すときは、コンテキストと脅威レベルを含める必要があります。

攻撃者がWordPressのパスワードを推測しようとする場合は、セキュリティが侵害されてハッシュ化されたパスワードリスト全体にアクセスできる場合とは異なり、はるかに困難です。

最初の状況では、短期間のログイン試行回数が多すぎるため、攻撃者は認証サービスによってすぐにブロックされます。 通常、攻撃者は、フィッシングやマルウェアなどのブルートフォースとは異なる他の手段でパスワードを発見します。 ただし、ターゲットが日付、名前/名前などの比較的公開された情報を使用してパスワードを選択した場合、攻撃者はパスワードを簡単に推測できます。

2番目の状況では、攻撃者がパスワードファイルにアクセスできる場合、特に使用されるハッシュ関数がMD5である場合は、時間の問題である可能性があります。 それは壊れていて、ずっと前に安全でないことが証明されました。 攻撃者は、事前に計算された「レインボー」テーブルと組み合わせた最新のハードウェア(GPUボードなど)を使用して、パスワードファイル全体を非常に短時間で復号化できます。 さらに、極端な場合には、すべてのユーザーのパスワードがデータベースの「plaintext」に保存されます。 どちらの場合も、パスワードの「強度」は無効になります。

強力なパスワードを生成して保存する方法

強力なパスワードを定期的に考えようとするのではなく、パスワードの生成と管理を信頼できるコンピューターに任せるのが最善です。 あなたは人間であり、必然的にあなたは間違いを犯し、コンピュータが弱い選択と見なす何かを選ぶでしょう。

パスワードマネージャーを使用してすべてのサービスのパスワードを生成および保存すると、効率的で脅威が最小限に抑えられます。 すべてのパスワードを1つの場所に保持するという考えは不安に​​なる可能性がありますが、実際にはプラスです。すべてのパスワードが1つの場所にあることを知っていると、パスワードをより簡単に保護できます。 簡単に覚えることができるが、簡単に推測できる、ランダムな紙片や弱いパスワードの順列を使用する必要はもうありません。 また、パスワードマネージャーを使用すると、手間をかけずに強力なパスワードを生成できます。

最も人気のある(そして高価な)選択肢は1Passwordですが、オペレーティングシステムで提供されているもの(AppleのiCloud KeyChainなど)を試して使用するか、KeePassなどのオープンソースのマルチプラットフォームソリューションを使用できます。

Pressidiumであなたのウェブサイトをホストする

60日間の返金保証

私たちの計画を見る

WordPressのパスワードハッシュ

パスワードハッシュは、プレーンテキストのパスワードがハッシュ関数に渡され、長い英数字の値に変換される手法です。 WordPressはこれを使用してデータベースに保存し、詮索好きな目がWordPressのパスワードを直接読み取らないようにします。 WordPressにログインしてパスワードを送信すると、ハッシュが計算され、データベース内のハッシュと比較されます。 同じ場合はアクセスが許可され、そうでない場合は拒否されます。 この方法が機能するのは、特定のテキスト文字列(この場合はWordPressパスワード)が常に同じハッシュ値を生成するためです。 ハッシュ値を元のテキストに戻すことはできないため、WordPressは、指定したパスワードのハッシュ値とデータベースに保存されているパスワードのハッシュ値が同じである場合にのみ、正しいパスワードを入力したことを認識できます。

デフォルトでは、WordPressのwp_hash_password()関数は8パスのMD5アルゴリズムを使用してハッシュを生成します。 ただし MD5は、最新のハードウェアと、事前に計算された大量の値を保持するレインボーテーブルと呼ばれる手法を組み合わせて使用​​することで正常に機能しました。 これらは、攻撃者が1つの最新のGPUで、1秒あたり数十億の組み合わせを試すのに役立ちます。

独自のWordPressパスワードハッシュを実装する

インスタンス化でタプル(16、FALSE)をPasswordHashオブジェクトに渡すことにより、Bcryptなどの別の実装を選択できます(選択する必要があります)。 関数wp_hash_password()wp_set_password()はどちらもプラグイン可能であるため、独自の実装を提供できます。 それらはwp-includes/pluggable.phpの下にあります。

Roots.io(Trellis、Bedrock、SageボイラープレートWordPressシステムの背後にいる人々)も、デフォルトのWordPressハッシュ関数のbcrypt機能を実装するWordPressプラグインをリリースしました。

結論

強力なパスワードを確実に使用し、頻繁に変更するには、パスワードマネージャーを使用することをお勧めします。 これにより、すべてのパスワードを1か所にまとめて、パスワードを変更するときに通知することができます。 パスワードハッシュに関しては、WordPressのデフォルトにフォールバックするのではなく、SHA-2やBcryptなどの暗号的に安全なアルゴリズムを使用するのが最善です。 1つの間違いがセキュリティの問題を引き起こす可能性があるため、独自のハッシュ関数をロールすることは避けるのが最善です。