Hashcatとは:パスワード監査を防御の改善へつなぐ
Hashcatはパスワードハッシュの監査等で使われるツールです。本ページは、担当者が許可された監査の結果を読み、保存方式やアカウント保護を改善するための教材です。実際の認証情報取得、辞書配布、解読コマンド、認証回避は扱いません。
対象は認証機能の開発者、情報システム担当者、監査結果を受け取る担当者です。実在の利用者のハッシュを教材に持ち込まないでください。
- 利用者の秘密
長く、使い回さない。生成した秘密を教材やチケットへ貼らない。
- 保存方式
専用のハッシュ方式、個別ソルト、適切な計算コストを確認。
- ログイン保護
MFA、試行制限、セッション管理、復旧経路を点検。
オンラインとオフラインの違い
オンラインの認証試行はサービスを介するため、試行制限や監視が効く場面があります。ハッシュが流出した後のオフライン処理はサービスのログイン画面を経由しないため、その試行制限では保護できません。
ハッシュは暗号化とは異なり、元の値へ復号する仕組みではありません。ただし候補とハッシュを比較され得るため、単純にハッシュ化すれば安全とは言えません。
ソルトとワークファクターとは
| 項目 | 役割 | 誤解しないこと |
|---|---|---|
| ソルト | パスワードごとに異なる値を加え、同じ秘密でも異なるハッシュにする | 秘密のパスワードを強くするものではなく、通常はハッシュと一緒に保存する |
| ワークファクター | ハッシュ計算に必要な時間・メモリ等の負荷を調整する | 大きくすれば無制限によいわけではない。正規ログインへの負荷を測る |
| 専用の保存方式 | パスワードを推測されにくくする計算コストを持つ | 一般的な高速ハッシュをそのまま保存に使わない |
OWASPの保存指針はArgon2id等を示しています。既存方式の移行はライブラリの対応、設定、性能、再ハッシュの手順まで含めて設計します。特定の設定値だけで一律に安全と認定しません。
「解読まで何年」という数字をうのみにしない
必要な時間はハッシュ方式、計算コスト、ハードウェア、候補の作り方、漏えいした情報で変わります。出典と測定条件のない時間表を、自社のパスワードポリシーの根拠にしないでください。
監査報告には条件、対象範囲、確認できたこと、確認できなかったことを要求します。未解読は将来も安全という保証ではありません。パスワード管理で利用者側の対策を確認できます。
架空の監査結果を読む演習
「検証用の合成データでは一部の弱い候補が検出された。対象の保存方式は一般的な高速ハッシュ。実利用者の認証情報は使用していない。」
この記録からは、保存方式の見直しと弱いパスワードを受け付けない設計の検討が必要だと判断できます。実利用者の侵害や被害規模は分かりません。
改善計画は、専用方式への移行、漏えいしたパスワードの拒否、MFA、試行制限、復旧経路、ログの確認を分けます。認証と認可も学んでください。
漏えいが疑われた時の初動と記録
漏えいの疑いがある場合、無断で解読して確かめることはしません。責任者へ報告し、対象と保存方式、取得された可能性のある期間、他の認証情報やセッションへの影響を調査します。パスワード漏えいの初動対応に沿って変更・失効の範囲を判断してください。
記録するのは担当者、承認範囲、対象件数、方式と設定、確認条件、観測結果、改善期限です。秘密そのもの、ハッシュ一覧、解読された値を通常のチケットへ貼らないでください。
監査でパスワードが解読されなかったとき、適切な判断は?