เมื่อวานนี้ Wed 9 Oct 2019 รหัสผ่านของบิดาของ Unix (Ken Thompson) ถูก crack สำเร็จแล้ว
และรหัสคือ "p/q2-q4!" จากค่า
Hash ของรหัส "ZghOT0eRm4U9s" ที่โดน crack
1) คนที่ Crack สำเร็จคือ Nigel Williams ซึ่งเป็น Admin ของ HPC (High Performance Computing) systems ที่เกาะ Tasmania ประเทศออสเตรเลีย
โดยใช้ ซอฟต์แวร์ crack รหัสผ่านที่คุ้นเคย hashcat
ด้วย GPU AMD Radeon RX Vega 64
ที่มีความสามารถในการ Crack รหัสผ่านที่โดนแฮช ได้ถึง 930 ล้านแฮชต่อวินาที (930 MH/s)
โดย Nigel ใช้เวลาไปทั้งหมดในการ crack 4 วันกว่า
และได้ post ลง Unix Heritage Society mailing list ดังภาพ
โดย Ken เองก็ได้ post กลับแสดงความยินดีด้วย สั้นๆ
2) การ crack รหัสผ่านของ Ken นี้มีความเป็นมาอย่างไร
เริ่มจากเมื่อปี ค.ศ. 2014 Leah Neukirchen ได้พบไฟล์รหัสผ่าน /etc/passwd ใน file dump
จาก "BSD 3" source tree
ซึ่งข้างในมีรหัสผ่านของบุคคลสำคัญที่พัฒนา Unix version แรกๆ อย่าง Ken Thompson, Dennis Ritchie, Brian Kernighan, Steve Bourne, และ Bill Joy
โดยถูก hash ด้วย DES-based crypt
และเริ่มมีความพยายาม crack หารหัสผ่านเหล่านี้
ด้วยเครื่องมืออย่าง John the Ripper หรือ Hashcat
ต่อมารหัสผ่าน 20 รหัสถูก crack ออก
แต่ยังเหลืออีก 5 รหัสที่ crack ยากมากไม่ออก
ซึ่งรวมถึงรหัสของ Ken ซึ่งเพิ่งโดน Crack ออกเมื่อวานนี้
3) Ken Thompson ปัจจุบันอายุ 76 ปี
เป็นผู้สร้าง UNIX operating system ในช่วงทศวรรษที่ 1960
ในโครงการ the MULTICS project ซึ่งตอนหลัง Brain Kernighan เป็นคนให้ชื่อระบบปฏิบัติการว่า Unix
จากการย่อจาก MULTICS
Ken ยังเป็นคนสร้างภาษา Bon หรือ ภาษา B
ซึ่งต่อมาถูกพัฒนา เป็น ภาษา C (โดย Dennis Ritchie)
ที่สำคัญจนถึงปัจจุบัน
และ Ken ยังเป็นคนพัฒนา UTF-8 encoding ในปี ค.ศ. 1992
ต่อมาเค้ายัง สร้างภาษา Go (ร่วมกับ Robert Griesemer และ Rob Pike) ให้ google
และมีผลงานอื่นอีกมากมาย
ทั้งยังเคยได้รับรางวัล Turing Awards และอื่นๆ
4) เราได้บทเรียนอะไรจากกรณีนี้
4.1) รหัสผ่านบิดาของ Unix โคตรยาก เหอะๆ
เกือบเป็นไปตามคำแนะนำการตั้งรหัสผ่าน
ในเอกสาร NIST Special Publication 800-63B Section 5 เกือบเป๊ะ ที่แนะให้รหัสผ่านต้องมีตัวอักษรเล็ก ตัวอักษรใหญ่ ตัวเลข และสัญลักษณ์พิเศษ ยาว 8 อักขระขึ้นไป
4.2) แต่กระนั้น ก็ยังโดน crack ได้ด้วย GPU ในยุคนี้ ในเวลา 4 วันกว่าเท่านั้น
4.3) ดังนั้นต้องตั้ง set รหัสผ่านให้ยากๆ หน่อยนะครับ
และให้ดีกว่านั้นต้องใช้ การพิสูจน์ตัวตนหลายชั้น (Multiple Factor Authentication) ที่ใช้ OTP (One Time Password) ช่วยด้วย ไม่งั้นยุคนี้ อยู่รอดยากครับ GPU มัน เร็วเหลือเกิน การ brute-force รหัสผ่านที่ hash ไว้ทำได้เร็วเหลือเชื่อขึ้นทุกที
หากปล่อยให้ฐานข้อมูลรหัสผ่านหลุดไป
แม้ hash รหัสไว้ ก็ไม่น่าจะรอด ...นะเออ
== เพิ่มเติม ==
ลองตรวจราคา GPU รุ่นที่ใช้ Crack ตะกี้ เฮ้ยแค่ 15,000 บาทเอง โดยประมาณ อะ เหอะๆ น่ากลัวชิ๊บ...
[added 14 Oct 2019] และจากการชี้ข้อมูลของแฟน Page ใช้แค่ใบเดียวด้วยนะ ดูรายละเอียด ที่นี่สิ https://www.facebook.com/…/p.24740773259…/2474077325994629/…
== เพิ่มเติม 2 ==
Blog ของ Leah อธิบายว่า "p/q2-q4!" ที่เป็นรหัส Ken
ที่แท้ก็คือ การเปิดของเกมส์หมากรุก ที่นิยมแบบหนึ่ง
โดยเขียนการเดินหมาก ตามหลักการ Descriptive Notation ซึ่งอธิบายใน link นี้ https://en.wikipedia.org/wiki/Descriptive_notation
ซึ่งคือการเดินหมาก ตามภาพนี้เลยครับ [added 14 Oct 2019]
https://www.facebook.com/…/p.24741008159…/2474100815992280/…
*** Joke ***
เหอะๆ ใครคิดว่ารหัสตัวเอง ง่ายกว่าของคุณปู่ Ken
คือ "p/q2-q4!"
ไปตั้งใหม่เลยครับ !!!! เหอะๆๆๆๆ
แต่อย่าลืมกฏข้อสำคัญที่สุดของการตั้งรหัส
ข้อสุดท้ายด้วยนะครับ
"ต้องเป็นรหัสผ่านที่ท่านจำได้ด้วย"
ไม่งั้นจะเป็นรหัสผ่าน "ที่ดีเกินไปครับ"
เพราะ Hacker crack ไม่ได้ เร๊าก็จำไม่ได้เหมือนกัน!
อะไร "ที่ดีเกินไป" นี่ไม่เอานะครับ
เพราะมันเป็นเหตุผล classic ที่แฟนเราบอก
ตอนทิ้งเรา ใช่มั๊ย
"เพราะคุณดีเกินไป"
** References **
[1] Thomas Claburn. "Father of Unix Ken Thompson checkmated as his old password has finally been cracked", The Register, 9 October 2019.
https://www.theregister.co.uk/…/ken_thompsons_old_unix_pa…/…
[2] Paul Grassi et al. "Digital Identity Guidelines", NIST Special Publication 800-63B, June 2017.
https://pages.nist.gov/800-63-3/sp800-63b.html#sec5
[3] The Unix Heritage Society mailing list
Nigel post
https://inbox.vuxu.org/…/CACCFpdx_6oeyNkgH_5jgfxbxWbZ6VtOX…/
Ken reply
https://inbox.vuxu.org/…/CAG=a+rj8VcXjS-ftaj8P2_duLFSUpmNg…/
[4] Leah Neukirchen's Blog เกี่ยวกับ Ken's password, Oct 2019. https://leahneukirchen.org/…/ken-thompson-s-unix-password.h…
Search