เมื่อวันก่อนมีอีเมลจากเว็บไซต์เดินทางแห่งหนึ่งส่งมาบอกว่า
“We’ve noticed an unusual activity on your account. Please log in to change your password”
พูดอีกอย่างหนึ่งก็คือเหมือนมีใครสักคนกำลังพยายามเข้าไปในบัญชีของผมเพื่อทำอะไรสักอย่างโดยที่ผมไม่รู้ แต่นี่ก็ไม่ใช่ครั้งแรกที่ได้รับอีเมลประมาณนี้ เชื่อว่าหลายๆ คนก็น่าจะมีประสบการณ์การคล้ายๆ กัน หลายต่อหลายครั้งที่เราเห็นข้อความประมาณนี้แล้วคิดว่า “มีคนพยายามแฮ็กพาสเวิร์ดแล้วเข้าบัญชีเราอีกแล้ว” แต่สุดท้ายก็ไม่ทำอะไรและปล่อยมันไว้แบบนั้น อาจจะเพราะรู้สึกว่ามันเป็นเมลขยะหรือบางทีมันก็เป็นแค่การแจ้งเตือนที่ไม่มีความหมาย แต่ความจริงอาจจะไม่ใช่แบบนั้น
การแฮ็กพาสเวิร์ดนั้น คือกระบวนการที่ใครสักคนกำลังพยายามเข้าไปยังส่วนของระบบของคนอื่นโดยไม่ได้รับอนุญาต โดยอาจจะใช้พาสเวิร์ดแบบมั่วๆ ที่คนใช้กันทั่วไป (พาสเวิร์ดอย่าง 1234567890, password, password1 ฯลฯ พวกนี้ถือว่าอันตรายมาก ขนาดอดีตประธานธิบดีของอเมริกาอย่าง บารัก โอบามา (Barack Obama) ยังยอมรับเลยว่าเมื่อก่อนเขาเคยใช้พาสเวิร์ด 1234567 และ password) หรือใช้อัลกอริทึมเพื่อหาทางคาดเดาพาสเวิร์ดออกมา พูดอีกอย่างมันก็เหมือนวิธีการสะเดาะกุญแจเพื่อเปิดประตูห้องลับไปที่ไหนสักแห่งนั้นแหละ
พาสเวิร์ดเป็นเหมือนเกราะป้องกันความเป็นส่วนตัวและข้อมูลของเราบนโลกออนไลน์ ทุกเว็บไซต์ที่เราเข้าไป ทุกบริการที่เราสมัคร ล้วนแล้วแต่ต้องการพาสเวิร์ดเพื่อเป็นการยืนยันตัวตนของเราทั้งนั้น แต่สิ่งที่น่าตกใจก็คือว่าผู้ใช้งานหลายต่อหลายคนมักมองข้ามความสำคัญของมันไปและทำไปแบบส่งๆ โดยบางครั้งเราเห็นว่าบางเว็บไซต์ยังใช้ระบบการเก็บรหัสผ่านในรูปแบบของ Hash แบบ MD5 แบบ 8 ตัวอักษรอยู่เลย (เดี๋ยวอธิบายต่อข้างล่าง) ซึ่งมันเป็นพาสเวิร์ดที่มีโอกาสถูกแฮ็กได้ไม่ยากเลยในเวลานี้
ก่อนอื่นขออธิบายเรื่องการเก็บรหัสผ่านในรูปแบบของ Hash หรือชื่ออย่างเป็นทางการคือ Cryptographic Hash ว่ามันเป็นการสร้างข้อมูลใหม่ขึ้นแทนข้อมูลเก่า เป็นกระบวนการที่ใช้ตัวอักษร ตัวเลข อักขระพิเศษ มารวมกันแล้วสร้างเป็นบางอย่างที่เข้าใจไม่ได้ มีความซับซ้อน และคนอ่านไม่มีทางเข้าใจ (ลองเล่นฟังก์ชั่น SHA256) สมมติว่าพาสเวิร์ดของผมคือ “hOly$hitDamn04” เมื่อทำการ hash แล้วมันจะออกมาเป็น “a12d0c0716a860326d87bf3b593bdc1f4febbba6a52e8f2df55d9a0f10fa4566” เมื่อเปลี่ยนตัวอักษร เล็ก ใหญ่ ใส่ตัวเลข เพิ่มตัวอักขระพิเศษ คำตอบที่ได้ก็จะเปลี่ยนไป
วิธีการแฮ็กพาสเวิร์ดมีหลายอย่างตั้งแต่ Phishing (เราน่าจะเจอบ่อยที่สุด) ที่เป็นเทคนิคราคาถูกและมีประสิทธิภาพ เหล่าแฮ็กเกอร์จะสร้างเว็บปลอม แอพพลิเคชั่นปลอม หรือข้อความปลอมๆ ขึ้นมาแล้วส่งให้ผู้ใช้งาน เพื่อให้หลงกลใส่ข้อมูลต่างๆเข้าไป อาจจะเป็นพาสเวิร์ด หมายเลขบัญชีธนาคาร ที่อยู่ เบอร์ติดต่อ ฯลฯ ต่อมาคือ Dictionay attack ซึ่งเป็นการนำลิสต์ของคำต่างๆ มาเทียบกับพาสเวิร์ดของผู้ใช้งาน หรือ Rainbow Table attack ที่เป็นฐานข้อมูลของพาสเวิร์ดที่มีการใช้บ่อยๆ ผ่านการ Hash มาเรียบร้อยแล้ว และเก็บไว้เพื่อเรียกใช้แบบง่ายๆ อีกอันหนึ่งคือ Spidering ที่เป็นการไปเก็บข้อมูลมาจากหน้าเฟซบุ๊กของบริษัทหรือองค์กรต่างๆ แล้วนำมาสร้างเป็นลิสต์ของพาสเวิร์ดเช่น (1974(ปีที่ก่อตั้ง)+John Smith(ชื่อของผู้ก่อตั้ง), missiontomars (ชื่อบริษัท) ฯลฯ)
อีกเทคนิคหนึ่งที่จะพูดถึงต่อไปและที่ใช้กันบ่อยๆคือ Brute Force attack ที่เป็นขั้นตอนการแฮ็กพาสเวิร์ดโดยใช้การผสมตัวอักษร ตัวเลข และตัวอักขระตามที่เราเจาะจง ยกตัวอย่างเช่นเว็บไซต์หนึ่งใช้พาสเวิร์ด 8-16 ตัวอักษร โปรแกรมที่จะแฮ็กพาสเวิร์ดก็จะเริ่มด้วย 00000000 ต่อด้วย 00000001, 00000010, 00000100…ไปเรื่อยๆ และลองทุกตัวอักษรจนครบตามที่เรากำหนด
สถิติจาก Statista บ่งบอกว่าจำนวนตัวอักษรเฉลี่ยของพาสเวิร์ด
ที่หลุดรอดออกมาจากผู้ใช้งานทั่วโลกนั้นคือ 8 ตัวอักษร
โดยถ้าเราใช้กฎที่ว่าพาสเวิร์ดต้องประกอบไปด้วยตัวอักษรใหญ่+เล็ก+ตัวเลข+อักขระพิเศษ ความเป็นไปได้ของพาสเวิร์ด 8 ตัวอักษรจะอยู่ที่3,025,989,069,143,040 หรือประมาณ 3 พันล้านล้าน ความเป็นไปได้
ถึงตรงนี้หลายคนเริ่มโล่งอกว่าพาสเวิร์ดของตัวเองนั้นน่าจะรอดพ้นจากเงื้อมมือของแฮ็กเกอร์ เพราะความเป็นไปได้นั้นเยอะเหลือเกิน ยิ่งถ้าให้เข้าเว็บไซต์สักอันแล้วค่อยๆ ลองใส่พาสเวิร์ดทีละอันกว่า 3 พันล้านล้านครั้ง (ในมุมที่เว็บไซต์ไม่บล็อกไปก่อน) และทุกครั้งต้องรอเว็บโหลดสัก 3 วินาที ก่อนจะลองพาสเวิร์ดอันใหม่ พวกเขาต้องใช้เวลากว่า 280 ล้านปีเลยทีเดียว
แต่นั้นไม่ใช่สิ่งที่เกิดขึ้น
ความเป็นจริงก็คือว่าข้อมูลของเรานั้นบ่อยครั้งหลุดออกมาจากการรั่วไหลของข้อมูลหรือที่เรียกกันว่า Data Breach นั้นแหละครับ มันเกิดขึ้นบ่อยกว่าที่เราคิด ซึ่งก็มาในสองรูปแบบ
- Plain-Text – อันนี้ถือว่าเป็นความซวยของผู้ใช้งานที่ผู้ให้บริการเก็บข้อมูลไว้ในรูปแบบของตัวอักษรแบบไม่มีการใส่รหัสผ่านใดๆ ทั้งสิ้น สมมติว่าพาสเวิร์ดของเราคือ “password” ข้อมูลที่รั่วไหลออกมาก็เป็น “password” เลย คนที่ได้ไปก็เอาไปใช้ได้ทันที
- Hashed Data – เหมือนอย่างที่อธิบายเบื้องต้นไปด้านบน พาสเวิร์ดของเราจะถูกใส่รหัสเอาไว้ การนำไปใช้งานก็ยากขึ้นมาอีกนิด
ตรงนี้ก็นำมาสู่ความแตกต่างระหว่างกระบวนการ Hash และความซับซ้อนของมัน โดยถ้าลองคลิกลิงก์อันนี มันจะเป็นการ Hash แบบ SHA256 ที่ปลอดภัยกว่า แต่ถ้าลองใช้ Hash แบบ MD5 นั้นคำตอบที่ได้จะสั้นกว่า เร็วกว่า แต่ในเวลาเดียวกันก็ปลอดภัยน้อยกว่า
สิ่งที่น่าสนใจต่อมาก็คือว่ามาตรฐานของเว็บไซต์ทั่วไปนั้นยังเป็นการ Hash แบบ MD5 อยู่เลย บทความของ ZDNet บอกว่า 25% ของเว็บไซต์แบบ CMS (Content Management System) อย่าง WordPress หรือ SugarCRM ยังใช้ MD5 อยู่ และ 30% ของเว็บไซต์บนอินเทอร์เน็ตนั้นใช้ Wordpress อยู่เบื้องหลัง
ถึงตรงนี้สิ่งที่น่ากลัวก็คือ แม้ว่าการเก็บพาสเวิร์ดด้วย MD5 นั้นจะปลอดภัยกว่า Plain-Text แต่ว่ามันก็ไม่ได้ปลอดภัยกว่าอะไรมากมายเท่าไหร่นัก คอมพิวเตอร์ที่เร็วมากๆ สามารถประมวลผลการแฮชได้ 2 แสนล้านครั้งต่อวินาที หรือประมาณ 720 ล้านล้านครั้งต่อชั่วโมง และเมื่อเทียบกับตัวเลขขนาดใหญ่ของความเป็นไปได้จากพาสเวิร์ด 8 ตัวที่ 3 พันล้านล้าน คอมพิวเตอร์ตัวนี้สามารถหาพาสเวิร์ดได้ภายในเวลาแค่ 4.2 ชั่วโมงหรือน้อยกว่านั้นด้วยซ้ำ
ซึ่งกระบวนการ Brute Force ก็จะเอาข้อมูลที่รั่วไหลมา (ส่วนใหญ่แล้วก็จะอยู่ในรูปแบบ e-mail : hash ยกตัวอย่างเช่น syoungacer@yahoo.com:a4d923396a47fc83dfcb71bae1b17788) ตอนนี้สิ่งที่แฮ็กเกอร์ต้องทำมีสองอย่างคือหาซอฟแวร์ที่ใช้เพื่อสร้างรหัสแฮชจากการผสมคำตามที่เราต้องการแล้วเทียบมันกับแฮชที่เราได้มา ซึ่งก็มีเครื่องมือแบบ open-source ออนไลน์ให้ใช้กันอยู่แล้ว และอีกอย่างคือการหาฮาร์ดแวร์เพื่อความเร็วและแรงพอที่จะใช้ในการแฮ็กพาสเวิร์ดที่ต้องการ การจะซื้อกราฟิกการ์ดแบบไฮเอนด์ก็มีราคาค่อนข้างสูงจึงทำให้บริการแพลตฟอร์มคลาวด์คอมพิวติ้งตามความต้องการอย่าง Amazon AWS ที่สามารถเช่าคอมพิวเตอร์ออนไลน์ที่มีประสิทธิภาพสูงเป็นรายชั่วโมงได้รับความนิยม เพราะทำให้การแฮ็กพาสเวิร์ดไม่ใช่เรื่องยากอีกต่อไป และสิ่งที่ทำให้มันง่ายขึ้นไปอีกก็คือว่าพาสเวิร์ดของหลายๆ คนมักคาดเดาได้ไม่ยากเท่าไหร่
เหตุผลหนึ่งที่ทำให้มนุษย์แตกต่างจากสมองกลก็คือ ความจำเราไม่ค่อยดีสักเท่าไหร่
ซึ่งก็นำมาสู่เรื่องพาสเวิร์ดที่เราสร้างขึ้นมาใช้กันในทุกๆ วัน โดยมีบทความหนึ่ง บอกว่าใน 10 ล้านพาสเวิร์ดที่รั่วไหลออกมานั้น อันดับหนึ่งที่ครองใจประชาชนคือ 1234567 ต่อด้วย password, 12345678, qwerty, 123456789 และ 12345 (ใครยังใช้อยู่บ้าง?) ต่อมาคือตัวเลขที่ต่อท้ายพาสเวิร์ดของเราซึ่งตัวที่ถูกใช้งานบ่อยที่สุดคือเลข 1 (เช่น password1) ซึ่งนับเป็น 23.84%
เหล่าแฮ็กเกอร์ทั้งหลายอาจจะไม่ต้องเสียเวลากว่า 4.2 ชั่วโมงเพื่อแฮ็กพาสเวิร์ดเหล่านี้เลยก็ได้ แค่เอาแฮชที่ได้มาไปเทียบกับฐานข้อมูลพาสเวิร์ดที่ถูกใช้งานบ่อยๆ แล้วไล่ไปทีละตัว หรืออาจจะหา hash พาสเวิร์ดที่มีคำว่า password อยู่ในนั้นด้วยอย่าง password___ (โดยตัวเลขก็ไล่ไปตั้งแต่ 0-999)
มาถึงตรงนี้สิ่งที่เราทำได้ (และควรทำเลย) คือการเพิ่มความปลอดภัยให้กับพาสเวิร์ดของตัวเอง สำหรับใครที่สังเกตเวลาใส่พาสเวิร์ดเข้าไปในเว็บไซต์ที่มีมาตรฐานความปลอดภัยสูงๆ (อย่าง Google หรือ Dropbox) จะมีแถบของความแข็งแรงของพาสเวิร์ดเราขึ้นมาตอนที่สร้างพาสเวิร์ดอันใหม่ ซึ่งเจ้าแถบวัดพลังนี้จะขึ้นอยู่กับสามอย่างคือ ความยาว, ความซับซ้อน และ ความคาดเดาไม่ได้
ยกตัวอย่าง password, password1 และ #password1$, เราก็พอเห็นได้ว่าอันสุดท้ายน่าจะแข็งแรงที่สุด
เพราะฉะนั้นการใช้พาสเวิร์ดที่มีความยาวแค่ 8 ตัวเหมือนกับค่ามาตรฐานนั้นไม่เพียงพอ, การเพิ่มขึ้น 1 ตัวอักษร จะทำให้ความเป็นไปได้เพิ่มขึ้นเกือบ 100 เท่า และถ้าลองเพิ่มความยาวพาสเวิร์ดจาก 8 ตัวเป็น 16 ตัว ความเป็นไปได้จาก 3 พันล้านล้าน จะกลายเป็น 36 ล้านล้านล้านล้านล้าน เลยทีเดียว (เรียกว่า nonillion, ตัวเลขตามด้วยศูนย์สามสิบตัว) กลับมาที่การแฮ็กพาสเวิร์ดความยาว 16 ตัวด้วย NVIDIA GTX 1080ti กราฟิกการ์ด 8 อัน ต้องใช้เวลามากกว่า 5.7 พันล้านปี (แต่ตัวเลขนี้ก็จะลดลงเรื่อยๆ ตามความสามารถของฮาร์ดแวร์ในอนาคต)
บริการอื่นๆอย่าง two-factor-authentication หรือ password manager ก็สามารถช่วยได้ แต่อีกอย่างหนึ่งที่ทำได้ตอนนี้คืออย่าปล่อยปละละเลยความสำคัญของพาสเวิร์ดที่ใช้ในแต่ละวัน การที่มีใครพยายามจะลอง log in เข้ามาที่บัญชีของคุณในเว็บไซต์/บริการใดๆ อาจจะไม่ใช่สัญญาณที่บ่งบอกว่าพวกเขากำลังจะพยายามมาเอาพาสเวิร์ดของคุณ แต่พวกเขามีพาสเวิร์ดที่หามาได้ไว้ในมือเพื่อลองแล้วต่างหาก
เขียนถึงตรงนี้ ผมเองก็คงถึงเวลาไปเปลี่ยนพาสเวิร์ดเป็น 16 ตัวของเว็บไซต์ที่ส่งเมลเข้ามาวันก่อนบ้างแล้ว
อ้างอิงข้อมูลจาก