การโจมตีด้วยกำลัง
ในวิทยาการเข้ารหัสลับ การโจมตีด้วยกำลัง (อังกฤษ: 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] ซึ่งอาจจะทำซ้ำด้วยรหัสผ่านสามัญต่อ ๆ ไป นี่ไม่ใช่การโจมตีผู้ใช้คนใดคนหนึ่งโดยเฉพาะ
ดูเพิ่ม
[แก้]เชิงอรรถและอ้างอิง
[แก้]- ↑ Paar, Pelzl & Preneel 2010, p. 7.
- ↑ Urbina, Ian (2014). "The Secret Life of Passwords. The New Times". The New York Times.
- ↑ 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
- ↑ "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.
- ↑ "Configure Serv-U to protect against brute force attacks". solarwinds.com. Solar Winds. สืบค้นเมื่อ 2022-10-27.
- ↑ "Brute Force Attack: Definition and Examples". www.kaspersky.com (ภาษาอังกฤษ). 2020-10-20. สืบค้นเมื่อ 2020-11-08.
- ↑ Landauer 1961, p. 183-191.
- ↑ Graham 2011.
- ↑ Rudisail, B. (2022-11-17). "Password-cracking With High-Performance GPUs: Is There a Way to Prevent It?". Spiceworks. สืบค้นเมื่อ 2023-12-24.
- ↑ Pires, F. (2022-10-18). "Eight RTX 4090s Can Break Passwords in Under an Hour". Future Publishing. สืบค้นเมื่อ 2023-12-25.
- ↑ Kingsley-Hughes 2008.
- ↑ Kamerling 2007.
- ↑ "November 2019 | TOP500 Supercomputer Sites". www.top500.org. คลังข้อมูลเก่าเก็บจากแหล่งเดิมเมื่อ 2019-11-19. สืบค้นเมื่อ 2020-05-15.
- ↑ Viega, Messier & Chandra 2002, p. 18.
- ↑ CERT-2008.
- ↑ Ellis 2005.
- ↑ NSA-2009.
- ↑ "What is a Pass-the-Hash Attack (PtH) ?". BeyondTrust. 2023-08-04. เก็บจากแหล่งเดิมเมื่อ 2024-05-15. สืบค้นเมื่อ 2024-06-23.
- ↑ Reynard 1997, p. 86.
- ↑ Burnett & Foster 2004.
- ↑ Ristic 2010, p. 136.
- ↑ "Implementing MITRE D3FEND for ATT&CK Technique T1110: Brute Force". D3 Security (ภาษาอังกฤษ). สืบค้นเมื่อ 2024-06-19.
- ↑ "InfoSecPro.com - Computer, network, application and physical security consultants". www.infosecpro.com. เก็บจากแหล่งเดิมเมื่อ 2017-04-04. สืบค้นเมื่อ 2018-05-08.
ข้อมูลอื่น ๆ
[แก้]- Adleman, Leonard M.; Rothemund, Paul W.K.; Roweis, Sam; Winfree, Erik (June 10–12, 1996). On Applying Molecular Computation To The Data Encryption Standard. Proceedings of the Second Annual Meeting on DNA Based Computers. Princeton University.
{{cite conference}}
: CS1 maint: date format (ลิงก์) - Cracking DES - Secrets of Encryption Research, Wiretap Politics & Chip Design. Electronic Frontier Foundation. 1998. ISBN 1-56592-520-3.
- Burnett, Mark; Foster, James C. (2004). Hacking the Code: ASP.NET Web Application Security. Syngress. ISBN 1-932266-65-8.
- Diffie, W.; Hellman, M.E. (1977). "Exhaustive Cryptanalysis of the NBS Data Encryption Standard". Computer. 10: 74–84. doi:10.1109/c-m.1977.217750. S2CID 2412454.
- Graham, Robert David (2011-06-22). "Password cracking, mining, and GPUs". erratasec.com. สืบค้นเมื่อ 2011-08-17.
- Ellis, Claire (March 2005). "Exploring the Enigma". Plus Magazine.
- Kamerling, Erik (2007-11-12). "Elcomsoft Debuts Graphics Processing Unit (GPU) Password Recovery Advancement". Symantec.
- Kingsley-Hughes, Adrian (2008-10-12). "ElcomSoft uses NVIDIA GPUs to Speed up WPA/WPA2 Brute-force Attack". ZDNet.
- Landauer, L (1961). "Irreversibility and Heat Generation in the Computing Process". IBM Journal of Research and Development. 5 (3): 183–191. doi:10.1147/rd.53.0183. คลังข้อมูลเก่าเก็บจากแหล่งเดิมเมื่อ 2016-03-03.
- Paar, Christof; Pelzl, Jan; Preneel, Bart (2010). Understanding Cryptography: A Textbook for Students and Practitioners. Springer. ISBN 978-3-642-04100-6.
- Reynard, Robert (1997). Secret Code Breaker II: A Cryptanalyst's Handbook. Jacksonville, FL: Smith & Daniel Marketing. ISBN 1-889668-06-0. สืบค้นเมื่อ 2008-09-21.
- Ristic, Ivan (2010). Modsecurity Handbook. Feisty Duck. ISBN 978-1-907117-02-2.
- Viega, John; Messier, Matt; Chandra, Pravir (2002). Network Security with OpenSSL. O'Reilly. ISBN 0-596-00270-X. สืบค้นเมื่อ 2008-11-25.
- Wiener, Michael J. (1996). "Efficient DES Key Search". Practical Cryptography for Data Internetworks. W. Stallings, editor, IEEE Computer Society Press.
- "Technical Cyber Security Alert TA08-137A: Debian/Ubuntu OpenSSL Random Number Generator Vulnerability". United States Computer Emergency Readiness Team (CERT). 2008-05-16. คลังข้อมูลเก่าเก็บจากแหล่งเดิมเมื่อ 2008-09-16. สืบค้นเมื่อ 2008-08-10.
- "NSA's How Mathematicians Helped Win WWII". National Security Agency. 2009-01-15. คลังข้อมูลเก่าเก็บจากแหล่งเดิมเมื่อ 2009-03-07.
- RSA-sponsored DES-III cracking contest
- Demonstration of a brute-force device designed to guess the passcode of locked iPhones running iOS 10.3.3
- How We Cracked the Code Book Ciphers - Essay by the winning team of the challenge in The Code Book