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

ในเรื่องการวิเคราะห์รหัสลับและความมั่นคงคอมพิวเตอร์ การเจาะรหัสผ่าน[1] (อังกฤษ: password cracking) เป็นกระบวนการกู้เอารหัสผ่าน[2] จากข้อมูลหรือการสื่อสารที่เข้ารหัสลับไว้และอ่านเนื้อความไม่ได้ วิธีการสามัญอย่างหนึ่งก็คือการโจมตีด้วยกำลัง เป็นการเดารหัสผ่านไปเรื่อย ๆ แล้วเช็คกับค่าแฮชของรหัสผ่านที่ต้องการเจาะ[3] อีกวิธีหนึ่งก็คือการโจมตีโดยพ่นรหัสผ่าน เป็นการใช้รายการรหัสผ่านที่สามัญแล้วค่อย ๆ ลองรหัสผ่านแต่ละรหัสกับบัญชีหลาย ๆ บัญชีโดยทำช้า ๆ เพื่อไม่ให้ถูกตรวจจับได้[4]

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

เวลาในการเจาะ

แก้

เวลาที่ใช้เจาะจะขึ้นอยู่กับความแข็งแกร่งของรหัสผ่านคือเอนโทรปีที่วัดเป็นบิตและวิธีการเก็บรหัสผ่าน วิธีการเจาะโดยมากจะต้องสร้างรหัสผ่านเป็นจำนวนมากแล้วต้องเช็คว่าถูกต้องหรือไม่ ตัวอย่างหนึ่งก็คือการโจมตีด้วยกำลังซึ่งตัวเจาะจะต้องทดลองรหัสผ่านที่เป็นไปได้ทุกรหัสจนกว่าจะเจอ ถ้าใช้หน่วยประมวลผลกลาง (ซีพียู) หลายตัว ก็อาจจะสืบหาเริ่มตั้งแต่กลุ่มสัญลักษณ์แรกสุดและกลุ่มสัญลักษณ์ท้ายสุดไปพร้อม ๆ กัน โดยใช้ซีพียูอื่น ๆ เพื่อทดลองรหัสผ่านที่คัดเลือกมาเป็นกลุ่มโดยเฉพาะ [5] วิธีเจาะที่สามัญกว่าอื่น ๆ เช่นการโจมตีด้วยคำจากพจนานุกรม การตรวจสอบรหัสผ่านที่สร้างโดยมีรูปแบบ และการทดแทนอักษรในรหัสผ่าน จะสามารถลดจำนวนรหัสผ่านที่ต้องทดลองโดยจะทำก่อนเริ่มโจมตีโดยใช้กำลัง รหัสผ่านที่มีบิตความแข็งแกร่งสูงจะเพิ่มจำนวนที่ต้องสืบหาอย่างชี้กำลัง และจะลดโอกาสที่รหัสผ่านนั้นจะปรากฏในพจนานุกรมเจาะรหัสผ่านด้วย[6]

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

สำหรับแฮชรหัสผ่านบางอย่าง โปรแกรมที่ทำงานโดยใช้หน่วยประมวลผลกลางทั่วไปของคอมพิวเตอร์ตั้งโต๊ะธรรมดาสามารถตรวจสอบรหัสผ่านเป็นร้อย ๆ ล้านรหัส/วินาที แต่โปรแกรมที่ทำงานโดยใช้หน่วยประมวลผลกราฟิกส์อาจตรวจสอบรหัสผ่านได้ถึงเป็นพัน ๆ ล้านรหัส/วินาที[2][7][8](ดูอัตราความเร็วของ John the Ripper ได้ในแหล่งอ้างอิง)[9] อัตราการเดาจะขึ้นอยู่กับฟังก์ชันรหัสลับที่ระบบใช้เพื่อสร้างค่าแฮชรหัสผ่าน ฟังก์ชันที่เหมาะสม เช่น bcrypt จะดีกว่าฟังก์ชันธรรมดา ๆ เช่น MD5 หรือ SHA เป็นหลายเท่า เช่น รหัสผ่านที่ผู้ใช้เลือก ยาว 8 ตัวอักษร มีตัวเลข ตัวเล็กตัวใหญ่และสัญลักษณ์ มีการคัดกรองไม่ให้ใช้รหัสผ่านที่เลือกใช้กันอย่างสามัญหรือที่มีอยู่ในพจนานุกรม อาจมีความแข็งแกร่งถึง 30 บิตตามสถาบันมาตรฐานและเทคโนโลยีแห่งชาติสหรัฐ (NIST) ซึ่งจริง ๆ ชี้ว่าซับซ้อนพอให้สร้างรหัสผ่านเป็นพันล้าน (230) รหัสเท่านั้น[10] รหัสผ่านเช่นนี้สามารถเจาะได้ภายในวินาที ๆ ถ้าใช้ฟังก์ชันแฮชธรรมดา และเมื่อใช้คอมพิวเตอร์ตั้งโต๊ะธรรมดาจำนวนมากให้ทำงานร่วมกัน ซึ่งสามารถทำได้ด้วย botnet ก็จะสามารถเจาะได้เร็วกว่ามาก ในปี 2002 distributed.net สามารถเจาะกุญแจ RC5 ขนาด 64 บิตได้ภายใน 4 ปี โดยใช้คอมพิวเตอร์ร่วมกัน 300,000 เครื่องโดยทำงานไม่พร้อมกัน ซึ่งสามารถทดสอบกุญแจได้ถึง 12,000 ล้านตัวต่อวินาที[11]

หน่วยประมวลผลกราฟิกส์ (จีพียู) สามารถเจาะรหัสผ่านได้เร็วเพิ่มขึ้นเป็น 50-100 เท่าตัวเทียบกับคอมพิวเตอร์ทั่วไปเมื่อใช้เจาะค่าแฮชบางชนิด ยกตัวอยา่งเช่นในปี 2011 มีผลิตภัณฑ์ที่อ้างว่าสามารถตรวจสอบรหัสผ่านของ NTLM ได้ถึง 2,800 ล้านรหัส/วินาที โดยใช้เครื่องคอมพิวเตอร์ธรรมดาที่มีหน่วยประมวลผลกราฟิกส์ชั้นสูง[12] อุปกรณ์ดังว่าสามารถเจาะรหัสผ่านที่มีอักษรตัวเล็กอย่างเดียวหรือตัวใหญ่อย่างเดียวยาว 10 ตัวอักษรภายในวันเดียว เมื่อแจกกระจายให้ทำด้วยคอมพิวเตอร์เป็นจำนวนมาก ก็จะเพิ่มอัตราการทดลองตามจำนวนคอมพิวเตอร์ที่มีหน่วยประมวลผลกราฟิกส์ชั้นเดียวกัน แต่ก็มีขั้นตอนวิธีแฮชที่คำนวณได้ช้าหรือแม้แต่ออกแบบโดยเฉพาะ ๆ ให้คำนวณได้ช้าเมื่อใช้จีพียู เช่น DES, Triple DES, bcrypt, scrypt และ Argon2

จีพียูได้พัฒนาให้ไวขึ้นอย่างรวดเร็ว จึงเพิ่มประสิทธิภาพการเจาะโดยใช้กำลังได้อย่างมาก ในปี 2012 มีคลัสเตอร์จีพียู 25 ตัวที่สามารถเดารหัสผ่าน NTLM ได้ 350,000 ล้านรหัส/วินาที จึงทำให้ตรวจสอบรหัสผ่านได้   รหัสผ่านภายใน 5.5 ชม. ซึ่งพอเพียงเพื่อเจาะรหัสผ่านยาว 8 ตัวมีอักษรตัวเล็กตัวใหญ่ ตัวเลข และสัญลักษณ์ เป็นรูปแบบรหัสผ่านที่ใช้กันอย่างสามัญในบริษัทใหญ่ ๆ ระบบใช้โปรแกรม ocl-Hashcat โดยทำการบนแพลตฟอร์มคลัสเตอร์ Virtual OpenCL ซึ่งก็ทำการบนระบบปฏิบัติการลินุกซ์อีกที ระบบสามารถ "เจาะรหัสผ่าน 6.5 ล้านรหัสของผู้ใช้ลิงกต์อินในอัตราร้อยละ 90 ทั้งหมด"[13]

แต่สำหรับขั้นตอนวิธีแฮชบางอย่าง ทั้งซีพียูและจีพียูต่างก็ใช้ได้ไม่ดี ดังนั้นจึงต้องใช้ฮาร์ดแวร์ที่ออกแบบโดยเฉพาะ ๆ ซึ่งใช้เทคโนโลยีเอฟพีจีเอหรือเอสิก (ASIC) แต่การพัฒนาเทคโนโลยีทั้งสองอย่างก็ซับซ้อนและมีค่าใช้จ่ายสูงมาก ทั่วไปแล้วเอฟพีจีเออาจจะใช้ได้เมื่อใช้เป็นจำนวนน้อย เทียบกับเอสิกที่ใช้ได้เมื่อใช้เป็นจำนวนมาก โดยใช้พลังงานอย่างมีประสิทธิภาพกว่าและก็เร็วกว่าด้วย ในปี 1998 มูลนิธิพรมแดนอิเล็กทรอนิกส์ (EFF) ได้สร้างเครื่องเจาะที่ออกแบบโดยเฉพาะด้วยเอสิก เครื่องชื่อว่า Deep Crack นี้สามารถเจาะกุญแจดีอีเอสขนาด 56 บิตภายใน 56 ชั่วโมง โดยสามารถทดลองกุญแจเข้ารหัส 90,000 ล้านตัว/วินาที[14] ในปี 2017 มีเอกสารรั่วซึ่งแสดงว่า มีโปรเจกต์ทางทหารที่ใช้เอสิก ซึ่งอาจสามารถถอดรหัสลับการสื่อสารทางอินเทอร์เน็ตที่เข้ารหัสลับชนิดที่อ่อนแอกว่า[15] เริ่มตั้งแต่ปี 2019 สามารถใช้โปรแกรม John the Ripper เพื่อเจาะรหัสผ่านที่ใช้ขั้นตอนวิธีบางอย่างอาศัยเทคโนโลยีเอฟพีจีเอ[16] ปัจจุบันมีบริษัทเอกชนที่ใช้เทคโนโลยีเช่นนี้เพื่อเจาะรหัสผ่าน[17]

รหัสผ่านควรจำง่ายแต่เดายาก

แก้

รหัสผ่านที่จำยากจะลดความมั่นคงของระบบเพราะ

  • อาจจะต้องเขียนบันทึกรหัสผ่าน หรือเก็บรหัสผ่านทางอิเล็กทรอนิกส์ด้วยวิธีที่ไม่มั่นคง
  • อาจจะต้องตั้งรหัสผ่านใหม่บ่อย 
  • มีโอกาสใช้รหัสผ่านเดียวกันซ้ำ 

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

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

การให้จำรหัสผ่านที่ประกอบด้วย "อักษรตัวเล็กตัวใหญ่" จะเหมือนกับให้จำลำดับเลขศูนย์เลขหนึ่ง คือจำได้ยาก แต่เจาะได้ยากกว่าไม่มาก (เช่นสำหรับรหัสผ่านที่มีอักษร 7 ตัว จะยากขึ้น 128 เท่า แต่น้อยกว่านั้นถ้าผู้ใช้ใช้อักษรตัวใหญ่ตัวเดียว) การบังคับให้ใช้ "ทั้งตัวอักษรและตัวเลข" มักจะได้การแทนอักษรที่เดาได้ง่าย ๆ เช่น 'E' → '3' และ 'I' → '1' ที่ผู้โจมตีก็รู้จักดี เช่นเดียวกัน การพิมพ์รหัสผ่านโดยใช้แป้นพิมพ์แถวเลื่อนขึ้นไป ก็เป็นวิธีที่ผู้โจมตีรู้จักดีเช่นกัน

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

เหตุการณ์ที่เกิด

แก้

ในกลางปี 1998 ศูนย์ประสานงานการตอบสนองเรื่องฉุกเฉินทางคอมพิวเตอร์สหรัฐ (CERT) รายงานว่า มีผู้โจมตีที่ได้รหัสผ่านซึ่งเข้ารหัสลับไป 186,126 รหัส โดยพบว่า 47,642 รหัสถูกเจาะไปเรียบร้อยแล้ว[21]

เมื่อท้ายปี 2009 เว็บไซต์ Rockyou.com ถูกแฮ็กโดยผู้โจมตีขโมยเอารหัสผ่านไปได้ 32 ล้านรหัส แล้วเผยแพร่รายการรหัสผ่านทั้งหมดทางอินเทอร์เน็ตแม้จะไม่มีข้อมูลระบุบุคคล รหัสผ่านดั้งเดิมได้เก็บไว้เปล่า ๆ ในฐานข้อมูลและถูกดึงออกมาโดยวิธี SQL injection ต่อมาจึงมีการวิเคราะห์ความแข็งแกร่งของรหัสผ่าน[22] สิ่งที่พบหลัก ๆ ก็คือ

  • ผู้ใช้ประมาณร้อยละ 30 เลือกรหัสผ่านยาวน้อยกว่า 7 ตัวอักษร
  • ผู้ใช้เกือบร้อยละ 60 เลือกรหัสผ่านจากชุดตัวอักษรกับตัวเลขที่จำกัด
  • ผู้ใช้เกือบครึ่งเลือกชื่อ คำแสลง คำจากพจนานุกรม หรือรหัสผ่านที่สร้างอย่างอ่อนแอ เช่น เป็นตัวเลขตามลำดับ และ/หรือใช้แป้นพิมพ์ที่อยู่ใกล้ ๆ กัน ที่นิยมที่สุดก็คือ “123456”[23]

เมื่อกลางปี 2011 พันธมิตรเนโทถูกแฮ็กโดยข้อมูลผู้ใช้ร้านอีบุ๊กรั่วไหลออกไป 11,000 ราย ข้อมูลรวมทั้งชื่อ นามสกุล ชื่อผู้ใช้ และรหัสผ่าน การแฮ็กเป็นส่วนของปฏิบัติการ AntiSec ซึ่งเป็นขบวนการที่ได้รับการร่วมมือจากกลุ่มนักเลงคอมพิวเตอร์ต่าง ๆ รวมทั้ง อะนอนิมัสและ LulzSec[24]

เมื่อกลางปีเดียวกัน บริษัทให้คำปรึกษาอเมริกัน Booz Allen Hamilton ซึ่งทำงานเพื่อเดอะเพนตากอนมิใช่น้อย มีเซิร์ฟเวอร์ถูกแฮ็กโดยอะนอนิมัสแล้วข้อมูลถูกเผยแพร่ในวันเดียวกัน "เหตุการณ์ข้อมูลรั่วที่ตั้งชื่อว่า 'วันจันทร์วันล่มสลายของทหาร' มีข้อมูลบัญชีของเจ้าหน้าที่ 90,000 รายจากหน่วยงานต่าง ๆ รวมทั้งหน่วยบัญชาการทหารสหรัฐภาคกลาง หน่วยบัญชาการยุทธการพิเศษสหรัฐ เหล่านาวิกโยธินสหรัฐ หน่วยต่าง ๆ ของกองทัพอากาศสหรัฐ กระทรวงความมั่นคงแห่งมาตุภูมิสหรัฐ กระทรวงการต่างประเทศสหรัฐ และข้อมูลที่ดูเหมือนจะเป็นของผู้รับเหมาฝ่ายเอกชน"[25] รหัสผ่านพบว่าใช้วิธีแฮช SHA-1 ที่ไม่ใส่ซอลต์ ต่อมาการวิเคราะห์ภายหลังพบว่า มีเจ้าหน้าที่ทหารที่ใช้รหัสผ่านที่อ่อนแอมากเช่น "1234"[26]

ในเดือนเดียวกัน บริการอีเมลไมโครซอฟต์ฮอตเมลจึงเลิกไม่ให้ใช้รหัสผ่าน "123456"[27]

เมื่อกลางปี 2015 ข้อมูลผู้ใช้ของบริการจัดหาคู่ที่สนับสนุนให้คนแต่งงานแล้วมีชู้ Ashley Madison ถูกแฮ็ก[28] รหัสผ่านได้เก็บไว้โดยใช้แฮชทั้งที่ค่อนข้างเข้มแข็งคือ bcrypt และที่อ่อนแอคือ MD5 ต่อมากลุ่มวิจัยรหัสผ่านคือ CynoSure Prime จึงเจาะไปได้ 11 ล้านรหัสจากแฮชวิธีหลัง[29]

การป้องกัน

แก้

วิธีไม่ให้รหัสผ่านถูกเจาะอย่างหนึ่งก็คือป้องกันไม่ให้เข้าถึงค่าแฮช ยกตัวอย่างเช่น ระบบปฏิบัติการยูนิกซ์ดั้งเดิมเก็บค่าแฮชไว้ในที่เข้าถึงได้โดยทั่วไปในแฟ้ม /etc/passwd แต่ระบบยูนิกซ์ปัจจุบันจะเก็บไว้ในไฟล์ shadow password คือ /etc/shadow ซึ่งโปรแกรมที่มีสิทธิระบบเท่านั้นจึงจะเข้าถึงได้ จึงทำให้ผู้โจมตีขโมยเอาค่าแฮชได้ยากกว่า แต่จริง ๆ ก็ยังหลุดแม้ป้องกันด้วยวิธีนี้[30][31]

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

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

ระบบยูนิกซ์ปัจจุบันได้เลิกใช้ฟังก์ชันการแฮชรหัสผ่านธรรมดา คือ crypt () ที่ทำให้เกิดผลด้วย DES แล้วแทนที่ด้วยฟังก์ชันที่แข็งแกร่งกว่าคือ crypt-SHA, bcrypt และ scrypt[33] ระบบอื่น ๆ ก็เริ่มเปลี่ยนการแฮชรหัสผ่านด้วยเช่นกัน ยกตัวอย่างเช่น Cisco IOS ดั้งเดิมใช้ขั้นตอนวิธี Vigenère cipher ที่ผันกลับได้เพื่อแฮชรหัสผ่าน แต่ปัจจุบันก็ใช้ md5-crypt ร่วมกับซอลต์ขนาด 24 บิตเมื่อใช้คำสั่งงาน enable secret[34] วิธีการใหม่ ๆ ล้วนแต่ใช้ค่าซอลต์ขนาดใหญ่ซึ่งป้องกันผู้โจมตีไม่ให้เจาะรหัสผ่านเดียวกันหลาย ๆ รหัสได้พร้อม ๆ กัน ขั้นตอนวิธีเหล่านี้ยังใช้เวลามากกว่า ซึ่งเพิ่มเวลาในการเจาะรหัสผ่านแบบออฟไลน์ได้อย่างสำคัญ[35]

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

ในปี 2013 มีการแข่งขันวิธีการแฮชรหัสผ่านเพื่อเลือกเป็นมาตรฐานใหม่[36] โดยนักวิทยาการเข้ารหัสลับได้เลือก Argon2 เป็นมาตรฐานในปี 2015 ส่วนสถาบันมาตรฐานและเทคโนโลยีแห่งชาติสหรัฐ (NIST) แนะนำให้ใช้ขั้นตอนวิธี Balloon[37] ทั้งสองนี้ล้วนแต่ใช้ความจำมาก

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

ซอฟต์แวร์

แก้

มีซอฟต์แวร์เจาะรหัสผ่านเป็นจำนวนมาก แต่ที่นิยมที่สุดก็คือ[38] Aircrack-ng, Cain & Abel, John the Ripper, Hashcat, Hydra, DaveGrohl และ ElcomSoft ยังมีโปรแกรมที่ใช้สืบหาหลักฐานบนคอมพิวเตอร์เพื่อการฟ้องคดี ซึ่งมักจะมีลูกเล่นเกี่ยวกับการเจาะรหัสผ่านหลายวิธีด้วย วิธีที่ใช้ได้ผลมากที่สุดก็คือการโจมตีโดยใช้กำลังและการโจมตีโดยพจนานุกรม[39]

เพราะคอมพิวเตอร์ทั่วไปเร็วขึ้นเรื่อย ๆ และมีซอฟต์แวร์เจาะรหัสผ่านอัตโนมัติที่ใช้งานได้ง่าย พวกนักเลงคอมพิวเตอร์มือใหม่ (script kiddie) จึงสามารถเริ่มเจาะรหัสผ่านได้ง่าย [40]

ดูเพิ่ม

แก้

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

แก้
  1. "cracker", Longdo Dict, อังกฤษ-ไทย: ศัพท์บัญญัติราชบัณฑิตยสถาน, สืบค้นเมื่อ 2024-06-16, นักเจาะ [คอมพิวเตอร์ ๑๙ มิ.ย. ๒๕๔๔, เทคโนโลยีสารสนเทศ ๑๑ มี.ค. ๒๕๔๕]
  2. 2.0 2.1 oclHashcat-lite - advanced password recovery. Hashcat.net. Retrieved on January 31, 2013.
  3. Montoro, Massimiliano (2005). "Cain & Abel User Manual: Brute-Force Password Cracker". oxid.it (defunct). คลังข้อมูลเก่าเก็บจากแหล่งเดิมเมื่อ 2019-06-07. สืบค้นเมื่อ 2013-08-13.{{cite web}}: CS1 maint: unfit URL (ลิงก์)
  4. "What Is Password Spraying? How to Stop Password Spraying Attacks".
  5. Bahadursingh, Roman (2020-01-19). "A Distributed Algorithm for Brute Force Password Cracking on n Processors". doi:10.5281/zenodo.3612276. {{cite journal}}: Cite journal ต้องการ |journal= (help)
  6. Lundin, Leigh (2013-08-11). "PINs and Passwords, Part 2". SleuthSayers.org. Orlando.
  7. Alexander, Steven. (June 20, 2012) The Bug Charmer: How long should passwords be?. Bugcharmer.blogspot.com. Retrieved on January 31, 2013.
  8. Cryptohaze Blog: 154 Billion NTLM/sec on 10 hashes. Blog.cryptohaze.com (July 15, 2012). Retrieved on January 31, 2013.
  9. John the Ripper benchmarks. openwall.info (March 30, 2010). Retrieved on January 31, 2013.
  10. Burr, W. E.; Dodson, D. F.; Polk, W. T. (2006). "Electronic Authentication Guideline". NIST. doi:10.6028/NIST.SP.800-63v1.0.2. สืบค้นเมื่อ 2008-03-27. {{cite journal}}: Cite journal ต้องการ |journal= (help)
  11. "64-bit key project status". Distributed.net. คลังข้อมูลเก่าเก็บจากแหล่งเดิมเมื่อ 2013-09-10. สืบค้นเมื่อ 2008-03-27.
  12. "Password Recovery Speed table". ElcomSoft. คลังข้อมูลเก่าเก็บจากแหล่งเดิมเมื่อ 2011-02-21. สืบค้นเมื่อ 2011-02-01.
  13. "25-GPU cluster cracks every standard Windows password in <6 hours". 2012.
  14. "EFF DES Cracker machine brings honesty to crypto debate". EFF. คลังข้อมูลเก่าเก็บจากแหล่งเดิมเมื่อ 2010-01-01. สืบค้นเมื่อ 2020-06-07.
  15. Biddle, Sam (2017-05-11). "NYU Accidentally Exposed Military Code-breaking Computer Project to Entire Internet". The Intercept.
  16. "announce - [openwall-announce] John the Ripper 1.9.0-jumbo-1". openwall.com.
  17. "Bcrypt password cracking extremely slow? Not if you are using". Medium. 2020-09-08.
  18. Managing Network Security. Fred Cohen & Associates. All.net. Retrieved on January 31, 2013.
  19. Yan, J.; Blackwell, A.; Anderson, R.; Grant, A. (2004). "Password Memorability and Security: Empirical Results" (PDF). IEEE Security & Privacy Magazine. 2 (5): 25. doi:10.1109/MSP.2004.81. S2CID 206485325.
  20. 20.0 20.1 Steinberg, Joseph (2015-04-21). "New Technology Cracks 'Strong' Passwords - What You Need To Know". Forbes.
  21. "CERT IN-98.03". คลังข้อมูลเก่าเก็บจากแหล่งเดิมเมื่อ 2010-07-09. สืบค้นเมื่อ 2009-09-09.
  22. "Consumer Password Worst Practices" (PDF). Imperva.com.
  23. "Consumer Password Worst Practices" (PDF). Imperva.com.
  24. "NATO Hack Attack". The Register. สืบค้นเมื่อ 2011-07-24.
  25. "Anonymous Leaks 90,000 Military Email Accounts in Latest Antisec Attack". 2011-07-11.
  26. "Military Password Analysis". Imperva.com. 2011-07-12.
  27. "Microsoft's Hotmail Bans 123456". Imperva.com. 2011-07-18. คลังข้อมูลเก่าเก็บจากแหล่งเดิมเมื่อ 2012-03-27.
  28. "Ashley Madison: Hackers Dump Stolen Dating Site Data". bankinfosecurity.com (ภาษาอังกฤษ). สืบค้นเมื่อ 2021-04-11.
  29. "Researchers Crack 11 Million Ashley Madison Passwords". bankinfosecurity.com (ภาษาอังกฤษ). สืบค้นเมื่อ 2021-04-11.
  30. Singer, Abe (November 2001). "No Plaintext Passwords" (PDF). Login. 26 (7): 83–91. เก็บ (PDF)จากแหล่งเดิมเมื่อ 2006-09-24.
  31. "Cryptanalysis of Microsoft's Point-to-Point Tunneling Protocol". Schneier.com. 2011-07-07. สืบค้นเมื่อ 2013-01-31.
  32. Grassi, Paul A (June 2017). "SP 800-63B-3 - Digital Identity Guidelines: Authentication and Lifecycle Management" (PDF). NIST. doi:10.6028/NIST.SP.800-63b. {{cite journal}}: Cite journal ต้องการ |journal= (help)
  33. A Future-Adaptable Password Scheme. Usenix.org (March 13, 2002). Retrieved on January 31, 2013.
  34. MDCrack FAQ 1.8. None. Retrieved on January 31, 2013.
  35. Password Protection for Modern Operating Systems. Usenix.org. Retrieved on January 31, 2013.
  36. "Password Hashing Competition". คลังข้อมูลเก่าเก็บจากแหล่งเดิมเมื่อ 2013-09-02. สืบค้นเมื่อ 2013-03-03.
  37. "NIST SP800-63B Section 5.1.1.2" (PDF). nvlpubs.nist.gov.
  38. "Top 10 Password Crackers". Sectools. สืบค้นเมื่อ 2009-11-01.
  39. "Stay Secure: See How Password Crackers Work - Keeper Blog". Keeper Security Blog - Cybersecurity News & Product Updates (ภาษาอังกฤษแบบอเมริกัน). 2016-09-28. สืบค้นเมื่อ 2020-11-07.
  40. Anderson, Nate (2013-03-24). "How I became a password cracker: Cracking passwords is officially a "script kiddie" activity now". Ars Technica. สืบค้นเมื่อ 2013-03-24.

แหล่งข้อมูลอื่น

แก้