'password' => [ 'required', 'confirmed', 'min:8', 'regex:/^(?=\S*[az])(?=\S*[AZ])(?=\S*[\d])\S*$/', ];
残念ながら、このような単純なルールは、パスワード
Abcd1234
が
Password1
と同様に良質で高品質として認識されることを意味します。 一方、
mu-icac-of-jaz-doad
は検証に合格しません。
一部の専門家は 、これは最良の選択肢ではないと言います。
実際には、
Abcd1234
と
Password1
は悪いパスワードであり、
mu-icac-of-jaz-doad
は良いパスワードです。 これは簡単に確認できます。
最初の2つのパスワードは次のとおりです。
そして、信頼性チェックに合格しない2つのパスワードがあります。
どうする? たぶん、特殊文字の使用を強制せず、1つではなく2つまたは3つの特殊文字と数字を使用して、複数の文字を連続して禁止するなどの新しいルールを導入し、パスワードの最小長を増やすなどしてください。
これらすべての代わりに、単純なことを行うだけで十分です。パスワードのエントロピーの最小値に制限を設定するだけです。 これには既製のエバリュエーターzxcvbnを使用できます。
zxcvbn以外のソリューションもあります。 先週、ACM Computer and Communications Security Security Conferenceで、Symantec Researchとフランスの研究所Eurecomのセキュリティ専門家のpdfが発表されました。 彼らは、 モンテカルロ法を使用して必要なブルートフォース試行のおおよその回数を推定するパスワードの強度をチェックするための新しいプログラムを開発しました。 提案された方法は、サーバー上の最小量のコンピューティングリソースを必要とし、多数の確率モデルに適していると同時に、非常に正確であることを特徴としています。 この方法は、パブリックドメイン ( Archive.orgのコピー )にある1000万のXatoパスワードのデータベースからのパスワードでテストされました-良い結果を示しました。 確かに、Symantec ResearchとEurecomによるこの研究は本質的に理論的であり、少なくとも彼らのプログラムを受け入れられる形でオープンアクセスにしたわけではありません。 それでも、この作業の意味は明確です。パスワードをチェックするためのヒューリスティックなルールの代わりに、Webサイトでエントロピーチェックを実装することをお勧めします。