การเจาะรหัสผ่าน
เวลาในการเจาะ

เวลาที่ใช้เจาะจะขึ้นอยู่กับความแข็งแกร่งของรหัสผ่านคือเอนโทรปีที่วัดเป็นบิตและวิธีการเก็บรหัสผ่าน
วิธีการเจาะโดยมากจะต้องสร้างรหัสผ่านเป็นจำนวนมากแล้วต้องเช็คว่าถูกต้องหรือไม่
ตัวอย่างหนึ่งก็คือการโจมตีด้วยกำลังซึ่งตัวเจาะจะต้องทดลองรหัสผ่านที่เป็นไปได้ทุกรหัสจนกว่าจะเจอ 
ถ้าใช้หน่วยประมวลผลกลาง (ซีพียู) หลายตัว ก็อาจจะสืบหาเริ่มตั้งแต่กลุ่มสัญลักษณ์แรกสุดและกลุ่มสัญลักษณ์ท้ายสุดไปพร้อม ๆ กัน โดยใช้ซีพียูอื่น ๆ เพื่อทดลองรหัสผ่านที่คัดเลือกมาเป็นกลุ่มโดยเฉพาะ ๆ
วิธีเจาะที่สามัญกว่าอื่น ๆ เช่นการโจมตีด้วยคำจากพจนานุกรม การตรวจสอบรหัสผ่านที่สร้างโดยมีรูปแบบ และการทดแทนอักษรในรหัสผ่าน 
จะสามารถลดจำนวนรหัสผ่านที่ต้องทดลองโดยจะทำก่อนเริ่มโจมตีโดยใช้กำลัง 
รหัสผ่านที่มีบิตความแข็งแกร่งสูงจะเพิ่มจำนวนที่ต้องสืบหาอย่างชี้กำลัง และจะลดโอกาสที่รหัสผ่านนั้นจะปรากฏในพจนานุกรมเจาะรหัสผ่านด้วย
การเจาะได้ยังขึ้นอยู่กับจำนวนรหัสผ่านต่อวินาทีที่สามารถตรวจสอบได้ 
ถ้าผู้โจมตีมีค่าแฮชของรหัสผ่าน ก็อาจสามารถทดสอบได้เป็นพัน ๆ ล้านหรือล้าน ๆ ล้านรหัสผ่าน/วินาที เพราะเป็นการโจมตีแบบออฟไลน์ที่ไม่มีการชะลอจำนวนการทดลอง
ถ้าไม่ได้เช่นนี้ ก็อาจจะขึ้นอยู่กับการจำกัดอัตราการทดลองของซอฟต์แวร์พิสูจน์ตัวจริง ซึ่งอาจมีเทคนิคให้พักนอกเวลา, แคปต์ชา หรือเลิกให้ใช้ หลังจากที่ได้ลองผิด ๆ หลายครั้ง
สถานการณ์อีกอย่างที่สามารถทดสอบได้อย่างรวดเร็วก็คือเมื่อใช้รหัสผ่านสร้างกุญแจเข้ารหัสลับ 
เพราะเช็คได้อย่างรวดเร็วว่ารหัสผ่านที่เดานั้นถอดรหัสข้อมูลที่เข้ารหัสลับไว้ได้หรือไม่
สำหรับแฮชรหัสผ่านบางอย่าง โปรแกรมที่ทำงานโดยใช้หน่วยประมวลผลกลางทั่วไปของคอมพิวเตอร์ตั้งโต๊ะธรรมดาสามารถตรวจสอบรหัสผ่านเป็นร้อย ๆ ล้านรหัส/วินาที 
แต่โปรแกรมที่ทำงานโดยใช้หน่วยประมวลผลกราฟิกส์อาจตรวจสอบรหัสผ่านได้ถึงเป็นพัน ๆ ล้านรหัส/วินาที(ดูอัตราความเร็วของ John the Ripper ได้ในแหล่งอ้างอิง)
อัตราการเดาจะขึ้นอยู่กับฟังก์ชันรหัสลับที่ระบบใช้เพื่อสร้างค่าแฮชรหัสผ่าน 
ฟังก์ชันที่เหมาะสม เช่น bcrypt จะดีกว่าฟังก์ชันธรรมดา ๆ เช่น MD5 หรือ SHA เป็นหลายเท่า
เช่น รหัสผ่านที่ผู้ใช้เลือก ยาว 8 ตัวอักษร มีตัวเลข ตัวเล็กตัวใหญ่และสัญลักษณ์ มีการคัดกรองไม่ให้ใช้รหัสผ่านที่เลือกใช้กันอย่างสามัญหรือที่มีอยู่ในพจนานุกรม อาจมีความแข็งแกร่งถึง 30 บิตตามสถาบันมาตรฐานและเทคโนโลยีแห่งชาติสหรัฐ (NIST) ซึ่งจริง ๆ ชี้ว่าซับซ้อนพอให้สร้างรหัสผ่านเป็นพันล้าน (230) รหัสเท่านั้น
รหัสผ่านเช่นนี้สามารถเจาะได้ภายในวินาที ๆ ถ้าใช้ฟังก์ชันแฮชธรรมดา 
และเมื่อใช้คอมพิวเตอร์ตั้งโต๊ะธรรมดาจำนวนมากให้ทำงานร่วมกัน ซึ่งสามารถทำได้ด้วย botnet ก็จะสามารถเจาะได้เร็วกว่ามาก 
ในปี 2002 distributed.net สามารถเจาะกุญแจ RC5 ขนาด 64 บิตได้ภายใน 4 ปี โดยใช้คอมพิวเตอร์ร่วมกัน 300,000 เครื่องโดยทำงานไม่พร้อมกัน ซึ่งสามารถทดสอบกุญแจได้ถึง 12,000 ล้านตัวต่อวินาที
หน่วยประมวลผลกราฟิกส์ (จีพียู) สามารถเจาะรหัสผ่านได้เร็วเพิ่มขึ้นเป็น 50-100 เท่าตัวเทียบกับคอมพิวเตอร์ทั่วไปเมื่อใช้เจาะค่าแฮชบางชนิด
ยกตัวอยา่งเช่นในปี 2011 มีผลิตภัณฑ์ที่อ้างว่าสามารถตรวจสอบรหัสผ่านของ NTLM ได้ถึง 2,800 ล้านรหัส/วินาที โดยใช้เครื่องคอมพิวเตอร์ธรรมดาที่มีหน่วยประมวลผลกราฟิกส์ชั้นสูง
อุปกรณ์ดังว่าสามารถเจาะรหัสผ่านที่มีอักษรตัวเล็กอย่างเดียวหรือตัวใหญ่อย่างเดียวยาว 10 ตัวอักษรภายในวันเดียว 
เมื่อแจกกระจายให้ทำด้วยคอมพิวเตอร์เป็นจำนวนมาก ก็จะเพิ่มอัตราการทดลองตามจำนวนคอมพิวเตอร์ที่มีหน่วยประมวลผลกราฟิกส์ชั้นเดียวกัน 
แต่ก็มีขั้นตอนวิธีแฮชที่คำนวณได้ช้าหรือแม้แต่ออกแบบโดยเฉพาะ ๆ ให้คำนวณได้ช้าเมื่อใช้จีพียู 
เช่น DES, Triple DES, bcrypt, scrypt และ Argon2
จีพียูได้พัฒนาให้ไวขึ้นอย่างรวดเร็ว จึงเพิ่มประสิทธิภาพการเจาะโดยใช้กำลังได้อย่างมาก
ในปี 2012 มีคลัสเตอร์จีพียู 25 ตัวที่สามารถเดารหัสผ่าน NTLM ได้ 350,000 ล้านรหัส/วินาที จึงทำให้ตรวจสอบรหัสผ่านได้ 




95

8




{\textstyle 95^{8}}

 รหัสผ่านภายใน 5.5 ชม. ซึ่งพอเพียงเพื่อเจาะรหัสผ่านยาว 8 ตัวมีอักษรตัวเล็กตัวใหญ่ ตัวเลข และสัญลักษณ์ เป็นรูปแบบรหัสผ่านที่ใช้กันอย่างสามัญในบริษัทใหญ่ ๆ 
ระบบใช้โปรแกรม ocl-Hashcat โดยทำการบนแพลตฟอร์มคลัสเตอร์ Virtual OpenCL ซึ่งก็ทำการบนระบบปฏิบัติการลินุกซ์อีกที
ระบบสามารถ "เจาะรหัสผ่าน 6.5 ล้านรหัสของผู้ใช้ลิงกต์อินในอัตราร้อยละ 90 ทั้งหมด"
แต่สำหรับขั้นตอนวิธีแฮชบางอย่าง ทั้งซีพียูและจีพียูต่างก็ใช้ได้ไม่ดี 
ดังนั้นจึงต้องใช้ฮาร์ดแวร์ที่ออกแบบโดยเฉพาะ ๆ
ซึ่งใช้เทคโนโลยีเอฟพีจีเอหรือเอสิก (ASIC)
แต่การพัฒนาเทคโนโลยีทั้งสองอย่างก็ซับซ้อนและมีค่าใช้จ่ายสูงมาก
ทั่วไปแล้วเอฟพีจีเออาจจะใช้ได้เมื่อใช้เป็นจำนวนน้อย เทียบกับเอสิกที่ใช้ได้เมื่อใช้เป็นจำนวนมาก โดยใช้พลังงานอย่างมีประสิทธิภาพกว่าและก็เร็วกว่าด้วย 
ในปี 1998 มูลนิธิพรมแดนอิเล็กทรอนิกส์ (EFF) ได้สร้างเครื่องเจาะที่ออกแบบโดยเฉพาะด้วยเอสิก
เครื่องชื่อว่า Deep Crack นี้สามารถเจาะกุญแจดีอีเอสขนาด 56 บิตภายใน 56 ชั่วโมง โดยสามารถทดลองกุญแจเข้ารหัส 90,000 ล้านตัว/วินาที
ในปี 2017 มีเอกสารรั่วซึ่งแสดงว่า มีโปรเจกต์ทางทหารที่ใช้เอสิก 
ซึ่งอาจสามารถถอดรหัสลับการสื่อสารทางอินเทอร์เน็ตที่เข้ารหัสลับชนิดที่อ่อนแอกว่า
เริ่มตั้งแต่ปี 2019 สามารถใช้โปรแกรม John the Ripper เพื่อเจาะรหัสผ่านที่ใช้ขั้นตอนวิธีบางอย่างอาศัยเทคโนโลยีเอฟพีจีเอ
ปัจจุบันมีบริษัทเอกชนที่ใช้เทคโนโลยีเช่นนี้เพื่อเจาะรหัสผ่าน