วิธีสร้างรหัสผ่านที่คาดเดายาก

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

คำตอบฉบับย่อ

  1. ใช้เครื่องมือสร้างรหัสผ่านแทนการคิดขึ้นเอง: ตั้งความยาว 16 ตัวอักษรขึ้นไปหากเว็บไซต์อนุญาต
  2. ใช้อักขระทุกประเภทที่เว็บไซต์รองรับ: ตัวพิมพ์ใหญ่ ตัวพิมพ์เล็ก ตัวเลข และสัญลักษณ์พิเศษ
  3. บันทึกรหัสผ่านไว้ในโปรแกรมจัดการรหัสผ่าน (Password Manager)
  4. ใช้รหัสผ่านหนึ่งชุดต่อหนึ่งบัญชีเท่านั้น
  5. เปิดใช้งานการยืนยันตัวตนแบบสองขั้นตอน (Two-Factor Authentication) หรือพาสคีย์ (Passkey) เมื่อบริการนั้นรองรับ และเก็บรหัสกู้คืนไว้

สิ่งใดที่ทำให้รหัสผ่านมีความแข็งแกร่ง

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

ความแข็งแกร่งวัดจากหน่วยบิตของเอนโทรปี และแต่ละบิตจะเพิ่มจำนวนการคาดเดาที่ต้องใช้เป็นสองเท่า อักขระที่สุ่มเลือกจาก 62 ตัวเลือกที่เป็นไปได้ — ตัวอักษรละติน a–z, A–Z และตัวเลข 0–9 โดยทุกตัวมีความน่าจะเป็นเท่ากัน — จะเพิ่มเอนโทรปีประมาณ 6 บิต ดังนั้นอักขระดังกล่าว 12 ตัวจะให้ความปลอดภัยประมาณ 71 บิต และ 16 ตัวจะให้ประมาณ 95 บิต ตัวเลขเหล่านี้เป็นจริงเฉพาะเมื่ออักขระแต่ละตัวถูกเลือกอย่างเป็นอิสระและเป็นแบบสุ่มเท่านั้น และไม่ได้บอกอะไรเลยเกี่ยวกับรหัสผ่านที่มนุษย์คิดขึ้นเอง ในมาตรวัดที่เครื่องมือสร้างรหัสผ่านของเราแสดงผล 60 บิตถือว่าสมเหตุสมผลสำหรับบัญชีทั่วไปในชีวิตประจำวัน 80 บิตถือว่าแข็งแกร่ง และ 100 บิตถือว่าเกินขอบเขตการโจมตีแบบ Brute Force ด้วยฮาร์ดแวร์ในปัจจุบัน ตัวเลขเหล่านี้เป็นจุดอ้างอิงมากกว่ามาตรฐานตายตัว: ความทนทานของรหัสผ่านในทางปฏิบัติยังขึ้นอยู่กับวิธีการจัดเก็บของบริการนั้นและรูปแบบการโจมตีด้วย

ทำไมเทคนิคทั่วไปจึงใช้ไม่ได้ผล

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

ข้อบกพร่องที่พบบ่อยคือการทำตามรูปแบบการเลือกที่คาดเดาได้ของมนุษย์ กฎที่บังคับให้ตั้งรหัสผ่านซับซ้อน — เช่น ต้องมีสัญลักษณ์ ตัวเลข และต้องเปลี่ยนรหัสผ่านทุก 90 วัน — ยิ่งผลักดันให้ผู้ใช้สร้างรูปแบบเหล่านี้มากขึ้น นั่นคือเหตุผลที่แนวทางปัจจุบันจาก NIST แนะนำให้ผู้ให้บริการเลิกบังคับใช้กฎโครงสร้างรหัสผ่านหรือการบังคับเปลี่ยนรหัสผ่านตามรอบเวลา แต่ให้ตรวจสอบรหัสผ่านใหม่กับฐานข้อมูลรหัสผ่านที่เคยรั่วไหลแทน

รหัสผ่านที่คุณต้องพิมพ์เอง: ให้ใช้พาสเฟรส

มีรหัสผ่านไม่กี่ชุดที่คุณต้องพิมพ์โดยไม่มีโปรแกรมจัดการรหัสผ่านคอยช่วยเหลือ: รหัสผ่านหลักของโปรแกรมจัดการรหัสผ่าน รหัสผ่านเข้าเครื่องคอมพิวเตอร์หรือโทรศัพท์ และสำหรับหลายคนคือรหัสผ่านอีเมลหลัก สำหรับรหัสผ่านเหล่านี้ ให้ใช้พาสเฟรส (Passphrase) — ซึ่งคือการนำคำหลายคำมารวมกันแบบสุ่ม ไม่ใช่ประโยคที่คุณแต่งขึ้นเอง วิธีการดั้งเดิมคือ Diceware และ EFF ได้เผยแพร่รายการคำศัพท์ที่สร้างขึ้นสำหรับวิธีนี้โดยเฉพาะ โดยใช้รายการที่ชื่อว่า EFF Long Wordlist ในภาษาอังกฤษ:

  1. เปิดรายการคำศัพท์: มีคำทั้งหมด 7,776 คำ โดยแต่ละคำจะมีหมายเลขกำกับเป็นตัวเลขห้าหลักตั้งแต่ 1 ถึง 6
  2. ทอยลูกเต๋า 6 หน้าแบบธรรมดาห้าครั้ง หรือทอยลูกเต๋าห้าลูกพร้อมกันแล้วอ่านค่าจากซ้ายไปขวา แล้วจดตัวเลขห้าหลักนั้นตามลำดับ
  3. ค้นหาคำที่ตรงกับหมายเลขนั้น
  4. ทำซ้ำตามขั้นตอนจนกระทั่งได้คำครบ 6 คำ
  5. ใช้คำเหล่านั้นตามลำดับที่ทอยได้ แม้ว่าจะมีบางคำซ้ำกันหรือคุณอยากได้คำที่ไพเราะกว่านี้ก็ตาม หากต้องการจำ ให้สร้างภาพหรือเรื่องราวในจินตนาการเชื่อมโยงคำเหล่านั้น — โดยไม่เปลี่ยนคำหรือสลับลำดับ

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

รหัสผ่านอื่นๆ ทั้งหมด: ให้ระบบสุ่มขึ้นมา

สำหรับบัญชีหลายสิบบัญชีที่คุณไม่เคยพิมพ์รหัสผ่านด้วยตนเอง ไม่มีเหตุผลใดที่จะต้องคิดรหัสผ่านขึ้นมาเอง โปรแกรมสุ่มรหัสผ่านที่ปลอดภัยของเราสร้างรหัสผ่านขึ้นในเบราว์เซอร์ของคุณโดยตรงผ่าน Web Crypto API และไม่มีการส่งข้อมูลไปยังเซิร์ฟเวอร์ กำหนด ความยาว เป็น 16 ตัวอักษรขึ้นไป เลือกประเภทอักขระที่เว็บไซต์นั้นรองรับ แล้วกดปุ่ม สร้างผลลัพธ์ ค่าประมาณการเอนโทรปีใต้ผลลัพธ์จะแสดงระดับความแข็งแกร่งเป็นบิต ตัวเลือก ไม่มีอักขระที่คล้ายกัน จะช่วยตัดตัวอักษรที่สับสนได้ง่ายออกไป (Il1O0o) เมื่อจำเป็นต้องอ่านรหัสผ่านออกเสียงหรือพิมพ์ตามหน้าจอ และ จำนวนรายการที่เลือก จะช่วยสร้างรายการรหัสผ่านทั้งหมดเมื่อคุณต้องการตั้งค่าหลายบัญชีพร้อมกัน

บางเว็บไซต์ยังคงจำกัดความยาวหรือห้ามใช้สัญลักษณ์บางตัว หากเว็บไซต์ปฏิเสธรหัสผ่าน ให้ปิดเฉพาะประเภทสัญลักษณ์ที่เว็บไซต์นั้นไม่อนุญาตและคงความยาวเดิมไว้ ให้ลดความยาวลงเฉพาะเมื่อเว็บไซต์จำกัดความยาวอย่างแท้จริงเท่านั้น ไม่ว่าจะอย่างไร อย่าหันกลับไปใช้รหัสผ่านที่คุณคิดขึ้นเอง: รหัสผ่านแบบสุ่มขนาด 12 ตัวอักษรยังคงปลอดภัยกว่ารหัสผ่านที่คุณคิดว่าฉลาดมาก

ควรเก็บรักษารหัสผ่านไว้ที่ใด

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

เช็กลิสต์แบบสรุป

หากต้องการทราบเหตุผลเบื้องหลังของกฎเหล่านี้ โปรดอ่านเพิ่มเติมที่บทความรหัสผ่านถูกเจาะได้อย่างไร และยังมีบทความอื่นๆ รวบรวมไว้ที่คู่มือรหัสผ่าน