การเจาะรหัสผ่าน
ในเรื่องการวิเคราะห์รหัสลับและความมั่นคงคอมพิวเตอร์ การเจาะรหัสผ่าน[1] (อังกฤษ: password cracking) เป็นกระบวนการกู้เอารหัสผ่าน[2] จากข้อมูลหรือการสื่อสารที่เข้ารหัสลับไว้และอ่านเนื้อความไม่ได้ วิธีการสามัญอย่างหนึ่งก็คือการโจมตีด้วยกำลัง เป็นการเดารหัสผ่านไปเรื่อย ๆ แล้วเช็คกับค่าแฮชของรหัสผ่านที่ต้องการเจาะ[3] อีกวิธีหนึ่งก็คือการโจมตีโดยพ่นรหัสผ่าน เป็นการใช้รายการรหัสผ่านที่สามัญแล้วค่อย ๆ ลองรหัสผ่านแต่ละรหัสกับบัญชีหลาย ๆ บัญชีโดยทำช้า ๆ เพื่อไม่ให้ถูกตรวจจับได้[4]
จุดประสงค์อาจเป็นเพื่อช่วยกู้รหัสผ่านที่ผู้ใช้ลืม (เพราะการตั้งรหัสผ่านใหม่เลยอาจอาจต้องมีสิทธิ์แอดมิน) หรือเพื่อแฮ็กเข้าระบบ หรือเป็นมาตรการป้องกันความปลอดภัยโดยที่แอดมินพยายามตรวจหารหัสผ่านที่เจาะได้ง่าย อนึ่ง เพื่อใช้เก็บหลักฐานดิจิทัล ตุลาการอาจอนุญาตให้เจาะไฟล์แต่ละไฟล์ที่ผู้ใช้ได้จำกัดการเข้าถึง
เวลาในการเจาะ
[แก้]เวลาที่ใช้เจาะจะขึ้นอยู่กับความแข็งแกร่งของรหัสผ่านคือเอนโทรปีที่วัดเป็นบิตและวิธีการเก็บรหัสผ่าน วิธีการเจาะโดยมากจะต้องสร้างรหัสผ่านเป็นจำนวนมากแล้วต้องเช็คว่าถูกต้องหรือไม่ ตัวอย่างหนึ่งก็คือการโจมตีด้วยกำลังซึ่งตัวเจาะจะต้องทดลองรหัสผ่านที่เป็นไปได้ทุกรหัสจนกว่าจะเจอ ถ้าใช้หน่วยประมวลผลกลาง (ซีพียู) หลายตัว ก็อาจจะสืบหาเริ่มตั้งแต่กลุ่มสัญลักษณ์แรกสุดและกลุ่มสัญลักษณ์ท้ายสุดไปพร้อม ๆ กัน โดยใช้ซีพียูอื่น ๆ เพื่อทดลองรหัสผ่านที่คัดเลือกมาเป็นกลุ่มโดยเฉพาะ ๆ[5] วิธีเจาะที่สามัญกว่าอื่น ๆ เช่นการโจมตีด้วยคำจากพจนานุกรม การตรวจสอบรหัสผ่านที่สร้างโดยมีรูปแบบ และการทดแทนอักษรในรหัสผ่าน จะสามารถลดจำนวนรหัสผ่านที่ต้องทดลองโดยจะทำก่อนเริ่มโจมตีโดยใช้กำลัง รหัสผ่านที่มีบิตความแข็งแกร่งสูงจะเพิ่มจำนวนที่ต้องสืบหาอย่างชี้กำลัง และจะลดโอกาสที่รหัสผ่านนั้นจะปรากฏในพจนานุกรมเจาะรหัสผ่านด้วย[6]
การเจาะได้ยังขึ้นอยู่กับจำนวนรหัสผ่านต่อวินาทีที่สามารถตรวจสอบได้ ถ้าผู้โจมตีมีค่าแฮชของรหัสผ่าน ก็อาจสามารถทดสอบได้เป็นพัน ๆ ล้านหรือล้าน ๆ ล้านรหัสผ่าน/วินาที เพราะเป็นการโจมตีแบบออฟไลน์ที่ไม่มีการชะลอจำนวนการทดลอง ถ้าไม่ได้เช่นนี้ ก็อาจจะขึ้นอยู่กับการจำกัดอัตราการทดลองของซอฟต์แวร์พิสูจน์ตัวจริง ซึ่งอาจมีเทคนิคให้พักนอกเวลา, แคปต์ชา หรือเลิกให้ใช้ หลังจากที่ได้ลองผิด ๆ หลายครั้ง สถานการณ์อีกอย่างที่สามารถทดสอบได้อย่างรวดเร็วก็คือเมื่อใช้รหัสผ่านสร้างกุญแจเข้ารหัสลับ เพราะเช็คได้อย่างรวดเร็วว่ารหัสผ่านที่เดานั้นถอดรหัสข้อมูลที่เข้ารหัสลับไว้ได้หรือไม่
สำหรับแฮชรหัสผ่านบางอย่าง โปรแกรมที่ทำงานโดยใช้หน่วยประมวลผลกลางทั่วไปของคอมพิวเตอร์ตั้งโต๊ะธรรมดาสามารถตรวจสอบรหัสผ่านเป็นร้อย ๆ ล้านรหัส/วินาที แต่โปรแกรมที่ทำงานโดยใช้หน่วยประมวลผลกราฟิกส์อาจตรวจสอบรหัสผ่านได้ถึงเป็นพัน ๆ ล้านรหัส/วินาที[2][7][8][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]
ดูเพิ่ม
[แก้]เชิงอรรถและอ้างอิง
[แก้]- ↑ "cracker", Longdo Dict, อังกฤษ-ไทย: ศัพท์บัญญัติราชบัณฑิตยสถาน, สืบค้นเมื่อ 2024-06-16,
นักเจาะ [คอมพิวเตอร์ ๑๙ มิ.ย. ๒๕๔๔, เทคโนโลยีสารสนเทศ ๑๑ มี.ค. ๒๕๔๕]
- ↑ 2.0 2.1 oclHashcat-lite - advanced password recovery. Hashcat.net. Retrieved on January 31, 2013.
- ↑ 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 (ลิงก์) - ↑ "What Is Password Spraying? How to Stop Password Spraying Attacks".
- ↑ 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) - ↑ Lundin, Leigh (2013-08-11). "PINs and Passwords, Part 2". SleuthSayers.org. Orlando.
- ↑ Alexander, Steven. (June 20, 2012) The Bug Charmer: How long should passwords be?. Bugcharmer.blogspot.com. Retrieved on January 31, 2013.
- ↑ Cryptohaze Blog: 154 Billion NTLM/sec on 10 hashes. Blog.cryptohaze.com (July 15, 2012). Retrieved on January 31, 2013.
- ↑ John the Ripper benchmarks. openwall.info (March 30, 2010). Retrieved on January 31, 2013.
- ↑ 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) - ↑ "64-bit key project status". Distributed.net. คลังข้อมูลเก่าเก็บจากแหล่งเดิมเมื่อ 2013-09-10. สืบค้นเมื่อ 2008-03-27.
- ↑ "Password Recovery Speed table". ElcomSoft. คลังข้อมูลเก่าเก็บจากแหล่งเดิมเมื่อ 2011-02-21. สืบค้นเมื่อ 2011-02-01.
- ↑ "25-GPU cluster cracks every standard Windows password in <6 hours". 2012.
- ↑ "EFF DES Cracker machine brings honesty to crypto debate". EFF. คลังข้อมูลเก่าเก็บจากแหล่งเดิมเมื่อ 2010-01-01. สืบค้นเมื่อ 2020-06-07.
- ↑ Biddle, Sam (2017-05-11). "NYU Accidentally Exposed Military Code-breaking Computer Project to Entire Internet". The Intercept.
- ↑ "announce - [openwall-announce] John the Ripper 1.9.0-jumbo-1". openwall.com.
- ↑ "Bcrypt password cracking extremely slow? Not if you are using". Medium. 2020-09-08.
- ↑ Managing Network Security. Fred Cohen & Associates. All.net. Retrieved on January 31, 2013.
- ↑ 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.0 20.1 Steinberg, Joseph (2015-04-21). "New Technology Cracks 'Strong' Passwords - What You Need To Know". Forbes.
- ↑ "CERT IN-98.03". คลังข้อมูลเก่าเก็บจากแหล่งเดิมเมื่อ 2010-07-09. สืบค้นเมื่อ 2009-09-09.
- ↑ "Consumer Password Worst Practices" (PDF). Imperva.com.
- ↑ "Consumer Password Worst Practices" (PDF). Imperva.com.
- ↑ "NATO Hack Attack". The Register. สืบค้นเมื่อ 2011-07-24.
- ↑ "Anonymous Leaks 90,000 Military Email Accounts in Latest Antisec Attack". 2011-07-11.
- ↑ "Military Password Analysis". Imperva.com. 2011-07-12.
- ↑ "Microsoft's Hotmail Bans 123456". Imperva.com. 2011-07-18. คลังข้อมูลเก่าเก็บจากแหล่งเดิมเมื่อ 2012-03-27.
- ↑ "Ashley Madison: Hackers Dump Stolen Dating Site Data". bankinfosecurity.com (ภาษาอังกฤษ). สืบค้นเมื่อ 2021-04-11.
- ↑ "Researchers Crack 11 Million Ashley Madison Passwords". bankinfosecurity.com (ภาษาอังกฤษ). สืบค้นเมื่อ 2021-04-11.
- ↑ Singer, Abe (November 2001). "No Plaintext Passwords" (PDF). Login. 26 (7): 83–91. เก็บ (PDF)จากแหล่งเดิมเมื่อ 2006-09-24.
- ↑ "Cryptanalysis of Microsoft's Point-to-Point Tunneling Protocol". Schneier.com. 2011-07-07. สืบค้นเมื่อ 2013-01-31.
- ↑ 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) - ↑ A Future-Adaptable Password Scheme. Usenix.org (March 13, 2002). Retrieved on January 31, 2013.
- ↑ MDCrack FAQ 1.8. None. Retrieved on January 31, 2013.
- ↑ Password Protection for Modern Operating Systems. Usenix.org. Retrieved on January 31, 2013.
- ↑ "Password Hashing Competition". คลังข้อมูลเก่าเก็บจากแหล่งเดิมเมื่อ 2013-09-02. สืบค้นเมื่อ 2013-03-03.
- ↑ "NIST SP800-63B Section 5.1.1.2" (PDF). nvlpubs.nist.gov.
- ↑ "Top 10 Password Crackers". Sectools. สืบค้นเมื่อ 2009-11-01.
- ↑ "Stay Secure: See How Password Crackers Work - Keeper Blog". Keeper Security Blog - Cybersecurity News & Product Updates (ภาษาอังกฤษแบบอเมริกัน). 2016-09-28. สืบค้นเมื่อ 2020-11-07.
- ↑ 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.
แหล่งข้อมูลอื่น
[แก้]- Philippe Oechslin: Making a Faster Cryptanalytic Time-Memory Trade-Off. เก็บถาวร 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 เก็บถาวร 2019-12-15 ที่ เวย์แบ็กแมชชีน