ใช้ Password Manager กันเถอะ

สมัยเด็กๆ ผมก็เห็นโปรแกรม password manager อยู่หลายตัวล่ะครับ ก็คิดว่า เอารหัสผ่านมารวมใส่ไฟล์ๆ เดียวแบบนี้นี่ก็ไม่ต่างกับเอามาแปะหน้าจอคอมสิ

จนกระทั่งปีที่ผ่านมานี้ผมเพิ่งได้คำตอบว่าทำไมถึงควรใช้ Password Manager

“รหัสผ่านที่จำได้คือรหัสที่ไม่ดี”

โอเคว่าเราสามารถเลือกรหัสผ่านยาวๆ ได้ จะเป็น correct horse battery staple หรือจะพิมพ์ไทยแบบ pkpdbo]ewpohe]kppkpws]phvp แต่มีใครจำรหัสผ่านไม่ซ้ำกันเลย 60 เว็บไหวไหมล่ะครับ (มันก็เป็นไปได้นะ ประเภทรหัสว่า this is my facebook, this is my twitter แต่หลุดมาสักอันก็พอเดาได้ว่าอันถัดไปจะเป็นอะไร)

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

ฉะนั้นแล้ว ใช้ password manager เถอะครับ แล้วคุณจะมีรหัส 60 เว็บไม่ซ้ำกันแม้แต่นิด


สมัยเด็กผมมีคำถามอีกอันนึงที่ผมสงสัย คือโปรแกรมพวก password generator เนี่ยมันมีไว้ทำไม ออกมาแบบ [uoK=%FBX$I1Hu#CwlRrWY4j ใครจะไปจำได้

คำตอบก็ยังอยู่ที่ password manager นี่แหละครับว่ารหัสที่เราจำไม่ได้แบบนี้นี่แหละควรจะเก็บใน password manager ไม่ใช่เรานั่งนึกรหัสผ่าน 60 แบบเอง ฉะนั้นจะมีครบตัวอักษร ตัวเลข ตัวพิเศษ แถมยาวและไม่ซ้ำกันอีกด้วย

สรุปแล้วคือ password manager ก็จะมาช่วยให้เราเอารหัสผ่านประเภทที่ว่าคงไม่มีใครจำได้มาเก็บไว้หลายๆ ตัว เพื่อที่ว่าแต่ละเว็บเราจะได้มีรหัสผ่านไม่ซ้ำกัน และเดาได้ยากมาก


ผมเองก็ใช้ Password Manager มาเกือบครึ่งปีแล้วครับ ก็มีประเด็นหลายอันที่น่าสนใจที่อยากมาเล่าให้ฟังประกอบการตัดสินใจ

Master password

ปัญหาของ password manager คือมันจะมีรหัสแม่ที่ไว้เข้ารหัสฐานข้อมูล หลุดปุ๊บคืองานเข้าเลยครับ รหัสตัวนี้เรียกว่า master password ซึ่งมันน่ารำคาญตรงที่ ตั้งยาวมากก็ขี้เกียจพิมพ์โดยเฉพาะในมือถือ (นึกภาพตั้งรหัสยาวๆ แล้วจะต้องพิมพ์ตอน login แบบไม่ใช้จำรหัสผ่านน่ะครับ แถมต้องทำทุกครั้งที่จะล็อคอินเข้าเว็บ เพราะถ้าไม่ตั้ง auto lock เดี๋ยวจะมีคนมาแอบใช้ตอนลืมลุกจากคอม)

โปรแกรม password manager บางตัวก็จะมีวิธีที่ยอมให้ใช้ 2 factor เข้ามาปลดล็อค เช่นผมใช้ KeePass ก็จะใช้ keyfile ได้ด้วย (คือจะ login ต้องมีทั้ง password + keyfile) ผมก็เอา file database ผมใส่ Dropbox ได้ แต่ keyfile ผมเก็บไว้กับตัวไม่ขึ้น cloud เลย หรืออย่าง LastPass จะใช้ OTP เข้ามาช่วยก็ได้

ในความเห็นผมว่ารหัสผ่านตัวที่สำคัญสุดๆ เช่น อีเมล, Dropbox หรืออาจจะรวมไปถึง servers ด้วย พวกนี้ควรจะจำไว้เองดีกว่าเอาใส่ password manager และควรจะไม่ซ้ำเช่นเดียวกัน (ก็จะเหลือที่ต้องจำไม่กี่ตัวจากกว่า 60 เว็บ)

App

แอพ password manager ก็มีหลายตัวครับ จะเป็น KeePass หรือ 1Password, LastPass หรืออื่นๆ อีกมากมาย แต่ผมยังหาตัวที่ถูกใจไม่ได้ (ตอนนี้ผมเองใช้ KeePass 2 อยู่)

ปัญหานึงของผมคือผมใช้ทุก OS ครับ Windows, Linux, Mac มีหมด iOS ก็มีแต่ก็เหมือนไม่มี Android ก็ใช้ (Windows Phone เอ่อ ช่างมันเถอะ) ก็มาดูกันว่าแต่ละตัวเป็นอย่างไรบ้าง

NOTE: ผมไม่ได้ใช้แอพอื่นนะครับ อันนี้คือข้อมูลที่หามาตอนที่ผมเริ่มใช้ password manager ซึ่งอาจจะไม่ถูก เก่า หรือไม่ครบก็ได้

KeePass

  • Open source (ผมรู้สึกว่าเป็นปัจจัยสำคัญตัวนึงนะ เพราะจะได้มั่นใจว่ามันน่าจะถูก peer-review แล้ว และไม่ทำอะไรตุกติก)
  • Offline — ไม่มี sync
  • มีเฉพาะบน Windows
    • ในลินุกซ์ใช้ mono รันพอได้ โปรแกรม support ด้วย (ใช้ xdotool พิมพ์รหัสแทน) แต่ UI ก็จะมีแปลกๆ บ้าง
    • ในแมคผมใช้ MacPass ซึ่งความสามารถพื้นฐานมาก (คือใช้งานได้แต่อย่าหวังว่าจะมีอุปกรณ์อำนวยความสะดวก)
  • มี chrome extension ช่วย fill รหัสในเว็บ สะดวกมาก ปัญหาคือมันต้องลง plugin และ MacPass ไม่รองรับ (มีอยู่ในแผนงานของเค้า)

ปัญหาของผมกับ KeePass คือ OS อื่นๆ นี่แหละครับ ชีวิตจะลำบากขึ้นเยอะเลย

1Password

  • $69.99 (หรือถูกกว่าถ้าซื้อแค่ OS เดียว)
  • โคตรเอียงไปทางแมค
  • ตอนผมดูนี่ UI App Android ห่วยมาก ตอนนี้ปรับปรุงมาแล้ว
  • ไม่มี cloud ใช้ dropbox อยู่ดี (ผมว่าขูดรีดมากสำหรับราคานี้)
  • ไม่มี Keyfile

LastPass

  • ฟรี*
  • ปีละ $12 ได้ฟีเจอร์ต่อไปนี้
    • Mobile apps (ผมว่าสรุปแล้วก็คือต้องจ่ายแหละ)
    • Yubikey support (เป็น hardware OTP ซึ่งมันมีขายแพคเกจ Yubikey พร้อม LastPass Premium เหมือนกัน)
    • ไม่มีโฆษณา
    • Share รหัส
  • Client เป็น browser extension
  • ใช้ OTP ได้
  • Cloud sync — ไม่มีไฟล์ offline ถ้าไม่ได้ใช้โปรแกรมพิเศษ

ที่ผมไม่ปลื้ม LastPass คือมันเป็น cloud นี่แหละครับ ซึ่งก็มีทั้งดีและไม่ดี และอีกเหตุผลนึงที่ไม่ค่อยชอบคือผมไม่ค่อยปลื้ม client มันเท่าไร

iCloud

เดี๋ยวนี้ iCloud ก็มีบริการแนวๆ นี้ด้วย แต่ไม่ใช่บริการหลักเค้า ก็จะไม่ค่อยมีลูกเล่นอะไรเท่าไรครับ ที่สำคัญคือต้องใช้ของแอปเปิ้ลเท่านั้น จบ

Mobile

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

ตอนนี้ KeePass ผมใช้แอพ KeePassDroid อยู่ (open source) ซึ่งก็ค่อนข้างโอเค มีฟีเจอร์เยอะดี (เยอะกว่า MacPass ล่ะ) ไอเดียที่น่าสนใจคือโปรแกรมมี QuickUnlock ซึ่งปิดหรือตั้งค่าได้ คือเวลาไม่ใช้สักพักโปรแกรมจะล็อคให้ แต่จะถามรหัสผ่าน 3 ตัวท้าย (หรือมากกว่า ตั้งได้) ก็จะสะดวกในการพิมพ์

ผมเองอยากให้มันล็อคแบบปัดๆ เหมือนหน้าล็อค Android นะ แต่คิดว่าเค้าคงไม่ทำเพื่อป้องกันการแอบอ่านรหัสจากในแรม

สำหรับการ Sync ตัวโปรแกรมรองรับ Dropbox ครับ หรือ cloud อื่นๆ หลายตัวเลย ก็สะดวกดี

ปัญหาที่จะเจอต่อมาคือการเอารหัสไปใช้ครับ ในคอมเนี่ยมันมี browser extension ดึงไป แต่ในมือถือก็จะใช้วิธี copy paste ซึ่งก็จะยุ่งยากกว่าและไม่ปลอดภัย บางแอพอย่าง KeePassDroid เองก็จะมี keyboard ให้แทน

ผมชอบระบบของ KeePassDroid นะครับ คือจะเข้าเว็บอะไรก็แล้วแต่ ให้กดแชร์ไปที่แอพมันแล้วมันจะเปลี่ยน keyboard เป็นของมันให้เลย ก็แค่จิ้มช่อง user กด User จิ้มช่องรหัส กด Password แล้วกด Go จะเปลี่ยน keyboard กลับให้เป็นอันเดิมเลยด้วย แต่จะทำได้ก็ต้อง root และลงแอพ Secure Settings นะครับ ถ้าไม่ลงแอพหรือไม่รูทต้องสลับ keyboard เอง

สำหรับการ login ในแอพอื่นๆ KeePassDroid รองรับการที่ใส่ Package Name กำกับรหัสผ่าน เวลาล็อคอินก็แค่เปิด keyboard มันมา กดหารหัสผ่านก็จะเจอโดยอัตโนมัติแล้วก็เข้าได้เลย (ตรงนี้อาจจะฟังดู setup ยาก แต่ถ้าใช้คำสั่งค้นหาครั้งแรกมันจะ list รหัสทั้งหมดให้ พอเลือกรหัสแล้วก็จะถามเลยครับว่าจะกำกับ Package Name เลยมั้ย)

สำหรับใน iOS ผมอยากรู้เหมือนกันว่าจะกลายเป็นยังไง แต่มี keyboard API แล้วคงไม่เลวร้ายแล้วมั้งครับ

เครื่องชาวบ้าน

ปัญหาที่เลวร้ายที่สุดคือเครื่องชาวบ้านครับ

LastPass ใช้วิธีเอาแอพใส่ USB ไปจิ้ม ก็จะแนวเดียวกับ KeePass แต่ผมว่ามันไม่ปลอดภัยในการเอาไฟล์รหัสผ่านไปเสี่ยง ก็เลยต้องยอมเปิดมือถือมานั่งพิมพ์รหัสยาวๆ ยากๆ แทน (เคยพิมพ์จน internet banking lock เพราะผมมองไม่ออกว่าเป็นตัวอะไร)

ไอเดียนึงที่ผมว่าน่าสนใจมากคือ KeePassDroid รองรับอุปกรณ์พิเศษตัวนึง (แพงอยู่) ซึ่งเสียบกับคอมแล้วจะเห็นเป็น keyboard และต่อกับมือถือทาง Bluetooth เราก็สามารถกดให้ KeePassDroid ส่งสัญญาณไปให้ keyboard พิมพ์รหัสผ่านลงไปได้เลย แต่ข้อเสียของวิธีนี้คืออุปกรณ์มันแพงนั่นแหละครับ และก็มันส่งแบบไม่เข้ารหัสด้วย

สรุป

ถึงจะมีปัญหาเยอะแยะ ผมยังคิดว่าถ้ามีแค่ OS เดียว (อาจจะพ่วงกับมือถือนิดหน่อย) การใช้ password manager น่าจะไม่มีปัญหาอะไรลำบากแบบผมแล้วนะครับ ก็อยากแนะนำให้ลองใช้ดู ค่อยๆ เปลี่ยนรหัสที่ใช้บ่อยไปทีละตัวเรื่อยๆ ก็น่าจะเริ่มชินเอง