เสริมการพิสูจน์ตัวตนขององค์กรให้แข็งแกร่ง ด้วย Special Publication 800-63-3: Digital Authentication Guidelines จาก NIST
เมื่อปลายเดือนที่ผ่านมา สถาบันมาตรฐานและเทคโนโลยีแห่งชาติสหรัฐฯ (NIST) ออกคู่มือแนะนำการพิสูจน์ตัวตนดิจิทัลฉบับร่างอันใหม่ คือ Special Publication 800-63-3: Digital Authentication Guidelines เพื่อให้หน่วยงานรัฐบาลของสหรัฐฯ (และองค์กรทั่วไป) สามารถนำไปปรับใช้กับนโยบายและข้อกำหนดของตนเอง โดยมีจุดประสงค์เพื่อความความมั่นคงปลอดภัยและลดความซับซ้อนให้แก่ระบบการพิสูจน์ตัวตนขององค์กร

ทาง Sophos ผู้ให้บริการโซลูชันรักษาความปลอดภัยเพื่อป้องกันภัยคุกคามระดับสูง จึงได้สรุปเนื้อหาเกี่ยวกับนโยบายการบริหารจัดการรหัสผ่าน (Password Policies) เพื่อให้บุคคลทั่วไปสามารถอ่านและเข้าใจได้ง่าย รวมถึงสามารถนำไปประยุกต์ใช้ในชีวิตประจำวัน และปรับแต่งเพื่อให้ใช้งานกับนโยบายขององค์กรได้อย่างรวดเร็ว
อะไรใหม่ใน NIST SP 800-63-3
คิดถึงผู้ใช้เป็นสำคัญ – Password Policies ควรเป็นอะไรที่เข้าใจง่าย และไม่เป็นภาระต่อผู้ใช้มากจนเกินไป
อธิบายให้เข้าใจง่าย คือ ควรหยุดบังคับผู้ใช้ให้ทำในสิ่งที่ไม่ได้เพิ่มความมั่นคงปลอดภัยอย่างแท้จริง จากการวิจัยพบว่า Best Practices ที่หลายๆ คน หรือหลายๆ หน่วยงานอ้างว่า “ควรปฏิบัติตาม” แท้ที่จริงแล้ว มันไม่ได้ช่วยให้ระบบมีความมั่นคงปลอดภัยสูงขึ้น จนถึงขั้นยอมแลกกับความลำบากของผู้ใช้ได้ (Security ไม่สมดุลกับ Usability)
คำนึงถึงความยาว -Guideline ฉบับใหม่ของ NIST ระบุว่า รหัสผ่านที่ดีควรมีจำนวนตัวอักษรไม่น้อยกว่า 8 ตัว (ไม่มีการบังคับว่า รหัสผ่านต้องห้ามยาวเกินเท่าไหร่ ผู้ดูแลระบบความมั่นคงปลอดภัยสามารถเพิ่มความยาวขั้นต่ำได้ตามความต้องการ ขึ้นอยู่กับว่าระบบพิสูจน์ตัวตนนั้นสำคัญมากน้อยเพียงใด)
NIST ยังระบุเพิ่มอีกว่า องค์กรควรกำหนดความยาวสูงสุดของรหัสผ่านไม่น้อยกว่า 64 ตัวอักษร นั่นหมายความว่า จะไม่มีข้อความแจ้งเตือนว่า “ขออภัย รหัสผ่านของคุณไม่สามารถยาวเกินกว่า 16 ตัวอักษรได้” อีกต่อไป นอกจากนี้ แอพพลิเคชันที่ใช้ต้องอนุญาตให้ใช้ตัวอักษร ASCII ได้ทั้งหมด ไม่เว้นแม้แต่ Spaces และควรอนุญาตให้ใช้ตัวอักษร UNICODE ทั้งหมด รวมไปถึง emoji ด้วยเช่นกัน
เรียกได้ว่าเป็นคำแนะนำที่ยอดเยี่ยม เมื่อพิจารณาถึงว่า รหัสผ่านจะต้องถูก Hash และ Salt ขณะถูกจัดเก็บ ดังนั้นจึงไม่ควรมีการกำหนดความยาวขั้นต่ำแต่อย่างใด นอกจากนี้ การใช้ Passphase หรือกลุ่มคำก็ถือว่าเป็นความคิดที่ดีไม่แพ้กัน
ตรวจสอบรหัสผ่านว่าไม่ใช่คำในพจนานุกรม – องค์กรไม่ควรอนุญาตให้ผู้ใช้ใช้รหัสผ่าน เช่น ChangeMe, thisisapassword, yankees และอื่นๆ ผู้ดูแลระบบด้านความมั่นคงปลอดภัยควรมีรายการ Dictionary ที่แฮ็คเกอร์นิยมใช้โจมตีแบบ Dictionary Attack เพื่อป้องกันไม่ให้ผู้ใช้ในองค์กรใช้รหัสผ่านที่เป็นที่รู้กันว่าสามารถแฮ็คได้ง่าย

สิ่งที่ไม่ควรทำ
ไม่ใช้กฏการผสมที่ซับซ้อน – หมายความว่า องค์กรไม่ควรออกนโยบายที่ระบุการผสมอักษรและอักขระหลายๆ แบบเข้าด้วยกัน เช่น รหัสผ่านจำเป็นต้องมีตัวพิมพ์เล็ก ตัวพิมพ์ใหญ่ ตัวเลข และอักขระพิเศษอย่างน้อยอย่างละ 1 ตัวอักษร แต่ห้ามใช้ &%#@_ อะไรแบบนี้ เป็นต้น ควรอนุญาตให้ผู้ใช้สามารถเลือกใช้รหัสผ่านได้อย่างอิสระ และพยายามผลักดันให้ใช้ Passphrase ที่มีความยาวในระดับหนึ่ง แทนที่จะใช้รหัสผ่านที่มีความซับซ้อน จำได้ยาก แต่ไม่มั่นคงปลอดภัยอย่างแท้จริง เช่น P@ssw0rd
หยุดใช้ Password Hints – สิ่งนี้เรียกได้ว่าเป็นเครื่องมือสำคัญที่แฮ็คเกอร์ใช้เดารหัสผ่านของผู้ใช้ได้เป็นอย่างดี จากสถิติ ผู้ใช้บางคนตั้งค่า Password Hints เช่น “number 123456”, “1-8”, “the password is password”, “6 long qwert”, “1*6” เป็นต้น ซึ่งเห็นแล้วสามารถเดารหัสผ่านได้แทบจะทันที (อ่านรายละเอียดเพิ่มเติมได้ที่ Adobe’s 2013 Password Breach)
Knowledge-based Authentication ล้าสมัยไปแล้ว – KBA คือ รายการคำถามที่เว็บไซต์ใช้เพื่อยืนยันตัวตนของผู้ใช้เมื่อลืมรหัสผ่าน เช่น คุณเรียนชั้นมัธยมที่ไหน ทีมฟุตบอลโปรดคือทีมอะไร หรือ บริเวณที่คุณอาศัยสมัยเด็กคือที่ไหน เป็นต้น ซึ่งคำถามเหล่านี้เป็นข้อมูลทั่วไปที่แฮ็คเกอร์สามารถหาได้ง่ายมาก เพียงแค่ใช้ Google หรือโทรศัพท์สอบถามเท่านั้น
เลิกกำหนดอายุของรหัสผ่านโดยไม่จำเป็น – ถ้าองค์กรต้องการให้ผู้ใช้ตั้งรหัสผ่านที่ยาว เดาได้ยาก และแข็งแกร่งเพียงพอ องค์กรไม่ควรให้ผู้ใช้เปลี่ยนรหัสผ่านบ่อยๆ โดยไม่จำเป็น
เหตุผลที่ควรตั้งรหัสผ่านใหม่ คือ เมื่อผู้ใช้ลืมรหัสผ่านของตน ถูกหลอกขโมยรหัสผ่านไป หรือข้อมูลรหัสผ่านในฐานข้อมูลถูกแฮ็ค เป็นต้น
Hash, Salt และ Stretch รหัสผ่านก่อนจัดเก็บ
นอกจากสิ่งใหม่และสิ่งที่ไม่ควรทำใน NIST SP-800-63-3 ที่กล่าวมาแล้ว องค์กรควรมีการ Hash, Salt และ Stretch รหัสผ่านก่อนเก็บลงในฐานข้อมูล เช่น Salt จำนวนไม่น้อยกว่า 32 บิท ใช้ HMAC Hash แบบ SHA-2 หรือ SHA-3 และใช้ Stretching Algorithm แบบ PBKDF2 ไม่น้อยกว่า 10,000 Iterations เป็นต้น
อีกสิ่งหนึ่งที่เป็นการเปลี่ยนแปลงครั้งใหญ่ใน Guideline นี้คือ SMS ไม่ควรถูกนำมาใช้ในการพิสูจน์ตัวตนแบบ 2-factor Authentication อีกต่อไป เนื่องจากไม่มั่นคงปลอดภัยเพียงพอ (อ่านรายละเอียดเพิ่มเติมที่นี่)
อ่านร่างคู่มือฉบับเต็มได้ที่: https://pages.nist.gov/800-63-3/
ที่มา: https://nakedsecurity.sophos.com/2016/08/18/nists-new-password-rules-what-you-need-to-know/