Hashcatとは:パスワード監査を防御の改善へつなぐ

Hashcatはパスワードハッシュの監査等で使われるツールです。本ページは、担当者が許可された監査の結果を読み、保存方式やアカウント保護を改善するための教材です。実際の認証情報取得、辞書配布、解読コマンド、認証回避は扱いません。

対象は認証機能の開発者、情報システム担当者、監査結果を受け取る担当者です。実在の利用者のハッシュを教材に持ち込まないでください。

  • 利用者の秘密

    長く、使い回さない。生成した秘密を教材やチケットへ貼らない。

  • 保存方式

    専用のハッシュ方式、個別ソルト、適切な計算コストを確認。

  • ログイン保護

    MFA、試行制限、セッション管理、復旧経路を点検。

パスワードの長さだけでは保存時の安全性は決まらない。保存方式とアカウント保護も別に確認する。

オンラインとオフラインの違い

オンラインの認証試行はサービスを介するため、試行制限や監視が効く場面があります。ハッシュが流出した後のオフライン処理はサービスのログイン画面を経由しないため、その試行制限では保護できません。

ハッシュは暗号化とは異なり、元の値へ復号する仕組みではありません。ただし候補とハッシュを比較され得るため、単純にハッシュ化すれば安全とは言えません。

ソルトとワークファクターとは

項目役割誤解しないこと
ソルトパスワードごとに異なる値を加え、同じ秘密でも異なるハッシュにする秘密のパスワードを強くするものではなく、通常はハッシュと一緒に保存する
ワークファクターハッシュ計算に必要な時間・メモリ等の負荷を調整する大きくすれば無制限によいわけではない。正規ログインへの負荷を測る
専用の保存方式パスワードを推測されにくくする計算コストを持つ一般的な高速ハッシュをそのまま保存に使わない

OWASPの保存指針はArgon2id等を示しています。既存方式の移行はライブラリの対応、設定、性能、再ハッシュの手順まで含めて設計します。特定の設定値だけで一律に安全と認定しません。

「解読まで何年」という数字をうのみにしない

必要な時間はハッシュ方式、計算コスト、ハードウェア、候補の作り方、漏えいした情報で変わります。出典と測定条件のない時間表を、自社のパスワードポリシーの根拠にしないでください。

監査報告には条件、対象範囲、確認できたこと、確認できなかったことを要求します。未解読は将来も安全という保証ではありません。パスワード管理で利用者側の対策を確認できます。

架空の監査結果を読む演習

「検証用の合成データでは一部の弱い候補が検出された。対象の保存方式は一般的な高速ハッシュ。実利用者の認証情報は使用していない。」

この記録からは、保存方式の見直しと弱いパスワードを受け付けない設計の検討が必要だと判断できます。実利用者の侵害や被害規模は分かりません。

改善計画は、専用方式への移行、漏えいしたパスワードの拒否、MFA、試行制限、復旧経路、ログの確認を分けます。認証と認可も学んでください。

漏えいが疑われた時の初動と記録

漏えいの疑いがある場合、無断で解読して確かめることはしません。責任者へ報告し、対象と保存方式、取得された可能性のある期間、他の認証情報やセッションへの影響を調査します。パスワード漏えいの初動対応に沿って変更・失効の範囲を判断してください。

記録するのは担当者、承認範囲、対象件数、方式と設定、確認条件、観測結果、改善期限です。秘密そのもの、ハッシュ一覧、解読された値を通常のチケットへ貼らないでください。

理解度チェック

監査でパスワードが解読されなかったとき、適切な判断は?