รหัสผ่านเป็นสิ่งที่ถูกใช้มาอย่างยาวนานบนโลกคอมพิวเตอร์เพื่อใช้ในการยืนยันตัวตนผู้ใช้งาน หลายๆ คนก็รู้ว่ามันเป็นการป้องกันความปลอดภัยที่ไม่ได้ดีมากนัก แต่เนื่องจากไม่มีทางเลือกอื่นที่จะสะดวกสบายง่ายแต่การนำมาใช้งานได้มากกว่านี้อีกแล้ว มันจึงถูกใช้ต่อมาเรื่อยจนถึงปัจจุบัน มีความพยายามจะทดแทนการใช้งานรหัสผ่านด้วยหลายๆ วิธี แต่สุดท้ายก็กลายเป็นแค่ทางเลือก หรือถูกใช้เป็นวิธีการช่วยเพิ่มความปลอดภัยให้เท่านั้น และรหัสผ่านที่แท้จริงก็ยังมีอยู่ต่อไป ดังนั้นเราจึงต้องหาวิธีการตั้งรหัสผ่านที่ดีสำหรับการใช้บริการต่างๆ เพื่อป้องกันปัญหาที่จะเกิดขึ้นในกรณีที่ Account โดนแฮค ใน Entry นี้ผมจะขอนำเสนอไอเดียการตั้งรหัสผ่านที่ผมคิดว่ามันเจ๋ง เผื่อหลายๆ คนจะได้เอาไปใช้และรู้สึกว่าตัวเองปลอดภัยมากขึ้น
เรามีเริ่มจากที่มาและทฤษฎีเล็กๆ น้อยๆ กันก่อน รหัสผ่าน หรือ Password ก็ตามตัวอยู่แล้วว่า pass คือผ่าน word ก็คือคำ แปลรวมกันก็คือคำที่ใช้ในการผ่าน หรือเอาไว้ยืนยันตัวตน ปัญหามันเกิดขึ้นเมื่อทุกวันนี้เรามีบริการต่างๆ มากมายบนโลกคอมพิวเตอร์ แถมข้อมูลของเราก็ยังมีค่ามากขึ้นเรื่อยๆ จนกระทั้งไปถึงเรื่องเงินๆ ทองๆ จึงเริ่มเกิดกลุ่มผู้พยายามหากินสบายๆ จากความซื่อบื่อของคนที่ไม่ใส่ใจเรื่องความปลอดภัย พอเกิดปัญหาขึ้นมาก็มาเรียกร้องโวยวาย ความจริงแล้วเคสมากมายหลายอย่างก็เกิดซ้ำแล้ว ซ้ำเล่า แต่คนก็ยังไม่จำ จากเหตุการณ์ต่างๆ ที่เกิดขึ้น ผมจึงได้วิเคราะห์ปัจจัยการตั้งรหัสผ่านที่ดีเอาไว้ดังนี้
- ต้องเป็นสิ่งที่เรารู้ แต่คนอื่นไม่รู้
รหัสผ่านควรจะเป็นที่อยู่ในสมองของเรา และยากที่คนอื่นจะล่วงรู้ได้ว่าเราคิดถึงอะไรเวลาเรากำลังพิมพ์รหัสผ่าน รวมถึงไม่ควรจะเกี่ยวข้องกับข้อมูลที่เกี่ยวกับเราที่หาดูจากเอกสารต่างๆ ได้ - ต้องมีความยาวและความซับซ้อนมากพอ
คอมพิวเตอร์มันเร็วขึ้นทุกวันๆ การตั้งรหัสผ่านจะต้องพยายามเลือกใช้ตัวหนังสือที่หลากหลายที่สุดเท่าที่จะเป็นไปได้ ทั้งตัวเลข และสัญลักษณ์แปลกๆ การเพิ่มตัวอักษรพวกนี้เข้าไปช่วยให้รหัสผ่านเราปลอดภัยขึ้นมากๆ (จะไม่ลงลึกในเรื่องของทฤษฎี เพราะมีคนเขียนมาเยอะแล้ว) - ต้องลืมยาก และสามารถจำได้ง่าย
รหัสผ่านที่เราตั้งต้องเกิดจากสิ่งที่เป็นตัวเรา ผูกพันธ์กับเรา ทำให้เราไม่ลืมต่อให้ไม่ได้ใช้ไปนานๆ และก็สามารถจดจำได้ง่ายในตอนแรกที่เลือกใช้ - ต้องมีความแตกต่างกันในแต่ละบริการ
บริการบนโลกออนไลน์มีมากมายหลายอย่าง ถ้าบริการนึงโดนแฮครหัสผ่านเราหลุดออกไป Account อื่นๆ ที่เราใช้อยู่จะต้องปลอดภัย ดังนั้นต้องตั้งรหัสผ่านแต่ละบริการให้แตกต่างกัน เคสนี้หลังๆ โดนกันบ่อยครับ ระวังกันให้ดี
โดยปรกติแล้วข้อ 1-3 นี่ก็รู้ๆ กันอยู่แล้ว แต่ข้อที่ยากคือข้อที่ 4 เดี๋ยวเราจะมีดูเทคนิคดีๆ ในการตั้งรหัสผ่านให้ได้ครบทั้ง 4 หัวข้อกัน
นำชื่อคนในครอบครัวมาเป็นส่วนหนึ่งในรหัสผ่านเพื่อช่วยจดจำ คนเราคงจะไม่ลืมชื่อคนในครอบครัวใช่ไหม?
ตัวอย่างเช่น ในครอบครัวมีสมาชิก 3 คน พ่อ (Scott) แม่ (Alice) ลูก (Tyler) ดึงตัวอักษรที่ไม่ได้เป็นสระออกมาจากชื่อ (ในการณีนี้ผมเก็บตัวหน้าสุดไว้) จะได้ Sctt Alc Tylr ตอนนี้เราก็ได้รหัสมาแล้ว 11 ตัว
จากนั้นตัวอักษรที่หน้าตาคล้ายตัวเลขเช่น ตัว l = 1 ตัว o = 0ให้เป็นตัวเลข รวมถึงตัวหนังสือที่ใช้สัญลักษณ์แทนได้ เช่น ตัว s = $ และ a = @ ก็ทำการแปลงซะให้เรียบร้อย จากนันเราก็จะได้ $ctt @1c Ty1r
หาอีกสัก 3 ตัวมีแทรกระหว่างช่วง ใช้ชื่อบริการก็ละกัน อย่างเช่นตั้งรหัสผ่านให้บริการ apple ดึง 3 ตัวแรกจากชื่อบริการออกมาได้ a p p เอาไปแทรก ได้ผลลัพธ์เป็น $ctta@1cpTy1rp
ต่อมาอาจจะเพิ่มตัวอักขระพิเศษที่ชอบ เช่น ; $ % & * – _ หรืออื่นๆ ไว้หลังสุดของรหัสผ่าน ในที่นี้เลือก ; (เพราะเป็นโปรแกรมเมอร์) ได้รหัสผ่านสุดท้ายเป็น $ctta@1cpTy1rp;
มาดูกันว่าเวลาจะพิมพ์รหัสผ่านสมองต้องทำงานอะไรบ้าง
- นึกชื่อสมาชิกในครอบครัว
- ทำการสะกดชื่อคนแรกแบบไม่เอาสระ ตัวแรกเป็นตัวใหญ่ และแปลงตัวอักษรที่แปลงเป็นตัวเลขและสัญลักษณ์ได้ไปด้วย
- เมื่อจบชื่อคนที่ 1 ก็เอานึกถึงชื่อบริการที่กำลังใช้ และเอาอักษรแรกของชื่อบริการมาใส่
- วนขั้นตอนที่ 2 และ 3 แต่ใช้ชื่อคนในครอบครัวคนต่อไป และตัวอักษรตัวต่อๆ ไปของบริการ
- ปิดท้ายด้วยตัวอักหนังสือพิเศษที่ชอบมาใส่หลังสุด
จะเห็นว่าเหมือนจะซับซ้อนคิดยากพอควร แต่ฝึกฝนไม่นานผมเชื่อว่าทำได้แน่นอน
ลองมีดูส่วนประกอบของรหัสผ่าน $ctta@1cpTy1rp; เราจะเห็นว่าแบ่งออกได้เป็น
คนที่ 1: $ctt (มาจาก Scott ที่ไม่เอาสระและแปลง S เป็น $)
ชื่อบริการอักษรที่ 1: a (ตัวที่ 1 ของคำว่า apple)
คนที่ 2: @1c (มาจาก Alice ที่ไม่เอาสระ แต่เก็บตัวหน้าไว้ และแปลง A เป็น @ แปลง l เป็น 1)
ชื่อบริการอักษรที่ 2: p (ตัวที่ 2 ของคำว่า apple)
คนที่ 3: Ty1r (มีจาก Tyler ที่ไม่เอาสระและแปลงตัว l เป็นเลข 1)
ชื่อบริการอักษรที่ 3: p (ตัวที่ 3 ของคำว่า apple)
สัญลักษณ์ปืท้าย: ; (มาจากความชอบส่วนบุคคล)
มาวิเคราะห์ระดับความปลอดภัยของรหัสผ่าน $ctta@1cpTy1rp;
- ต้องเป็นสิ่งที่เรารู้ แต่คนอื่นไม่รู้
คนใกล้ตัวอาจจะรู้ว่าแปลงมาจากชื่อคนในครอบครัว แต่คนภายนอกไม่รู้แน่นอน - ต้องมีความยาวและความซับซ้อนมากพอ
ยาว 15 ตัวอักษร ซึ่งยาวมากพอแล้วล่ะ และประกอบด้วยตัวอักษรที่หลากหลายครบทุกรูปแบบ - ต้องลืมยาก และสามารถจำได้ง่าย
รหัสผ่านถูกตั้งมาจากคนชื่อคนในครอบครัว ชื่อบริการ (ซึ่งหาดูได้จากหน้าเว็บ) การแปลงตัวอักษรเป็นตัวเลขและสัญลักษณ์ที่เราเข้าใจอยู่แล้ว รวมถึงปิดท้ายที่สัญลักษณ์โปรดของเรา (ซึ่งอันนี้ต้องจำ) ดังนั้นที่ต้องจำจริงๆ คือขั้นตอนการสร้างรหัสผ่านในช่วงเล็กๆ (ในข้อ 2-3 และ 5 ด้านบน) - ต้องมีความแตกต่างกันในแต่ละบริการ
รหัสผ่านแต่ละบริการจะไม่ตรงกันแน่นอน ตัวอย่างเช่น
Apple: $ctta@1cpTy1rp;
Google: $cttg@1coTy1ro;
Facebook: $cttf@1caTy1rc;
จะเห็นว่ารหัสผ่านแต่ละบริการนั้นไม่ตรงกัน แต่คล้ายกัน ยะงอาจจะพอแกะได้ (จริงหรือ) ถ้าอยากจะให้ยากกว่านี้ก็ลอง shift ตัวอักษรดู เช่น แปลงตัว a เป็นตัว b แปลงตัว p เป็นตัว q ตัวแปลง g เป็นตัว h เป็นต้น ทีนี้รับรองว่าจังทางได้ยากขึ้นอีกมากมาย ต้องได้รหัสมาเปรียบเทียบจาก 3 บริการขึ้นไป
และนั่นก็คือหนึ่งในเทคนิคของการตั้งรหัสผ่านที่มาแนะนำในวันนี้ รูปแบบนี้ยังสามารถประยุกต์ใช้งานได้อีกมากมายหลายอย่าง เช่น เปลี่ยนจากชื่อคนในครอบครัวเป็นของกินที่ชอบ คนที่เกลียด หรือสัตว์เลี้ยงตัวแรก หรืออะไรก็ว่าไปแล้วแต่คน และกระบวนการคิดก็แค่จำว่าเราเลือกวิธีการสร้างรหัสผ่านแบบไหน ทุกครั้งที่ต้องพิมพ์มันก็จะค่อยๆ ไปของมันได้เอง ผมไม่แน่ใจว่าวิธีนี้จะใช้ได้กับคนทั่วไปได้หรือไม่ แต่ผมลองใช้กับพ่อของผมที่อายุ 60+ แล้วเขาก็ยังทำได้นะ แล้วคุณล่ะ ยังใช้รหัสผ่านแต่ละบริการเป็นแบบเดียวกันอยู่รึเปล่า? ถ้าใช่ ผมอยากให้รีบคิดวิธีการตั้งรหัสผ่านที่ชอบ และจงไปตามเปลี่ยนรหัสซะ โดยเฉพาะอีเมล์ และธนาคาร ก่อนที่ทุกอย่างจะสายเกินไปนะครับ 🙂