วิธีสร้างรหัสผ่านที่คาดเดายาก
รหัสผ่านที่แข็งแกร่งคือรหัสผ่านที่ผู้โจมตีไม่สามารถคาดเดาได้ในระยะเวลาที่เป็นไปได้จริง — และเป็นรหัสผ่านที่คุณไม่เคยนำไปใช้ที่อื่น รหัสผ่านที่สั้นและคาดเดาง่ายมักจะถูกเจาะได้เร็ว และรหัสผ่านที่ใช้ซ้ำมักจะถูกนำไปทดสอบกับบริการอื่นๆ หลังจากการรั่วไหลของข้อมูล ซึ่งจุดอ่อนทั้งสองประการนี้สามารถแก้ไขได้ง่าย รหัสผ่านที่แข็งแกร่งไม่ได้ป้องกันได้ทุกอย่าง: มันไม่สามารถป้องกันหน้าฟิชชิงหรือมัลแวร์ได้ ซึ่งเป็นเหตุผลว่าทำไมขั้นตอนสุดท้ายด้านล่างจึงไม่ได้เกี่ยวกับตัวรหัสผ่านโดยตรง บทความนี้จะให้คำตอบฉบับย่อก่อน แล้วจึงอธิบายว่าทำไมแต่ละขั้นตอนจึงมีประสิทธิภาพ
คำตอบฉบับย่อ
- ใช้เครื่องมือสร้างรหัสผ่านแทนการคิดขึ้นเอง: ตั้งความยาว 16 ตัวอักษรขึ้นไปหากเว็บไซต์อนุญาต
- ใช้อักขระทุกประเภทที่เว็บไซต์รองรับ: ตัวพิมพ์ใหญ่ ตัวพิมพ์เล็ก ตัวเลข และสัญลักษณ์พิเศษ
- บันทึกรหัสผ่านไว้ในโปรแกรมจัดการรหัสผ่าน (Password Manager)
- ใช้รหัสผ่านหนึ่งชุดต่อหนึ่งบัญชีเท่านั้น
- เปิดใช้งานการยืนยันตัวตนแบบสองขั้นตอน (Two-Factor Authentication) หรือพาสคีย์ (Passkey) เมื่อบริการนั้นรองรับ และเก็บรหัสกู้คืนไว้
สิ่งใดที่ทำให้รหัสผ่านมีความแข็งแกร่ง
คุณสมบัติสามประการเป็นตัวกำหนด ความยาว: อักขระสุ่มที่เพิ่มขึ้นแต่ละตัวจะทวีคูณจำนวนชุดค่าผสมที่ผู้โจมตีต้องทดสอบ ความสุ่ม: รหัสผ่านจะแข็งแกร่งได้เท่ากับกระบวนการที่สร้างมันขึ้นมาเท่านั้น ดังนั้นตัวอักษร 12 ตัวที่สุ่มโดยคอมพิวเตอร์จึงแข็งแกร่งกว่าตัวอักษร 12 ตัวที่สะกดเป็นชื่อและปีเกิดอย่างมาก ความไม่ซ้ำใคร: รหัสผ่านที่ใช้ในสองเว็บไซต์จะมีความปลอดภัยเท่ากับเว็บไซต์ที่อ่อนแอกว่าเท่านั้น เพราะรหัสผ่านที่รั่วไหลจากบริการหนึ่งมักจะถูกนำไปลองใช้กับบริการอื่นๆ ทั้งหมด
ความแข็งแกร่งวัดจากหน่วยบิตของเอนโทรปี และแต่ละบิตจะเพิ่มจำนวนการคาดเดาที่ต้องใช้เป็นสองเท่า อักขระที่สุ่มเลือกจาก 62 ตัวเลือกที่เป็นไปได้ — ตัวอักษรละติน a–z, A–Z และตัวเลข 0–9 โดยทุกตัวมีความน่าจะเป็นเท่ากัน — จะเพิ่มเอนโทรปีประมาณ 6 บิต ดังนั้นอักขระดังกล่าว 12 ตัวจะให้ความปลอดภัยประมาณ 71 บิต และ 16 ตัวจะให้ประมาณ 95 บิต ตัวเลขเหล่านี้เป็นจริงเฉพาะเมื่ออักขระแต่ละตัวถูกเลือกอย่างเป็นอิสระและเป็นแบบสุ่มเท่านั้น และไม่ได้บอกอะไรเลยเกี่ยวกับรหัสผ่านที่มนุษย์คิดขึ้นเอง ในมาตรวัดที่เครื่องมือสร้างรหัสผ่านของเราแสดงผล 60 บิตถือว่าสมเหตุสมผลสำหรับบัญชีทั่วไปในชีวิตประจำวัน 80 บิตถือว่าแข็งแกร่ง และ 100 บิตถือว่าเกินขอบเขตการโจมตีแบบ Brute Force ด้วยฮาร์ดแวร์ในปัจจุบัน ตัวเลขเหล่านี้เป็นจุดอ้างอิงมากกว่ามาตรฐานตายตัว: ความทนทานของรหัสผ่านในทางปฏิบัติยังขึ้นอยู่กับวิธีการจัดเก็บของบริการนั้นและรูปแบบการโจมตีด้วย
ทำไมเทคนิคทั่วไปจึงใช้ไม่ได้ผล
มนุษย์มักตั้งรหัสผ่านด้วยรูปแบบที่คล้ายกันอย่างน่าประหลาดใจ และเครื่องมือเจาะรหัสผ่านก็ถูกสร้างขึ้นตามพฤติกรรมเหล่านั้น:
- ชื่อตามด้วยปีเกิด เช่น
Anna1994คือหนึ่งในสิ่งแรกๆ ที่ถูกทดสอบ - การแทนที่ตัวอักษร เช่น
P@ssw0rdแทบไม่ได้ช่วยอะไร: การเปลี่ยน a เป็น @ และ o เป็น 0 เป็นกฎพื้นฐานในโปรแกรมแฮกรหัสผ่าน - รูปแบบแป้นพิมพ์ เช่น
qwerty123หรือ1q2w3e4rปรากฏอยู่ในรายชื่อรหัสผ่านยอดนิยมส่วนใหญ่ - การใช้อักษรตัวใหญ่ที่จุดเริ่มต้นและตามด้วยตัวเลขหรือเครื่องหมายตกใจที่ส่วนท้าย เป็นวิธีทั่วไปในการผ่านกฎ "ต้องมีอักขระพิเศษ" จึงมักถูกทดสอบตั้งแต่แรกๆ
- การใช้รหัสผ่านที่ดีเพียงชุดเดียวแล้วเปลี่ยนคำลงท้ายเล็กน้อยสำหรับแต่ละเว็บไซต์ จะหยุดปกป้องคุณทันทีที่มีเวอร์ชันใดเวอร์ชันหนึ่งรั่วไหลและรูปแบบถูกเปิดเผย
ข้อบกพร่องที่พบบ่อยคือการทำตามรูปแบบการเลือกที่คาดเดาได้ของมนุษย์ กฎที่บังคับให้ตั้งรหัสผ่านซับซ้อน — เช่น ต้องมีสัญลักษณ์ ตัวเลข และต้องเปลี่ยนรหัสผ่านทุก 90 วัน — ยิ่งผลักดันให้ผู้ใช้สร้างรูปแบบเหล่านี้มากขึ้น นั่นคือเหตุผลที่แนวทางปัจจุบันจาก NIST แนะนำให้ผู้ให้บริการเลิกบังคับใช้กฎโครงสร้างรหัสผ่านหรือการบังคับเปลี่ยนรหัสผ่านตามรอบเวลา แต่ให้ตรวจสอบรหัสผ่านใหม่กับฐานข้อมูลรหัสผ่านที่เคยรั่วไหลแทน
รหัสผ่านที่คุณต้องพิมพ์เอง: ให้ใช้พาสเฟรส
มีรหัสผ่านไม่กี่ชุดที่คุณต้องพิมพ์โดยไม่มีโปรแกรมจัดการรหัสผ่านคอยช่วยเหลือ: รหัสผ่านหลักของโปรแกรมจัดการรหัสผ่าน รหัสผ่านเข้าเครื่องคอมพิวเตอร์หรือโทรศัพท์ และสำหรับหลายคนคือรหัสผ่านอีเมลหลัก สำหรับรหัสผ่านเหล่านี้ ให้ใช้พาสเฟรส (Passphrase) — ซึ่งคือการนำคำหลายคำมารวมกันแบบสุ่ม ไม่ใช่ประโยคที่คุณแต่งขึ้นเอง วิธีการดั้งเดิมคือ Diceware และ EFF ได้เผยแพร่รายการคำศัพท์ที่สร้างขึ้นสำหรับวิธีนี้โดยเฉพาะ โดยใช้รายการที่ชื่อว่า EFF Long Wordlist ในภาษาอังกฤษ:
- เปิดรายการคำศัพท์: มีคำทั้งหมด 7,776 คำ โดยแต่ละคำจะมีหมายเลขกำกับเป็นตัวเลขห้าหลักตั้งแต่ 1 ถึง 6
- ทอยลูกเต๋า 6 หน้าแบบธรรมดาห้าครั้ง หรือทอยลูกเต๋าห้าลูกพร้อมกันแล้วอ่านค่าจากซ้ายไปขวา แล้วจดตัวเลขห้าหลักนั้นตามลำดับ
- ค้นหาคำที่ตรงกับหมายเลขนั้น
- ทำซ้ำตามขั้นตอนจนกระทั่งได้คำครบ 6 คำ
- ใช้คำเหล่านั้นตามลำดับที่ทอยได้ แม้ว่าจะมีบางคำซ้ำกันหรือคุณอยากได้คำที่ไพเราะกว่านี้ก็ตาม หากต้องการจำ ให้สร้างภาพหรือเรื่องราวในจินตนาการเชื่อมโยงคำเหล่านั้น — โดยไม่เปลี่ยนคำหรือสลับลำดับ
แต่ละคำจะเพิ่มความปลอดภัยประมาณ 12.9 บิต ดังนั้นคำห้าคำจะให้ความปลอดภัยประมาณ 65 บิต และ 6 คำจะให้ประมาณ 78 บิต ซึ่งคำศัพท์ทั่วไป 6 คำนั้นง่ายต่อการจดจำและพิมพ์มากกว่าการใช้ชุดสัญลักษณ์ที่มีความปลอดภัยเท่ากัน มีสองเงื่อนไขที่ทำให้วิธีนี้ได้ผล คำเหล่านั้นต้องมาจากการสุ่มเท่านั้น เพราะท่อนเพลงหรือคำคมที่ชื่นชอบมักจะอยู่ในพจนานุกรมของผู้โจมตีอยู่แล้ว ด้วยเหตุผลเดียวกัน อย่าใช้พาสเฟรสที่คุณเคยเห็นเป็นตัวอย่างที่ใดก็ตาม และต้องไม่นำพาสเฟรสไปใช้ซ้ำ: หนึ่งพาสเฟรสต่อหนึ่งแห่งเท่านั้น
รหัสผ่านอื่นๆ ทั้งหมด: ให้ระบบสุ่มขึ้นมา
สำหรับบัญชีหลายสิบบัญชีที่คุณไม่เคยพิมพ์รหัสผ่านด้วยตนเอง ไม่มีเหตุผลใดที่จะต้องคิดรหัสผ่านขึ้นมาเอง โปรแกรมสุ่มรหัสผ่านที่ปลอดภัยของเราสร้างรหัสผ่านขึ้นในเบราว์เซอร์ของคุณโดยตรงผ่าน Web Crypto API และไม่มีการส่งข้อมูลไปยังเซิร์ฟเวอร์ กำหนด ความยาว เป็น 16 ตัวอักษรขึ้นไป เลือกประเภทอักขระที่เว็บไซต์นั้นรองรับ แล้วกดปุ่ม สร้างผลลัพธ์ ค่าประมาณการเอนโทรปีใต้ผลลัพธ์จะแสดงระดับความแข็งแกร่งเป็นบิต ตัวเลือก ไม่มีอักขระที่คล้ายกัน จะช่วยตัดตัวอักษรที่สับสนได้ง่ายออกไป (Il1O0o) เมื่อจำเป็นต้องอ่านรหัสผ่านออกเสียงหรือพิมพ์ตามหน้าจอ และ จำนวนรายการที่เลือก จะช่วยสร้างรายการรหัสผ่านทั้งหมดเมื่อคุณต้องการตั้งค่าหลายบัญชีพร้อมกัน
บางเว็บไซต์ยังคงจำกัดความยาวหรือห้ามใช้สัญลักษณ์บางตัว หากเว็บไซต์ปฏิเสธรหัสผ่าน ให้ปิดเฉพาะประเภทสัญลักษณ์ที่เว็บไซต์นั้นไม่อนุญาตและคงความยาวเดิมไว้ ให้ลดความยาวลงเฉพาะเมื่อเว็บไซต์จำกัดความยาวอย่างแท้จริงเท่านั้น ไม่ว่าจะอย่างไร อย่าหันกลับไปใช้รหัสผ่านที่คุณคิดขึ้นเอง: รหัสผ่านแบบสุ่มขนาด 12 ตัวอักษรยังคงปลอดภัยกว่ารหัสผ่านที่คุณคิดว่าฉลาดมาก
ควรเก็บรักษารหัสผ่านไว้ที่ใด
วิธีที่ง่ายที่สุดในการเก็บรักษารหัสผ่านที่ไม่ซ้ำกันสำหรับทุกบัญชีคือการใช้โปรแกรมจัดการรหัสผ่าน: มันจะช่วยบันทึก กรอกข้อมูลอัตโนมัติ และหลายโปรแกรมจะเตือนเมื่อพบว่ารหัสผ่านของคุณปรากฏในเหตุการณ์ข้อมูลรั่วไหล จากนั้นคุณจะจำเพียงแค่พาสเฟรสชุดเดียวแทนที่จะต้องจำรหัสผ่านเป็นร้อยชุด หากคุณไม่อยากใช้โปรแกรมจัดการรหัสผ่าน การจดลงในสมุดโน้ตแล้วเก็บไว้ในที่ปลอดภัยที่บ้านให้พ้นสายตาผู้มาเยือน ยังคงมีความเสี่ยงน้อยกว่าการใช้รหัสผ่านซ้ำกัน สิ่งที่ไม่ได้ผลคือการบันทึกลงในไฟล์ข้อความบนเดสก์ท็อป การพิมพ์ทิ้งไว้ในแอปแชท หรือการเขียนใส่กระดาษโน้ตแปะไว้ที่หน้าจอคอมพิวเตอร์ในที่ทำงาน
เช็กลิสต์แบบสรุป
- ความยาว 16 ตัวอักษรขึ้นไปในทุกที่ที่ระบบอนุญาต และห้ามต่ำกว่า 12 ตัวอักษร
- สร้างจากการสุ่ม ไม่ใช่คิดขึ้นเอง — หรือใช้พาสเฟรสที่ประกอบด้วยคำสุ่ม 6 คำในจุดที่คุณต้องพิมพ์ด้วยตนเอง
- ใช้รหัสผ่านที่แตกต่างกันสำหรับทุกบัญชี
- เปิดใช้งานการยืนยันตัวตนแบบสองขั้นตอนในทุกที่ที่มีให้ เพื่อเป็นปราการด่านที่สองหากรหัสผ่านรั่วไหล ส่วนพาสคีย์และกุญแจความปลอดภัย FIDO2 จะช่วยปกป้องได้ดียิ่งขึ้นไปอีกเพราะไม่สามารถถูกส่งต่อให้กับเว็บไซต์ปลอมได้
- เปลี่ยนรหัสผ่านใหม่เมื่อมีเหตุจำเป็นเท่านั้น — เช่น มีข้อมูลรั่วไหล สงสัยว่าจะถูกฟิชชิง หรือรหัสผ่านตกไปอยู่ในมือของคนอื่น — ไม่จำเป็นต้องเปลี่ยนตามรอบเวลาที่กำหนด
หากต้องการทราบเหตุผลเบื้องหลังของกฎเหล่านี้ โปรดอ่านเพิ่มเติมที่บทความรหัสผ่านถูกเจาะได้อย่างไร และยังมีบทความอื่นๆ รวบรวมไว้ที่คู่มือรหัสผ่าน