การตั้งรหัสผ่านให้ระบบปลอดภัย สำหรับเจ้าของระบบ
หน่วยงาน NIST ของสหรัฐเค้าออกประกาศมาตรฐานความปลอดภัยสำหรับรหัสผ่าน และการยืนยันตัวบุคคล ในนาม Special Publication 800-63-3: Digital Authentication Guidelines ซึ่งสถานะวันนี้ เป็น Public Preview แต่ว่าก็มีประโยชน์มากที่เอามาใช้ได้เลย
โดยสิ่งที่แตกต่างไปพอสมควรก็คือ มาตรฐานความปลอดภัยที่เราเคยเจอหลายๆอย่าง มันไม่ดีอีกต่อไปแล้ว เช่น การถามข้อมูลส่วนตัว ในกรณี recover password, ตั้งให้รหัสผ่านหมดอายุเป็นประจำ, รหัสผ่านที่ยุ่งยากและ complex เป็นต้น ทั้งนี้เค้าก็แนะนำสิ่งที่ควรทำเอาไว้สำหรับคนใช้งานและคนที่ดูแลระบบดังนี้
ให้คำนึงถึงคนใช้งานก่อนเสมอ
ไม่ว่าจะเป็นระบบอะไรก็ตาม ให้คำนึงถึงการใช้งาน ที่ไม่ยุ่งยากและลำบากเกินไปก่อนเสมอ เช่น เมื่อก่อน มีการบังคับให้กรอกตัวหนังสือในช่องรหัสผ่านด้วย แต่คนใช้ mobile device จะกรอกได้ลำบากมาก (ในยุคที่มือถือเป็นปุ่มกด ไม่ใช่ระบบสัมผัส ถึงเป็นระบบสัมผัสตัวเลขก็ยังง่ายกว่าอยู่ดี)
ต้องคำนึงถึงขนาดความยาวที่เหมาะสม
อันนี้ ขึ้นอยู่กับความสำคัญของข้อมูลด้วย แต่เค้าแนะนำให้ตั้งเอาไว้ที่ขั้นต่ำ 8 ตัวหนังสือ แต่ถ้าระบบไหนที่ serious มากกว่านั้น ก็ให้เพิ่มจำนวนเข้าไปอีก และต้องยอมรับรหัสที่ยาวไม่น้อยกว่า 64 ตัวหนังสือด้วย (หมายความว่า เราไม่ควรตั้งระบบว่า รับรหัสผ่านที่ยาวไม่เกิน 64 ตัวอักษร)
และระบบต่างๆ ก็ควรรับตัวอักษรที่ print ได้ และ ตัวอักษร Unicode ต่างๆ เช่น ภาษาไทย รวมไปถึง space bar และ emoji ด้วย
และควรจะต้อง Hashed และ Salted ก่อนเก็บด้วย โดยตรงนี้เราก็จะ limit จำนวนตัวหนังสือได้ ซึ่งก็ทำให้ไม่มีปัญหาเรื่องความยาวของรหัสผ่านอีกต่อไป อีกทั้ง ถอดกลับคืนไม่ได้ด้วย
ต้องตรวจสอบรหัสผ่านกับคำที่อยู่ใน dictionary โดยเฉพาะคำพื้นๆ
เช่น Changeme, asdf1234, password หรือว่า ต้องเช็คกับ banned list ก่อนเสมอ
ไม่ควรตั้งข้อกำหนดแบบการผสมตัวหนังสือ
เช่น ต้องมาจาก ตัวหนังสือ ตัวเลข อักขระพิเศษ ผสมกันอย่างน้อย 1 ตัวอะไรแบบนี้ ควรเลิก แต่ว่าเราควรจะรับค่ามาตรวจสอบคำต้องห้ามของเราเองต่างหากจึงจะถูกต้อง เราควรยอมให้ผู้ใช้มีอิสระในการตั้งเอง เพราะบางทีมันก็เป็นแบบที่ยุ่งยาก แต่ง่ายต่อการจำเช่น pA55w8r6
เลิกใช้ password hint ซะ
เพราะว่านั่นแหล่ะ คือคำบอกใบ้ชั้นยอดเลยที่จะทำให้ถูก hack ได้ง่ายมาก
ให้เลิกระบบถามคำถามส่วนตัว
เช่น เรียนโรงเรียนอะไร, หมาชื่ออะไร อะไรเหล่านี้ เพราะว่า ใช้วิธี social engineering เพื่อหลอกถามได้ แล้วก็หลุดอยู่ดี
เลิกการตั้งระบบหมดอายุรหัสผ่าน
หลายบริษัทใช้ระบบบังคับให้รหัสผ่านหมดอายุทุก 3 เดือน ซึ่งเป็นอะไรที่น่าเบื่อมาก และมันใช้งานไม่ได้จริง เพราะว่าคนก็จะเลี่ยงด้วยการตั้งรหัสผ่านหน้าตาแบบเดิมนั่นแหล่ะ แต่เติมเลข หรืออักษร เพื่อให้ไม่เหมือนเดิมแค่ให้ผ่านไปก็พอ แต่หากจะต้อง ตั้งให้ระบบหมดอายุ ก็ให้เป็นสำหรับ case โดน hack หรือรหัสผ่านรั่วออกไปก็จะดีที่สุด
SMS ไม่ปลอดภัยอีกต่อไป
ถ้าจะใช้ SMS เพื่อเป็น 2 factor authen ไม่ได้สร้างให้เกิดความปลอดภัยเหมือนเมื่อก่อนอีกต่อไป เพราะทาง technical สามารถทำให้เกิดความผิดพลาด และ ไม่ปลอดภัยได้หลายรูปแบบมาก รวมทั้งมีช่องโหว่ที่แก้ไขไม่ได้ใน SMS protocol อีกด้วย (SS7 Vulnerability) ดังนั้นต้องเปลี่ยนไปร่วมกับพวก device authen จะดีกว่า