ข้ามไปเนื้อหา

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

จากวิกิพีเดีย สารานุกรมเสรี
ลูกเล่นของหน้าสร้างรหัสผ่านแบบสุ่มของโปรแกรมจัดการรหัสผ่าน KeePass การเพิ่มกลุ่มตัวอักษรจะเพิ่มความแข็งแกร่งของรหัสผ่านที่สร้างเพียงเล็กน้อย เทียบกับการเพิ่มจำนวนอักษรที่เพิ่มความเข้มแข็งยิ่งกว่า

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

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

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

ในปี 2019 ศูนย์ความมั่นคงทางไซเบอร์แห่งชาติสหราชอาณาจักร ได้วิเคราะห์ฐานข้อมูลบัญชีรั่วไหลที่เป็นสาธารณะ เพื่อตรวจดูว่าผู้ใช้ใช้คำหรือวลีอะไรเป็นรหัสผ่านมากที่สุด ที่นิยมที่สุดก็คือ 123456 ซึ่งถูกแฮ็กแล้วถึง 23 ล้านครั้ง ที่นิยมเป็นอันดับสอง คือ 123456789 ซึ่งก็เดาได้ไม่ยากกว่ามาก[3]

การสร้างรหัสผ่าน[แก้]

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

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

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

ความถูกต้องของรหัสผ่านที่เดา[แก้]

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

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

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

สถานการณ์อีกอย่างหนึ่งที่ทำให้เดารหัสผ่านได้อย่างรวดเร็วก็คือเมื่อใช้รหัสผ่านเป็นกุญแจเข้ารหัสลับ (cryptographic key) ผู้โจมตีจึงตรวจสอบดูได้ว่า รหัสผ่านที่เดาสามารถถอดรหัสลับของข้อมูลได้หรือไม่ เช่น มีผลิตภัณฑ์หนึ่งที่อ้างว่าสามารถตรวจสอบรหัสผ่านวายฟายชนิด WPA PSK ได้ถึง 103,000 ตัว/วินาที[7]

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

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

ค่าวัดความแข็งแกร่งเป็นเอนโทรปี[แก้]

รหัสผ่านจะแข็งแกร่งแค่ไหนสามารถกำหนดได้ด้วยเอนโทรปีของข้อมูล (information entropy) ซึ่งเป็นแนวคิดที่ได้จากสาขาทฤษฎีสารสนเทศ เอนโทรปีของข้อมูลเป็นบิตจำนวนน้อยที่สุดซึ่งสามารถบรรจุข้อมูลที่มีในรหัสผ่านชนิดหนึ่ง ๆ โดยคร่าว ๆ จะเท่ากับลอการิทึมฐานสองของจำนวนการเดาสูงสุดเพื่อให้ได้รหัสผ่าน โดยมักเรียกว่า "บิตของเอนโทรปี"[8] รหัสผ่านที่มี 42 บิตของเอนโทรปีจะแข็งแกร่งเท่ากับการเลือกเลขศูนย์เลขหนึ่งโดยสุ่มติดต่อกัน 42 ตัว เช่น โยนเหรียญหัวก้อย 42 ครั้ง กล่าวอีกอย่างก็คือ รหัสผ่านที่มี 42 บิตของเอนโทรปีจะต้องเดา 242 (4,398,046,511,104) ครั้งเพื่อให้ได้รหัสผ่านที่เป็นไปได้ทั้งหมดเมื่อโจมตีโดยใช้กำลัง ดังนั้น การเพิ่มเอนโทรปีของรหัสผ่าน 1 บิตก็จะเพิ่มจำนวนการเดาเป็นเท่าตัว จึงทำให้แฮ็กได้ยากขึ้นเป็นทวีคูณ ผู้โจมตีโดยเฉลี่ยจะต้องเดารหัสผ่านเป็นจำนวนครึ่งหนึ่งก่อนจะได้รหัสผ่านที่ถูกต้อง[4]

รหัสผ่านสุ่ม[แก้]

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

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

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

H มีหน่วยเป็นบิต[4][9] สำหรับนิพจน์ช่องสุดท้าย log จะมีฐานอะไรก็ได้

ค่าเอนโทรปีสำหรับสัญลักษณ์หนึ่งตัวสำหรับสัญลักษณ์ชุดต่างๆ
ชุดสัญลักษณ์ จำนวนสัญลักษณ์ในชุด
N
เอนโทรปี
H
ตัวเลขอาหรับ (0-9) (เช่น รหัสพิน) 10 3.322 บิต
เลขฐานสิบหก (0-9, A-F) (เช่น กุญแจ WEP) 16 4.000 บิต
ชุดตัวอักษรละตินที่ไม่ไวต่ออักษรใหญ่เล็ก (a-z or A-Z) 26 4.700 บิต
ชุดตัวอักษรละตินและตัวเลขที่ไม่ไวต่ออักษรใหญ่เล็ก (a-z or A-Z, 0-9) 36 5.170 บิต
ชุดตัวอักษรละตินที่ไวต่ออักษรใหญ่เล็ก (a-z, A-Z) 52 5.700 บิต
ชุดตัวอักษรละตินและตัวเลขที่ไวต่ออักษรใหญ่เล็ก (a-z, A-Z, 0-9) 62 5.954 บิต
ชุดอักขระแอสกีที่แสดงผลยกเว้นอักขระว่าง 94 6.555 บิต
ชุดอักขระเพิ่มเติมละติน-1 94 6.555 บิต
ชุดอักขระแอสกีที่แสดงผล 95 6.570 บิต
ชุดอักขระแอสกีขยายที่แสดงผล 218 7.768 บิต
เลข 8 บิต (0-255 หรือ 1 ไบต์) 256 8.000 บิต
รายการคำไดซ์แวร์ 7,776 12.925 บิตต่อคำ

ข้อมูล 1 ไบต์มักจะเขียนเป็นเลขฐานสิบหก 2 ตัว

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

โดย หมายถึงฟังก์ชันเพดาน คือ การปัดเศษขึ้นให้เลขเป็นจำนวนเต็ม

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

รหัสผ่านที่สร้างโดยสุ่มจริง ๆ มีสัญลักษณ์ยาว L ตัวเพื่อให้ได้เอนโทรปี H โดยชุดมีสัญลักษณ์ N ตัว
รหัสผ่าน
มีเอนโทรปี H
ตัวเลข
อาหรับ
เลขฐาน
สิบหก
ไม่ไวต่ออักษรใหญ่เล็ก ไวต่ออักษรใหญ่เล็ก อักขระแอสกี
ทั้งหมด
อักขระ
แอสกีขยาย
รายการคำ
ไดซ์แวร์
ชุดอักษร
ละติน
ชุดตัว
อักษรละติน
และตัวเลข
ชุดอักษร
ละติน
ชุดตัว
อักษรละติน
และตัวเลข
ที่แสดงผล
8 บิต (1 ไบต์) 3 2 2 2 2 2 2 2 1 คำ
32 บิต (4 ไบต์) 10 8 7 7 6 6 5 5 3 คำ
40 บิต (5 ไบต์) 13 10 9 8 8 7 7 6 4 คำ
64 บิต (8 ไบต์) 20 16 14 13 12 11 10 9 5 คำ
80 บิต (10 ไบต์) 25 20 18 16 15 14 13 11 7 คำ
96 บิต (12 ไบต์) 29 24 21 19 17 17 15 13 8 คำ
128 บิต (16 ไบต์) 39 32 28 25 23 22 20 17 10 คำ
160 บิต (20 ไบต์) 49 40 35 31 29 27 25 21 13 คำ
192 บิต (24 ไบต์) 58 48 41 38 34 33 30 25 15 คำ
224 บิต (28 ไบต์) 68 56 48 44 40 38 35 29 18 คำ
256 บิต (32 ไบต์) 78 64 55 50 45 43 39 33 20 คำ

รหัสผ่านที่มนุษย์สร้าง[แก้]

ปกติรู้ได้เลยว่ามนุษย์สร้างรหัสผ่านให้มีเอนโทรปีอันสมควรได้แย่มาก งานศึกษากับคนครึ่งล้านประเมินว่าเอนโทรปีโดยเฉลี่ยของรหัสผ่านที่มนุษย์สร้างอยู่ที่ 40.54 บิต[10]

ในงานวิเคราะห์รหัสผ่านยาว 8 ตัว 3 ล้านรหัส มีการใช้อักษร "e" 1.5 ล้านครั้ง อักษร "f" เพียงแค่ 250,000 ครั้ง ถ้าเป็นการแจกแจงแบบเอกรูปจริง ๆ อักษรแต่ละตัวก็ควรจะใช้ 900,000 ครั้ง เลขที่ใช้มากที่สุดคือ 1 อักษรที่ใช้มากที่สุดคือ a, e, o และ r[11] ผู้ใช้มักจะไม่ใช้อักษรชุดใหญ่กว่านี้เพื่อสร้างรหัสผ่านให้ปลอดภัยยิ่งขึ้น ยกตัวอย่างเช่น การฟิชชิงเว็บไซต์ MySpace ในปี 2006 มีผลให้แฮ็กได้รหัสผ่าน 34,000 รหัส แต่มีเพียงร้อยละ 8.3 เท่านั้นที่ใช้อักษรตัวเล็กตัวใหญ่ ตัวเลขและสัญลักษณ์[12]

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

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

การใช้งานได้และการทำให้เกิดผล[แก้]

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

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

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

บิตเอนโทรปีตามความจำเป็น[แก้]

บิตเอนโทรปีอย่างต่ำสุดที่จำเป็นจะขึ้นอยู่กับโมเดลการคุกคาม (threat model) ของแอปนั้น ๆ แต่ถ้าไม่ใช้กระบวนการขยายกุญแจ (key stretching) ก็จะต้องใช้รหัสผ่านที่มีเอนโทรปีสูงกว่า

เอกสารขอความเห็นปี 2005 ยกตัวอย่างโมเดลการคุกคามกับเอนโทรปีที่จำเป็นแต่ละอย่าง [15] แล้วได้คำตอบว่าต้องมีเอนโทรปี 29 บิตถ้าต้องรับมือกับการโจมตีทางออนไลน์เท่านั้น และมีถึง 96 บิตสำหรับใช้เป็นกุญแจที่ใช้ในโปรแกรมเข้ารหัสลับเมื่อกุญแจที่ว่าต้องมั่นคงในระยะยาวและไม่ได้ขยาย ในปี 2010 สถาบันการวิจัยจอร์เจียเทคทำการศึกษาเรื่องกุญแจที่ไม่ขยาย แล้วแนะนำให้ใช้รหัสผ่านสุ่มที่มีอักษร 12 ตัวเป็นอย่างต่ำ[5][16] ควรเข้าใจด้วยว่าเพราะคอมพิวเตอร์เร็วขึ้นเรื่อย ๆ ดังนั้น เพื่อจะป้องกันการโจมตีแบบออฟไลน์ บิตเอนโทรปีก็จะต้องเพิ่มขึ้นเรื่อย ๆ เช่นกัน

ค่าสูงจะใช้กับข้อบังคับที่เข้มงวดเมื่อเลือกกุญแจสำหรับเข้ารหัสลับ ในปี 1999 โปรเจ็กต์ EFF DES cracker แฮ็กการเข้ารหัสแบบ DES ขนาด 56 บิตได้โดยไม่ถึงวันเมื่อใช้ฮาร์ดแวร์ที่ออกแบบเป็นพิเศษ[17] ในปี 2002 distributed.net แฮ็กกุญแจ 64 บิตภายใน 4 ปี 9 เดือนและ 23 วัน[18] ในปี 2011 distributed.net ประเมินว่า การแฮ็กกุญแจ 72 บิตโดยใช้ฮาร์ดแวร์ปัจจุบันจะใช้เวลา 45,579 วันหรือ 124.8 ปี[19] เมื่ออาศัยความรู้ความเข้าใจในข้อจำกัดของฟิสิกส์พื้นฐานปัจจุบัน คาดว่าจะไม่มีคอมพิวเตอร์ดิจิตัล (หรือเครือข่ายคอมพิวเตอร์) ที่สามารถแฮ็กการเข้ารหัสลับขนาด 256 บิตโดยใช้กำลัง[20] แต่คอมพิวเตอร์ควอนตัมจะสามารถทำได้หรือไม่ก็ยังไม่ชัดเจน แม้การวิเคราะห์ทางทฤษฎีแสดงว่าอาจเป็นไปได้[21]

รหัสผ่านที่เข้มแข็ง[แก้]

แนวทางสามัญ[แก้]

แนวทางในการเลือกรหัสผ่านที่ดีปกติจะออกแบบให้เดารหัสผ่านได้ยากแม้เมื่อมีความรู้เกี่ยวกับการสร้างรหัสผ่าน แนวทางสามัญที่องค์กรต่าง ๆ เสนอรวมทั้ง[22][23][24][25][26]

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

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

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

ชุดอักขระที่ใช้ได้กับรหัสผ่านอาจจะจำกัดโดยเว็บไซต์ต่าง ๆ หรือโดยคีย์บอร์ดที่ใช้ใส่รหัสผ่าน[37]

ตัวอย่างรหัสผ่านที่อ่อนแอ[แก้]

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

  • รหัสผ่านโดยปริยาย (ที่ผู้ขายระบบตั้งให้โดยหมายให้เปลี่ยนเมื่อติดตั้ง) เช่น password, default, admin, guest รายการรหัสผ่านโดยปริยายพบได้ทั่วไปทางอินเทอร์เน็ต
  • รหัสผ่านที่นำไปใช้อีก คือรหัสผ่านหนึ่งควรใช้เฉพาะกับบัญชีหนึ่งเท่านั้น การเปลี่ยนรหัสผ่านเพียงเล็กน้อย เช่นเปลี่ยนอักษรไม่กี่ตัว ตัวเลขไม่กี่ตัว ไม่ได้เพิ่มความมั่นคงเพียงพอให้นำไปใช้อีก
  • คำในพจนานุกรมต่าง ๆ เช่น ในภาษาอังกฤษ คือ chameleon, RedSox, sandbags, bunnyhop!, IntenseCrabtree แต่ก็รวมคำในพจนานุกรมที่ไม่ใช่ภาษาอังกฤษด้วย
  • คำที่ตามด้วยตัวเลข เช่น password1, deer2000, john1234 ซึ่งสามารถแฮ็กได้อย่างรวดเร็ว
  • คำที่ทำอำพรางแบบง่าย ๆ เช่น p@ssw0rd, l33th4x0r, g0ldf1sh ซึ่งก็แฮ็กได้อย่างรวดเร็วเหมือนกัน ยกตัวอย่างเช่นรหัสผ่านของแอดมินสำหรับผู้ประกอบการรับรองโดเมน DigiNotar เมื่อถูกแฮ็กรายงานว่าเป็น Pr0d@dm1n[38]
  • คำซ้อน เช่น 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 (ภาษาจีน)[39]
  • ข้อมูลเกี่ยวกับบุคคลเช่น เลขทะเบียนรถ เลขบัตรประชาชน เบอร์โทรศัพท์ทั้งปัจจุบันและอดีต หมายเลขนักเรียนนักศึกษา ที่อยู่ปัจจุบัน ที่อยู่ในอดีต วันเกิด ทีมกีฬา ชื่อ/ชื่อเล่น/วันเกิดของญาติ/สัตว์เลี้ยง สามารถแฮ็กได้ง่าย ๆ หลังจากตรวจดูรายละเอียดของบุคคล
  • วันที่ เพราะมีรูปแบบที่ทำให้รหัสผ่านอ่อนแอ
  • ชื่อสถานที่ต่าง ๆ ที่รู้จักกันดีเช่น นิวยอร์ก เทกซัส จีน ลอนดอน
  • ชื่อยี่ห้อ คนดัง ทีมกีฬา กลุ่มนักดนตรี รายการทีวี ภาพยนตร์
  • รหัสผ่านสั้น ๆ แม้จะไม่มีจุดอ่อนดังกล่าว แต่ถ้าสั้นเกินไป ก็จะแฮ็กได้ง่าย

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

แนวทางรหัสผ่านใหม่[แก้]

บทความปี 2012 ในวารสารสมาคมคอมพิวเตอร์เอซีเอ็ม รหัสผ่านที่มั่นคงเน้นให้ใช้ตัวอักษรตัวเล็ก ตัวใหญ่ และตัวเลข มีอักษร 8 ตัวหรือยิ่งกว่า เพราะรหัสผ่านดังว่าสามารถทนการพยายามเดาเป็น 10 ล้านครั้งต่อวินาทีได้นานถึง 252 วัน แต่จริง ๆ ถ้าใช้หน่วยประมวลผลกราฟิกส์ในเวลานั้นทำการ ก็จะใช้เวลาเพียงแค่ 9 ชั่วโมงโดยมีอัตราเดารหัสผ่านที่ 7,000 ล้านครั้งต่อวินาที ส่วนรหัสผ่านที่ยาว 13 ตัวอักษรก็จะสามารถทนการพยายามเดาได้ถึง 900,000 ปี[41][42]

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

นโยบายรหัสผ่าน[แก้]

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

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

นโยบายรหัสผ่านก่อน ๆ มักจะระบุกลุ่มอักษรซึ่งรหัสผ่านจะต้องมี เช่น ตัวเลข สัญลักษณ์ ตัวเล็ก ตัวใหญ่ แม้จะยังมีใช้อยู่ แต่งานวิจัยก็ได้ชี้แล้วว่า เป็นข้อบังคับที่ไม่ปลอดภัย[44] ผู้เริ่มตั้งนโยบายนี้ดั้งเดิมก็เห็นด้วย[45] ทั้งองค์กรความมั่นคงทางไซเบอร์ของสหรัฐและสหราชอาณาจักรก็เห็นด้วย[46][47][48] กฎความซับซ้อนรหัสผ่านโดยมีสัญลักษณ์ที่บังคับใช้ ก่อนหน้านี้ก็ใช้โดยแพลตฟอร์มหลัก ๆ เช่น กูเกิล[49] เฟซบุ๊ก[50] แต่ต่อมาก็เลิกใช้หลังจากพบว่าจริง ๆ ลดความมั่นคง เพราะมนุษย์เป็นตัวสร้างความเสี่ยงเพิ่ม และการบังคับสร้างความซับซ้อนทำให้ผู้ใช้ก่อรูปแบบที่พยากรณ์ได้ง่ายมาก เช่น ใส่ตัวเลขด้านหลังรหัสผ่าน ใช้เลข 3 แทนอักษร E เป็นต้น ซึ่งทำให้แฮ็กรหัสผ่านได้ง่าย ดังนั้น นโยบายปัจจุบันจึงแนะนำให้ใช้รหัสผ่านที่ตัวอักษรไม่ซับซ้อนแต่ยาว (เป็นพาสเฟรซ) กฎบังคับให้ซับซ้อนยังเพิ่มค่าใช้จ่ายในการสนับสนุนผู้ใช้ ทำความรำคาญให้ผู้ใช้ และเป็นตัวถ่วงไม่ให้ผู้ใช้เปิดบัญชี

นโยบายให้รหัสผ่านหมดอายุที่เคยใช้ก็พบว่าไม่ดีเหมือนกัน[32] ซึ่งต่อมารัฐบาลสหรัฐและสหราชอาณาจักรรวมทั้งบริษัทไมโครซอฟต์ก็เลิกใช้ทั้งหมด[51] การมีวันหมดอายุเคยคิดว่ามีประโยชน์ดังนี้[52]

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

แต่การหมดอายุของรหัสผ่านก็มีข้อเสียด้วย คือ[53][54]

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

การสร้างและบริหารรหัสผ่าน[แก้]

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

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

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

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

วิธีการจำ[แก้]

นโยบายรหัสผ่านบางครั้งจะแนะนำวิธีการจำรหัสผ่าน

  • ให้หาวลีช่วยจำแล้วใช้สร้างรหัสผ่าน ซึ่งเกือบจะเหมือนสุ่มแต่ก็ยังสามารถจำได้ง่าย เช่นการใช้อักษรตัวแรกของแต่ละคำในวลีที่จำได้ง่าย งานวิจัยประเมินว่าความแข็งแกร่งของรหัสผ่านดังที่ว่าอยู่ที่ประมาณ 3.7 บิตต่ออักษร เทียบกับ 6.6 บิตต่ออักษรของรหัสผ่านที่เลือกอักษรโดยสุ่มจากชุดอักขระแอสกีที่แสดงผล[55] วลีที่ตลกหรือเหลวไหลอาจจะจำได้ง่ายกว่า[56] วิธีอีกอย่างเพื่อสร้างรหัสผ่านสุ่มและจำได้ง่ายก็คือใช้คำสุ่ม (เช่น ไดซ์แวร์) หรืออักษรสุ่มจากรายการ
  • การตั้งเรื่องช่วยจำให้แก่คำสุ่มหรืออักษรสุ่มที่ได้[57] โดยไม่ต้องเป็นเรื่องสมเหตุสมผล เพียงแต่ให้จำได้ ซึ่งช่วยให้ได้รหัสผ่านที่เป็นสุ่มจริง 
  • การสร้างรหัสผ่านโดยเป็นรูป คือรหัสผ่านสามารถจำได้โดยอาศัยลำดับแป้นพิมพ์ที่กด ไม่ต้องใส่ใจว่าเป็นตัวอักษรอะไร เช่น !qAsdE#2 มีรูปเป็นสี่เหลี่ยมขนมเปียกปูนสำหรับคีย์บอร์ดสหรัฐ วิธีที่ใช้สร้างรหัสผ่านนี้มีชื่อว่า PsychoPass[58] แต่รหัสผ่านดังกล่าวก็แข็งแกร่งน้อยกว่าที่คิดตามจำนวนอักษร เพราะอักษรแต่ละตัวจริง ๆ ไม่ได้เป็นอิสระจากตัวก่อน อนึ่ง ลำดับอักษรดังว่าก็มักจะรวมอยู่ในพจนานุกรมรหัสผ่าน แต่นักวิจัยก็ได้เสนอวิธีการปรับปรุงวิธีนี้ให้ดีขึ้น[59][60]
  • รูปแบบรหัสผ่าน ไม่ว่าจะเป็นรูปแบบใด ๆ ก็จะทำให้เดาได้ง่ายขึ้น ไม่ว่าจะเดาโดยระบบอัตโนมัติหรือไม่
    • ยกตัวอย่างเช่นมีรูปแบบรหัสผ่านเช่นนี้ตามอักษรโรมันโดยไม่ไวตัวเล็กตัวใหญ่ คือ พยัญชนะ สระ พยัญชนะ พยัญชนะ สระ พยัญชนะ ตัวเลข ตัวเลข (เช่น pinray45) รูปแบบการสลับพยัญชนะกับสระหมายให้อ่านรหัสผ่านได้ ดังนั้น จึงจำได้ง่ายกว่า แต่รูปแบบดังกล่าวก็ลดเอนโทรปีของรหัสผ่านเป็นอย่างมาก ทำให้การโจมตีรหัสผ่านโดยใช้กำลังมีประสิทธิภาพยิ่งกว่ามาก แต่จนถึงเดือนตุลาคม 2005 เจ้าหน้าที่ของรัฐในสหราชอาณาจักรก็ยังได้คำแนะนำให้ใช้รหัสผ่านในรูปแบบนี้[ต้องการอ้างอิง]

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

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

ดูเพิ่ม[แก้]

เชิงอรรถและอ้างอิง[แก้]

  1. "Cyber Security Tip ST04-002". Choosing and Protecting Passwords. US CERT. 2009-05-21. เก็บจากแหล่งเดิมเมื่อ 2009-07-07. สืบค้นเมื่อ 2009-06-20.
  2. "Why User Names and Passwords Are Not Enough | SecurityWeek.Com". www.securityweek.com. 2019-01-31. สืบค้นเมื่อ 2020-10-31.
  3. "Millions using 123456 as password, security study finds". BBC News. 2019-04-21. สืบค้นเมื่อ 2019-04-24.
  4. 4.0 4.1 4.2 "SP 800-63 - Electronic Authentication Guideline" (PDF). NIST. คลังข้อมูลเก่าเก็บจากแหล่งเดิม (PDF)เมื่อ 2004-07-12. สืบค้นเมื่อ 2014-04-20.
  5. 5.0 5.1 "Teraflop Troubles: The Power of Graphics Processing Units May Threaten the World's Password Security System". Georgia Tech Research Institute. เก็บจากแหล่งเดิมเมื่อ 2010-12-30. สืบค้นเมื่อ 2010-11-07.
  6. Elcomsoft.com เก็บถาวร 2006-10-17 ที่ เวย์แบ็กแมชชีน , ElcomSoft Password Recovery Speed table, NTLM passwords, Nvidia Tesla S1070 GPU, accessed 2011-02-01
  7. Elcomsoft Wireless Security Auditor, HD5970 GPU เก็บถาวร 2011-02-19 ที่ เวย์แบ็กแมชชีนaccessed 2011-02-11
  8. Massey, James (1994). "Guessing and entropy" (PDF). Proceedings of 1994 IEEE International Symposium on Information Theory. IEEE. p. 204.
  9. Schneier, B: Applied Cryptography, 2e, page 233 ff. John Wiley and Sons.
  10. Florencio, Dinei; Herley, Cormac (2007-05-08). "A large-scale study of web password habits" (PDF). Proceedings of the 16th international conference on World Wide Web. p. 657. doi:10.1145/1242572.1242661. ISBN 9781595936547. S2CID 10648989. เก็บ (PDF)จากแหล่งเดิมเมื่อ 2015-03-27.
  11. 11.0 11.1 Burnett, Mark (2006). Kleiman, Dave (บ.ก.). Perfect Passwords. Rockland, Massachusetts: Syngress Publishing. p. 181. ISBN 978-1-59749-041-2.
  12. Schneier, Bruce (2006-12-14). "MySpace Passwords aren't so Dumb". Wired Magazine. เก็บจากแหล่งเดิมเมื่อ 2014-05-21. สืบค้นเมื่อ 2008-04-11.
  13. Allan, A. "Passwords are Near the Breaking Point" (PDF). Gartner. คลังข้อมูลเก่าเก็บจากแหล่งเดิม (PDF)เมื่อ 2006-04-27. สืบค้นเมื่อ 2008-04-10.
  14. Schneier, Bruce. "Schneier on Security". Write Down Your Password. เก็บจากแหล่งเดิมเมื่อ 2008-04-13. สืบค้นเมื่อ 2008-04-10.
  15. Randomness Requirements for Security. doi:10.17487/RFC4086. RFC 4086.
  16. "Want to deter hackers? Make your password longer". NBC News. 2010-08-19. สืบค้นเมื่อ 2010-11-07.
  17. "EFF DES Cracker machine brings honesty to crypto debate". EFF. คลังข้อมูลเก่าเก็บจากแหล่งเดิมเมื่อ 2010-01-01. สืบค้นเมื่อ 2008-03-27.
  18. "64-bit key project status". Distributed.net. คลังข้อมูลเก่าเก็บจากแหล่งเดิมเมื่อ 2013-09-10. สืบค้นเมื่อ 2008-03-27.
  19. "72-bit key project status". Distributed.net. สืบค้นเมื่อ 2011-10-12.
  20. Schneier, Bruce. "Snakeoil: Warning Sign #5: Ridiculous key lengths". เก็บจากแหล่งเดิมเมื่อ 2008-04-18. สืบค้นเมื่อ 2008-03-27.
  21. "Quantum Computing and Encryption Breaking". Stack Overflow. 2011-05-27. เก็บจากแหล่งเดิมเมื่อ 2013-05-21. สืบค้นเมื่อ 2013-03-17.
  22. Microsoft Corporation, Strong passwords: How to create and use them เก็บถาวร 2008-01-01 ที่ เวย์แบ็กแมชชีน
  23. Bruce Schneier, Choosing Secure Passwords เก็บถาวร 2008-02-23 ที่ เวย์แบ็กแมชชีน
  24. Google, Inc., How safe is your password? เก็บถาวร 2008-02-22 ที่ เวย์แบ็กแมชชีน
  25. University of Maryland, Choosing a Good Password เก็บถาวร 2014-06-14 ที่ เวย์แบ็กแมชชีน
  26. Bidwell, Teri (2002). Hack Proofing Your Identity in the Information Age. Syngress Publishing. ISBN 978-1-931836-51-7.
  27. "NIST PASSWORD GUIDELINES IN 2020". Stealthbits. 2020-08-18. สืบค้นเมื่อ 2021-05-17.
  28. "Password Policy - Updating your approach". UK National Cyber Security Centre. สืบค้นเมื่อ 2021-05-17.
  29. "Choosing and Protecting Passwords". US Cybersecurity & Infrastructure Security Agency (CISA). 2019-11-18. สืบค้นเมื่อ 2023-10-10.
  30. "Digital Identity Guidelines". USA National Institute for Standards and Technology. สืบค้นเมื่อ 2021-05-17.
  31. "Password administration for system owners". UK National Cyber Security Centre. สืบค้นเมื่อ 2021-05-17.
  32. 32.0 32.1 "Password Rules - Founder of Password Complexity Says SORRY!". สืบค้นเมื่อ 2021-05-17.
  33. "CyLab Usable Privacy and Security Laboratory (CUPS)". Carnegie Mellon University (USA). สืบค้นเมื่อ 2021-05-17.
  34. Bruce, Schneier. "Changes in Password Best Practices". Schneier on Security. สืบค้นเมื่อ 2021-05-17.
  35. 35.0 35.1 "Write Down Your Password - Schneier on Security". www.schneier.com. เก็บจากแหล่งเดิมเมื่อ 2008-04-13.
  36. "What does the NCSC think of password managers?". www.ncsc.gov.uk. เก็บจากแหล่งเดิมเมื่อ 2019-03-05.
  37. e.g. for a keyboard with only 17 nonalphanumeric characters, see one for a BlackBerry phone in an enlarged image เก็บถาวร 2011-04-06 ที่ เวย์แบ็กแมชชีน in support of Sandy Berger, BlackBerry Tour 9630 (Verizon) Cell Phone Review, in Hardware Secrets (August 31, 2009) เก็บถาวร 2011-04-06 ที่ เวย์แบ็กแมชชีน, both as accessed January 19, 2010. That some websites don’t allow nonalphanumerics is indicated by Kanhef, Idiots, For Different Reasons (June 30, 2009) (topic post) เก็บถาวร 2011-04-06 ที่ เวย์แบ็กแมชชีน, as accessed January 20, 2010.
  38. "ComodoHacker responsible for DigiNotar Attack - Hacking News". Thehackernews.com. 2011-09-06. เก็บจากแหล่งเดิมเมื่อ 2013-05-17. สืบค้นเมื่อ 2013-03-17.
  39. Basner, Dave (2019-03-08). "Here's Why 'ji32k7au4a83' Is A Surprisingly Common Password". สืบค้นเมื่อ 2019-03-25.
  40. Bidwell, p. 87
  41. William, Cheswick (2012-12-31). "HTML version - Rethinking Passwords". Association for Computing Machinery (ACM). เก็บจากแหล่งเดิมเมื่อ 2019-11-03. สืบค้นเมื่อ 2019-11-03.
  42. William, Cheswick (2012-12-31). "ACM Digital Library - Rethinking Passwords". Queue. 10 (12): 50–56. doi:10.1145/2405116.2422416.
  43. "The State of Password Security 2023 Report | Bitwarden Resources". Bitwarden (ภาษาอังกฤษแบบอเมริกัน). สืบค้นเมื่อ 2023-09-24.
  44. "Practical Recommendations for Stronger, More Usable Passwords Combining Minimum-strength, Minimum-length, and Blocklist Requirements" (PDF). Carnegie Mellon University. สืบค้นเมื่อ 2021-05-17.
  45. "Bill Burr, Founder of Password complexity rules says SORRY!". สืบค้นเมื่อ 2021-05-17.
  46. "Passwords in online services". UK Information Commissioner's Office (ICO). สืบค้นเมื่อ 2021-05-17.
  47. "Digital Identity Guidelines". USA National Institute of Standards and Technology. สืบค้นเมื่อ 2021-05-17.
  48. "Password guidance" (PDF). Cyber Security, UK Government Communications Headquarters. สืบค้นเมื่อ 2021-05-17.
  49. "Create a Strong Password". Google Inc. สืบค้นเมื่อ 2021-05-17.
  50. "Login and Password Help". FaceBook Inc. สืบค้นเมื่อ 2021-05-17.
  51. "Security baseline (FINAL) for Windows 10 v1903 and Windows Server v1903". Microsoft. 2019-05-23. สืบค้นเมื่อ 2021-05-17.
  52. "In Defense of Password Expiration". League of Professional Systems Administrators. คลังข้อมูลเก่าเก็บจากแหล่งเดิมเมื่อ 2008-10-12. สืบค้นเมื่อ 2008-04-14.
  53. "The problems with forcing regular password expiry". IA Matters. CESG: the Information Security Arm of GCHQ. 2016-04-15. คลังข้อมูลเก่าเก็บจากแหล่งเดิมเมื่อ 2016-08-17. สืบค้นเมื่อ 2016-08-05.
  54. Spafford, Eugene. "Security Myths and Passwords". The Center for Education and Research in Information Assurance and Security. เก็บจากแหล่งเดิมเมื่อ 2008-04-11. สืบค้นเมื่อ 2008-04-14.
  55. Kiesel, Johannes; Stein, Benno; Lucks, Stefan (2017). "A Large-scale Analysis of the Mnemonic Password Advice" (PDF). Proceedings of the 24th Annual Network and Distributed System Security Symposium (NDSS 17). Internet Society. คลังข้อมูลเก่าเก็บจากแหล่งเดิม (PDF)เมื่อ 2017-03-30. สืบค้นเมื่อ 2017-03-30.{{cite conference}}: CS1 maint: uses authors parameter (ลิงก์)
  56. Mnemonic Devices (Indianapolis, Ind.: Bepko Learning Ctr., University College), as accessed January 19, 2010 เก็บถาวร 2010-06-10 ที่ เวย์แบ็กแมชชีน
  57. Remembering Passwords (ChangingMinds.org) เก็บถาวร 2010-01-21 ที่ Wikiwix , as accessed January 19, 2010
  58. Cipresso, P; Gaggioli, A; Serino, S; Cipresso, S; Riva, G (2012). "How to Create Memorizable and Strong Passwords". J Med Internet Res. 14 (1): e10. doi:10.2196/jmir.1906. PMC 3846346. PMID 22233980.
  59. Brumen, B; Heričko, M; Rozman, I; Hölbl, M (2013). "Security analysis and improvements to the PsychoPass method". J Med Internet Res. 15 (8): e161. doi:10.2196/jmir.2366. PMC 3742392. PMID 23942458.
  60. "zxcvbn: realistic password strength estimation". Dropbox Tech Blog. เก็บจากแหล่งเดิมเมื่อ 2015-04-05.
  61. "The Emperor's New Password Manager: Security Analysis of Web-based Password Managers | EECS at UC Berkeley". www2.eecs.berkeley.edu. สืบค้นเมื่อ 2023-10-01.

แหล่งข้อมูลอื่น[แก้]