Opensource.comは6月24日(米国時間)、「Check your password security with Have I Been Pwned? and pass|Opensource.com」において、Webサイト「Have I Been Pwned?」を使って、パスワードが過去のセキュリティインシデントで漏洩していないかどうかチェックする方法を紹介した。

Have I Been Pwned?では、電子メールアドレスまたはパスワードを入力することで、その漏洩の有無を調査することができる。しかし、Have I Been Pwned?に機密情報であるメールアドレスやパスワードを入力することに抵抗がある人も多いだろう。「Have I Been Pwned?」が信頼できるサイトであったとしても、このサイトが外部からの不正侵入を受けて攻撃者によってパスワード収集に悪用されないとは限らない。

記事では、こうした懸念に対処する方法として、k-Anonymityと呼ばれる手法を使うことで、パスワードを入力することなく、過去のセキュリティインシデントによって漏洩したかどうかを調べることができると説明している。

  • Have I Been Pwned?

    Have I Been Pwned?

紹介されている方法は次のとおり。

  1. パスワードをSHA1でハッシュ化する
  2. ハッシュ値の先頭5文字をHave I Been Pwned?に送信する(https://api.pwnedpasswords.com/range/ハッシュ値5文字)
  3. 先頭5文字分を抜いたハッシュ値の一覧が返ってくるので、ここに該当するハッシュ値が含まれているかどうか調べる。含まれていればそのパスワードは過去のセキュリティインシデントで漏洩している

例えば、以下のスクリーンショットでは、123456というパスワードがセキュリティインシデントで漏洩しているかを調査している。この例では23,174,662回漏洩したことが確認されている。123456は使ってはいけないとされるパスワードの1つであり、その通りの結果が得られたことを確認できる。

  • ハッシュ値を使ったパスワード漏洩のチェック

    ハッシュ値を使ったパスワード漏洩のチェック

Have I Been Pwned?はデータ漏洩が発見された場合に登録したメールアドレスへ通知する機能を提供しており、記事では登録することを推奨している。