0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【セキュリティ】パスワードハッシュの見分け方

0
Posted at

はじめに

ハッシュを「割る」前に、
まずそれが何者かを見抜けていますか?

パスワードハッシュの識別は、ペネトレーションテスト・フォレンジック・CTF など、あらゆるセキュリティ分野で登場する基本スキルです。
しかし意外と「hashid に投げるだけ」で終わっている人も多い。

本記事では、
人間の目で判断できるポイント → ツール → 実務判断
という流れで、ハッシュ識別を体系的に整理します。


1. なぜハッシュを識別する必要があるのか

目的は単純です。

  • クラックできるのか?
  • できるなら どれくらいのコスト か?
  • そもそも やる価値があるか?

アルゴリズムを誤認すると:

  • 一生終わらない brute force
  • 無意味な wordlist 攻撃
  • GPU がただの暖房器具になる ☠️

識別 = 戦略決定 です。


2. 第一印象で分かること:長さと文字種

まずはツール禁止。目視だけで見ます。

よくあるハッシュの特徴

文字数 文字種 高確率のアルゴリズム
5f4dcc3b5aa765d61d8327deb882cf99 32 16進数 MD5
356a192b7913b04c54574d18c28d46e6395428ab 40 16進数 SHA-1
e3b0c44298fc1c149afbf4c8996fb924... 64 16進数 SHA-256
$2y$10$... 可変 Base64 + $ bcrypt
$6$salt$hash 可変 $ 区切り SHA-512 crypt

覚えておく指針

  • 固定長 + hex → 古典ハッシュ
  • $algo$salt$hash → Unix 系 / KDF
  • Base64 っぽい + ランダム感強 → 遅いハッシュ

3. 構造を見る:$ は正義

現代的なパスワードハッシュは、
「自分は何者か」を文字列に含める設計が主流です。

代表的な形式

  • bcrypt

    $2a$12$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
    
  • MD5 crypt

    $1$salt$hash
    
  • SHA-512 crypt

    $6$salt$hash
    
  • PBKDF2(Django / Flask)

    pbkdf2_sha256$260000$salt$hash
    

💡 $数字$$アルゴリズム名$ が見えたら
ほぼ勝ちです。


4. 文脈を読む:ハッシュは単独で存在しない

これは初心者が一番見落としがちな点です。

どこから来たハッシュか?

入手元 典型的アルゴリズム
/etc/shadow $1$ MD5 / $5$ SHA-256 / $6$ SHA-512
WordPress phpass (MD5 派生)
Django PBKDF2
Laravel bcrypt
Windows SAM NTLM

文脈 > 文字列
現場ではこの逆転が頻繁に起きます。


5. ツールによる補助(盲信しない)

人間の判断を 確認するため に使います。

よく使われるツール

hashid <hash>
hashcat --example-hashes

注意点:

  • hashid は「推測」
  • 短いハッシュは誤判定が多い
  • 独自実装はまず当たらない

6. クラック可能性の現実的評価

識別のゴールはここです。

アルゴリズム 難易度 実務評価
MD5 / SHA-1 ほぼ平文
SHA-256 ★★ GPU 次第
NTLM ★★ 辞書で即死
bcrypt ★★★★ cost 次第
PBKDF2 ★★★★ 時間勝負
Argon2 ★★★★★ 現代最強

セキュリティ界の皮肉:

「会議中に割れるなら、それはもう秘密じゃない」


7. 実戦フロー(これだけ覚えればOK)

ハッシュ取得
  ↓
長さ・文字種を見る
  ↓
$ 構造を確認
  ↓
取得元の文脈を考慮
  ↓
hashid / hashcat で確認
  ↓
割る?捨てる?戦略決定

おわりに

ハッシュ識別は、
技術というより「判断力」 です。

  • 早く気づく
  • 無駄をしない
  • 資源を正しく使う

これはそのまま、
良いセキュリティエンジニアの資質でもあります。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?