กลับไปหน้าบทความ

อ่าน 14 นาที

ความแข็งแกร่งของรหัสผ่าน

ความแข็งแกร่งของรหัสผ่าน คือการวัดประสิทธิภาพของ รหัส ผ่านในการป้องกันการเดาหรือ การโจมตีแบบ Brute-force โดยทั่วไปแล้ว...

ความแข็งแกร่งของรหัสผ่าน

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

ความแข็งแกร่งของรหัสผ่านคือการวัดประสิทธิภาพของรหัสผ่านในการป้องกันการเดาหรือการโจมตีแบบ Brute-forceโดยทั่วไปแล้ว จะประมาณจำนวนครั้งที่ผู้โจมตีที่ไม่มีสิทธิ์เข้าถึงรหัสผ่านโดยตรงจะต้องลองเดารหัสผ่านอย่างถูกต้องโดยเฉลี่ย ความแข็งแกร่งของรหัสผ่านขึ้นอยู่กับความยาว ความซับซ้อน และความไม่สามารถคาดเดาได้[ 1 ]

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

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

ในปี 2019 NCSCของสหราชอาณาจักรได้วิเคราะห์ฐานข้อมูลสาธารณะของบัญชีที่ถูกละเมิดเพื่อดูว่าผู้คนใช้คำ วลี และสตริงใดบ้าง รหัสผ่านที่ได้รับความนิยมมากที่สุดในรายการคือ "123456" ซึ่งปรากฏในรหัสผ่าน 23.2 ล้านรายการ สตริงที่ได้รับความนิยมรองลงมาคือ "123456789" ซึ่งปรากฏในรหัสผ่าน 7.7 ล้านรายการ ส่วนที่เหลือในห้าอันดับแรก ได้แก่ " qwerty ", "password" และ "1111111" [ 3 ]ซึ่งปรากฏในรหัสผ่าน 3.8 ล้าน, 3.6 ล้าน และ 3.1 ล้านรายการ ตามลำดับ[ 4 ]

การสร้างรหัสผ่าน

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

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

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

การตรวจสอบความถูกต้องของการเดารหัสผ่าน

ระบบที่ใช้รหัสผ่านในการตรวจสอบสิทธิ์จะต้องมีวิธีการตรวจสอบรหัสผ่านที่ป้อนเพื่อเข้าถึง หากรหัสผ่านที่ถูกต้องถูกจัดเก็บไว้ในไฟล์ระบบหรือฐานข้อมูล ผู้โจมตีที่เข้าถึงระบบได้มากพอจะได้รับรหัสผ่านของผู้ใช้ทั้งหมด ทำให้ผู้โจมตีสามารถเข้าถึงบัญชีทั้งหมดในระบบที่ถูกโจมตี และอาจรวมถึงระบบอื่นๆ ที่ผู้ใช้ใช้รหัสผ่านเดียวกันหรือคล้ายกัน วิธีหนึ่งในการลดความเสี่ยงนี้คือการจัดเก็บเฉพาะค่าแฮชเข้ารหัสของรหัสผ่านแต่ละรหัสแทนที่จะจัดเก็บรหัสผ่านเอง ค่าแฮชเข้ารหัสมาตรฐาน เช่น ตระกูล Secure Hash Algorithm (SHA) นั้นยากมากที่จะถอดรหัส ดังนั้นผู้โจมตีที่ได้รับค่าแฮชจะไม่สามารถกู้คืนรหัสผ่านได้โดยตรง อย่างไรก็ตาม ความรู้เกี่ยวกับค่าแฮชทำให้ผู้โจมตีสามารถทดสอบการเดาได้อย่างรวดเร็วแบบออฟไลน์ โปรแกรม ถอดรหัสรหัส ผ่าน มีให้ใช้งานอย่างแพร่หลาย ซึ่งจะทดสอบรหัสผ่านทดลองจำนวนมากกับค่าแฮชเข้ารหัสที่ถูกขโมยมา

การพัฒนาเทคโนโลยีการคำนวณทำให้การทดสอบรหัสผ่านที่คาดเดาสามารถทำได้เร็วขึ้น ตัวอย่างเช่น ในปี 2010 สถาบันวิจัย Georgia Techได้พัฒนาวิธีการใช้GPGPUเพื่อถอดรหัสผ่านได้เร็วกว่ามาก[ 6 ] Elcomsoftได้คิดค้นการใช้การ์ดกราฟิกทั่วไปเพื่อการกู้คืนรหัสผ่านที่รวดเร็วยิ่งขึ้นในเดือนสิงหาคม 2007 และได้ยื่นจดสิทธิบัตรที่เกี่ยวข้องในสหรัฐอเมริกาในเวลาต่อมา[ 7 ]ในปี 2011 มีผลิตภัณฑ์เชิงพาณิชย์ที่อ้างว่าสามารถทดสอบรหัสผ่านได้มากถึง 112,000 รหัสต่อวินาทีบนคอมพิวเตอร์เดสก์ท็อป มาตรฐาน โดยใช้โปรเซสเซอร์กราฟิกประสิทธิภาพสูงในขณะนั้น[ 8 ]อุปกรณ์ดังกล่าวจะสามารถถอดรหัสผ่านตัวอักษรพิมพ์ใหญ่และพิมพ์เล็กหกตัวได้ภายในหนึ่งวัน งานสามารถกระจายไปยังคอมพิวเตอร์หลายเครื่องเพื่อเพิ่มความเร็วเพิ่มเติมตามสัดส่วนของจำนวนคอมพิวเตอร์ที่มี GPU ที่เทียบเท่ากัน มีแฮช การยืดคีย์ พิเศษ ที่ใช้เวลานานในการคำนวณ ซึ่งช่วยลดอัตราการคาดเดา แม้ว่าการใช้การยืดคีย์จะถือเป็นแนวทางปฏิบัติที่ดีที่สุด แต่ระบบทั่วไปหลายระบบก็ไม่ได้ใช้

สถานการณ์อื่นที่สามารถเดาได้อย่างรวดเร็วคือเมื่อใช้รหัสผ่านเพื่อสร้างคีย์การเข้ารหัสในกรณีเช่นนี้ ผู้โจมตีสามารถตรวจสอบได้อย่างรวดเร็วว่ารหัสผ่านที่เดาได้นั้นสามารถถอดรหัสข้อมูลที่เข้ารหัสได้สำเร็จหรือไม่ ตัวอย่างเช่น ผลิตภัณฑ์เชิงพาณิชย์หนึ่งรายการอ้างว่าสามารถทดสอบ รหัส ผ่าน WPA PSK ได้ 103,000 รหัสต่อวินาที[ 9 ]

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

เอนโทรปีในฐานะมาตรวัดความแข็งแกร่งของรหัสผ่าน

ความแข็งแกร่งของรหัสผ่านระบุโดยปริมาณเอนโทรปีของข้อมูลซึ่งวัดเป็นหน่วยแชนนอน (Sh) และเป็นแนวคิดจากทฤษฎีสารสนเทศถือได้ว่าเป็นจำนวนบิต ขั้นต่ำ ที่จำเป็นในการเก็บข้อมูลในรหัสผ่านประเภทที่กำหนด การวัดที่เกี่ยวข้องคือ ลอการิทึมฐาน 2ของจำนวนการเดาที่จำเป็นในการค้นหารหัสผ่านได้อย่างแน่นอน ซึ่งโดยทั่วไปเรียกว่า "บิตของเอนโทรปี" [ 10 ]รหัสผ่านที่มีเอนโทรปี 42 บิตจะแข็งแกร่งเท่ากับสตริง 42 บิตที่เลือกแบบสุ่ม เช่น โดย การโยน เหรียญที่ยุติธรรม กล่าว อีกนัยหนึ่ง รหัสผ่านที่มีเอนโทรปี 42 บิตจะต้องใช้ความพยายาม 2 42 (4,398,046,511,104) ครั้งในการค้นหาความเป็นไปได้ทั้งหมดในระหว่างการค้นหาแบบ brute forceดังนั้น การเพิ่มเอนโทรปีของรหัสผ่านขึ้นหนึ่งบิตจะเพิ่มจำนวนการเดาที่จำเป็นเป็นสองเท่า ทำให้ภารกิจของผู้โจมตีทำได้ยากขึ้นเป็นสองเท่า โดยเฉลี่ยแล้ว ผู้โจมตีจะต้องลองรหัสผ่านครึ่งหนึ่งของจำนวนรหัสผ่านที่เป็นไปได้ทั้งหมดก่อนที่จะพบรหัสผ่านที่ถูกต้อง[ 5 ]

รหัสผ่านแบบสุ่ม

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

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

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

โดยที่Nคือจำนวนสัญลักษณ์ที่เป็นไปได้ และLคือจำนวนสัญลักษณ์ในรหัสผ่านHวัดเป็นบิต[ 5 ] [ 11 ] ในนิพจน์สุดท้ายlogสามารถเป็นฐาน ใด ก็ได้

โดยปกติแล้ว ไบต์ไบนารี จะถูกแสดงด้วยอักขระเลขฐานสิบหกสอง ตัว

ในการหาความยาวLที่จำเป็นเพื่อให้ได้ความแข็งแกร่งH ที่ต้องการ โดยใช้รหัสผ่านที่สุ่มเลือกจากชุด สัญลักษณ์ Nตัว จะคำนวณได้ดังนี้:

โดยที่ หมายถึง ฟังก์ชันปัดเศษขึ้นทางคณิตศาสตร์กล่าวคือการปัดเศษขึ้นเป็นจำนวนเต็มที่ มากที่สุดถัด ไป

รหัสผ่านที่สร้างโดยมนุษย์

โดยทั่วไปแล้วผู้คนมักทำได้ไม่ดีนักในการสร้างเอนโทรปีที่เพียงพอเพื่อสร้างรหัสผ่านที่น่าพอใจ จากการศึกษาหนึ่งที่เกี่ยวข้องกับผู้ใช้ครึ่งล้านคน พบว่าเอนโทรปีเฉลี่ยของรหัสผ่านอยู่ที่ประมาณ 40.54 บิต[ 12 ]

ดังนั้น ในการวิเคราะห์รหัสผ่านแปดตัวอักษรมากกว่า 3 ล้านชุด พบว่าตัวอักษร "e" ถูกใช้มากกว่า 1.5 ล้านครั้ง ในขณะที่ตัวอักษร "f" ถูกใช้เพียง 250,000 ครั้ง หาก มี การกระจายอย่างสม่ำเสมอตัวอักษรแต่ละตัวจะถูกใช้ประมาณ 900,000 ครั้ง ตัวเลขที่ใช้บ่อยที่สุดคือ "1" ในขณะที่ตัวอักษรที่ใช้บ่อยที่สุดคือ a, e, o และ r [ 13 ]

ผู้ใช้แทบจะไม่ใช้ชุดอักขระขนาดใหญ่ทั้งหมดในการสร้างรหัสผ่าน ตัวอย่างเช่น ผลการแฮ็กที่ได้จากแผนการฟิชชิ่ง MySpace ในปี 2549 เปิดเผยรหัสผ่าน 34,000 รหัส ซึ่งมีเพียง 8.3% เท่านั้นที่ใช้ตัวพิมพ์ใหญ่ ตัวเลข และสัญลักษณ์ผสมกัน[ 14 ]

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

โครงการสร้างความตระหนักด้านความปลอดภัยของรหัสผ่าน

Google พัฒนาเกมอินเทอร์แอ็กทีฟออนไลน์ชื่อ Interland เพื่อสอนเด็กๆ เกี่ยวกับความปลอดภัยทางออนไลน์ โดยครอบคลุมหัวข้อต่างๆ เช่น การกลั่นแกล้งทางไซเบอร์ การแฮ็กขั้นพื้นฐาน และความปลอดภัยของข้อมูล ตัวอย่างเช่น ในบทที่ชื่อTower Of Treasureมีการแนะนำให้ใช้ชื่อที่แปลกประหลาดควบคู่กับตัวอักษร เช่น (₺&@#%) ในเกม[ 15 ]

เอกสารเผยแพร่พิเศษของ NIST หมายเลข 800-63-2

เอกสารเผยแพร่พิเศษ NIST 800-63 ฉบับเดือนมิถุนายน พ.ศ. 2547 (ฉบับแก้ไขครั้งที่สอง) เสนอแผนการประมาณค่าเอนโทรปีของรหัสผ่านที่สร้างโดยมนุษย์: [ 5 ]

โดยใช้แผนการนี้ รหัสผ่านที่มนุษย์เลือกแปดตัวอักษรโดยไม่มีตัวพิมพ์ใหญ่และตัวอักขระที่ไม่ใช่ตัวอักษร หรือมีชุดอักขระใดชุดหนึ่งจากสองชุดนั้น คาดว่าจะมีเอนโทรปีสิบแปดบิต เอกสารเผยแพร่ของ NIST ยอมรับว่าในขณะที่พัฒนานั้น มีข้อมูลเพียงเล็กน้อยเกี่ยวกับการเลือกใช้รหัสผ่านในโลกแห่งความเป็นจริง การวิจัยในภายหลังเกี่ยวกับเอนโทรปีของรหัสผ่านที่มนุษย์เลือกโดยใช้ข้อมูลจริงที่เพิ่งมีให้ใช้ได้แสดงให้เห็นว่าแผนการของ NIST ไม่ได้ให้เมตริกที่ถูกต้องสำหรับการประมาณค่าเอนโทรปีของรหัสผ่านที่มนุษย์เลือก[ 16 ]การแก้ไข SP 800-63 เดือนมิถุนายน 2017 (ฉบับแก้ไขที่สาม) ได้ยกเลิกวิธีการนี้[ 17 ]

ข้อควรพิจารณาด้านการใช้งานและการนำไปใช้

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

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

ในทางปฏิบัติ รหัสผ่านต้องมีความสมเหตุสมผลและใช้งานได้จริงสำหรับผู้ใช้ปลายทาง รวมทั้งต้องมีความแข็งแกร่งเพียงพอสำหรับวัตถุประสงค์ที่ตั้งไว้ รหัสผ่านที่ยากเกินไปที่จะจำได้ ซึ่งเป็นปัญหาที่ซ้ำเติมด้วยข้อกำหนดความซับซ้อนของรหัสผ่าน อาจถูกลืมและมีแนวโน้มที่จะเขียนลงบนกระดาษ ซึ่งเป็นความเสี่ยงด้านความปลอดภัยหากกระดาษนั้นไม่ได้รับการจัดเก็บอย่างปลอดภัย[ 18 ] [ 19 ] [ 20 ]ในทางตรงกันข้ามบรูซ ชไนเออร์โต้แย้งว่าการบังคับให้ผู้ใช้จำรหัสผ่านโดยปราศจากความช่วยเหลือจะรองรับได้เฉพาะรหัสผ่านที่อ่อนแอเท่านั้น ซึ่งก่อให้เกิดความเสี่ยงด้านความปลอดภัยที่มากขึ้น และคนส่วนใหญ่เก่งในการรักษาความปลอดภัยกระเป๋าสตางค์หรือกระเป๋าถือของตน ซึ่งเป็น "สถานที่ที่ดี" ในการเก็บรหัสผ่านที่เขียนไว้[ 21 ]

บิตเอนโทรปีที่จำเป็น

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

RFC 4086 "ข้อกำหนดความสุ่มสำหรับความปลอดภัย" ซึ่งเผยแพร่ในเดือนมิถุนายน พ.ศ. 2548 นำเสนอแบบจำลองภัยคุกคามตัวอย่างบางส่วนและวิธีการคำนวณเอนโทรปีที่ต้องการสำหรับแต่ละแบบ[ 23 ]คำตอบของพวกเขามีความแตกต่างกัน ตั้งแต่เอนโทรปี 29 บิตที่จำเป็นหากคาดว่าจะมีการโจมตีทางออนไลน์เท่านั้น ไปจนถึงเอนโทรปี 96 บิตที่จำเป็นสำหรับคีย์เข้ารหัสลับที่สำคัญที่ใช้ในแอปพลิเคชันเช่นการเข้ารหัส ซึ่งรหัสผ่านหรือคีย์จำเป็นต้องปลอดภัยเป็นเวลานานและไม่สามารถยืดได้ เอกสารการประชุม USENIXจากปี 2550 เขียนว่า ด้วยมาตรการป้องกันที่เหมาะสม เอนโทรปี 20 บิตก็เพียงพอที่จะป้องกันภัยคุกคามทางออนไลน์ในทางปฏิบัติได้[ 22 ] การศึกษา ของสถาบันวิจัย Georgia Techในปี 2553 ซึ่งอิงจาก คีย์ ที่ไม่ยืดแนะนำให้ใช้อักขระ 12 ตัวเป็นความยาวขั้นต่ำสำหรับรหัสผ่านแบบสุ่ม[ 6 ] [ 24 ]

คำแนะนำเกี่ยวกับค่าเอนโทรปีของรหัสผ่านระดับสูงสุดนั้นเกี่ยวข้องกับข้อกำหนดที่เข้มงวดในการเลือกคีย์ที่ใช้ในการเข้ารหัส ในปี 1999 โครงการของ Electronic Frontier Foundation สามารถถอดรหัส DES 56 บิตได้ภายในเวลาไม่ถึงหนึ่งวันโดยใช้ฮาร์ดแวร์ที่ออกแบบมาเป็นพิเศษ[ 25 ]ในปี 2002 distributed.netสามารถถอดรหัสคีย์ 64 บิตได้ภายใน 4 ปี 9 เดือน 23 วัน[ 26 ]ณ วันที่ 12 ตุลาคม 2011 distributed.netประมาณการว่าการถอดรหัสคีย์ 72 บิตโดยใช้ฮาร์ดแวร์ปัจจุบันจะใช้เวลาประมาณ 45,579 วัน หรือ 124.8 ปี[ 27 ]เนื่องจากข้อจำกัดที่เข้าใจได้ในปัจจุบันจากฟิสิกส์พื้นฐาน จึงไม่มีความคาดหวังว่าคอมพิวเตอร์ดิจิทัล ใดๆ (หรือการรวมกัน) จะสามารถถอดรหัส 256 บิตผ่านการโจมตีแบบ brute-force ได้[ 28 ] ไม่ว่า คอมพิวเตอร์ควอนตัมจะสามารถทำเช่นนั้นได้ในทางปฏิบัติหรือไม่นั้น ยังไม่เป็นที่ทราบแน่ชัด แม้ว่าการวิเคราะห์ทางทฤษฎีจะชี้ให้เห็นถึงความเป็นไปได้ดังกล่าว [ 29 ]

การสร้างรหัสผ่านที่ปลอดภัย

คำแนะนำทั่วไป

คำแนะนำสำหรับการเลือกใช้รหัสผ่านที่ดีนั้นออกแบบมาเพื่อให้ยากต่อการค้นหารหัสผ่านด้วยวิธีการเดาแบบสุ่ม (brute force) รวมถึงการเดาอย่างชาญฉลาด หน่วยงานด้านความปลอดภัยทางไซเบอร์ของทั้งสหรัฐอเมริกาและสหราชอาณาจักรแนะนำให้ใช้รหัสผ่านที่ยาวและจำง่ายมากกว่ารหัสผ่านที่สั้นและซับซ้อน[ 30 ] [ 31 ]

คำแนะนำเกี่ยวกับความยาวของรหัสผ่านเพิ่มขึ้นเรื่อยๆ ตลอดหลายปีที่ผ่านมา ในปี 1999 ถือว่า 6 ตัวอักษรเป็นความยาวขั้นต่ำ และระบบปฏิบัติการหลักหลายๆ ระบบไม่สามารถรองรับรหัสผ่านที่ยาวเกิน 8 ตัวอักษรได้ [ 32 ] ในช่วงปี 2000 คำแนะนำเกี่ยวกับความยาวรหัสผ่านขั้นต่ำอยู่ที่ประมาณ 8 ตัวอักษร หากใช้ตัวอักษร ตัวเลข และสัญลักษณ์ผสมกัน แม้ว่าในขณะนั้นความยาวรหัสผ่านประมาณ 14 ตัวอักษรจะถือว่าเหมาะสมแล้วก็ตาม[ 33 ]ณ ปี 2026 NISTแนะนำรหัสผ่านที่มีความยาวขั้นต่ำ 15 ตัวอักษร[ 5 ]

ผู้เชี่ยวชาญด้านความปลอดภัยได้ระบุรูปแบบและธรรมเนียมบางอย่างที่ทำให้การเจาะหรือเดารหัสผ่านของคุณง่ายขึ้นมาก ในคอลัมน์ของเขาสำหรับ Wired ในปี 2007 บรูซ ชไนเออร์ แนะนำให้คุณใส่สัญลักษณ์หรือตัวเลขไว้ตรงกลางรหัสผ่านของคุณ (แทนที่จะใส่ไว้ที่ท้ายหรือต้น) และหลีกเลี่ยงการแทนที่ทั่วไป กล่าวคือ หากคุณต้องการแทนที่อักขระด้วยเครื่องหมายดอลลาร์ ($) ให้เลือกอักขระอื่นที่ไม่ใช่ "s" หากคุณต้องการแทนที่อักขระด้วยเลขหนึ่ง (1) ให้เลือกอักขระอื่นที่ไม่ใช่ตัวพิมพ์เล็ก L (l) [ 34 ]

คำแนะนำเกี่ยวกับรหัสผ่านเคยเน้นที่การรวมประเภทของสัญลักษณ์ (เช่น การกำหนดให้มีทั้งตัวพิมพ์ใหญ่และตัวพิมพ์เล็ก ตัวเลข และเครื่องหมายวรรคตอน) และเว็บไซต์และระบบที่มีชื่อเสียงหลายแห่งสนับสนุนการบังคับใช้กฎต่างๆ ที่เกี่ยวข้อง อย่างไรก็ตาม สิ่งนี้ส่งผลให้รหัสผ่านจำยาก ทำให้ความสนใจเบี่ยงเบนไปจากส่วนที่สำคัญที่สุดของรหัสผ่านที่ปลอดภัยใดๆ นั่นคือ ความยาว[ 5 ]และอาจทำให้ถอดรหัสได้ง่ายขึ้น[ 20 ]ยิ่งไปกว่านั้น การบังคับใช้รหัสผ่านเช่น "pqZ%rw5j" ทำให้เกิดจุดอ่อนอื่นๆ เช่น ทำให้จำได้ยากมาก

คำแนะนำก่อนหน้านี้ยังเน้นย้ำถึงการหลีกเลี่ยงการใช้ตัวอักษรซ้ำ รูปแบบแป้นพิมพ์ คำศัพท์ในพจนานุกรม ชื่อญาติหรือสัตว์เลี้ยง ข้อมูลชีวประวัติ ส่วนหนึ่งของชื่อผู้ใช้ในการเข้าสู่ระบบ และตัวอักษรหรือตัวเลขเรียงลำดับ บริษัทเทคโนโลยีรายใหญ่ได้สนับสนุนการใช้รหัสผ่านโดยใช้เทคนิคต่างๆ ในช่วงเวลาต่างๆ ซึ่งในปี 2026 นั้นล้าสมัยไปแล้ว ในปี 2008 Google แนะนำให้คุณรวมทุกอย่างข้างต้นเมื่อสร้างรหัสผ่าน[ 35 ]

ณ ปี 2026 NIST ไม่แนะนำให้ใช้ตัวอักษรพิเศษและตัวเลขในรหัสผ่านอีกต่อไป แม้ว่าการเพิ่มตัวอักษรพิเศษและตัวเลขจะทำให้รหัสผ่านเดายากขึ้น แต่ก็อาจทำให้ผู้ใช้คิดว่ารหัสผ่านที่สั้นกว่านั้นปลอดภัย NIST เตือนผู้ใช้ว่าสิ่งสำคัญที่สุดของรหัสผ่านคือความยาว[ 5 ]ตัวอย่างเช่น หากคุณคิดรหัสผ่านว่า "My son Aiden is three years old" อย่าตัดให้สั้นลงเป็น "msaityo" ให้ใช้แบบเต็มๆ คือ "mysonaidenis3yearsold" ซึ่งเป็นรหัสผ่านที่มีความยาว 21 ตัวอักษร

คำแนะนำที่แนะนำให้ใช้รหัสผ่านที่ยาวขึ้นโดยไม่มีเครื่องหมายวรรคตอนพิเศษใดๆ นอกจากช่องว่าง (เช่น "cassette lava baby") ได้รับความนิยมมากขึ้นเนื่องจากความก้าวหน้าของเทคนิคการเข้ารหัส รหัสผ่านเหล่านี้จำง่ายกว่าและ (เนื่องจากยาว) ยากต่อการถอดรหัส ผู้เชี่ยวชาญด้านความปลอดภัยยอมรับว่าผู้คนมักจะจดรหัสผ่านของตน ดังนั้นจึงเป็นการดีกว่าหากรหัสผ่านนั้นไม่สามารถจดจำได้ทันที[ 5 ]

เว็บไซต์ต่างๆ เคยเสนอ "คำถามลับ" (เช่น "สัตว์เลี้ยงตัวแรกของคุณชื่ออะไร?") เพื่อกู้คืนรหัสผ่านที่ลืม อย่างไรก็ตาม กลไกเหล่านี้มักจะถอดรหัสได้ง่ายกว่ารหัสผ่านเสียอีก[ 34 ]

ระบบหลายระบบยังสนับสนุนหรือบังคับให้เปลี่ยนรหัสผ่านอย่างต่อเนื่อง ซึ่งเชื่อกันว่าจะช่วยเพิ่มความปลอดภัย แต่บ่อยครั้งกลับได้ผลตรงกันข้าม เพราะผู้คนมักเพิ่มจำนวนรหัสผ่านที่ใช้บ่อยขึ้นเรื่อยๆ ("teddy1", "teddy2", "teddy3", ...) ซึ่งไม่ได้เพิ่มความแข็งแกร่งของรหัสผ่านอย่างมีนัยสำคัญ แต่กลับเพิ่มโอกาสที่ผู้คนจะลืมรหัสผ่านมากขึ้น

ความเป็นเอกลักษณ์

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

การบังคับให้ใส่ตัวอักษรพิมพ์เล็ก ตัวอักษรพิมพ์ใหญ่ ตัวเลข และสัญลักษณ์ในรหัสผ่านเป็นนโยบายทั่วไป แต่พบว่าทำให้ความปลอดภัยลดลง เนื่องจากทำให้ถอดรหัสได้ง่ายขึ้น งานวิจัยแสดงให้เห็นว่าการใช้สัญลักษณ์ดังกล่าวสามารถคาดเดาได้ และหน่วยงานด้านความปลอดภัยทางไซเบอร์ของรัฐบาลสหรัฐฯ[ 20 ]และสหราชอาณาจักร[ 36 ]แนะนำไม่ให้บังคับให้ใส่สัญลักษณ์เหล่านี้ในนโยบายรหัสผ่าน สัญลักษณ์ที่ซับซ้อนยังทำให้การจำรหัสผ่านยากขึ้น ซึ่งเพิ่มการจดบันทึก การรีเซ็ตรหัสผ่าน และการใช้รหัสผ่านซ้ำ ซึ่งทั้งหมดนี้ทำให้ความปลอดภัยของรหัสผ่านลดลง แทนที่จะเพิ่มขึ้น[ 19 ]บิล เบอร์ ผู้เขียนกฎความซับซ้อนของรหัสผ่านดั้งเดิม ได้ขอโทษและยอมรับว่ากฎดังกล่าวทำให้ความปลอดภัยลดลง ดังที่งานวิจัยได้ค้นพบ เรื่องนี้ได้รับการรายงานอย่างกว้างขวางในสื่อในปี 2017 [ 37 ]นักวิจัยด้านความปลอดภัยออนไลน์[ 38 ]และที่ปรึกษายังสนับสนุนการเปลี่ยนแปลง[ 39 ]ในคำแนะนำแนวทางปฏิบัติที่ดีที่สุดเกี่ยวกับรหัสผ่าน ถึงกระนั้น ข้อกำหนดด้านความซับซ้อนในนโยบายรหัสผ่านก็ยังคงแพร่หลาย: การศึกษาในปี 2023 ของเว็บไซต์ 20,000 แห่งพบว่าประมาณ 20% ยังคงกำหนดให้รหัสผ่านต้องมีอักขระจากคลาสอักขระอย่างน้อยสองคลาส[ 40 ]

คำแนะนำบางส่วนไม่แนะนำให้เขียนรหัสผ่านลงไป ในขณะที่คำแนะนำอื่นๆ ระบุว่าผู้ใช้ต้องเข้าถึงระบบที่มีการป้องกันด้วยรหัสผ่านจำนวนมาก จึงสนับสนุนให้เขียนรหัสผ่านลงไปตราบใดที่รายการรหัสผ่านที่เขียนไว้นั้นเก็บไว้ในที่ปลอดภัย[ 21 ] NCSC แนะนำให้ใช้โปรแกรมจัดการรหัสผ่าน[ 41 ]

ชุดอักขระที่เป็นไปได้สำหรับรหัสผ่านอาจถูกจำกัดโดยเว็บไซต์ต่างๆ หรือโดยช่วงของแป้นพิมพ์ที่ต้องป้อนรหัสผ่าน[ 42 ]

ตัวอย่างรหัสผ่านที่ไม่ปลอดภัย

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

  • รหัสผ่านเริ่มต้น (ตามที่ผู้จำหน่ายระบบกำหนดและควรเปลี่ยนในระหว่างการติดตั้ง) ได้แก่password , default , admin , guestเป็นต้น สามารถค้นหารายชื่อรหัสผ่านเริ่มต้นได้ทั่วไปบนอินเทอร์เน็ต
  • การใช้รหัสผ่านซ้ำ: รหัสผ่านควรไม่ซ้ำกันสำหรับแต่ละบัญชี การเปลี่ยนแปลงรหัสผ่านที่ใช้ซ้ำ เช่น การเปลี่ยนตัวอักษรหรือตัวเลขเพียงไม่กี่ตัว ไม่ได้ให้ความปลอดภัยที่เพียงพอ
  • คำศัพท์จากพจนานุกรม: chameleon , RedSox , sandbags , bunnyhop!, IntenseCrabtree เป็นต้นรวมถึงคำศัพท์จากพจนานุกรมที่ไม่ใช่ภาษาอังกฤษ
  • คำที่มีตัวเลขต่อท้าย เช่นpassword1 , deer2000 , john1234เป็นต้น สามารถทดสอบได้โดยอัตโนมัติอย่างง่ายดายและประหยัดเวลา
  • รหัสผ่านที่ถูกบิดเบือน (คำที่มีการปกปิดอย่างง่าย): p@ssw0rd , l33th4x0r , g0ldf1shเป็นต้น สามารถทดสอบได้โดยอัตโนมัติโดยใช้ความพยายามเพิ่มเติมเพียงเล็กน้อย ตัวอย่างเช่น รหัสผ่านผู้ดูแลระบบโดเมนที่ถูกโจมตีในDigiNotarนั้นมีรายงานว่าเป็นPr0d@dm1n [ 43 ]
  • คำซ้ำ: crabcrab , stopstop , treetree , passpassเป็นต้น
  • ลำดับการกดปุ่มทั่วไปจากแถวแป้นพิมพ์: qwerty , 123456 , asdfghเป็นต้น รวมถึงลำดับการกดปุ่มในแนวทแยงหรือย้อนกลับ (qazplm, ytrewq เป็นต้น)
  • ลำดับตัวเลขที่สร้างขึ้นจากตัวเลขที่รู้จักกันดี เช่น 911 ( 9-1-1 , 9/11 ) , 314159... ( พาย ) , 27182... ( e ) , 112 ( 1-1-2 )เป็นต้น
  • ตัวระบุ: jsmith123 , 1/1/1970 , 555–1234 , ชื่อผู้ใช้ ฯลฯ
  • รหัสผ่านที่อ่อนแอในภาษาที่ไม่ใช่ภาษาอังกฤษ เช่น contraseña (ภาษาสเปน) และ ji32k7au4a83 (การเข้ารหัสแป้นพิมพ์ bopomofo จากภาษาจีน) [ 44 ]
  • ข้อมูลส่วนบุคคลใดๆ ที่เกี่ยวข้องกับบุคคลใดบุคคลหนึ่ง เช่น หมายเลขทะเบียนรถ หมายเลขประกันสังคม หมายเลขโทรศัพท์ปัจจุบันหรือในอดีต บัตรนักเรียน ที่อยู่ปัจจุบัน ที่อยู่ก่อนหน้า วันเกิด ทีมกีฬา ชื่อญาติหรือชื่อสัตว์เลี้ยง (หรือชื่อเล่น วันเกิด ตัวย่อ ฯลฯ) สามารถตรวจสอบได้โดยอัตโนมัติอย่างง่ายดายหลังจากการตรวจสอบรายละเอียดของบุคคลนั้นอย่างง่ายๆ
  • วันที่: วันที่มักมีรูปแบบเฉพาะ และทำให้รหัสผ่านของคุณอ่อนแอ
  • ชื่อสถานที่ที่มีชื่อเสียง: นิวยอร์ก, เท็กซัส, จีน, ลอนดอน เป็นต้น
  • ชื่อแบรนด์ บุคคลที่มีชื่อเสียง ทีมกีฬา วงดนตรี รายการโทรทัศน์ ภาพยนตร์ ฯลฯ
  • รหัสผ่านสั้น: แม้ว่ารหัสผ่านจะไม่มีจุดอ่อนใดๆ ตามที่ระบุไว้ข้างต้น แต่ถ้าสั้นเกินไป ก็สามารถถูกเจาะได้ง่าย

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

ทบทวนคำแนะนำเกี่ยวกับรหัสผ่านใหม่

ในบริบทของปี 2012 ดังที่William Cheswick ได้อธิบายไว้ ในบทความสำหรับนิตยสาร ACM การรักษาความปลอดภัยของรหัสผ่านส่วนใหญ่เน้นไปที่รหัสผ่านที่เป็นตัวอักษรและตัวเลขแปดตัวขึ้นไป รหัสผ่านดังกล่าวสามารถต้านทานการพยายามได้สิบล้านครั้งต่อวินาทีเป็นเวลา 252 วัน อย่างไรก็ตาม ด้วยความช่วยเหลือของ GPU ที่ทันสมัยในขณะนั้น ระยะเวลานี้ลดลงเหลือเพียงประมาณ 9 ชั่วโมง โดยมีอัตราการเจาะระบบ 7 พันล้านครั้งต่อวินาที รหัสผ่าน 13 ตัวอักษรคาดว่าจะสามารถต้านทานการพยายามที่คำนวณโดย GPU ได้นานกว่า 900,000 ปี[ 46 ] [ 47 ]

ในบริบทของเทคโนโลยีฮาร์ดแวร์ปี 2023 มาตรฐานรหัสผ่านตัวอักษรและตัวเลขแปดตัวอักษรในปี 2012 กลายเป็นช่องโหว่ สามารถถูกเจาะได้ภายในไม่กี่ชั่วโมง เวลาที่ใช้ในการเจาะรหัสผ่าน 13 ตัวอักษรลดลงเหลือเพียงไม่กี่ปี ดังนั้น ความสำคัญในปัจจุบันจึงเปลี่ยนไป ความแข็งแกร่งของรหัสผ่านในปัจจุบันไม่ได้วัดจากความซับซ้อนเพียงอย่างเดียว แต่ยังวัดจากความยาวด้วย โดยคำแนะนำมุ่งเน้นไปที่รหัสผ่านที่มีความยาวอย่างน้อย 13-16 ตัวอักษร ยุคนี้ยังได้เห็นการเพิ่มขึ้นของการตรวจสอบสิทธิ์แบบหลายปัจจัย (MFA) ในฐานะมาตรการรักษาความปลอดภัยที่สำคัญ การเกิดขึ้นและการใช้งานอย่างแพร่หลายของโปรแกรมจัดการรหัสผ่านยังช่วยให้ผู้ใช้สามารถสร้างและรักษารหัสผ่านที่แข็งแกร่งและไม่ซ้ำกันได้อีกด้วย[ 48 ]

นโยบายรหัสผ่าน

นโยบายรหัสผ่านเป็นแนวทางในการเลือกใช้รหัสผ่านที่เหมาะสม โดยมีวัตถุประสงค์เพื่อ:

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

นโยบายรหัสผ่านก่อนหน้านี้กำหนดอักขระที่รหัสผ่านต้องมี เช่น ตัวเลข สัญลักษณ์ หรือตัวพิมพ์ใหญ่/ตัวพิมพ์เล็ก แม้ว่านโยบายนี้ยังคงใช้อยู่ แต่ก็ถูกหักล้างว่ามีความปลอดภัยน้อยกว่าโดยงานวิจัยของมหาวิทยาลัย[ 49 ]โดยผู้ริเริ่มนโยบายนี้ แต่แรก [ 50 ] และโดยหน่วยงานด้านความปลอดภัยทางไซเบอร์ (และหน่วยงานด้านความปลอดภัยของรัฐบาลอื่นๆ ที่เกี่ยวข้อง [ 51 ] ) ของสหรัฐอเมริกา[ 20 ]และสหราชอาณาจักร[ 52 ]กฎความซับซ้อนของรหัสผ่านที่บังคับใช้สัญลักษณ์เคยถูกใช้โดยแพลตฟอร์มหลักๆ เช่น Google [ 53 ]และ Facebook [ 54 ]แต่แพลตฟอร์มเหล่านี้ได้ยกเลิกข้อกำหนดดังกล่าวหลังจากพบว่ามันลดความปลอดภัยลงจริง เนื่องจากปัจจัยด้านมนุษย์มีความเสี่ยงมากกว่าการถอดรหัส และการบังคับใช้ความซับซ้อนทำให้ผู้ใช้ส่วนใหญ่ใช้รูปแบบที่คาดเดาได้ง่าย (ตัวเลขตอนท้าย เปลี่ยน 3 เป็น E เป็นต้น) ซึ่งช่วยในการถอดรหัสรหัสผ่าน ดังนั้น ความเรียบง่ายและความยาวของรหัสผ่าน (วลีรหัสผ่าน) จึงเป็นแนวทางปฏิบัติที่ดีที่สุดแบบใหม่ และไม่แนะนำให้ใช้ความซับซ้อน กฎเกณฑ์ความซับซ้อนที่ถูกบังคับใช้ยังเพิ่มต้นทุนด้านการสนับสนุน สร้างความยุ่งยากในการใช้งาน และลดแรงจูงใจในการสมัครใช้งานของผู้ใช้ด้วย

การหมดอายุของรหัสผ่านมีอยู่ในนโยบายรหัสผ่านรุ่นเก่าบางฉบับ แต่ถูกหักล้าง[ 37 ]ว่าเป็นแนวปฏิบัติที่ดีที่สุดและไม่ได้รับการสนับสนุนจากรัฐบาลสหรัฐอเมริกาหรือสหราชอาณาจักร หรือจาก Microsoft ซึ่งได้ลบ[ 55 ]คุณสมบัติการหมดอายุของรหัสผ่านออกไป การหมดอายุของรหัสผ่านก่อนหน้านี้พยายามที่จะตอบสนองวัตถุประสงค์สองประการ: [ 56 ]

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

อย่างไรก็ตาม การหมดอายุของรหัสผ่านมีข้อเสียอยู่บ้าง: [ 57 ] [ 58 ]

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

การสร้างและการจัดการรหัสผ่าน

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

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

มาตรการต่อไปนี้อาจช่วยเพิ่มการยอมรับข้อกำหนดการใช้รหัสผ่านที่ปลอดภัย หากนำไปใช้อย่างระมัดระวัง:

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

เทคนิคการจำ

นโยบายเกี่ยวกับรหัสผ่านบางครั้งอาจแนะนำเทคนิคการจำเพื่อช่วยในการจดจำรหัสผ่าน:

  • รหัสผ่านช่วยจำ: ผู้ใช้บางรายสร้าง วลี ช่วยจำและใช้วลีเหล่านั้นเพื่อสร้างรหัสผ่านแบบสุ่มมากหรือน้อย ซึ่งอย่างไรก็ตามผู้ใช้ก็จำได้ง่าย ตัวอย่างเช่น ตัวอักษรตัวแรกของแต่ละคำในวลีที่จำได้ง่าย งานวิจัยประเมินความแข็งแกร่งของรหัสผ่านดังกล่าวอยู่ที่ประมาณ 3.7 บิตต่อตัวอักษร เมื่อเทียบกับ 6.6 บิตสำหรับรหัสผ่านแบบสุ่มจากอักขระที่พิมพ์ได้ของ ASCII [ 59 ]รหัสผ่านที่ดูตลกอาจจำได้ง่ายกว่า[ 60 ]อีกวิธีหนึ่งที่จะทำให้รหัสผ่านที่ดูเหมือนสุ่มนั้นจำได้ง่ายขึ้นคือการใช้คำหรือพยางค์แบบสุ่มแทนตัวอักษรที่เลือกแบบสุ่ม
  • ตัวช่วยจำภายหลัง: หลังจากตั้งรหัสผ่านแล้ว ให้สร้างตัวช่วยจำที่เหมาะสม[ 61 ]ไม่จำเป็นต้องสมเหตุสมผลหรือเข้าใจได้ เพียงแค่จำได้ง่าย วิธีนี้ทำให้รหัสผ่านสามารถสุ่มได้
  • การแสดงภาพรหัสผ่าน: รหัสผ่านจะถูกจดจำโดยอิงจากลำดับของปุ่มที่กด ไม่ใช่ค่าของปุ่มเหล่านั้นเอง เช่น ลำดับ !qAsdE#2 แทนรูปสี่เหลี่ยมขนมเปียกปูนบนแป้นพิมพ์ US วิธีการสร้างรหัสผ่านดังกล่าวเรียกว่า PsychoPass [ 62 ]รหัสผ่านที่สร้างโดยวิธีนี้อ่อนแอกว่าที่ความยาวบ่งบอก เนื่องจากปุ่มที่ต่อเนื่องกันไม่ได้เป็นอิสระต่อกัน และลำดับแป้นพิมพ์ทั่วไปถูกรวมอยู่ในพจนานุกรมรหัสผ่าน แต่สามารถปรับปรุงได้[ 63 ] [ 64 ]
  • รูปแบบรหัสผ่าน: รูปแบบใดๆ ในรหัสผ่านจะทำให้การเดา (ไม่ว่าจะอัตโนมัติหรือไม่) ง่ายขึ้น และลดขั้นตอนการทำงานของผู้โจมตีลง
    • ตัวอย่างเช่น รหัสผ่านที่มีรูปแบบไม่คำนึงถึงตัวพิมพ์ใหญ่-เล็กดังต่อไปนี้: พยัญชนะ สระ พยัญชนะ พยัญชนะ สระ พยัญชนะ ตัวเลข ตัวเลข (เช่นpinray45 ) เรียกว่ารหัสผ่านแบบ Environ รูปแบบการสลับตัวอักษรสระและพยัญชนะนี้มีจุดประสงค์เพื่อให้รหัสผ่านออกเสียงได้ง่ายขึ้นและจดจำได้ง่ายขึ้น รูปแบบดังกล่าวลดเอนโทรปีของข้อมูล ในรหัสผ่านลงอย่างมาก ทำให้ การโจมตีรหัสผ่าน แบบเดาสุ่มมีประสิทธิภาพมากขึ้น ในสหราชอาณาจักรเมื่อเดือนตุลาคม 2548 พนักงานของรัฐบาลอังกฤษได้รับคำแนะนำให้ใช้รหัสผ่านในรูปแบบนี้

โปรแกรมจัดการรหัสผ่าน

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

ดูเพิ่มเติม

  • RFC 4086: ข้อกำหนดด้านความสุ่มสำหรับความปลอดภัย
  • รูปแบบรหัสผ่าน: การโจมตีด้วยพจนานุกรมรุ่นใหม่
ดึงข้อมูลมาจาก " https://en.wikipedia.org/w/index.php?title=Password_strength&oldid=1356897350 "

สรุปเนื้อหา

ข้อมูลสำคัญจากบทความ

ข้อมูลสำคัญเกี่ยวกับ ความแข็งแกร่งของรหัสผ่าน

ความแข็งแกร่งของรหัสผ่าน คือการวัดประสิทธิภาพของ รหัส ผ่านในการป้องกันการเดาหรือ การโจมตีแบบ Brute-force โดยทั่วไปแล้ว...

การสร้างรหัสผ่าน

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

การตรวจสอบความถูกต้องของการเดารหัสผ่าน

ระบบที่ใช้รหัสผ่านใน การตรวจสอบสิทธิ์ จะต้องมีวิธีการตรวจสอบรหัสผ่านที่ป้อนเพื่อเข้าถึง หากรหัสผ่านที่ถูกต้องถูกจัดเก็บไว้ในไฟล์ระบบหรือฐานข้อมูล ผู้โจมตีที่เข้าถึงระบบได้มากพอจะได้รับรหัสผ่านของผู้ใช้ทั้งหมด...

เอนโทรปีในฐานะมาตรวัดความแข็งแกร่งของรหัสผ่าน

ความแข็งแกร่งของรหัสผ่านระบุโดยปริมาณ เอนโทรปีของข้อมูล ซึ่งวัดเป็นหน่วย แชนนอน (Sh) และเป็นแนวคิดจาก ทฤษฎีสารสนเทศ ถือได้ว่าเป็นจำนวน บิต ขั้นต่ำ ที่จำเป็นในการเก็บข้อมูลในรหัสผ่านประเภทที่กำหนด การวัดที่เกี่ยวข้องคือ ลอการิทึมฐาน 2...