กาฝากกับศาสตร์มืด แฮกเกอร์เขาเจาะรหัสผ่านของเรากันได้อย่างไร? (ตอนที่ 1)

Print Friendly, PDF & Email

 

จริงๆ ผมเคยพูดถึงเรื่องนี้ไปแล้วเมื่อเดือนตุลาคมที่ผ่านมา ในรายการ “กาฝากน้อย ย่อยข่าว ภาคพิเศษ” ของผม ตอนนั้นเป็นเพราะแรงบันดาลใจจากการที่ Twitter Account ของท่านนายกฯ ปู โดนมือดีแฮกไป เลยทำให้เกิดกระแสอยู่พักใหญ่ๆ ว่า เอ๊ะ! แล้วพวกแฮกเกอร์เขาแฮกไปกันได้ยังไง

เผอิญว่าได้มีโอกาสคุยกับ @panraphee (คุณเอิ้น ปานระพี นั่นเอง) ก็เลยคิดว่าน่าจะเอาเรื่องนี้มาเล่าใหม่ แต่ในรูปแบบบล็อกบ้างอะไรบ้าง เพราะมีอะไรหลายๆ อย่างที่ผมเองก็ไม่ได้พูดถึงตอนทำ “กาฝากน้อย ย่อยข่าว”

——————— พื้นที่โฆษณา ———————

แต่ก่อนที่จะไปอ่านกันต่อ ผมว่าสำหรับท่านผู้อ่านในวัยทำงานหรือใกล้จะวัยทำงาน น่าจะอยากรู้ว่าฐานเงินเดือนโดยเฉลี่ยของตัวเองอยู่ที่เท่าไหร่ในตลาดแรงงานตอนนี้ เลยอยากแนะนำให้ไปดาวน์โหลด Adecco Thailand Salary Guide 2012 ไปดูครับ เป็นข้อมูลจากทาง @AdeccoThailand ผู้ให้บริการโซลูชั่นด้านทรัพยากรบุคคลชั้นแนวหน้าของประเทศไทย … ที่สำคัญคือ ฟรีครับ

———————————————————-

 

พื้นฐานที่สุด แต่ถึกสุด ต้อง Brute Force

01

หลักพื้นฐานของการตรวจสอบสิทธิ์ก็คือ การรับ Username และ Password เข้ามา แล้วตรวจกับฐานข้อมูลผู้ใช้งานว่าตรงไหม ถ้าตรงก็ให้เข้าไปได้ ถ้าไม่ตรงก็ไม่ให้เข้า … ง่ายดีไหมครับ?

ดังนั้นการแฮกรหัสผ่านขั้นพื้นฐานก็เล่นง่ายๆ เหมือนกันครับ คือลองผิดลองถูก ใส่ Username และ Password ไปเรื่อยๆ จนกว่าจะถูก … ไอ้ Username เนี่ยง่ายหน่อย เพราะบริการส่วนใหญ่ก็มักจะให้ใช้ Email Address เป็น Username อยู่แล้ว ที่เหลือก็แค่การเดารหัสผ่านให้ถูกต้อง

Brute Force แบบในอดีตนั้นก็จะเป็นการเดารหัสผ่านไปทีละตัว ลองทุกตัวอักษรที่มี แล้วเพิ่มจำนวนไปเรื่อยๆ จนกว่าจะถูกครับ

การป้องกันตัวจากวิธี Brute Force นี้ก็เลยทำได้ไม่ยากเท่าไหร่ แค่ตั้งรหัสผ่านให้ยาวเข้าไว้ครับ … แวะไปดูระยะเวลาที่แฮกเกอร์จะใช้ในการเดารหัสผ่านที่เว็บ lockdown.co.uk ดูครับ ที่เว็บนี้จะเทียบให้ดูว่าการตั้งรหัสผ่านแบบไหน จำนวนกี่ตัวอักษร จะสามารถถูกเดารหัสผ่านได้ในระยะเวลาช้าสุดเท่าไหร่ ภายใต้เงื่อนไขเครื่องคอมพิวเตอร์แบบต่างๆ

ดูแล้วอย่าตกใจว่าถ้าตั้งรหัสผ่านด้วยเลขล้วนๆ ตั้งแต่ 0 ถึง 9 นั้น ต่อให้ตั้งรหัสผ่านยาว 9 ตัวอักษร คอมพิวเตอร์กระจอกสุดๆ (Pentium 100MHz) ก็สามารถเดาได้ในเวลาไม่เกิน 28 ชั่วโมงครับ

 

02

 

ทีนี้ก็เลยมีคำถามว่า แล้วจำเป็นไหมที่จะต้องตั้งรหัสผ่านแบบที่มีอักขระพิเศษ (พวกตัวอักษรแปลกๆ อย่าง $ * ^ & # อะไรแบบนี้)?!? ลองดูตารางด้านล่างนี่ จะเห็นว่าหากเลือกใช้ตัวอักษร A ถึง Z ทั้ง 26 ตัวละก็ (เป็นตัวใหญ่หมด หรือ เล็กหมด) ลองตั้งซัก 12 ตัวอักษร ขนาดใช้เครื่องคอมพิวเตอร์ระดับ Super Computer สมัยปี 2009 ก็จะใช้เวลา 3 ปี ถ้าเป็นคอมพิวเตอร์สมัยนี้ที่ประสิทธิภาพดีขึ้นเท่าตัวทุกๆ ปี ก็น่าจะต้องปรับเป็นซัก 20 ตัวอักษร รับรองว่าเดากันจนตายไปหลายชาติ (เผลอๆ โลกแตกก่อนที่จะเดาออก) … ยิ่งถ้าสลับตัวเล็กตัวใหญ่ด้วย ก็อาจตั้งให้สั้นลงได้อีกหน่อย

 

03

 

คำถามจะเกิดขึ้นมาว่า แล้วแบบนี้ ทำไมเขาถึงบอกว่าเราควรจะตั้งด้วยตัวอักษรพิเศษด้วย? คำตอบอยู่ที่ตารางด้านล่างนี่ ที่เป็นการผสมตัวอักษรและอักขระพิเศษ (ตัวเลขยังไม่เกี่ยว) สังเกตว่าแค่ตั้ง 8 ตัวอักษร ขนาดใช้ Super Computer สมัยปี 2009 ก็ต้องใช้เวลา 34 วันกว่าจะเดาได้แล้ว ถ้าตั้งซัก 12 ตัวอักษรนี้เดากันตาเหลือกครับ

 

04

 

คำถามคือ แล้วจะตั้งรหัสผ่านให้ยาวแค่ไหนถึงจะดี? คำตอบอยู่ที่ 2 ปัจจัยครับ คือ

  • ยาวที่สุดที่พอจำไหว อยู่ที่กี่ตัวอักษร และ
  • ข้อมูลที่เราจะป้องกันด้วยรหัสผ่านนั้น สำคัญแค่ไหน มูลค่ามากแค่ไหน

เพราะหากเป็น Email Address ที่ทำขึ้นมาเพื่อใช้สมัครรับข่าวเฉยๆ จะโดนแฮกก็ไม่ใช่ปัญหาอะไร คุณจะตั้งรหัสผ่านเป็น 12345678 ก็ได้ ไม่ใช่ปัญหา แต่หากมันเป็นรหัสผ่านที่เราใช้เข้า Facebook ของเรา ก็ต้องประเมินว่าหากโดนแฮกไปแล้ว เราจะเสียหายประมาณเท่าไหร่ จากนั้นพิจารณาตามตารางในเว็บ lockdown.co.uk เพื่อดูว่ายอมให้เดาได้ในเวลาเท่าไหร่ที่เราคิดว่าแฮกเกอร์มันจะมองว่าไม่คุ้ม (พึงระลึกเอาไว้เสมอว่าแฮกเกอร์ทำโดยมีแรงจูงใจเป็นเงิน) เช่นกรณีของ Facebook เราอาจคิดว่าหากต้องใช้ PC ระดับ Dual-core เดารหัสผ่านประมาณ 64 วันก็ไม่คุ้มแล้ว เราก็อาจเลือกใช้รหัสผ่านเป็นตัวอักษรใหญ่หรือเล็กล้วนยาวแค่ 9 ตัวก็พอ เป็นต้น

ใช่ครับ ไม่ต้องยาวจนเกินเหตุ เอาแค่ต้องใช้เวลาในการเดามากจนไม่คุ้มที่จะทำก็พอครับ

 

เมื่อ Brute Force มันถึกไป การใช้ Dictionary เดาศัพท์จึงเริ่มขึ้น

05อีกฐานะหนึ่งของแฮกเกอร์ก็คือผู้ใช้งานเหมือนเราๆ ท่านๆ นั่นแหละครับ ดังนั้นพวกเขาจึงรู้ดีว่าปัญหาหนึ่งที่เราๆ ท่านๆ เจอเวลาตั้งรหัสผ่านคืออะไร … มันคือ “จำยาก” … และนั่นทำให้หลายๆ คนเลือกที่จะตั้งรหัสผ่านด้วยคำศัพท์ที่จำง่ายๆ ครับ

06จึงเป็นเหตุให้แฮกเกอร์เขาพัฒนาวิธีการโจมตีให้มีประสิทธิภาพขึ้น คือ เสริมจากวิธี Brute Force โดยให้สามารถใส่ Username หรือ Password ที่ต้องการลองผิดลองถูกไปได้ โดยตัว Password เนี่ยก็มีฐานข้อมูลรหัสผ่านที่ผู้คนมักจะใช้กันบ่อยๆ เอาไว้ให้เดา … เช่น รหัสผ่านที่อยู่ในรูปขวามือนี่ คือรหัสผ่านที่มีอยู่ใน Hacker Dictionary แน่นอนครับ ดังนั้นไม่สมควรที่จะใช้มันเลย

วิธีการป้องกันพวก Hacker Dictionary นั้นก็ไม่ยากครับ พยายามอย่าไปใช้คำศัพท์ที่คุ้นเคย (ต้องพึงระลึกไว้เสมอว่าแฮกเกอร์ไทยก็มี Dictionary สำหรับเดารหัสผ่านของคนไทยเช่นกัน) อาจต้องไปเลี่ยงใช้พวกอักขระพิเศษในการเสริมสร้างความแข็งแกร่งให้กับรหัสผ่านด้วย

แต่ทั้งนี้ทั้งนั้น อย่าลืมว่ามันไม่จำเป็นต้องยาวเกินเหตุ จำยากเกินไป … เอาแค่ให้มันเดายาก และไม่คุ้มสำหรับแฮกเกอร์ที่จะต้องเดาก็พอ

นักวิจัยด้านความมั่นคงปลอดภัย (Security Researcher) ของ Microsoft เคยตีพิมพ์งานวิจัยของเขาว่าสุดท้ายแล้ว สาเหตุของการที่ผู้ใช้งานไม่ตั้งรหัสผ่านให้เข้มข้นนั้น เป็นผลจากเรื่องของต้นทุนที่พวกเขาต้องลงแรงเสียเวลาไป เพื่อแลกมากกับประโยชน์ที่ได้คือความมั่นคงปลอดภัยมันไม่เหมาะสมกัน (อ่านงานวิจัยได้ที่นี่) ทั้งนี้เพราะหลังๆ วิธี Brute Force และ Hacker Dictionary นี่ไม่ค่อยมีใครเขาใช้แล้ว เพราะมันป้องกันได้ตั้งแต่ทางฝั่งเซิร์ฟเวอร์ คือ กำหนดจำนวนครั้งที่สามารถลองผิดลองถูกได้ และหากลองจนเกินกำหนด ก็จะถูก Disable Account หรือไม่ก็ต้องรอไปพักใหญ่ๆ กว่าจะลองได้ใหม่ ซึ่งนั่นจะทำให้การเดารหัสผ่านต้องใช้เวลามากกว่าเดิมมากๆ จนไม่คุ้มค่าที่จะทำ และที่สำคัญที่สุด มันมีวิธีอื่นที่ง่ายกว่านั้นที่จะแฮกรหัสผ่านครับ

ตอนหน้าค่อยมาว่ากันต่อ

(ติดตามตอนต่อไป)

@kafaak

ในอดีตเมื่อครั้งยังไม่ต๊อกต๋อย เคยเป็นผู้บริหารฝ่ายผลิตของโรงงานอุตสาหกรรม แต่ภายหลังเลือกงานที่ให้เวลากับชีวิต เพื่อมาอัพเดตเทรนด์เทคโนโลยีมากกว่า ปัจจุบันเป็นทั้งไอทีต๊อกต๋อยในสถานศึกษา เป็นบล็อกเกอร์ต๊อกต๋อยที่เขียนไปเรื่อยทั้งเรื่องเทคโนโลยี โซเชียลมีเดีย การตลาดดิจิตอล และจิตวิทยา เป็นที่ปรึกษาด้านการตลาดดิจิตอลให้กับธุรกิจ SMEs หลายแห่ง และเป็นวิทยากรรับเชิญด้านเทคโนโลยี การตลาดดิจิตอล และโซเชียลมีเดีย เป็นบางครา

You may also like...

Leave a Reply

%d bloggers like this: