เคล็ดลับการรักษารหัสผ่านออนไลน์เพื่อป้องกันการถูกขโมยบัญชี

2 กุมภาพันธ์ 2018

วสันต์ ลิ่วลมไพศาล
วสันต์ ลิ่วลมไพศาลผู้ร่วมก่อตั้งเว็บไซต์ Blognone.com เว็บเทคโนโลยีชั้นนำของไทย ผู้เขียนหนังสือความปลอดภัยคอมพิวเตอร์พื้นฐาน

ข่าวความปลอดภัยคอมพิวเตอร์มักมีประเด็นใหม่ๆ เป็นข่าวอยู่เสมอ ตั้งแต่ช่องโหว่ระบบปฎิบัติการ ไปจนถึงช่องโหว่ซีพียูที่เป็นข่าวใหญ่ในปี 2018 แต่ในโลกความเป็นจริง คนทั่วไปมักเสี่ยงภัยจากการโจมตีแบบง่ายๆ สองแบบ คือ การเดารหัสผ่านเพื่อล็อกอินตรงๆ และการถูกหลอกให้ใส่รหัสผ่านบนเว็บปลอม (phishing) การโจมตีทั้งสองแบบมีมานานตั้งแต่อินเทอร์เน็ตยุคแรกๆ และน่าตกใจที่มันยังคงใช้งานได้ดีจนทุกวันนี้

การบังคับให้ผู้ใช้ตั้งรหัสผ่านที่ซับซ้อนขึ้นมักไม่ประสบความสำเร็จ เช่น กฎที่บังคับให้ผู้ใช้ต้องใส่ตัวอักษรใหญ่, อักษรเล็ก, ตัวเลข, และสัญลักษณ์ ทำให้ผู้ใช้จำนวนมากตั้งรหัสผ่านเป็น “Password#1” จนกลายเป็นหนึ่งในรหัสผ่านยอดนิยม การบังคับตั้งไม่ให้ตั้งรหัสผ่านซ้ำเดิมก็มักทำให้ผู้ใช้ตั้งรหัสคล้ายๆ เดิมวนไปเรื่อยๆ เช่น “Password#2”, “Password#3”

วันนี้เราจะมาดูเทคนิคการรักษาความปลอดภัยรหัสผ่านให้ดีกว่าเดิม โดยไม่ต้องทรมานกับการจำรหัสผ่านยากๆ จนชีวิตต้องลำบากกับการไปกู้บัญชีเมื่อลืมรหัสผ่านกันเรื่อยๆ หรือลดความปลอดภัยด้วยการจดรหัสผ่านไว้ที่หน้าจอ ด้วยการใช้ซอฟต์แวร์จัดการรหัสผ่าน และการใช้กุญแจ U2F เพื่อเพิ่มความปลอดภัย

ซอฟต์แวร์จัดการรหัสผ่าน ของคู่มือที่ควรใช้ทุกคน

ผู้เชี่ยวชาญความปลอดภัยหรือผู้ใช้คอมพิวเตอร์ระดับสูงทั่วไปมักไม่แนะนำให้จดรหัสผ่านไว้ เพราะหากกระดาษที่จดไว้สูญหายหรือตกไปอยู่ในมือคนร้าย ก็จะทำให้บัญชีถูกเจาะได้โดยง่าย หลายคนอาจจะใช้บริการออนไลน์เช่น Google Docs เก็บรหัสผ่านตรงๆ บริการเหล่านี้เก็บเอกสารเหมือนเอกสารทั่วไปโดยไม่ได้ป้องกันเป็นพิเศษแต่อย่างใด ทางที่ดีกว่าคือใช้ซอฟต์แวร์จัดการรหัสผ่าน (password manager) ที่ออกแบบมาโดยตรง

ซอฟต์แวร์จัดการรหัสผ่านต่างจากการจดรหัสผ่านไว้ในไฟล์ธรรมดาที่มันมักเข้ารหัสไฟล์ไว้เสมอ ทำให้แม้ไฟล์เหล่านี้จะหลุดออกไป เช่น เผลอส่งอีเมลให้คนอื่น หรือเผลอแชร์ไฟล์ออนไลน์ ข้อมูลในไฟล์ก็ยังคงปลอดภัย ข้อเสียของการเข้ารหัสเช่นนี้คือเราต้องจำรหัสตัวไฟล์เอง แต่ก็เป็นเพียงรหัสเดียวที่เราห้ามลืม ส่วนรหัสอื่นๆ สามารถอ่านจากไฟล์ได้ (ทำให้บางโปรแกรมตั้งชื่อล้อกับแนวทางนี้ เช่น LastPass)

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

ตัวอย่างหน้าจอ KeePass

ซอฟต์แวร์จัดการรหัสผ่านในท้องตลาดมีจำนวนมาก เช่น LastPass, 1Password, Dashlane แต่ตัวหนึ่งที่เป็นโอเพนซอร์สและได้รับความนิยมค่อนข้างสูงคือ KeePass และโปรแกรมเวอร์ชันแอนดรอยด์ Keepass2Android

ตัวอย่างหน้าจอ Login

รักษาความปลอดภัยบัญชีออนไลน์ให้ปลอดภัยขึ้นด้วยกุญแจ U2F

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

แต่ SMS เองก็มีข้อจำกัดอยู่บ้าง เนื่องจากผู้ใช้อาจจะถูกหลอกด้วยเว็บปลอมจนยอมกรอกรหัสจาก SMS อยู่ดี หรือในช่วงหลังมีแอปจำนวนมากพยายามหลอกให้ผู้ใช้ติดตั้งโดยแอปสามารถอ่าน SMS จากในเครื่องส่งไปยังคนร้ายได้

มาตรฐาน FIDO U2F สร้างโดย FIDO Alliance ที่มีกูเกิลเป็นแกนนำ เป็นมาตรฐานที่ทำให้ผู้ผลิตฮาร์ดแวร์สามารถสร้างกุญแจราคาถูก (ต่ำกว่า 1,000 บาท) โดยใช้ยืนยันตัวคนกับบริการต่างๆ ได้อย่างหลากหลาย ความสามารถสำคัญของมันที่เหนือกว่า SMS คือเมื่อผู้ใช้เข้าใช้งานบริการใดๆ เช่น เข้าใช้งานเว็บ มันจะยืนยันบริการเสียก่อน เช่น เมื่อเราต้องการล็อกอินเว็บ google.com กุญแจก็จะรับรู้ว่าเป็นการล็อกอินผ่านเว็บ google.com จริงๆ การหลอกผู้ใช้ด้วยการสร้างโดเมนที่คล้ายๆ กัน เช่น gooogle.com จะไม่สามารถหลอกกุญแจให้ปล่อยรหัสยืนยันผู้ใช้ไปได้

U2F แบบต่างๆ

U2F ช่วงแรกรองรับเฉพาะ USB เท่านั้น แต่ในช่วงหลังมีทั้งรุ่น USB, NFC, Bluetooth, รวมไปถึงรุ่นซอฟต์แวร์แบบติดตั้งในเครื่อง ส่วนโน้ตบุ๊กรุ่นใหม่ๆ หลายรุ่นก็มี U2F ติดตั้งมาให้ในเครื่อง ทำให้สามารถล็อกอินโดยยืนยันว่ามาจากเครื่องเดิมที่เคยล็อกอินมาก่อน

หน้าจอลงทะเบียน U2F ของกูเกิล

หน้าจอลงทะเบียนกุญแจ U2F ของกูเกิล

หน้าจอลงทะเบียนกุญแจ U2F ของกูเกิล เมื่อสั่งลงทะเบียนให้เสียบกุญแจเข้าเครื่องและกดปุ่มที่กุญแจหนึ่งครั้ง ภาพบนเป็นของ Google Account และภาพล่างเป็นของ Facebook

บริการสำคัญที่เปิดให้ใช้งาน U2F เพื่อยืนยันตัวตนได้ เช่น Gmail, Facebook, Dropbox, Github, Bitbucket โดยเฉพาะ Gmail นั้นมีโครงการพิเศษ คือ Google Advanced Protection ที่บังคับให้ล็อกอินด้วยกุญแจ U2F เท่านั้น ไม่สามารถกู้บัญชีด้วย SMS หรือวิธีอื่นๆ ได้ตามปกติ

กุญแจ U2F มักมีปุ่มกดบนตัวกุญแจหนึ่งปุ่ม (เช่นในภาพตัวอย่างกุญแจ USB เป็นปุ่มแบบสัมผัส) เมื่อต้องการผูกกุญแจเข้ากับบริการเว็บจะขอให้เราเสียบกุญแจเข้าพอร์ต USB และกดปุ่มเพื่อลงทะเบียนหนึ่งครั้ง หลังจากนั้น

การเริ่มใช้งานบน Gmail สามารถเข้าไปยังเว็บ myaccount.google.com เลือก Sign-in & security -> 2-Step Verification -> Add Security Key
สำหรับการใช้งาน U2F บน Facebook เมื่อสั่งซื้อกุญแจ U2F มาแล้ว สามารถเริ่มใช้งานได้โดยเข้าไปยังหน้า Settings -> Security and login -> Setting up extra security -> Security keys แล้วสั่ง Add key เพื่อเพิ่มกุญแจ

ความปลอดภัยที่ยังรอผู้ให้บริการร่วมมือ

การใช้ซอฟต์แวร์จัดการรหัสผ่าน และกุญแจ U2F เป็นด่านสำคัญที่ช่วยให้ผู้ใช้สามารถรักษาความปลอดภัยบัญชีออนไลน์ได้สะดวกขึ้น แต่เทคนิคทั้งสองอย่างก็ยังใช้งานได้อย่างจำกัด แม้แต่ซอฟต์แวร์จัดการรหัสผ่าน ก็ยังมีแอปพลิเคชันจำนวนมากใช้เทคนิคการใส่รหัสผ่านแปลกๆ จนกระทั่งซอฟต์แวร์จัดการรหัสผ่านทำงานด้วยไม่ได้ เช่นแอปพลิเคชันธนาคารหลายแห่งที่มักสร้างคีย์บอร์ดในตัวแอปเอง รวมถึงบริการออนไลน์ที่ยังรองรับกุญแจ U2F ไม่มากนัก แต่แนวทางนี้คงกำลังเปลี่ยนไปเมื่องาน Money20/20 เมื่อปีที่แล้วธนาคารขนาดใหญ่อย่าง Bank of America ประกาศรองรับการใช้ U2F เพื่อยืนยันการใช้บริการของธนาคารแล้ว แนวโน้มที่เราจะเห็นบริการทางการเงินรองรับก็คงมากขึ้น

บทความที่เกี่ยวข้อง