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

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

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

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

**เหตุการณ์ที่เกิด**
ในกลางปี1998 ศูนย์ประสานงานการตอบสนองเรื่องฉุกเฉินทางคอมพิวเตอร์สหรัฐ (CERT) รายงานว่า มีผู้โจมตีที่ได้รหัสผ่านซึ่งเข้ารหัสลับไป 186,126 รหัส 
โดยพบว่า 47,642 รหัสถูกเจาะไปเรียบร้อยแล้ว
เมื่อท้ายปี2009 เว็บไซต์ Rockyou.com ถูกแฮ็กโดยผู้โจมตีขโมยเอารหัสผ่านไปได้ 32 ล้านรหัส
แล้วเผยแพร่รายการรหัสผ่านทั้งหมดทางอินเทอร์เน็ตแม้จะไม่มีข้อมูลระบุบุคคล
รหัสผ่านดั้งเดิมได้เก็บไว้เปล่าๆ ในฐานข้อมูลและถูกดึงออกมาโดยวิธี SQL injection
ต่อมาจึงมีการวิเคราะห์ความแข็งแกร่งของรหัสผ่าน
สิ่งที่พบหลักๆ ก็คือ - ผู้ใช้ประมาณร้อยละ 30 เลือกรหัสผ่านยาวน้อยกว่า 7ตัวอักษร - ผู้ใช้เกือบร้อยละ 60 เลือกรหัสผ่านจากชุดตัวอักษรกับตัวเลขที่จำกัด - ผู้ใช้เกือบครึ่งเลือกชื่อ คำแสลง คำจากพจนานุกรม หรือรหัสผ่านที่สร้างอย่างอ่อนแอ เช่น เป็นตัวเลขตามลำดับ และ/หรือใช้แป้นพิมพ์ที่อยู่ใกล้ๆ กัน ที่นิยมที่สุดก็คือ “123456”
เมื่อกลางปี2011 พันธมิตรเนโทถูกแฮ็กโดยข้อมูลผู้ใช้ร้านอีบุ๊กรั่วไหลออกไป 11,000ราย ข้อมูลรวมทั้งชื่อ นามสกุล ชื่อผู้ใช้ และรหัสผ่าน 
การแฮ็กเป็นส่วนของปฏิบัติการ AntiSec ซึ่งเป็นขบวนการที่ได้รับการร่วมมือจากกลุ่มนักเลงคอมพิวเตอร์ต่างๆ รวมทั้ง อะนอนิมัสและ LulzSec
เมื่อกลางปีเดียวกัน บริษัทให้คำปรึกษาอเมริกัน Booz Allen Hamilton ซึ่งทำงานเพื่อเดอะเพนตากอนมิใช่น้อย มีเซิร์ฟเวอร์ถูกแฮ็กโดยอะนอนิมัสแล้วข้อมูลถูกเผยแพร่ในวันเดียวกัน
"เหตุการณ์ข้อมูลรั่วที่ตั้งชื่อว่า 'วันจันทร์วันล่มสลายของทหาร' มีข้อมูลบัญชีของเจ้าหน้าที่ 90,000 รายจากหน่วยงานต่างๆ รวมทั้งหน่วยบัญชาการทหารสหรัฐภาคกลาง หน่วยบัญชาการยุทธการพิเศษสหรัฐ เหล่านาวิกโยธินสหรัฐ หน่วยต่างๆ ของกองทัพอากาศสหรัฐ กระทรวงความมั่นคงแห่งมาตุภูมิสหรัฐ กระทรวงการต่างประเทศสหรัฐ และข้อมูลที่ดูเหมือนจะเป็นของผู้รับเหมาฝ่ายเอกชน"
รหัสผ่านพบว่าใช้วิธีแฮช SHA-1 ที่ไม่ใส่ซอลต์ ต่อมาการวิเคราะห์ภายหลังพบว่า มีเจ้าหน้าที่ทหารที่ใช้รหัสผ่านที่อ่อนแอมากเช่น "1234"
ในเดือนเดียวกัน บริการอีเมลไมโครซอฟต์ฮอตเมลจึงเลิกไม่ให้ใช้รหัสผ่าน "123456"
เมื่อกลางปี2015 ข้อมูลผู้ใช้ของบริการจัดหาคู่ที่สนับสนุนให้คนแต่งงานแล้วมีชู้ Ashley Madison ถูกแฮ็ก
รหัสผ่านได้เก็บไว้โดยใช้แฮชทั้งที่ค่อนข้างเข้มแข็งคือ bcrypt และที่อ่อนแอคือ MD5
ต่อมากลุ่มวิจัยรหัสผ่านคือ CynoSure Prime จึงเจาะไปได้ 11 ล้านรหัสจากแฮชวิธีหลัง

**การป้องกัน**
วิธีไม่ให้รหัสผ่านถูกเจาะอย่างหนึ่งก็คือป้องกันไม่ให้เข้าถึงค่าแฮช
ยกตัวอย่างเช่น ระบบปฏิบัติการยูนิกซ์ดั้งเดิมเก็บค่าแฮชไว้ในที่เข้าถึงได้โดยทั่วไปในแฟ้ม /etc/passwd
แต่ระบบยูนิกซ์ปัจจุบันจะเก็บไว้ในไฟล์ shadow password คือ /etc/shadow ซึ่งโปรแกรมที่มีสิทธิระบบเท่านั้นจึงจะเข้าถึงได้ 
จึงทำให้ผู้โจมตีขโมยเอาค่าแฮชได้ยากกว่า แต่จริงๆ ก็ยังหลุดแม้ป้องกันด้วยวิธีนี้
มีการใช้ซอลต์ (salt) คือค่าสุ่มโดยเฉพาะๆ สำหรับรหัสผ่านแต่ละรหัส 
เมื่อใช้ค่าสุ่มร่วมสร้างแฮชรหัสผ่าน ก็จะป้องกันรหัสผ่านเดียวกันไม่ให้มีค่าแฮชเดียวกัน ดังนั้น จึงป้องกันไม่ให้ถูกเจาะทีเดียวพร้อมๆ กัน 
และยังเป็นอุปสรรคกับการสร้างฐานข้อมูลค่าแฮชล่วงหน้า เช่น ฐานของมูลเจาะรหัสผ่านอันมีประสิทธิภาพซึ่งเรียกว่า rainbow table
วิธีป้องกันอย่างที่2 ก็คือการใช้กุญแจลับประจำเว็บไซต์เพื่อร่วมสร้างแฮชรหัสผ่าน ซึ่งป้องกันไม่ให้เจาะเอารหัสผ่านได้แม้จะขโมยค่าแฮชได้
แต่การโจมตีโดยเพิ่มสิทธิซึ่งทำให้ขโมยค่าแฮชได้ ก็อาจจะทำให้ขโมยกุญแจลับประจำเว็บไซต์ได้ด้วย
วิธีป้องกันอย่างที่3 ก็คือการใช้ฟังก์ชันแปลงให้เป็นกุญแจ (KDF) ซึ่งช่วยลดอัตราที่สามารถทดลองรหัสผ่านได้5.1.1.2
ระบบยูนิกซ์ปัจจุบันได้เลิกใช้ฟังก์ชันการแฮชรหัสผ่านธรรมดา คือ crypt () 
ที่ทำให้เกิดผลด้วย DES แล้วแทนที่ด้วยฟังก์ชันที่แข็งแกร่งกว่าคือ crypt-SHA, bcrypt และ scrypt
ระบบอื่นๆ ก็เริ่มเปลี่ยนการแฮชรหัสผ่านด้วยเช่นกัน
ยกตัวอย่างเช่น Cisco IOS ดั้งเดิมใช้ขั้นตอนวิธี Vigenère cipher ที่ผันกลับได้เพื่อแฮชรหัสผ่าน แต่ปัจจุบันก็ใช้ md5-crypt ร่วมกับซอลต์ขนาด 24บิตเมื่อใช้คำสั่งงาน enable secret
วิธีการใหม่ๆ ล้วนแต่ใช้ค่าซอลต์ขนาดใหญ่ซึ่งป้องกันผู้โจมตีไม่ให้เจาะรหัสผ่านเดียวกันหลายๆ รหัสได้พร้อมๆ กัน 
ขั้นตอนวิธีเหล่านี้ยังใช้เวลามากกว่า ซึ่งเพิ่มเวลาในการเจาะรหัสผ่านแบบออฟไลน์ได้อย่างสำคัญ
แฮชโดยมากที่ใช้เก็บรหัสผ่าน เช่น MD5 และกลุ่ม SHA ออกแบบเพื่อให้คำนวณได้เร็ว ใช้ความจำน้อย และทำให้เกิดผลได้อย่างมีประสิทธิภาพในฮาร์ดแวร์ 
ขั้นตอนวิธีเหล่านี้จึงดำเนินการได้โดยขนานบนจีพียู ทำให้เจาะรหัสผ่านได้เร็วขึ้น 
ดังนั้น ขั้นตอนแฮชที่เร็วจึงป้องกันการเจาะรหัสผ่านไม่ได้แม้จะใช้ค่าซอลต์
แต่ก็มีขั้นตอนวิธียืดกุญแจ เช่น PBKDF2 และ crypt-SHA ที่ต้องคำนวณค่าแฮชซ้ำๆ ต่อๆ กัน ซึ่งสามารถลดอัตราการทดลองรหัสผ่านได้อย่างสำคัญเมื่อตั้งค่าที่ต้องคำนวณซ้ำให้สูงพอ 
ขั้นตอนวิธีอื่นๆ เช่น scrypt ยังใช้ความจำมากร่วมกับการต้องคำนวณซ้ำๆ ดังนั้น จึงเจาะได้ยากแม้ใช้จีพียูหรือวงจรรวมที่ออกแบบโดยเฉพาะ
ในปี2013 มีการแข่งขันวิธีการแฮชรหัสผ่านเพื่อเลือกเป็นมาตรฐานใหม่
โดยนักวิทยาการเข้ารหัสลับได้เลือก Argon2 เป็นมาตรฐานในปี2015 ส่วนสถาบันมาตรฐานและเทคโนโลยีแห่งชาติสหรัฐ (NIST) แนะนำให้ใช้ขั้นตอนวิธี Balloon
ทั้งสองนี้ล้วนแต่ใช้ความจำมาก 
มีวิธีการแก้ปัญหาเช่นการใช้อุปกรณ์ security token ซึ่งให้รหัสผ่านที่เปลี่ยนแปลงอยู่ตลอดเวลา
วิธีการเช่นนี้จะลดระยะเวลาที่สามารถเจาะ เพราะจะต้องทำให้ได้ภายในเวลาที่รหัสผ่านนั้นยังใช้ได้ 
วิธียังลดคุณค่าของรหัสผ่านที่ถูกขโมยเพราะใช้ได้ในเวลาอันจำกัด

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

**ดูเพิ่ม**
 ความแข็งแกร่งของรหัสผ่าน- การโจมตีด้วยกำลัง- การโจมตีด้วยคำจากพจนานุกรม- Cold boot attack

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

**แหล่งข้อมูลอื่น**
  Philippe Oechslin: Making a Faster Cryptanalytic Time-Memory Trade-Off. date=2023-04-09  CRYPTO 2003: pp617-630-  Roundup of leaks made by The Anonymous and LulzSec in 2011-  International passwords conference-  Password security: past, present, future, Passwords12 presentation-  Skullsecurity list of breached password collections date=2019-12-15 
หมวดหมู่:การโจมตีทางวิทยาการเข้ารหัสลับ
หมวดหมู่:วิทยาการเข้ารหัสลับ
หมวดหมู่:การพิสูจน์ตัวจริงด้วยรหัสผ่าน
หมวดหมู่:วิธีการพิสูจน์ตัวจริง
หมวดหมู่:การบุกรุกความมั่นคงของระบบคอมพิวเตอร์
หมวดหมู่:จารกรรม
หมวดหมู่:ความมั่นคงของระบบคอมพิวเตอร์
หมวดหมู่:การบริหารระบบ