パスワードの再利用は非常に問題があります。人々がアカウントやデータに関わるリスクについて知らないことは悲しいことです。攻撃者は過去のデータ漏洩から取得したメールアドレスとパスワードを使用し、他のウェブサイトへのアクセスを試みます。ランダムなパスワードを生成するパスワードマネージャーは、このような攻撃に対する完璧な対策であり、各ウェブサイトごとにランダムなパスワードを生成します。しかし、古いパスワードについてはどうでしょうか?私たちは、haveibeenpwned.com の助けを借りて巨大なデータベースと照合することで、ユーザーがパスワードを確認できる新機能をリリースしました。この新しいツールを使用することで、ほぼ 50 億のアカウントとパスワードのデータセットと照合することが可能になります。
Pwned Passwords サービスは 2017 年 8 月に作成され、NIST がユーザーが提供するパスワードを既存のデータ漏洩と照合することを具体的に推奨するガイドラインを発表した後に導入されました。このアドバイスの根拠とアプリケーションがこのデータを活用する方法についての提案は、ブログ記事「Introducing 306 Million Freely Downloadable Pwned Passwords」に詳しく説明されています。2018 年 2 月には、サービスのバージョン 2 がリリースされ、5 億以上のパスワードが追加され、それぞれがどれくらいの回数漏洩したかのカウントも含まれています。
使い方をよりよく理解するための短いビデオです。API は分析の進捗状況を示します。無料サービスであるため、スロットリングを尊重し、害を及ぼさないように、リクエストは 1.5 秒ごとに 1 回に制限されています。
最初のステップでは、パスワードを含むすべてのシークレットがサーバーからダウンロードされます。次に、各シークレットがブラウザで復号化され、パスワードの sha1 ハッシュが作成されます。Sha1 ハッシュは 160 ビット長(16 進数で 40 文字)です。Sha1 ハッシュはプレフィックス(16 進数で 5 文字)とサフィックス(16 進数で 35 文字)に分割されます。プレフィックスが haveibeenpwned.com API に送信され、データベースを照合し、サフィックスのリストが返されます。クライアントは受け取ったサフィックスのリストとパスワードのサフィックスを比較し、パスワードが漏洩したかどうかをマークします。これにより、実際のパスワード(または弱い派生型)を送信することなく、効率的にパスワードデータベースを照会することが可能であり、これはk-匿名性として知られています。