パスワードの強度をチェックする新しいアルゴリズム

多くのサイトでは、ユーザーがより複雑なパスワードを設定できるようにしています。 これを行うには、通常、少なくとも1つの大文字、1つの小文字、1つの数字などを指定する必要がある基本的なルールを確立します。 通常、ルールは次のようにプリミティブです



'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サイトでエントロピーチェックを実装することをお勧めします。



All Articles