ข้ามไปเนื้อหา

การโจมตีด้วยกำลัง

จากวิกิพีเดีย สารานุกรมเสรี
เครื่องเจาะการเข้ารหัสลับดีอีเอสปี 1998 มูลค่า 10.3 ล้านบาทของมูลนิธิพรมแดนอิเล็กทรอนิกส์ (EFF) มีชิปที่ออกแบบเฉพาะการ 1,800 ตัวซึ่งสามารถเจาะกุญแจดีอีเอสโดยใช้กำลังเพียงไม่กี่วัน รูปถ่ายแสดงแผ่นวงจรใส่ชิปที่ชื่อว่า Deep Crack 64 ตัวที่แต่ละข้างของแผง โดยชิปจะใส่เข้าทั้งสองข้าง

ในวิทยาการเข้ารหัสลับ การโจมตีด้วยกำลัง (อังกฤษ: brute-force attack) เป็นการโจมตีโดยทดลองรหัสผ่านหรือพาสเฟรซเป็นจำนวนมากกับระบบ โดยหวังว่าจะเจอรหัสผ่านที่ถูกต้อง คือจะทดลองรหัสผ่านและพาสเฟรซที่เป็นไปได้ทุกรหัสอย่างเป็นระบบจนกว่าจะเจอ หรืออาจเป็นการโจมตีกุญแจเข้ารหัสลับโดยตรงซึ่งกุญแจปกติจะมาจากฟังก์ชันแปลงรหัสผ่านให้เป็นกุญแจ อย่างหลังเรียกอีกอย่างว่า exhaustive key search (การค้นหากุญแจอย่างหมดสิ้น) วิธีการเช่นนี้ไม่ต้องอาศัยความรู้เกี่ยวกับรหัสผ่านเพราะใช้กำลังค้นหาไปเรื่อย ๆ จนกว่าจะเจอ[ต้องการอ้างอิง] เป็นวิธีที่ในทางทฤษฎีสามารถถอดรหัสข้อมูลที่เข้ารหัสลับได้ทั้งหมดยกเว้นจะใช้ขั้นตอนวิธีที่ไม่มีทางเจาะได้[1] เป็นวิธีที่อาจใช้เมื่อไม่สามารถใช้จุดอ่อนอื่น ๆ ของระบบเข้ารหัสลับ

วิธีนี้เร็วมากเมื่อใช้เดารหัสผ่านที่สั้น ๆ แต่สำหรับรหัสผ่านที่ยาวกว่าก็มักจะใช้วิธีอื่น ๆ เช่น การโจมตีด้วยพจนานุกรม เพราะวิธีนี้ใช้เวลามากเกินไปเนื่องจากรหัสผ่าน พาสเฟรซ หรือกุญแจที่ยาวกว่าอื่น ๆ จะมีค่าที่เป็นไปได้มากกว่า ทำให้เจาะได้ยากขึ้นเป็นชี้กำลังเมื่อเทียบกับรหัสผ่านสั้น [2]

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

การโจมตีนี้เป็นการประยุกต์ใช้การค้นหาโดยใช้กำลัง ซึ่งเป็นเทคนิคการแก้ปัญหาทั่วไปด้วยการสร้างค่าที่เป็นไปได้ทุกอย่างแล้วเช็คว่าถูกต้องหรือไม่ มีคำอีกคำที่ใช้เรียกในภาษาอังกฤษคือ hammering[4] ส่วนเทคนิคการต่อต้านก็คือ anti-hammering[5]

แนวคิดพื้นฐาน[แก้]

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

ข้อจำกัดทางทฤษฎี[แก้]

การโจมตีนี้จะใช้ทรัพยากรเพิ่มขึ้นแบบชี้กำลังตามขนาดกุญแจที่เพิ่มขึ้น ไม่ได้เพิ่มแบบเชิงเส้น แม้กฎหมายการส่งออกของสหรัฐในอดีตจะจำกัดไม่ให้ใช้กุญแจแบบสมมาตรเกิน 56 บิต (ดังที่พบในมาตรฐานดีอีเอส) แต่ปัจจุบันข้อจำกัดนี้ก็ไม่ได้ใช้แล้ว ดังนั้น ขนาดกุญแจสมมาตรที่ใช้มักจะมีขนาด 128 บิตหรือ 256 บิตซึ่งเข้มแข็งกว่ามาก

มีเหตุผลว่ากุญแจสมมาตรขนาด 128 บิตจะไม่สามารถโจมตีได้ กฎของ Landauer ซึ่งเป็นไปตามกฎฟิสิกส์ได้กำหนดพลังงานขั้นต่ำที่จำเป็นเพื่อลบข้อมูลหนึ่งหน่วยในการคำนวณ ซึ่งก็คือ kT  · ln 2 เมื่อ T เป็นอุณหภูมิของเครื่องคำนวณมีหน่วยเป็นองศาเคลวิน, k เป็นค่าคงตัวบ็อลทซ์มัน และลอการิทึมธรรมชาติของ 2 อยู่ที่ประมาณ 0.693 (0.6931471805599453) เครื่องคำนวณที่ผันกลับไม่ได้ (เช่นซีพียู) จะไม่มีทางใช้พลังงานน้อยกว่านี้[7] ดังนั้นสำหรับกุญแจสมมาตรขนาด 128 บิตทุกค่า แม้ยังไม่คิดค่าคำนวณเพื่อเช็คว่าถูกต้องหรือไม่ ก็จะต้องพลิกค่าบิตกลับไปกลับมา 2128 − 1 ครั้งสำหรับซีพียูธรรมดา

เมื่อสมมุติว่าจะคำนวณใกล้ ๆ กับอุณหภูมิห้อง คือราว 300 องศาเคลวิน สามารถประเมินพลังงานที่จำเป็นคือราว 1018 จูล ซึ่งเท่ากับการใช้พลังงาน 30,000 ล้านวัตต์เป็นเวลาหนึ่งปี ซึ่งเท่ากับ 30×109 W×365×24×3600 s = 9.46×1017 จูลหรือ 262.7 TWh ซึ่งเท่ากับร้อยละ 0.1 ของพลังงานที่โลกผลิตทั้งหมดต่อปี แต่การคำนวณจริง ๆ ซึ่งจะต้องตรวจดูว่ากุญแจแต่ละตัวถูกต้องหรือไม่จะใช้พลังงานมากกว่านี้เป็นหลายเท่า อนึ่ง นี้กล่าวถึงพลังงานเท่านั้น ยังไม่ได้พูดถึงเวลาที่ใช้[ต้องการอ้างอิง] แต่การให้เหตุผลเช่นนี้ก็สมมุติว่า ต้องเปลี่ยนค่าเรจิสเตอร์โดยใช้ปฏิบัติการ set และ clear ซึ่งย่อมก่อเอนโทรปี (และความร้อน) อย่างแน่นอน มีการแสดงทางทฤษฎีว่าสามารถสร้างฮาร์ดแวร์คอมพิวเตอร์เพื่อให้ไม่มีอุปสรรคเช่นนี้ แต่คอมพิวเตอร์แบบนี้จริง ๆ ก็ไม่เคยสร้าง[ต้องการอ้างอิง]

จีพียูปัจจุบันใช้ได้ดีในงานที่ทำซ้ำ ๆ เมื่อใช้เป็นฮาร์ดแวร์ในการเจาะรหัสผ่าน

หน่วยงานของรัฐได้ใช้ฮาร์ดแวร์แบบเอสิก (ASIC) เพื่อเจาะรหัสผ่าน แต่ต่อมาก็มีเทคโนโลยีที่เอกชนสามารถใช้เจาะไซเฟอร์บางอย่างโดยเฉพาะ ๆ เป็นการโจมตีด้วยฮาร์ดแวร์โดยเฉพาะ (custom hardware) เทคโนโลยีที่ใช้อย่างหนึ่งก็คือหน่วยประมวลผลกราฟิกส์ (จีพียู) รุ่นนำสมัย[8][ต้องการเลขหน้า] เทคโนโลยีอีกอย่างก็คือเอฟพีจีเอ ข้อดีของจีพียูก็คือมีวางตลาดขายทั่วไปและมีราคาต่อสมรรถภาพที่ดี ส่วนเอฟพีจีเอจะดีตรงใช้พลังงานน้อย โดยทั้งสองล้วนปฏิบัติการโดยขนาน จีพียูอาจมีหน่วยทำการเป็นร้อย ๆ และอุปกรณ์เอฟพีจีเอมีเป็นพัน ๆ จึงใช้เจาะรหัสผ่านได้ดีกว่าซีพียูธรรมดา ในปี 2022 มีการใช้จีพียู Nvidia RTX 4090 ถึง 8 ตัวร่วมกันโดยใช้โปรแกรม Hashcat ซึ่งสามารถเจาะรหัสผ่าน NTLM ขนาด 8 ตัวอักษรทั้งหมดคือประมาณ 2 แสนล้านรหัสใน 48 นาที[9][10]

มีงานศึกษาทางวิทยาการรหัสลับหลายงานที่ได้พิสูจน์ประสิทธิภาพทางพลังงานของเทคโนโลยีเอฟพีจีเอในปัจจุบัน ยกตัวอย่างเช่น คลัสเตอร์คอมพิวเตอร์ COPACOBANA FPGA ใช้พลังงานเท่ากับคอมพิวเตอร์เครื่องเดียว คือประมาณ 600 วัตต์ แต่มีประสิทธิภาพเท่ากับคอมพิวเตอร์ 2,500 ตัว เมื่อใช้คำนวณขั้นตอนวิธีบางอย่าง มีบริษัทเอกชนที่ผลิตเครื่องเจาะรหัสผ่านโดยใช้ฮาร์ดแวร์เป็นเอฟพีจีเอ เริ่มตั้งแต่การ์ด PCI Express จนถึงคอมพิวเตอร์ที่ทำด้วยเอฟพีจีเอ[ต้องการอ้างอิง] การเข้ารหัสวายฟายแบบ WPA และ WPA2 พบว่าสามารถโจมตีด้วยกำลังโดยลดพลังงานที่ต้องใช้เป็น 50 ถึงร้อย ๆ เท่าเทียบกับเมื่อใช้ซีพียูธรรมดา [11][12]

การเข้ารหัสลับเออีเอสสามารถเลือกใช้กุญแจขนาด 256 บิตได้ การเจาะกุญแจขนาดนี้ต้องใช้กำลังคำนวณ 2128 เท่ามากกว่าการเจาะกุญแจ 128 บิต ซูเปอร์คอมพิวเตอร์ที่เร็วที่สุดเครื่องหนึ่งในปี 2019 มีความเร็วถึง 100 เพทาฟล็อปส์ซึ่งในทางทฤษฎีสามารถตรวจกุญแจเออีเอสได้หนึ่งร้อยล้าน (1014) ตัวต่อวินาทีโดยสมมติว่าต้องมีปฏิบัติการ 1,000 ครั้งต่อการตรวจ แต่ก็ยังต้องใช้เวลาเป็น 3.67×1055 ปีเพื่อจะตรวจสอบกุญแจขนาด 256 บิตได้ทั้งหมด[13]

ข้อสมมุติพื้นฐานของการโจมตีด้วยกำลังก็คือ ลูกผสมของกุญแจทั้งหมดมีโอกาสเลือกเท่า ๆ กัน ซึ่งอาศัยการมีตัวสร้างเลขสุ่มที่มีประสิทธิภาพโดยไม่มีปัญหาทางขั้นตอนวิธีหรือการทำให้เกิดผล มีระบบบางระบบที่ตอนแรกคิดว่าไม่สามารถเจาะได้ด้วยกำลัง แต่ก็ถูกเจาะไปเรียบร้อยแล้วเพราะจำนวนรหัสผ่านที่ต้องสืบหาจริง ๆ น้อยกว่าที่คาดไว้ เพราะตัวสร้างรหัสสุ่มเสมือนที่ใช้ไม่มีเอนโทรปีจริง ๆ ตัวอย่างรวมทั้งการทำให้โพรโทคอลทีแอลเอสเกิดผลของบริษัทเน็ตสเคป (พบในปี 1995) และคลังโปรแกรมโอเพนเอสเอสแอลของระบบปฏิบัติการเดเบียนและอูบุนตู (พบในปี 2008)[14][15] การไร้เอนโทรปีของเครื่องเอนิกมาก็ทำให้ถูกเจาะได้ในช่วงสงครามโลกครั้งที่ 2 เช่นกัน[16][17]

การนำข้อมูลบัญชีกลับไปใช้อีก[แก้]

การนำข้อมูลบัญชีกลับไปใช้อีก (credential recycling) เป็นวิธีการแฮ็กที่นำชื่อบัญชีและรหัสผ่านที่ได้จากการโจมตีด้วยกำลังครั้งก่อน ๆ ไปใช้อีก รูปแบบย่อยอย่างหนึ่งก็คือการส่งค่าแฮชรหัสผ่าน (pass the hash) ที่ไม่รวมค่าซอลต์เพื่อแฮ็กเข้าบัญชีของอีกระบบหนึ่ง ซึ่งใช้ได้เลยโดยไม่ต้องเจาะรหัสผ่านโดยใช้กำลัง[18]

รหัสลับที่เจาะไม่ได้[แก้]

การเข้ารหัสลับบางอย่างจะเจาะไม่ได้ด้วยกำลังเพราะคุณสมบัติทางคณิตศาสตร์ ตัวอย่างหนึ่งก็คือการเข้ารหัสโดยวันไทม์แพด (one-time pad) ที่ข้อมูลเปล่าทุก ๆ หน่วยจะมีกุญแจของตัวเองจากรายการกุญแจ (ที่เรียกว่าแพด) กุญแจจะสร้างขึ้นโดยสุ่มจริง ๆ สายอักขระที่เข้ารหัสด้วยวันไทม์แพดซึ่งยาว 140 ตัว เมื่อถูกโจมตีด้วยกำลัง ก็จะได้สายอักขระยาว 140 ตัวที่เป็นไปได้ทั้งหมดซึ่งรวมข้อมูลที่ถูกต้องดั้งเดิมด้วย แต่ก็ไม่มีทางรู้ว่าสายไหนถูกต้อง การเจาะระบบเช่นนี้ได้ ดังเช่นที่ทำในโปรเจ็กต์ Venona ของสหรัฐต่อสหภาพโซเวียต ทั่วไปจะไม่ใช้วิทยาการเข้ารหัสลับเพียงอย่างเดียว แต่ต้องพบข้อผิดพลาดต่าง ๆ เช่น แพดกุญแจไม่ได้ทำโดยสุ่มจริง ๆ หรือดักขโมยเอาแพดได้ หรือผู้เข้ารหัสหรือถอดรหัสทำการผิดพลาด[19]

วิธีรับมือ[แก้]

ในกรณีที่ผู้โจมตีได้ข้อมูลที่เข้ารหัสลับ "ออฟไลน์" ก็จะทดลองกุญแจถอดรหัสต่าง ๆ ได้โดยไม่เสี่ยงต่อการถูกค้นพบหรือถูกขัดขวาง แต่ในกรณีที่ต้องโจมตีออนไลน์ แอดมินของระบบจะสามารถรับมือด้วยวิธีต่าง ๆ เมื่อใส่รหัสผ่านผิด ๆ รวมทั้งการจำกัดจำนวนการใส่รหัสผ่านรหัสหนึ่ง (เช่น เมื่อพยายามใช้รหัสผ่านหนึ่ง ๆ เพื่อแฮ็กเข้าบัญชีหลายบัญชี) การให้พักนอกเวลา การเพิ่มความซับซ้อนของการโต้ตอบ (เช่น ให้ตอบด้วยแคปต์ชา ให้พิสูจน์ตัวจริงด้วยปัจจัยหลายอย่าง) และ/หรือการระงับไม่ให้ใช้บัญชี[20][ต้องการเลขหน้า] แอดมินยังสามารถป้องกันเลขที่อยู่ไอพีไม่ให้ใส่รหัสผ่านผิด ๆ ไม่ว่าจะกับบัญชีไหนเกินจำนวน[21] อนึ่ง เฟรมเวอร์ค MITRE D3FEND ยังแนะนำวิธีต่าง ๆ เพื่อป้องกันการโจมตีด้วยกำลัง เช่น การกรองข้อมูลที่ได้รับจากเครือข่าย การใช้บัญชีตัวล่อ การล้างแคชพิสูจน์ตัวตน[22]

การโจมตีด้วยกำลังแบบผกผัน[แก้]

ในการโจมตีด้วยกำลังแบบผกผัน รหัสผ่านที่นิยมใช้เดี่ยว ๆ จะใช้ทดลองกับบัญชีหลาย ๆ บัญชี หรือกับข้อมูลที่เข้ารหัสลับหลาย ๆ ชุด[23] ซึ่งอาจจะทำซ้ำด้วยรหัสผ่านสามัญต่อ ๆ ไป นี่ไม่ใช่การโจมตีผู้ใช้คนใดคนหนึ่งโดยเฉพาะ

ดูเพิ่ม[แก้]

เชิงอรรถและอ้างอิง[แก้]

  1. Paar, Pelzl & Preneel 2010, p. 7.
  2. Urbina, Ian (2014). "The Secret Life of Passwords. The New Times". The New York Times.
  3. Schrittwieser, Sebastian; Katzenbeisser, Stefan (2011), "Code Obfuscation against Static and Dynamic Reverse Engineering", Information Hiding, Lecture Notes in Computer Science, Berlin, Heidelberg: Springer Berlin Heidelberg, vol. 6958, pp. 270–284, doi:10.1007/978-3-642-24178-9_19, ISBN 978-3-642-24177-2, สืบค้นเมื่อ 2021-09-05
  4. "Secure your site from Brute force attacks using Sebsoft's Anti Hammering Authentication Plugin #MoodlePlugins #MoodleSecurity". elearnmagazine.com. e Learn Magazine. 2016-01-16. สืบค้นเมื่อ 2022-10-27.
  5. "Configure Serv-U to protect against brute force attacks". solarwinds.com. Solar Winds. สืบค้นเมื่อ 2022-10-27.
  6. "Brute Force Attack: Definition and Examples". www.kaspersky.com (ภาษาอังกฤษ). 2020-10-20. สืบค้นเมื่อ 2020-11-08.
  7. Landauer 1961, p. 183-191.
  8. Graham 2011.
  9. Rudisail, B. (2022-11-17). "Password-cracking With High-Performance GPUs: Is There a Way to Prevent It?". Spiceworks. สืบค้นเมื่อ 2023-12-24.
  10. Pires, F. (2022-10-18). "Eight RTX 4090s Can Break Passwords in Under an Hour". Future Publishing. สืบค้นเมื่อ 2023-12-25.
  11. Kingsley-Hughes 2008.
  12. Kamerling 2007.
  13. "November 2019 | TOP500 Supercomputer Sites". www.top500.org. คลังข้อมูลเก่าเก็บจากแหล่งเดิมเมื่อ 2019-11-19. สืบค้นเมื่อ 2020-05-15.
  14. Viega, Messier & Chandra 2002, p. 18.
  15. CERT-2008.
  16. Ellis 2005.
  17. NSA-2009.
  18. "What is a Pass-the-Hash Attack (PtH) ?". BeyondTrust. 2023-08-04. เก็บจากแหล่งเดิมเมื่อ 2024-05-15. สืบค้นเมื่อ 2024-06-23.
  19. Reynard 1997, p. 86.
  20. Burnett & Foster 2004.
  21. Ristic 2010, p. 136.
  22. "Implementing MITRE D3FEND for ATT&CK Technique T1110: Brute Force". D3 Security (ภาษาอังกฤษ). สืบค้นเมื่อ 2024-06-19.
  23. "InfoSecPro.com - Computer, network, application and physical security consultants". www.infosecpro.com. เก็บจากแหล่งเดิมเมื่อ 2017-04-04. สืบค้นเมื่อ 2018-05-08.

ข้อมูลอื่น [แก้]