คลัง
wireless

WPA3

WPA3 แทนที่ WPA2 ด้วย SAE (Simultaneous Authentication of Equals หรือ Dragonfly) — password-authenticated key exchange ที่ให้ forward secrecy และป้องกัน offline dictionary attack ที่ใช้ได้กับ WPA2 พร้อมบังคับ PMF (Protected Management Frames) บทนี้อธิบายกลไก SAE, ทำไม WPA2 attack ใช้ไม่ได้, ช่องโหว่ Dragonblood, การ downgrade ผ่าน transition mode กลับไป WPA2, บทบาทของ PMF, และสถานะเครื่องมือ (เนื้อหาเพื่อการศึกษา/ทดสอบในเครือข่ายที่ได้รับอนุญาต)

Advanced#wpa3#wireless#sae#dragonfly#transition-mode#dragonblood#pmf#downgrade

1. WPA3 ต่างจาก WPA2 อย่างไร

WPA3-Personal แทน PSK 4-way handshake ด้วย SAE (Dragonfly) — เป็น password-authenticated key exchange (PAKE) ที่สร้างบน Diffie-Hellman ให้ forward secrecy (จับ handshake วันนี้แล้วรู้รหัสภายหลัง ก็ถอดของเก่าไม่ได้) และป้องกัน offline crack ต่างจาก WPA2 ที่จับ handshake มา brute offline ได้ตามใจ — SAE ไม่เปิดเผยข้อมูลพอให้ verify การเดารหัสนอกเครือข่าย ทุกครั้งที่เดาต้อง interact กับ AP จริง (online, ช้า, ตรวจจับได้)

WPA2-PSKWPA3-SAE
key exchange4-way handshakeSAE (Dragonfly) + 4-way
offline crack จาก captureได้ (handshake/PMKID)ไม่ได้
forward secrecyไม่มีมี
การเดารหัสoffline ไม่จำกัดonline เท่านั้น (ช้า/ตรวจจับได้)
management frame protection (PMF)optionalบังคับ (mandatory)
deauth attackได้ (frame ไม่ป้องกัน)ป้องกันด้วย PMF

2. SAE / Dragonfly ทำงานอย่างไร

SAE ทำ 2 เฟส: Commit (แต่ละฝ่ายส่งค่าที่ derive จากรหัสผ่าน hash-to-curve/hash-to-group โดยไม่เปิดเผยรหัส) แล้ว Confirm (พิสูจน์ว่าต่างฝ่ายได้ key เดียวกัน) ผลคือ PMK ที่นำไปทำ 4-way handshake ต่อ จุดสำคัญ: ค่าที่ส่งใน commit เป็น commitment ที่ verify offline ไม่ได้ — จึงต้องเดากับ AP จริงทีละครั้ง

SAE handshake (Dragonfly)
Client AP Commit: scalar+element (derive จากรหัส, verify offline ไม่ได้) Commit ← (AP) Confirm: พิสูจน์ได้ key เดียวกัน Confirm ← → ได้ PMK → 4-way handshake ต่อ // เดาผิด = confirm fail = ต้องลองใหม่กับ AP (online เท่านั้น)

3. ทำไม WPA2 attack ใช้ไม่ได้

การจับ handshake/PMKID แล้ว crack offline (หัวใจของการโจมตี WPA2 — ดู wpa2) ใช้กับ WPA3-SAE ไม่ได้ เพราะ SAE ออกแบบให้ข้อมูลที่จับได้ไม่พอ verify การเดารหัสแบบ offline ผู้โจมตีต้องเดาทีละครั้งกับ AP จริง (online) ซึ่งช้ามาก ถูก rate-limit และตรวจจับได้ — ทำให้ dictionary attack ไม่คุ้ม นอกจากนี้ PMF ที่บังคับใน WPA3 ทำให้ deauth attack ไม่ทำงาน (จึงบังคับ reconnect เพื่อจับ handshake ไม่ได้เหมือน WPA2)

ในทางปฏิบัติ WPA3-Personal ที่ตั้งค่าถูกต้อง (SAE-only + PMF required) ทนต่อ offline cracking — การโจมตีจึงเน้นไปที่ misconfiguration, transition mode, หรือช่องโหว่ implementation แทน

4. Dragonblood — ช่องโหว่ SAE

ปี 2019 Vanhoef & Ronen เปิดเผย Dragonblood — ชุดช่องโหว่ใน SAE รุ่นแรก (CVE-2019-9494 ถึง 9499) ที่ leak ข้อมูลรหัสผ่านผ่าน side-channel และเปิดทาง downgrade ทำให้ทำ offline dictionary partitioning ได้บาง implementation

ช่องโหว่ประเภทผลกระทบ
CVE-2019-9494cache-based side-channelleak ข้อมูล password element → partition attack
CVE-2019-9495timing-based side-channelเวลาในการ hash-to-group รั่วข้อมูลรหัส
CVE-2019-9496SAE reflection / DoSทำให้ SAE handshake ล้ม (DoS)
CVE-2019-9497/9498/9499EAP-pwd issuesกระทบ EAP-pwd (ตระกูล Dragonfly)
Downgrade to WPA2transition modeบังคับ client ใช้ WPA2 → crack แบบเดิม

หลักการ side-channel: implementation ที่ใช้อัลกอริทึม hunting-and-pecking ในการ hash รหัสเป็นจุดบนเส้นโค้ง มี branch/เวลา/cache access ที่ขึ้นกับค่ารหัส — วัด timing หรือ cache แล้วอนุมานว่ารหัสอยู่ใน partition ใด ทำซ้ำหลาย observation จนแคบลงพอจะ offline brute ได้ SAE รุ่นใหม่ใช้ hash-to-curve (SSWU) แบบ constant-time จึงปิดช่องนี้ — Dragonblood กระทบเป็นหลักกับ firmware/ไดรเวอร์เก่าที่ไม่ patch

Dragonblood ต้องการเงื่อนไขเฉพาะ (implementation ที่ยังไม่ patch + เก็บ measurement จำนวนมาก) ไม่ใช่ 'push-button' เหมือน WPA2 handshake crack — ในโจทย์/งานจริงส่วนใหญ่ transition-mode downgrade เป็นช่องที่ practical กว่า

5. Transition Mode Downgrade → WPA2

หลาย AP เปิด WPA3 transition mode (โฆษณาทั้ง WPA3-SAE และ WPA2-PSK ด้วย SSID/รหัสเดียวกัน) เพื่อให้อุปกรณ์เก่าที่ไม่รองรับ SAE ยังต่อได้ — นี่คือจุดอ่อนหลักในทางปฏิบัติ เพราะรหัสเดียวกันถูกใช้กับ WPA2 ด้วย ผู้โจมตีตั้ง rogue AP ที่โฆษณาเฉพาะ WPA2 (SSID เดียวกัน) ทำให้ client ที่รองรับ WPA2 หลงมาต่อแบบ WPA2 แล้วจับ handshake ไป crack offline ตามปกติได้ (ดู wpa2)

ตรวจ + โจมตี transition modeLinux
# 1) ตรวจว่า AP เป็น transition mode
sudo airodump-ng wlan0mon
#   ดูคอลัมน์ AUTH/ENC: ถ้าเห็นทั้ง WPA2 และ WPA3 (เช่น "WPA2 WPA3" / "PSK SAE")
#   = transition mode → มีช่องทาง downgrade
#   ถ้าเป็น SAE อย่างเดียว = WPA3-only → offline crack ไม่ได้

# 2) จับ handshake ผ่านช่องทาง WPA2 (transition mode)
#    hcxdumptool รวบ frame ที่เกี่ยวข้อง (client ที่ต่อแบบ WPA2)
sudo hcxdumptool -i wlan0mon -o dump.pcapng --enable_status=1

# 3) แปลง + crack แบบ WPA2 (เมื่อได้ WPA2 handshake จาก transition)
hcxpcapngtool -o hash.hc22000 dump.pcapng
hashcat -m 22000 hash.hc22000 rockyou.txt
#   → ได้ passphrase เดียวกับที่ใช้กับ WPA3 (รหัสร่วมกัน)

# WPA3-only (SAE เท่านั้น) → hash เอาไป offline crack ไม่ได้
transition mode = ช่องทางหลักที่ practical; client ต่อ WPA2 → จับ handshake → crack แบบเดิม; WPA3-only ที่ตั้งถูกต้องทน offline attack
เจอ WPA3 — ประเมินช่องทาง
โหมดของ AP?
WPA2+WPA3 (transition)downgrade → จับ WPA2 handshake → crack
WPA3-only (SAE)offline crack ไม่ได้
implementation/firmware เก่า?
ไม่ patch Dragonbloodside-channel partition (ยาก, ต้อง measurement)
patch แล้วเหลือแค่ online guess (ช้ามาก)
รหัสอ่อนมาก + online guess ที่ AP ยอม
จำกัดมาก, ตรวจจับได้
ได้ passphrase / จนมุม

6. PMF (Protected Management Frames)

WPA3 บังคับ PMF (802.11w) ซึ่งเซ็น management frame (deauth/disassoc) — ทำให้เทคนิค WPA2 ที่ส่ง deauth ปลอมเพื่อบังคับ client หลุดแล้ว reconnect (เพื่อจับ handshake) ใช้ไม่ได้ เพราะ AP/client ปฏิเสธ deauth ที่ไม่ได้เซ็น นี่เป็นอีกเหตุผลที่การจับ handshake ของ WPA3-only ยากกว่ามาก

  • PMF = required ใน WPA3 → deauth/disassoc flood ไม่ทำงาน
  • WPA2 ที่เปิด PMF ก็กัน deauth ได้เช่นกัน (optional ใน WPA2, required ใน WPA3)
  • ผลต่อ attacker: ไม่มีทางบังคับ reconnect เพื่อจับ handshake → ต้องรอ client ต่อเองตามธรรมชาติ
  • transition mode ฝั่ง WPA2 อาจไม่ได้บังคับ PMF → ยังมีช่องให้ deauth client เก่า

7. สถานะเครื่องมือ

เครื่องมือใช้กับ WPA3หมายเหตุ
airodump-ngตรวจโหมด (SAE / transition)ดู ENC/AUTH column
hcxdumptoolจับ frame (WPA2 side ของ transition)SAE-only จับไปก็ crack ไม่ได้
hashcat -m 22000crack เฉพาะ WPA2 handshakeไม่มีโหมด offline สำหรับ SAE
Dragonblood tools (dragonslayer/drake)ทดสอบ CVE-2019-94xxต้อง implementation เก่าที่ยังไม่ patch
wpa_supplicant / hostapdตั้ง SAE/rogue AP ทดสอบใช้จำลอง transition/downgrade ใน lab
ไม่มีเครื่องมือ 'push-button' ที่ crack WPA3-SAE offline จาก capture ได้ เหมือน WPA2 — ใครอ้างว่าทำได้กับ WPA3-only ที่ตั้งถูกต้อง มักเข้าใจผิดว่ากำลังโจมตี transition-mode/WPA2 อยู่ ไม่ใช่ SAE จริง

8. Quick Reference

  • WPA3 ใช้ SAE (Dragonfly) → offline crack จาก capture ไม่ได้ (ต่างจาก WPA2)
  • SAE: Commit (derive จากรหัส, verify offline ไม่ได้) → Confirm → PMK → 4-way
  • PMF บังคับ → deauth attack ไม่ทำงาน (จับ handshake ยาก)
  • ช่องทางหลัก (practical): transition mode → downgrade → จับ WPA2 handshake → crack
  • ตรวจ transition: airodump เห็นทั้ง WPA2+WPA3 (PSK+SAE)
  • Dragonblood (CVE-2019-94xx): side-channel/timing บน implementation เก่า (ยาก)
  • crack: hcxdumptool → hcxpcapngtool → hashcat -m 22000 (เฉพาะ WPA2 side)
  • WPA3-only + PMF + patch = ทน offline attack → เหลือแค่ online guess (ช้ามาก)

🧭 จับมือทำทีละขั้น (มีแค่ Kali) + ถ้าติดไปไหนต่อ

สมมติโจทย์บอกว่าเป้าหมายเป็น WPA3 (หรือ scan แล้วเจอ SAE) มีแค่ Kali — เรื่องแรกที่ต้องรู้คือ AP เป็น WPA3-only หรือ transition mode เพราะวิธีเล่นต่างกันคนละแบบ อย่าเพิ่งไปลอง crack offline แบบ WPA2 ตรงๆ เพราะจะไม่ได้ผล

  1. 1เปิด monitor mode: sudo airmon-ng start wlan0
  2. 2สแกนดู AP เป้าหมาย: sudo airodump-ng wlan0mon
  3. 3ดูคอลัมน์ ENC/AUTH ให้ละเอียด — ถ้าเห็นทั้ง WPA2 WPA3 หรือ PSK SAE = transition mode; ถ้าเห็น SAE ล้วน = WPA3-only
  4. 4ถ้าเป็น transition mode: ไปทำตาม workflow ของ WPA2 ได้เลย (จับ client ที่ต่อแบบ WPA2 ด้วย hcxdumptool แล้ว crack ปกติ)
  5. 5ถ้าเป็น WPA3-only: อย่าเสียเวลา deauth (PMF บล็อกไว้แล้ว) — เช็คแทนว่า firmware/AP รุ่นเก่าก่อนปี 2019 ไหม (มีโอกาสโดน Dragonblood)
  6. 6ค้นหา CVE ของรุ่น chipset/driver ที่ใช้: searchsploit <vendor> wifi หรือดูใน cve.mitre.org
  7. 7ถ้าเก่าและยังไม่ patch: ลองเครื่องมือ Dragonblood (dragonslayer/drake) เก็บ timing/cache measurement — ต้องใช้ความอดทนสูง ไม่ใช่ push-button
  8. 8ถ้า patch แล้วหรือใหม่: ยอมรับว่าไม่มีทาง offline crack — เหลือแค่ online guess ที่ AP จริง (ช้ามาก ตรวจจับได้ ไม่คุ้มในโจทย์ CTF ส่วนใหญ่)
  9. 9สรุป: ให้ transition mode เป็นทางลัดอันดับ 1 เสมอ ก่อนไปยุ่งกับ Dragonblood
เจอ WPA3 — ตัดสินใจก่อนลงมือ
สแกนดู ENC/AUTH column ของ AP
airodump-ng wlan0mon
AP โฆษณาโหมดไหน
เห็นทั้ง WPA2+WPA3 (PSK+SAE)→ transition mode มีช่องทาง downgrade
SAE อย่างเดียว (WPA3-only)→ offline crack แบบ WPA2 ใช้ไม่ได้
WPA3-only — เช็คว่า firmware/implementation เก่าไหม
เก่า/ไม่ patch (ก่อนปี 2019, Dragonblood)→ ลอง side-channel tools (ยาก ต้องเก็บ measurement เยอะ)
patch แล้ว/ใหม่→ เหลือแค่ online guess (ช้ามาก/ตรวจจับได้)
ลอง Dragonblood tools (dragonslayer/drake)
เก็บ timing/cache measurement เพื่อ partition รหัส
✅ partition รหัสได้แคบพอ→ offline brute ในส่วนที่แคบลง
❌ ยากเกินไป/ไม่ได้ผล→ ยอมรับว่าไม่มี push-button crack
เหลือแค่ online guess กับ AP จริง (จำกัดมาก, ตรวจจับได้)
ขั้นตอน/งานเครื่องมือใน Kaliติดตั้งเพิ่ม (ถ้าไม่มี)เครื่องมือออนไลน์
ตรวจโหมด AP (SAE/transition)airodump-ng--
จับฝั่ง WPA2 ของ transition-apt install hcxtools hcxdumptool-
crack WPA2 handshake ที่ได้aircrack-ng, hashcat-weakpass.com
ค้นหา CVE ของ chipset/driversearchsploit-cve.mitre.org, nvd.nist.gov
ทดสอบ Dragonblood (CVE-2019-94xx)-git clone dragonslayer/drake (vanhoefm GitHub)-
ตั้ง rogue AP ทดสอบ downgrade ใน labhostapd, wpa_supplicant--
🚑 ถ้าตันสนิท ลองท่าถัดไป: WPA2 — ทันทีที่เจอ transition mode ให้สลับไปเล่นแบบ WPA2 เต็มตัว; Handshake Analysis — ตรวจว่า handshake ฝั่ง WPA2 ที่จับมาครบจริง; Hashcat Workflow — เมื่อได้ hash จากฝั่ง WPA2 แล้วไป crack ต่อ; Aircrack-ng — ทบทวนคำสั่งจับแพ็กเก็ตพื้นฐานถ้ายังไม่คล่อง

โน้ตของฉัน

ยังไม่มีโน้ตสำหรับหัวข้อนี้