Password Crackerวิธีการถอดรหัส/เดารหัสผ่าน

⚡ สรุปอย่างชาญฉลาด

การถอดรหัสผ่านคือการกู้คืนข้อมูลประจำตัวโดยการเดา เปรียบเทียบ หรือคำนวณกับค่าแฮชที่จัดเก็บไว้อย่างเป็นระบบ ภาพรวมนี้จะอธิบายถึงวิธีการทำงานของผู้โจมตี เครื่องมือที่พวกเขาใช้ ปัจจัยที่ทำให้การโจมตีมีความแข็งแกร่ง และมาตรการควบคุมที่ผู้ดูแลระบบต้องบังคับใช้

  • 🧭 Foundationหลักการ: ความแข็งแกร่งของรหัสผ่านขึ้นอยู่กับความยาว ความซับซ้อนของตัวอักษร และความไม่สามารถคาดเดาได้ เพื่อต้านทานการโจมตีแบบเดาสุ่มและการกู้คืนโดยใช้พจนานุกรม
  • 🔐 การแฮชเทียบกับการเข้ารหัส: ข้อมูลประจำตัวที่จัดเก็บไว้จะได้รับการปกป้องด้วยฟังก์ชันแฮชแบบทางเดียว เช่น MD5, SHA-256 หรือ bcrypt แทนที่จะใช้การเข้ารหัสแบบย้อนกลับได้
  • 🎯 เทคนิคการโจมตีทั่วไป: การโจมตีด้วยพจนานุกรม, การโจมตีแบบเดาสุ่ม, ตารางสีรุ้ง, การโจมตีแบบผสมผสาน, การรวบรวมข้อมูลจากเว็บไซต์ต่างๆ และการโจมตีด้วยการยัดข้อมูลประจำตัว ล้วนใช้ประโยชน์จากพฤติกรรมที่คาดเดาได้ของมนุษย์
  • 🛠️ ชุดเครื่องมือถอดรหัส: John the Ripper, Hashcat, Cain & Abel, Ophcrackและ Hydra จะทำการกู้คืนข้อมูลแบบออฟไลน์และออนไลน์โดยอัตโนมัติจากแฮชที่บันทึกไว้
  • 🤖 การโจมตีที่ขับเคลื่อนด้วย AI: แบบจำลองเชิงกำเนิดสามารถทำนายรหัสผ่านที่สมจริงจากข้อมูลที่รั่วไหล ช่วยเพิ่มประสิทธิภาพของพจนานุกรมในการรับมือกับข้อมูลประจำตัวที่ไม่แข็งแรงได้อย่างมาก
  • 🛡️ การควบคุมเชิงป้องกัน: การใช้แฮชที่มีเกลือ (Salted hashes), การตรวจสอบสิทธิ์แบบหลายปัจจัย (Multi-factor authentication), นโยบายการล็อกเอาต์ (Lockout policies) และโปรแกรมจัดการรหัสผ่าน (Password manager) ช่วยป้องกันความพยายามในการถอดรหัสส่วนใหญ่ในสภาพแวดล้อมการใช้งานจริงได้

วิธีการถอดรหัส (แฮ็ก) รหัสผ่าน?

การถอดรหัสผ่านเป็นหนึ่งในศาสตร์เก่าแก่ที่สุดของการรักษาความปลอดภัยเชิงรุก และยังคงมีความสำคัญเช่นเคย เนื่องจากผู้ใช้ยังคงเลือกใช้รหัสผ่านที่คาดเดาได้ง่าย ในบทความนี้ เราจะแนะนำเทคนิคทั่วไปที่ผู้โจมตีใช้ในการกู้คืนรหัสผ่าน เครื่องมือที่ช่วยในการทำงานโดยอัตโนมัติ และมาตรการป้องกันที่ผู้ดูแลระบบสามารถนำมาใช้เพื่อปกป้องระบบจากการโจมตีเหล่านี้

การถอดรหัสรหัสผ่านคืออะไร?

การถอดรหัสผ่านคือกระบวนการพยายามเข้าถึงระบบที่จำกัดโดยไม่ได้รับอนุญาต โดยการกู้คืนความลับที่ปกป้องกลไกการตรวจสอบสิทธิ์ กระบวนการถอดรหัสอาจเกี่ยวข้องกับการเปรียบเทียบแฮชรหัสผ่านที่จัดเก็บไว้กับรายการคำที่คำนวณไว้ล่วงหน้า หรือการเรียกใช้อัลกอริทึมที่สร้างรหัสผ่านที่เป็นไปได้จนกว่าจะพบคำที่ตรงกัน เมื่อพบคำที่ตรงกันแล้ว ผู้โจมตีสามารถตรวจสอบสิทธิ์ในฐานะผู้ใช้ที่ถูกต้องได้โดยไม่ต้องเดารหัสผ่านออนไลน์เลย

ความแข็งแกร่งของรหัสผ่านคืออะไร?

ความแข็งแกร่งของรหัสผ่านคือการวัดประสิทธิภาพของรหัสผ่านในการต้านทานการโจมตีเพื่อถอดรหัสผ่าน ความแข็งแกร่งของรหัสผ่านใดๆ นั้นพิจารณาจากคุณสมบัติสามประการ:

  • ความยาว: จำนวนอักขระทั้งหมดที่รหัสผ่านประกอบด้วย
  • ซับซ้อน: ไม่ว่าจะเป็นการใช้ตัวอักษรพิมพ์ใหญ่ ตัวอักษรพิมพ์เล็ก ตัวเลข และสัญลักษณ์ผสมกันก็ตาม
  • ความคาดเดาไม่ได้: รหัสผ่านนั้นสามารถเดาได้ง่ายหรือไม่โดยผู้โจมตีที่รู้จักผู้ใช้

เรามาเปรียบเทียบรหัสผ่านสามรหัสนี้กัน: รหัสผ่าน, password1และ #รหัสผ่าน1$ในตัวอย่างนี้ เราจะใช้ตัวบ่งชี้ความแข็งแกร่งของรหัสผ่านของ cPanel ภาพด้านล่างแสดงความแข็งแกร่งของรหัสผ่านแต่ละแบบ

ตัวบ่งชี้ความแข็งแกร่งของรหัสผ่าน cPanel แสดงค่าที่อ่อนแอมากสำหรับรหัสผ่าน "password"

หมายเหตุ: รหัสผ่านที่ใช้คือ รหัสผ่านค่าความแรงคือ 1 ซึ่งอ่อนมาก

ตัวบ่งชี้ความแข็งแกร่งของรหัสผ่าน cPanel แสดงคะแนนความแข็งแกร่งต่ำสำหรับค่า password1

หมายเหตุ: รหัสผ่านที่ใช้คือ password1ค่าความแข็งแกร่งอยู่ที่ 28 ซึ่งยังถือว่าอ่อนแออยู่

ตัวบ่งชี้ความแข็งแกร่งของรหัสผ่าน cPanel แสดงให้เห็นว่าค่า hashpassword1dollar มีความแข็งแกร่งสูง

หมายเหตุ: รหัสผ่านที่ใช้คือ #รหัสผ่าน1$ค่าความแข็งแกร่งของรหัสผ่านคือ 60 ซึ่งถือว่าแข็งแกร่ง ยิ่งค่าความแข็งแกร่งสูงเท่าไหร่ รหัสผ่านก็ยิ่งดีเท่านั้น

สมมติว่าเราต้องจัดเก็บรหัสผ่านเดียวกันโดยใช้การแฮชแบบ MD5 เราจะใช้โปรแกรมสร้างแฮช MD5 ออนไลน์เพื่อแปลงรหัสผ่านแต่ละรหัสให้เป็นค่าแฮช ตารางด้านล่างแสดงค่าแฮชที่ได้

รหัสผ่าน MD5 แฮช ตัวบ่งชี้ความแข็งแกร่งของ cPanel
รหัสผ่าน 5f4dcc3b5aa765d61d8327deb882cf99 1
password1 7c6a180b36896a0a8c02787eeafb0e4c 28
#รหัสผ่าน1$ 29e08fb7103c327d68327f23d8d9256c 60

ต่อไปนี้เราจะใช้เว็บไซต์ค้นหาค่า MD5 สาธารณะเพื่อถอดรหัสแฮชข้างต้น ภาพด้านล่างแสดงผลลัพธ์การถอดรหัสรหัสผ่านสำหรับแต่ละค่า

ผลลัพธ์การค้นหาแบบย้อนกลับ MD5 สำหรับค่าแฮชของรหัสผ่าน

ผลลัพธ์การค้นหาแบบย้อนกลับ MD5 สำหรับค่าแฮชของรหัสผ่าน password1

ผลการค้นหาแบบ MD5 ย้อนกลับแสดงให้เห็นว่าไม่สามารถถอดรหัสค่าที่แข็งแกร่งอย่าง hashpassword1dollar ได้

จากผลลัพธ์ข้างต้น จะเห็นได้ว่าเราสามารถถอดรหัสผ่านแรกและรหัสผ่านที่สองได้สำเร็จ ซึ่งมีค่าความแข็งแกร่งต่ำกว่า แต่เราไม่สามารถถอดรหัสผ่านที่สามได้ เนื่องจากรหัสผ่านที่สามนั้นยาวกว่า ซับซ้อนกว่า และคาดเดาได้ยากกว่า อีกทั้งยังมีค่าความแข็งแกร่งสูงกว่าด้วย

เทคนิคการถอดรหัสรหัสผ่าน

มีเทคนิคที่ได้รับการพิสูจน์แล้วหลายวิธีที่ผู้โจมตีใช้ในการกู้คืนรหัสผ่าน เราจะอธิบายหมวดหมู่ที่ใช้กันทั่วไปมากที่สุดด้านล่างนี้

  • การโจมตีด้วยพจนานุกรม: วิธีนี้ใช้รายการคำศัพท์ที่น่าจะเป็นตัวเลือก และเปรียบเทียบแต่ละคำกับรหัสผ่านของผู้ใช้หรือแฮชรหัสผ่านที่ได้มา
  • การโจมตีด้วยกำลังดุร้าย: การโจมตีแบบ Brute force คือการผสมผสานตัวอักษร ตัวเลข และสัญลักษณ์ โดยใช้อัลกอริทึมในการสร้างรหัสผ่านที่เป็นไปได้ทั้งหมดอย่างเป็นระบบ จนกว่าจะพบรหัสผ่านที่ตรงกัน ตัวอย่างเช่น รหัสผ่านเช่น รหัสผ่าน สามารถลองใช้ได้เช่นกัน พี@$$เวิร์ด โดยใช้กฎการค้นหาแบบผสมผสาน (hybrid brute force rule)
  • การโจมตีด้วยโต๊ะสายรุ้ง: วิธีนี้อาศัยค่าแฮชที่คำนวณไว้ล่วงหน้า สมมติว่าฐานข้อมูลจัดเก็บรหัสผ่านในรูปแบบแฮช MD5 ผู้โจมตีสร้างตารางอีกตารางหนึ่งที่จัดเก็บแฮช MD5 ของรหัสผ่านที่ใช้กันทั่วไป และเปรียบเทียบแฮชที่ได้กับตารางที่คำนวณไว้ล่วงหน้า หากพบว่าตรงกัน รหัสผ่านก็จะถูกกู้คืนได้
  • เดา: อย่างที่ชื่อบอก วิธีนี้เกี่ยวข้องกับการเดา รหัสผ่านเช่น QWERTY, รหัสผ่านและ ผู้ดูแลระบบ โดยทั่วไปแล้วค่าเหล่านี้มักถูกใช้งานหรือตั้งเป็นค่าเริ่มต้น หากไม่ได้เปลี่ยนแปลง ค่าเหล่านี้ก็อาจถูกบุกรุกได้อย่างรวดเร็ว
  • การค้นหาข้อมูลผ่านแมงมุม: องค์กรส่วนใหญ่ใช้รหัสผ่านที่มีข้อมูลของบริษัท ข้อมูลเหล่านี้สามารถรวบรวมได้จากเว็บไซต์ของบริษัทและโซเชียลมีเดีย เช่น Facebook และ Twitter โปรแกรมรวบรวมข้อมูล (Spidering) จะรวบรวมข้อมูลจากแหล่งเหล่านี้เพื่อสร้างรายการคำศัพท์เป้าหมาย ซึ่งจะถูกนำไปใช้ในการโจมตีแบบใช้พจนานุกรมและแบบเดาสุ่ม (Brute Force Attack)
  • การบรรจุหนังสือรับรอง: ผู้โจมตีจะนำชื่อผู้ใช้และรหัสผ่านที่รั่วไหลจากการละเมิดข้อมูลครั้งหนึ่งไปใช้กับบริการที่ไม่เกี่ยวข้อง เพื่อเอาเปรียบผู้ใช้ที่ใช้ข้อมูลประจำตัวซ้ำ

รายการคำที่ใช้ในการค้นหาข้อมูลของบริษัทสมมติ อาจประกอบด้วยคำต่อไปนี้: 1976 (ปีเกิดของผู้ก่อตั้ง); สมิธ, โจนส์ (นามสกุล); แอคมี (ชื่อบริษัท); สร้าง, ถึง, สุดท้าย (คำหลักที่แสดงถึงวิสัยทัศน์); กอล์ฟ, หมากรุก, ฟุตบอล (งานอดิเรก)

ตารางด้านล่างเปรียบเทียบเทคนิคต่างๆ โดยพิจารณาจากความเร็ว ข้อกำหนดเบื้องต้น และความสามารถในการตรวจจับ

เทคนิค ความเร็ว ต้องใช้แฮชหรือไม่? ตรวจจับได้ทางออนไลน์หรือไม่?
พจนานุกรม รวดเร็ว สามารถเลือกหรือไม่เลือกก็ได้ มี (ใบกำกับภาษีเต็มรูปแบบ)
กำลังดุร้าย ช้า สามารถเลือกหรือไม่เลือกก็ได้ มี (ใบกำกับภาษีเต็มรูปแบบ)
โต๊ะเรนโบว์ เร็วมาก มี (ใบกำกับภาษีเต็มรูปแบบ) ไม่ (ออฟไลน์)
คาดเดา ตัวแปร ไม่ มี (ใบกำกับภาษีเต็มรูปแบบ)
แมงมุม ช้า ไม่ มี (ใบกำกับภาษีเต็มรูปแบบ)
การโจมตีโดยใช้ชื่อผู้ใช้งานและรหัสผ่านที่เคยรั่วไหล รวดเร็ว ไม่ มี (ใบกำกับภาษีเต็มรูปแบบ)

Password Cracker เครื่องมือ

เครื่องมือถอดรหัสผ่านเป็นโปรแกรมซอฟต์แวร์ที่ใช้เทคนิคต่างๆ ที่กล่าวมาข้างต้นโดยอัตโนมัติ เราได้กล่าวถึงเครื่องมือประเภทนี้ไปแล้วในตัวอย่างเรื่องความแข็งแกร่งของรหัสผ่านก่อนหน้านี้ ซึ่งการค้นหาค่า MD5 สาธารณะจะใช้ตารางเรนโบว์เพื่อถอดรหัสแฮชทั่วไป ต่อไปนี้เราจะมาดูเครื่องมือเพิ่มเติมที่ผู้ปฏิบัติงานใช้ในระหว่างการประเมินผลอย่างเป็นทางการ

1) John the Ripper
John the Ripper โปรแกรมนี้ใช้พรอมต์คำสั่งและรับรายการคำศัพท์พร้อมกฎเพื่อสร้างคำที่อาจเป็นไปได้ มันตรวจจับรูปแบบแฮชทั่วไปหลายรูปแบบโดยอัตโนมัติ โปรแกรมนี้ใช้งานได้ฟรี ในขณะที่รายการคำศัพท์เชิงพาณิชย์ที่คัดสรรแล้วมีจำหน่ายแยกต่างหาก เยี่ยมชม https://www.openwall.com/john/.

2) Cain & Abel
Cain & Abel วิ่งบน Windows และสามารถกู้คืนรหัสผ่านของผู้ใช้ ดักจับข้อมูลเครือข่าย และอื่นๆ อีกมากมาย อินเทอร์เฟซแบบกราฟิกทำให้เป็นที่นิยมในหมู่ผู้ใช้ใหม่ โปรแกรมนี้ไม่ได้รับการดูแลรักษาอย่างต่อเนื่องตั้งแต่ปี 2014 ดังนั้นควรใช้เฉพาะกับระบบห้องปฏิบัติการรุ่นเก่าเท่านั้น ดูข้อมูลเพิ่มเติมได้ที่นี่ https://sectools.org/tool/cain/.

3) Ophcrack
Ophcrack เป็นข้ามแพลตฟอร์ม Windows โปรแกรมถอดรหัสรหัสผ่านที่ใช้ตารางเรนโบว์ ทำงานบน Windows, ลินุกซ์ และ macOSและยังมีโมดูลการโจมตีแบบใช้กำลังดุร้าย (brute force) รวมอยู่ด้วย เยี่ยมชม https://ophcrack.sourceforge.io/.

4) Hashcat
Hashcat เป็นมาตรฐานสมัยใหม่สำหรับการกู้คืนรหัสผ่านแบบออฟไลน์ รองรับอัลกอริธึมแฮชมากกว่า 300 แบบ ใช้การเร่งความเร็ว GPU และนำเสนอการโจมตีแบบใช้กฎ เอกสารประกอบอยู่ที่ https://hashcat.net/hashcat/.

5) ไฮดรา
Hydra (THC-Hydra) มุ่งเป้าไปที่บริการออนไลน์ต่างๆ เช่น SSH, FTP, RDP และแบบฟอร์มล็อกอิน HTTP โดยมาพร้อมกับ Kali Linux และมีการใช้งานอย่างแพร่หลายในปฏิบัติการเรดทีมที่ได้รับอนุญาต

จะป้องกันการโจมตีด้วยการถอดรหัสรหัสผ่านได้อย่างไร?

องค์กรสามารถใช้มาตรการต่อไปนี้เพื่อลดโอกาสที่รหัสผ่านจะถูกเจาะ:

  • ต้องมีอักขระอย่างน้อย 12 ตัว และหลีกเลี่ยงรูปแบบที่คาดเดาได้ เช่น 11552266 หรือ qwerty1234
  • ควรจัดเก็บรหัสผ่านโดยใช้ฟังก์ชันแฮชแบบทางเดียวที่ช้า เช่น bcrypt, scrypt หรือ Argon2 แทนที่จะใช้ฟังก์ชันแฮชที่รวดเร็ว เช่น MD5 หรือ SHA-1
  • ใส่เกลือ (salt) ลงในรหัสผ่านทุกรหัสก่อนทำการแฮช เกลือเหล่านี้จะช่วยป้องกันการค้นหาด้วยตารางเรนโบว์ (rainbow table) แม้ว่าการแฮชจะทำได้เร็วก็ตาม
  • นำนโยบายรหัสผ่านที่ให้ความสำคัญกับคะแนนความแข็งแกร่งสูงมาใช้ และส่งเสริมการใช้รหัสผ่านแบบวลี ตามที่แนะนำใน NIST SP 800-63B
  • เปิดใช้งานการตรวจสอบสิทธิ์แบบหลายปัจจัย (MFA) เพื่อป้องกันไม่ให้เข้าถึงได้หากรหัสผ่านถูกขโมยเพียงอย่างเดียว
  • ใช้โปรแกรมจัดการรหัสผ่านเพื่อสร้างข้อมูลประจำตัวที่ไม่ซ้ำกันสำหรับทุกบริการ เพื่อป้องกันการโจมตีแบบยัดเยียดข้อมูลประจำตัว (credential stuffing attacks)
  • ตั้งค่าการล็อกบัญชี การจำกัดการใช้งาน และการตรวจสอบอย่างต่อเนื่อง เพื่อตรวจจับการโจมตีแบบ Brute Force ออนไลน์ตั้งแต่เนิ่นๆ

กิจกรรมการแฮ็ก: แฮ็กทันที!

ในสถานการณ์จำลองนี้ เราจะมาไขปริศนา Windows บัญชีที่ใช้รหัสผ่านแบบง่าย Windows ระบบจะจัดเก็บข้อมูลประจำตัวในเครื่องในรูปแบบแฮช NTLM (ซึ่งเป็นรูปแบบที่ใช้ MD4) และเราจะใช้โมดูลถอดรหัส NTLM ใน Cain and Abel เพื่อกู้คืนค่าดังกล่าว

เคนและอาเบลสามารถถอดรหัสผ่านได้โดยใช้การโจมตีด้วยพจนานุกรม การโจมตีแบบเดาสุ่ม หรือการวิเคราะห์รหัส (ตารางที่คำนวณไว้ล่วงหน้า) ในที่นี้เราจะใช้การโจมตีด้วยพจนานุกรม ดาวน์โหลดรายการคำศัพท์ 10k-Most-Common.zip จากเว็บไซต์ที่น่าเชื่อถือ สำหรับการสาธิตนี้ เราได้สร้างบัญชีชื่อ บัญชี ด้วยรหัสผ่าน QWERTY เมื่อ Windows เครื่องมือห้องปฏิบัติการ 7 เครื่อง

Windows มีการสร้างบัญชีผู้ใช้ในห้องปฏิบัติการจำนวน 7 บัญชี โดยใช้รหัสผ่านง่ายๆ คือ qwerty สำหรับการสาธิต

วิธีการถอดรหัสรหัสผ่าน

คำแนะนำด้านล่างนี้จะจับคู่หน้าจอแต่ละหน้าของเกม Cain and Abel กับการกระทำที่ต้องทำ โปรดทำตามขั้นตอนตามลำดับในบัญชีทดลองของคุณเอง ห้ามใช้กับระบบที่คุณไม่ได้เป็นเจ้าของเด็ดขาด

ขั้นตอนที่ 1) เปิดหนังสือเรื่องคาอินและอาเบล
เปิดใช้งานแอปพลิเคชัน คุณจะเห็นหน้าจอหลักดังต่อไปนี้

หน้าจอหลักของ Cain and Abel โดยมีแท็บ Cracker ปรากฏอยู่

ขั้นตอนที่ 2) ค้นหาปุ่ม "เพิ่ม"
ตรวจสอบให้แน่ใจว่าได้เลือกแท็บ Cracker แล้ว ดังที่แสดงในภาพด้านบน จากนั้นคลิกปุ่ม Add บนแถบเครื่องมือ

เลือกแท็บ Cracker โดยไฮไลต์ปุ่ม Add บนแถบเครื่องมือ Cain and Abel

ขั้นตอนที่ 3) เลือกแหล่งที่มาของการนำเข้า
หน้าต่างโต้ตอบต่อไปนี้จะปรากฏขึ้น เลือก นำเข้าแฮชจากระบบภายในเครื่อง และคลิกถัดไป

บทสนทนาระหว่างเคนและอาเบลที่ถามว่าควรนำเข้าแฮช NTLM จากแหล่งใด

ขั้นตอน 4) Revดูบัญชีที่นำเข้า
บัญชีผู้ใช้ในเครื่องจะแสดงดังต่อไปนี้ ผลลัพธ์ที่ได้จะตรงกับบัญชีผู้ใช้ในเครื่องคอมพิวเตอร์ในห้องปฏิบัติการของคุณ

รายชื่อสินค้านำเข้าในประเทศ Windows บัญชีพร้อมสำหรับการเจาะทะลุภายในเรื่องของเคนและอาเบล

ขั้นตอนที่ 5) คลิกขวาที่บัญชีเป้าหมาย
คลิกขวาที่บัญชีที่คุณต้องการแฮ็ก สำหรับบทเรียนนี้ เราจะใช้ บัญชี ผู้ใช้

คลิกขวาที่เมนูบริบทของผู้ใช้บัญชีภายใน Cain and Abel

ขั้นตอนที่ 6) เปิดแผงโจมตีด้วยพจนานุกรม
ในหน้าต่างการโจมตีด้วยพจนานุกรม ให้คลิกขวาในส่วนพจนานุกรมแล้วเลือก เพิ่มไปยังรายการ ที่แสดงด้านล่าง

แผงการโจมตีด้วยพจนานุกรมพร้อมตัวเลือก "เพิ่มลงในรายการ" ที่ถูกไฮไลต์

ขั้นตอนที่ 7) เลือกไฟล์รายการคำศัพท์
เรียกดูไฟล์ 10k-most-common.txt เลือกไฟล์ที่คุณเพิ่งดาวน์โหลดมา

โปรแกรมจัดการไฟล์เปิดขึ้นภายในเรื่องเคนและอาเบล เพื่อเลือกรายการคำศัพท์รหัสผ่านที่พบบ่อยที่สุด 10 คำ

ขั้นตอน 8) Revดูรหัสผ่านที่กู้คืนได้
หากผู้ใช้เลือกใช้รหัสผ่านที่ง่าย เช่น QWERTYคุณจะเห็นผลลัพธ์ที่คล้ายกับภาพหน้าจอด้านล่าง โดยมีค่าข้อความธรรมดาอยู่ข้างบัญชีผู้ใช้

คาอินและอาเบลแสดงรหัสผ่านแบบข้อความธรรมดาที่กู้คืนได้ (qwerty) สำหรับผู้ใช้บัญชี

หมายเหตุ: ระยะเวลาที่ใช้ในการถอดรหัสผ่านขึ้นอยู่กับความแข็งแกร่งของรหัสผ่าน ความซับซ้อนของรายการตัวเลือก และกำลังการประมวลผลของเครื่องของคุณ หากการโจมตีด้วยพจนานุกรมไม่สามารถกู้คืนรหัสผ่านได้ ให้ลองใช้การโจมตีแบบเดาแบบสุ่มหรือการวิเคราะห์รหัสลับต่อไป

ปัญญาประดิษฐ์ (AI) เป็นอย่างไร เรชาping การถอดรหัสและการป้องกันรหัสผ่าน

ปัญญาประดิษฐ์ได้กลายเป็นพลังสำคัญทั้งในด้านการถอดรหัสผ่านและด้านการป้องกัน ผู้โจมตีฝึกฝนโมเดลภาษาโดยใช้ข้อมูลประจำตัวที่รั่วไหลเพื่อทำนายรหัสผ่านที่สมจริง ในขณะที่ผู้ป้องกันใช้โมเดลเดียวกันนี้ร่วมกับระบบตรวจสอบข้อมูลเพื่อตรวจจับการบุกรุกได้เร็วขึ้น

ต่อไปนี้คือวิธีที่ AI กำลังเปลี่ยนแปลงวงการนี้ในปัจจุบัน:

  • การสร้างรายการคำศัพท์ที่ชาญฉลาดขึ้น: โมเดลแบบสร้างข้อมูล เช่น PassGAN เรียนรู้รูปแบบรหัสผ่านของมนุษย์และสร้างรายการตัวเลือกที่สามารถถอดรหัสแฮชได้มากกว่าพจนานุกรมแบบคงที่
  • การให้คะแนนความเสี่ยงด้านพฤติกรรม: AI ป้องกันตนเองจะตรวจสอบตำแหน่งทางภูมิศาสตร์ในการเข้าสู่ระบบ ลายนิ้วมือของอุปกรณ์ และประเภทข้อมูลping จังหวะ ส่งบริบทที่ผิดปกติเพื่อเพิ่มระดับการตรวจสอบสิทธิ์
  • การตรวจจับความผิดปกติแบบเรียลไทม์: ตัวจำแนกประเภทการเรียนรู้ของเครื่องจะตรวจสอบบันทึกการตรวจสอบสิทธิ์และตรวจจับการโจมตีด้วยการใช้ข้อมูลประจำตัวที่ไม่ถูกต้องหรือการโจมตีแบบ Brute Force ที่ช้า ซึ่งกฎการตรวจสอบลายเซ็นไม่สามารถตรวจจับได้
  • การให้คำแนะนำเชิงนโยบายอัตโนมัติ: แพลตฟอร์มการยืนยันตัวตนจะประเมินรหัสผ่านใหม่โดยเทียบกับชุดข้อมูลเฉพาะขององค์กร และแนะนำรหัสผ่านที่แข็งแกร่งกว่าก่อนที่ผู้ใช้จะยืนยันรหัสผ่านนั้นอย่างเป็นทางการ
  • ระบบป้องกันการโจมตีแบบฟิชชิ่ง: AI ช่วยเร่งการใช้งาน FIDO2 และกระบวนการรหัสผ่านโดยการวิเคราะห์สัญญาณความเสี่ยงและลดความยุ่งยากในการใช้งานของผู้ใช้

ผสานการตรวจสอบด้วย AI เข้ากับการตรวจสอบสิทธิ์แบบหลายปัจจัย การเข้ารหัสแบบแฮชที่ทันสมัย ​​เช่น Argon2 และระบบแจ้งเตือนการละเมิดข้อมูลที่รวดเร็ว เพื่อให้ระบบป้องกันอัตโนมัติก้าวล้ำหน้าการโจมตีอัตโนมัติอยู่เสมอ

คำถามที่พบบ่อย

การถอดรหัสผ่านนั้นถูกกฎหมายก็ต่อเมื่อได้รับอนุญาตเป็นลายลักษณ์อักษรอย่างชัดเจน เช่น ในการทดสอบการเจาะระบบ การตรวจสอบภายใน หรือการกู้คืนข้อมูลประจำตัวของคุณเอง การถอดรหัสโดยไม่ได้รับอนุญาตเป็นการละเมิดกฎหมายเกี่ยวกับการใช้คอมพิวเตอร์ในทางที่ผิดในเกือบทุกเขตอำนาจศาล

การแฮชเป็นการแปลงแบบทางเดียว: ค่าเดิมไม่สามารถกู้คืนได้ การเข้ารหัสสามารถย้อนกลับได้ด้วยกุญแจที่ถูกต้อง รหัสผ่านควรจัดเก็บในรูปแบบแฮชที่มีเกลือ (salted hashe) โดยใช้อัลกอริธึม เช่น bcrypt, scrypt หรือ Argon2 เสมอ ไม่ควรจัดเก็บในรูปแบบสตริงที่เข้ารหัสโดยตรง

สำหรับการแคร็กแบบออฟไลน์ Hashcat โดยทั่วไปแล้วจะเร็วที่สุด เนื่องจากใช้การเร่งความเร็ว GPU และรองรับการโจมตีแบบใช้กฎเกณฑ์ในรูปแบบแฮชมากกว่า 300 รูปแบบ John the Ripper ยังคงได้รับความนิยมเมื่อทรัพยากร GPU มีจำกัด

เกลือ (Salt) คือค่าสุ่มที่ไม่ซ้ำกันซึ่งถูกเพิ่มเข้าไปในรหัสผ่านแต่ละรหัสก่อนที่จะทำการแฮช การใช้เกลือช่วยป้องกันการโจมตีด้วยตารางเรนโบว์ (Rainbow Table Attack) เนื่องจากตารางที่คำนวณไว้ล่วงหน้าจะใช้งานได้เฉพาะกับแฮชที่ไม่มีเกลือเท่านั้น นอกจากนี้ เกลือยังช่วยให้ผู้ใช้สองคนที่มีรหัสผ่านเดียวกันได้ค่าที่จัดเก็บแตกต่างกัน

รหัสผ่าน 12 ตัวอักษรที่ผสมตัวอักษร ตัวเลข และสัญลักษณ์ อาจต้องใช้เวลาหลายศตวรรษในการเจาะด้วยวิธี Brute Force กับระบบแฮชที่ทำงานช้า เช่น bcrypt แต่ถ้าใช้กับ MD5 ที่ทำงานเร็วและไม่มีการเพิ่มเกลือ (unsalted) รหัสผ่านเดียวกันนี้อาจถูกเจาะได้ภายในไม่กี่วัน ดังนั้น การเลือกวิธีการแฮชและความยาวของรหัสผ่านจึงมีความสำคัญ

ผู้โจมตีใช้โมเดลสร้างข้อมูล เช่น PassGAN ในการฝึกฝนโมเดลเหล่านั้นโดยใช้ข้อมูลประจำตัวที่รั่วไหลออกมา เพื่อให้สามารถทำนายรหัสผ่านที่เหมือนจริงของมนุษย์ได้ รายการคำที่ได้นั้นสามารถถอดรหัสแฮชได้มากกว่าพจนานุกรมแบบคงที่อย่างเห็นได้ชัดในช่วงเวลาการทำงานเดียวกัน โดยเฉพาะอย่างยิ่งเมื่อใช้ร่วมกับการเปลี่ยนแปลงตามกฎเกณฑ์ Hashcat.

ใช่แล้ว AI ป้องกันภัยคุกคามจะกำหนดพฤติกรรมการเข้าสู่ระบบปกติ ประเมินความเสี่ยงในแต่ละครั้งที่พยายาม และตรวจจับการโจมตีแบบ Credential Stuffing หรือ Brute Force แบบช้าๆ ที่ระบบตรวจสอบด้วยกฎทั่วไปมองข้ามไป ควรใช้การตรวจสอบด้วย AI ร่วมกับการตรวจสอบสิทธิ์แบบหลายปัจจัยและการเข้ารหัสแบบแฮชที่ทันสมัย ​​เช่น Argon2 เพื่อให้ได้ผลลัพธ์ที่แข็งแกร่งที่สุด

การตรวจสอบสิทธิ์แบบหลายปัจจัยช่วยป้องกันการแฮ็กได้เป็นส่วนใหญ่ เนื่องจากรหัสผ่านที่กู้คืนมาได้เพียงอย่างเดียวไม่สามารถเข้าสู่ระบบได้สำเร็จ ปัจจัยที่ป้องกันการฟิชชิ่ง เช่น คีย์ความปลอดภัย FIDO2 และรหัสผ่าน ให้การป้องกันที่แข็งแกร่งที่สุดและควรเปิดใช้งานทุกครั้งที่ทำได้

สรุปโพสต์นี้ด้วย: