ตั้ง Password ให้ปลอดภัยและไม่ลืม

ทุกวันนี้ผมค่อยไม่ได้จำ Password (พาสเวิร์ด) ตัวเองเลย ใช้วิธีสร้างพาสเวิร์ดเป็นระบบแทน

จริงๆ แล้วผมจะเลี่ยงปัญหาจุกจิกพวกนี้ด้วยการไปใช้แอพประเภท 1-password ก็ได้ แต่ใครจะรู้? ตราบได้ที่ข้อมูลเหล่านี้ล่องลอยอยู่ในอินเทอร์เน็ต ไม่ว่าโอกาสจะต่ำกว่า 1% สักแค่ไหน ความจริงที่ว่ามันอาจจะถูกขโมยได้สำหรับผมก็ยังคงน่ากลัวอยู่เสมอ แล้วเวลาขโมยได้ไป ไม่ใช่เขาได้แค่พาสเวิร์ดเดียวไปนะครับ มันไปทีเดียวหมดเลย… แล้วไหนยังจะเรื่องตลกร้ายอีกข้อหนึ่งที่ว่าถ้าเราจำไม่ได้แม้แต่พาสเวิร์ดอันนั้นอันเดียว พาสเวิร์ดที่เหลือก็จะถูกล็อคตายไปด้วย เราเลยต้องตั้งพาสเวิร์ดอันเดียวนี้ให้จำง่ายที่สุด ซึ่งกลายเป็นว่าเราอาจจะต้องพิมพ์มันบ่อยๆ แล้วคนก็จะเห็นได้ อ่านทันเพราะมันสั้น หรือบางทีมันก็ง่ายเสียจนคนอื่นอาจจะเดาได้ ฯลฯ

ฟังดูพายเรือในอ่างชอบกล สุดท้ายก็กลับมาที่ปัญหาเดิมคือเราควรจำให้ได้ “อย่างน้อยสักอัน”

Unique Password Patterns

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

  1. ไม่ต้องจำ • แน่นอนเราควรนึกมันออกทุกครั้งที่ไปถึงหน้าเว็บนั้น
  2. เป็นสากล • จะวิริศมาหราอย่างไรไม่สำคัญเท่าฝรั่งเขาควรจะยอมรับพาสเวิร์ดของเราได้ด้วย ระบบสากลในปัจจุบันเรียกร้องให้เรามี (ถ้าเป็นไปได้) ทั้งสัญลักษณ์ ตัวพิมพ์ใหญ่ ตัวเลขปนเข้าไปด้วย แล้วในเว็บเก่าๆ บางทีก็ยังขอให้ความยาวไม่เกิน 12 ตัวอักษรก็มี (…เยอะเนอะ)
  3. ไม่เป็นภาษาคน • ถ้าเป็นไปได้จะไม่ใช่คำในพจนานุกรม ดังนั้น แม้คนเห็นก็ต้องไม่รู้เรื่องหรือเข้าใจได้น้อยที่สุด

และสองข้อสุดท้ายที่ผมอยากได้ และพอเห็นทางทำได้อยู่รางๆ คือ

  • อยากได้สูตรที่สร้างพาสเวิร์ดระดับ Strong (ความปลอดภัยสูง) เสมอ
  • มีทางไหมที่เราจะมีพาสเวิร์ดที่ไม่ซ้ำกันเลยสักเว็บหรือสักแอพไปพร้อมๆ กัน?

ผมได้แพทเทิร์นที่น่าสนใจมาดังนี้ครับ

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

Unique Password Example

ผมจะลองตั้งพาสเวิร์ดดูสักชุดจากสูตรทั้งหมดที่ประมวลมานะครับ สมมติว่าเป็น Google.com ละกัน พิมพ์ขณะที่แป้นเป็นภาษาอังกฤษ และปุ่ม Caps Lock ไม่ได้ทำงานอยู่นะครับ

Cyo=v[elgxx

พอเดาออกไหมครับว่าพาสเวิร์ดสร้างจากอะไรบ้าง? ใบ้ให้ว่าพาสเวิร์ดนี้มีส่วนประกอบอยู่ 3 ส่วน… ถ้าเดาไม่ถูกลองอ่านเฉลยข้างล่างก็ได้ครับ ^___^

อนึ่ง ตัวอย่างที่ยกมาให้นี้เป็นตัวอย่างที่แสดงทุกเทคนิคในการตั้งพาสเวิร์ดรวดเดียวเลย หากฟังดูซับซ้อนเกินไปหรือคิดว่าไม่จำเป็น แน่นอนว่าเวลาจะนำไปใช้เราอาจจะลดทอนความซับซ้อนของกฎลงได้ตามแต่ใจเลย แต่เชื่อว่าพออ๋อแล้วจะนึกออกเลยว่าฉันก็ตั้งพาสเวิร์ดแบบนี้ได้เหมือนกัน ไม่ยากเลย!

1. “xx” คือการใช้ salt

จริงๆ นี่แทบจะเป็นกฎพื้นฐานในการตั้งพาสเวิร์ดเลยครับ คือการ “ใส่คำที่เรารู้คนเดียว” เข้าไปรวมในพาสเวิร์ดด้วย (คิดว่าโปรแกรมเมอร์เขาจะเรียกวิธีการนี้ว่าเป็นการใส่ salt หรือเกลือ ลงไปในพาสเวิร์ด) เช่น สาวๆ อาจจะใส่ xoxo หรือ xx ตามท้ายเสมอแทนคำว่าจุ๊บๆ เข้าไปในพาสเวิร์ดด้วย เป็นต้น

สำหรับคนที่ไม่เคร่งครัดเรื่องพาสเวิร์ดมากนักอาจใช้เรื่องนี้เรื่องเดียวในการปรับปรุงพาสเวิร์ดให้ดีขึ้นอย่างเดียวก็พอได้ในระดับหนึ่งแล้วครับ ที่สำคัญคืออย่าเลือกคำที่เป็นคำจากดิคชันนารี เสกสรรอะไรขึ้นมาเองก็ได้ครับ อย่างเช่นปีเกิด (87) ไซส์เสื้อ (M) หรือถ้านึกไม่ออกจริงๆ ก็เดือนเกิดแบบตัวเล็กบ้างใหญ่บ้าง (mAy) ฯลฯ ก็ยังพอทำเนา

2. “elg” คือใส่ชื่อเว็บเข้าไปด้วย

how links look like
use the one before .co or .net or .com as another password salt

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

แต่ปัญหาที่ตามมาหลังจากใช้ไป 2-3 เว็บ ผมพบความจริงที่ว่าเวลาเราไปเข้าเว็บชื่อยาวๆ อย่าง whatismyipaddress มันกลายเป็นว่าเราต้องใช้จินตนาการสูงมากเลยในการพิมพ์ให้ถูกทั้งหมด (กลายเป็นปัญหาซะเอง .________.) เลยกลับมานั่งนึกว่าจริงๆ แล้ว เราอาจไม่ได้ต้องการทั้งหมดของชื่อเว็บก็ได้นี่นา…

วิธีการแปลงชื่อเว็บให้อยู่ในรูปที่เป็นมิตรมากขึ้น สามารถเลือกทำได้ดังนี้

  • เอามาแค่ 3-4 ตัวอักษรจากชื่อเว็บก็พอ
  • จากข้างหน้า หรือจากข้างหลังก็ได้ สมมติว่าเราเข้าเว็บ http://truemoveh.truecorp.co.th/ เราอาจใช้แค่ true หรือ corp ก็พอ แต่อย่าลืมนะครับว่าชื่อเว็บส่วนที่เป็นหลักของเว็บในกรณีนี้คือชุดที่อยู่หน้า .co.th ซึ่งก็คือ .truecorp นะจ๊ะ เพราะชุด truemoveh. นั้นจะเปลี่ยนแปลงได้บ้าง… สรุป ใช้อะไรก็ตามที่อยู่ติดกับ .co หรือ .net หรือ .com ฯลฯ เป็นหลักครับ
  • ถ้าอยากให้โหดกว่านั้น ก็เรียงตัวหนังสือจากหลังมาหน้าด้วยก็ได้ เช่นกรณีของผมที่เว็บ Google ผมใช้ elg ซึ่งเป็น 3 ตัวสุดท้าย และเรียงถอยหลังแทน เป็นต้น

2. “Cyo=v[” คือพิมพ์ภาษาไทยด้วยแป้นอังกฤษ

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

Cyo=v[elgxx คือ [พิมพ์ไทยแป้นอังกฤษว่า ฉันชอบ] + [ชื่อเว็บ 3 ตัวสุดท้ายอ่านถอยหลัง] + [salt ว่า xx หรือจุ๊บจุ๊บ]

เคยเจอปัญหา “ลืมปลด Caps Lock” หรือ “ลืมสลับแป้นภาษา” ก่อนพิมพ์พาสเวิร์ดใช่ไหมครับ? เหมือนจะเป็นข้อเสียแต่จริงๆ แล้วหากนำมาใช้ในการสร้างพาสเวิร์ดนั้น ข้อนี้เป็นหลักการที่ดีมากๆ ข้อหนึ่ง เพราะฝรั่งต่อให้เก่งแค่ไหนก็คงเดาท่อนนี้ของพาสเวิร์ดได้ยากเต็มที่… นี่อาจเป็นข้อดีข้อเดียวของการมีภาษาประจำชาติ และมีแป้นพิมพ์ที่ไม่ใช่ภาษาอังกฤษ (ha-ha)

คำว่า Cyo=v[ เกิดจากการพิมพ์คำว่า “ฉันชอบ” ไว้ข้างหน้า คำว่าฉันชอบมีอะไรพิเศษหรือไม่? มีครับ เมื่อพิมพ์คำว่า ชอบ ด้วยแป้นภาษาอังกฤษเราจะได้ =v[ ซึ่งข้อนี้เรานำมาใช้เพราะเราต้องการสัญลักษณ์บางตัวที่อนุญาตให้มาใช้ในพาสเวิร์ดได้มาปะปนในพาสเวิร์ดของเราบ้าง

จากเอกสารของ Oracle และ Microsoft ประกอบ พบว่านอกจากตัวเลขแล้ว สัญลักษณ์ ` ~ ! @ # $ % ^ & * ( ) _ – + = { } [ ] | : ; ” ‘ < > , . ? / สามารถใช้ในพาสเวิร์ดได้ครับ ซึ่งหากเรากลับแป้นเป็นภาษาไทย ก็จะได้ตัวหนังสือ + ๑ ๒ ๓ ๔ สระอู ฿ ๕ ๖ ๗ ๘ ข ๙ ช ฐ , บ ล ฃ ฅ ซ ว . ง ฒ ฬ ม ใ ฦ ฝ ถ้าเราเลือกเฉพาะตัวอักษรที่ผสมออกมาเป็นคำได้ง่ายๆ ก็คงจะมี ข ช บ ล ซ ว ง ม ใ ที่ผมว่าน่าจะเลือกใช้ง่ายดี ขอให้มีตัวหนังสือเหล่านี้อย่างน้อย 1 ตัวในพาสเวิร์ดของเรา พาสเวิร์ดของเราก็จะเข้าขั้นเดาได้ยากขึ้นไปอีกขั้นหนึ่งแล้วครับ

คำแนะนำอื่นๆ อีกนิดหน่อย

สรุปสิ่งที่น่าจะจำเป็นตอนจะเลือกตั้งพาสเวิร์ดครับ

  • ควรลองพิมพ์ออกมาดูเพื่อเช็คว่ายังมีตัวอักษรที่อาจใช้ไม่ได้รวมอยู่ด้วยหรือไม่
  • ทั้ง 3 ส่วนนี้สลับที่กันได้ ไม่จำเป็นต้องวางเรียงตามตัวอย่างนะครับ แต่ถ้าจัดเป็นประโยคที่เราจำได้ก็จะดีที่สุดครับ
  • ควรเอาตัวหนังสือที่อ่านไม่ออกนำหน้า เพราะเวลาคนแอบมองพาสเวิร์ดของเราเขาจะได้เริ่มงงและจำยากตั้งแต่ตัวอักษรแรกๆ ครับ ถ้าตัวหนังสือกลุ่มแรกจำง่าย โอกาสที่เขาจะจำส่วนที่เหลือได้จากการสังเกตมากกว่า 1 ครั้งก็น่าจะมากกว่า แนะนำครับ เอาข้อความที่อ่านไม่รู้เรื่องขึ้นก่อนเสมอ
  • อย่าลืมลดทอนลงจนเหลือประมาณ 12 ตัวอักษร ผมว่าเท่าที่ลองมามีปัญหากับบางเว็บครับเวลาเกิน
  • มีบางคนเสนอให้มี “ตัวเลขหรือตัวหนังสือนับรอบ” เพิ่มอีกตัวหนึ่ง อันนั้นจะยิ่งทำให้พาสเวิร์ดยากขึ้นไปอีกระดับเลยครับ แต่ผมเห็นว่าซับซ้อนเกินไปแล้วสำหรับพาสเวิร์ดระดับธรรมดา ไว้จะเขียนวิธีการสร้างพาสเวิร์ดระดับสูง (ในความคิดของผม) อีกครั้งหนึ่งละกันนะครับ ซึ่งเหมาะกับพาสเวิร์ดอย่างพาสเวิร์ดธนาคารของเรา หรืออีเมลส่วนตัว

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

ไว้จะเขียนถึงการสร้างพาสเวิร์ดระดับนั้นอีกครั้งนะครับ

5 Comments

  1. อยากรบกวน ให้ช่วยสอนการตั้งพาสเวิร์ดขั้นสูง(ในความคิดของพี่) ด้วยครับ

    บทความนี้น่าสนใจมากครับ อธิบายได้เข้าใจง่าย รวมถึงเป็นประโยชน์ซึ่งสามารถนำไปใช้ได้จริง
    ขอขอบคุณที่นำเสนอ+แบ่งปันความรู้ดี ๆ แบบนี้ให้ครับ

      1. ถ้าเสร็จรบกวนพี่แจ้งให้ผมทราบด้วยนะคร้าบ อยากได้มาก ๆ เลย

        รวมถึงถ้าหากมีเทคนิคหรือเคล็ดลับในการตั้ง Username และ E-mail อยากจะรบกวนพี่อีกทีน่ะครับ 😀 มีประโยชน์มากจริง ๆ ครับพี่

        ขอบคุณอีกทีครับ

        1. ขอโทษที่ตอบช้าครับ 🙂 คิดไปคิดมาตอบตรงนี้อาจจะเร็วกว่า
          • ถ้าเป็นพาสเวิร์ดที่เกี่ยวกับธนาคารผมจะตั้งแยกไปเป็นอีกอันหนึ่งเลยครับ เหมือนกับลายเซ็นซึ่งเราควรจะมีไว้ใช้อย่างน้อยสามอื่นคือ แบบเป็นทางการ (ความลับที่สุด) แบบเซ็นให้คนอื่นดู และแบบเซ็นเพื่อซื้อสินค้าครับ (ไม่ว่าจะบัตรเครดิตหรือเดบิตก็ตาม)
          • ลักษณะพาสเวิร์ดที่ใช้ควรจะมี running number (คือเลขที่เปลี่ยนแปลง) หนึ่งตัวครับซึ่งจะเอาไว้ด้านหน้าหรือด้านหลังก็ได้ เช่น จากพาสเวิร์ดเดิม Cyoelgxx เราอาจเพิ่ม (เป็นเก้าหลัก) หรือเปลี่ยน salt ของเรา 1 ตำแหน่ง (พาสเวิร์ดเป็นแปดหลักเท่าเดิม) ให้กลายเป็น running number ครับ ถ้าให้จำง่ายก็วิ่งไปข้างหน้าอย่างเดียว แต่บางคนก็อาจจะวิ่งถอยหลัง แล้วแต่ครับเลือกใช้ได้เลย
          running number คือการเปลี่ยนเลข (หรือตัวหนังสือ) ในหลักนี้ให้เดินไปข้างหน้าเรื่อยๆ ทุกครั้งที่เปลี่ยนพาสเวิร์ด โดยความถี่ในการเปลี่ยนแล้วแต่ว่าเราต้องการรักษาความปลอดภัยให้แอคเคานท์นี้มากแค่ไหนครับ
          ดังนั้น จากตัวอย่างเราจะได้พาสเวิร์ดของเราเปลี่ยนไปเรื่อยๆ ดังนี้
          • Cyoelgxy
          • Cyoelgxz
          • Cyoelgxa (หรือจะ Cyoelgx1 ก็ได้)

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

          ขอบคุณที่มาตามอ่านนะครับ ผมไม่ได้ตอบเสียทีเพราะปั่นงานให้ลูกค้าอยู่ แต่รู้สึกว่านานกว่านี้ไปก็คงไม่ดีแล้ว ขอโทษนะครับ 🙂

          1. ไม่มีปัญหาครับ

            ขอบคุณมากครับที่เขียนให้ สู้ ๆ ครับ

Leave a Reply