การโจมตีด้วยพจนานุกรมและตารางสีรุ้ง
ดูว่าตารางแฮชที่คำนวณไว้ล่วงหน้าช่วยให้ถอดรหัสผ่านได้รวดเร็วอย่างไร และการเติมค่าเกลือช่วยเอาชนะวิธีนี้ได้อย่างไร
การโจมตีด้วยพจนานุกรมและตารางสีรุ้ง เป็นบทเรียน Cryptology Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 2 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Cryptology Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Cryptology Academy มีบทเรียนทั้งหมด 4 บทเรียน
การโจมตีด้วยพจนานุกรม: การถอดรหัสด้วยรายการคำ
การโจมตีด้วยพจนานุกรมไม่ได้ลองชุดผสมที่เป็นไปได้ทั้งหมด แต่จะลองรายการรหัสผ่านที่คัดเลือกมาแล้วว่ามีแนวโน้มจะถูกใช้ ผู้ใช้จริงมักเลือกรหัสผ่านจากคลังคำที่จำกัด เช่น คำทั่วไป ชื่อ วันที่ และวลี การทดสอบรายการคำที่มีรหัสผ่านที่น่าจะใช้หนึ่งล้านรายการเร็วกว่าการทดสอบข้อความยาว 8 อักขระที่เป็นไปได้ทั้งหมดอย่างมาก ซึ่งมีชุดผสมถึง 200 ล้านล้านชุด การโจมตีด้วยพจนานุกรมประสบความสำเร็จเพราะการเลือกรหัสผ่านของมนุษย์คาดเดาได้
rockyou.txt: ชุดข้อมูลรหัสผ่านที่รั่วไหล
ในปี 2009 เว็บไซต์เครือข่ายสังคมออนไลน์ RockYou ประสบเหตุข้อมูลรั่วไหล ทำให้รหัสผ่านของผู้ใช้ 32 ล้านรายการถูกเปิดเผยในรูปแบบข้อความธรรมดา รายการดังกล่าวซึ่งปัจจุบันเรียกว่า rockyou.txt มีรหัสผ่านไม่ซ้ำกันประมาณ 14 ล้านรายการ และเป็นรายการคำมาตรฐานชุดแรกที่ใช้ในการถอดรหัสรหัสผ่าน การตรวจสอบ rockyou.txt เผยให้เห็นว่ารหัสผ่านที่ใช้บ่อยที่สุดคือ 123456, password และรูปแบบต่าง ๆ ของชื่อจริงที่ตามด้วยตัวเลข
การโจมตีแบบผสม: การรวมพจนานุกรมเข้ากับกฎ
การโจมตีแบบผสมจะขยายรายการคำตั้งต้นด้วยการใช้กฎการแปลง คำอย่าง password อาจกลายเป็น Password, P@ssword, p4ssword, password1, password123 และรูปแบบอื่น ๆ อีกหลายร้อยแบบ กลไกกฎของแฮชแคตช่วยให้ระบุได้อย่างชัดเจนว่าจะใช้การแปลงใดบ้าง เช่น ทำให้ตัวอักษรแรกเป็นตัวพิมพ์ใหญ่ เติมตัวเลขสองหลัก หรือแทนที่ตัวอักษรด้วยสัญลักษณ์ วิธีนี้เพิ่มขอบเขตการครอบคลุมได้อย่างมากโดยไม่ต้องทดสอบข้อความสุ่มจริง ๆ
การโจมตีตามกฎและภาษาลีต
ครั้งหนึ่งเคยเชื่อว่าการแทนที่แบบภาษาลีต ซึ่งแทนตัวอักษรด้วยตัวเลข เช่น e=3, a=4, i=1, o=0, s=5 จะช่วยเพิ่มความปลอดภัยของรหัสผ่าน เครื่องมือถอดรหัสตามกฎมีการแทนที่เหล่านี้เป็นการแปลงมาตรฐาน รหัสผ่านอย่าง s3cur1ty จึงถูกถอดรหัสได้ทันทีจากคำพื้นฐาน security ร่วมกับกฎการแทนที่แบบภาษาลีต เครื่องมือถอดรหัสยังลองรูปแบบทั่วไป เช่น เติม !, 123 หรือปีปัจจุบันต่อท้ายคำใด ๆ ในพจนานุกรม
ตารางสีรุ้ง: สายโซ่แฮชที่คำนวณไว้ล่วงหน้า
ตารางสีรุ้งคือฐานข้อมูลขนาดใหญ่ที่คำนวณไว้ล่วงหน้า ซึ่งจับคู่ค่าที่ได้จากแฮชกลับไปยังรหัสผ่านเดิม แทนที่จะคำนวณแฮชของตัวเลือกแล้วเปรียบเทียบ ผู้โจมตีจะค้นหาแฮชนั้นในตาราง การสร้างตารางต้องใช้เวลาและพื้นที่จัดเก็บมหาศาล แต่การค้นหาแต่ละครั้งใช้เวลาแทบจะทันที ตารางสีรุ้งสำหรับแฮชเอ็มดีไฟฟ์ของรหัสผ่านตัวอักษรและตัวเลขยาว 8 อักขระทั้งหมดสามารถจัดเก็บได้ในพื้นที่ไม่กี่เทราไบต์ และถอดรหัสผ่านที่ตรงกันได้ภายในเวลาไม่กี่มิลลิวินาที
การแลกเปลี่ยนระหว่างเวลาและหน่วยความจำในตารางสีรุ้ง
ตารางสีรุ้งเป็นตัวอย่างของการแลกเปลี่ยนระหว่างเวลาและหน่วยความจำ โดยใช้เวลาคำนวณตารางครั้งเดียว แล้วใช้หน่วยความจำเพื่อให้การค้นหาในอนาคตรวดเร็ว ตารางจะจัดเก็บสายโซ่แฮช โดยแต่ละสายเริ่มจากการเดา จากนั้นนำไปคำนวณแฮช ใช้ฟังก์ชันลดรูปเพื่อสร้างการเดาครั้งถัดไป แล้วทำซ้ำ การจัดเก็บเฉพาะจุดปลายของสายโซ่ทำให้สามารถกู้คืนรหัสผ่านจากแฮชผ่านกระบวนการสร้างสายโซ่ขึ้นใหม่ ซึ่งสร้างสมดุลระหว่างพื้นที่จัดเก็บกับการคำนวณ
การเติมค่าเกลือเอาชนะตารางสีรุ้ง
ค่าเกลือคือค่าสุ่มที่เติมต่อท้ายรหัสผ่านก่อนนำไปคำนวณแฮช เนื่องจากค่าเกลือแตกต่างกันสำหรับผู้ใช้แต่ละคน ผู้ใช้สองคนที่มีรหัสผ่านเดียวกันจึงได้ค่าแฮชที่แตกต่างกัน นั่นหมายความว่าผู้โจมตีไม่สามารถคำนวณตารางสีรุ้งล่วงหน้าสำหรับรหัสผ่านที่เติมค่าเกลือได้ แต่จะต้องสร้างตารางแยกสำหรับค่าเกลือที่เป็นไปได้ทุกค่า ซึ่งไม่สามารถทำได้ในทางปฏิบัติเนื่องจากต้องใช้การคำนวณมหาศาล การเติมค่าเกลือเป็นสิ่งจำเป็นสำหรับระบบจัดเก็บรหัสผ่านที่ปลอดภัยทุกระบบ
แฮชเอ็มดีไฟฟ์ที่ไม่มีค่าเกลือ: ถอดรหัสได้ทันที
แอปพลิเคชันบนเว็บยุคแรกจำนวนมากจัดเก็บรหัสผ่านเป็นแฮชเอ็มดีไฟฟ์ที่ไม่มีค่าเกลือ แฮชเอ็มดีไฟฟ์ของข้อความ password คือ 5f4dcc3b5aa765d61d8327deb882cf99 ซึ่งเป็นค่าคงที่ ใครก็ตามที่เคยเห็นแฮชนี้มาก่อนหรือค้นหาแฮชนี้ในฐานข้อมูลที่คำนวณไว้ล่วงหน้า ก็จะทราบรหัสผ่านได้ทันที เว็บไซต์อย่าง CrackStation เก็บแฮชเอ็มดีไฟฟ์และ SHA-1 ที่คำนวณไว้ล่วงหน้าหลายพันล้านรายการ รหัสผ่านทั่วไปที่ไม่มีค่าเกลือจะถูกถอดรหัสได้ภายในเวลาไม่ถึงหนึ่งวินาที
ฉันถูกเจาะข้อมูลหรือยัง
ฉันถูกเจาะข้อมูลหรือยัง (HIBP) ซึ่งสร้างโดยนักวิจัยด้านความปลอดภัย ทรอย ฮันต์ รวบรวมแฮชรหัสผ่านจากเหตุข้อมูลรั่วไหลครั้งใหญ่ ผู้ใช้สามารถตรวจสอบได้ว่าที่อยู่อีเมลหรือรหัสผ่านของตนเคยปรากฏในเหตุข้อมูลรั่วไหลหรือไม่ นักพัฒนาสามารถใช้ส่วนต่อประสานโปรแกรมประยุกต์ของ HIBP เพื่อตรวจสอบรหัสผ่านที่ต้องการเทียบกับแฮชที่รั่วไหล 850 ล้านรายการโดยใช้รูปแบบการไม่เปิดเผยตัวตนแบบ k โดยจะส่งอักขระฐานสิบหก 5 ตัวแรกของแฮช SHA-1 ไปยังส่วนต่อประสานโปรแกรมประยุกต์ ซึ่งจะส่งส่วนต่อท้ายที่ตรงกันกลับมาโดยที่เซิร์ฟเวอร์ไม่ทราบแฮชเต็มค่า
การโจมตีด้วยข้อมูลเข้าสู่ระบบจากรายการรหัสผ่านที่รั่วไหล
การโจมตีด้วยข้อมูลเข้าสู่ระบบจากรายการรหัสผ่านที่รั่วไหลจะนำคู่ชื่อผู้ใช้กับรหัสผ่านจากเหตุข้อมูลรั่วไหลครั้งหนึ่งไปทดสอบกับบริการอื่น เนื่องจากผู้ใช้จำนวนมากใช้รหัสผ่านซ้ำในหลายเว็บไซต์ เหตุข้อมูลรั่วไหลจากเว็บไซต์ที่มีความปลอดภัยต่ำจึงอาจเปิดเผยข้อมูลเข้าสู่ระบบที่ใช้งานได้สำหรับเป้าหมายมูลค่าสูง เช่น บริการธนาคารและอีเมล เครื่องมืออัตโนมัติสามารถส่งความพยายามเข้าสู่ระบบหลายพันรายการต่อวินาทีไปยังบริการหลายแห่ง การจำกัดอัตราและการยืนยันตัวตนหลายปัจจัยเป็นแนวป้องกันหลักจากการโจมตีประเภทนี้
การป้องกัน: การแฮชแบบปรับได้พร้อมเติมค่าเกลือ
การจัดเก็บรหัสผ่านอย่างปลอดภัยต้องใช้ทั้งการเติมค่าเกลือและฟังก์ชันแฮชที่ช้าและปรับได้ตามสภาพ บีคริปต์ อาร์กอน2 และเอสคริปต์ได้รับการออกแบบให้ใช้การคำนวณสูง โดยใช้เวลาหลายมิลลิวินาทีต่อแฮชแทนที่จะเป็นไมโครวินาที วิธีนี้จำกัดอัตราการลองของผู้โจมตีจากหลายพันล้านครั้งต่อวินาทีให้เหลือเพียงหลักพันครั้ง พารามิเตอร์ต้นทุนสามารถเพิ่มขึ้นได้เมื่อฮาร์ดแวร์เร็วขึ้น เพื่อรักษาปริมาณงานที่ต้องใช้ให้คงที่ อัลกอริทึมเหล่านี้เป็นมาตรฐานปัจจุบันสำหรับการจัดเก็บรหัสผ่าน
การเติมค่าเกลือเทียบกับตารางสีรุ้ง
เพราะเหตุใดการเติมค่าเกลือแบบสุ่มที่ไม่ซ้ำกันให้กับรหัสผ่านแต่ละรายการก่อนคำนวณแฮชจึงป้องกันการโจมตีด้วยตารางสีรุ้งที่คำนวณไว้ล่วงหน้าได้
การโจมตีด้วยพจนานุกรมและตารางสีรุ้ง: ประเด็นสำคัญ
การโจมตีด้วยพจนานุกรมจะทดสอบรหัสผ่านที่มีแนวโน้มจะถูกใช้ แทนที่จะลองชุดผสมทั้งหมด rockyou.txt มีตัวอย่างจากการใช้งานจริง 14 ล้านรายการ การโจมตีแบบผสมและการโจมตีตามกฎจะขยายรายการคำด้วยการแปลงรูปแบบต่าง ๆ ตารางสีรุ้งช่วยให้ค้นหาแฮชที่ไม่มีค่าเกลือได้ทันที การเติมค่าเกลือเอาชนะตารางสีรุ้งได้ด้วยการทำให้แฮชแต่ละรายการไม่ซ้ำกัน HIBP ตรวจสอบว่ารหัสผ่านปรากฏในเหตุข้อมูลรั่วไหลที่ทราบหรือไม่ ฟังก์ชันแฮชแบบปรับได้ เช่น บีคริปต์และอาร์กอน2 เป็นสิ่งจำเป็นสำหรับการจัดเก็บที่ปลอดภัย
คำถามที่พบบ่อย
บทเรียน “การโจมตีด้วยพจนานุกรมและตารางสีรุ้ง” ฟรีหรือไม่
ใช่ — ข้อความเต็มของ “การโจมตีด้วยพจนานุกรมและตารางสีรุ้ง” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Cryptology Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Cryptology Academy มีบทเรียนทั้งหมด 4 บทเรียน
คุณจะเรียนรู้อะไรในบทเรียน “การโจมตีด้วยพจนานุกรมและตารางสีรุ้ง”
ดูว่าตารางแฮชที่คำนวณไว้ล่วงหน้าช่วยให้ถอดรหัสผ่านได้รวดเร็วอย่างไร และการเติมค่าเกลือช่วยเอาชนะวิธีนี้ได้อย่างไร คุณปฏิบัติ Cryptology Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน
คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Cryptology Academy หรือไม่
ไม่จำเป็นต้องมีประสบการณ์มาก่อน Cryptology Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 2 จากทั้งหมด 4 บทเรียน
บทเรียน “การโจมตีด้วยพจนานุกรมและตารางสีรุ้ง” ใช้เวลานานแค่ไหน
บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย
ฉันเขียนและรันโค้ดในบทเรียน Cryptology Academy นี้ได้ไหม
ได้ บทเรียน Cryptology Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- การโจมตีแบบเดารหัสทุกความเป็นไปได้ทำงานอย่างไร
- การโจมตีด้วยพจนานุกรมและตารางสีรุ้ง
- เหตุใดความยาวกุญแจเข้ารหัสลับจึงสำคัญ
- การจำกัดอัตราและการล็อกบัญชีเพื่อป้องกันการโจมตี