Sponsor

07 มกราคม 2568

ระบบสร้างรหัสผ่านแบบสุ่มด้วยเหรียญ


จากบทความ Diceware - เทคนิคการตั้งรหัสผ่านแบบจำง่ายแต่แกะยากโดยใช้ลูกเต๋า (แนะนำให้อ่านเพิ่มเติม) ซึ่งเป็นระบบสร้างรหัสผ่านแบบสุ่มด้วยลูกเต๋าที่ให้ความปลอดภัยได้สูงมาก ซึ่งเป็นระบบที่ EFF (the Electronic Frontier Foundation) แนะนำให้ใช้เป็นแนวทางในการสร้างรหัสผ่านส่วนตัวเพื่อความปลอดภัยขั้นสูงสุด และสอดคล้องกับแนวทางของ NIST (National Institute of Standards and Technology มาตรฐานและเทคโนโลยีแห่งชาติสหรัฐอเมริกา) ในปัจจุบัน

ระบบสร้างรหัสผ่านด้วยการสุ่มเหรียญในบทความนี้ก็เป็นทางเลือกอีกระบบ บางครั้งอาจไม่สะดวกหากต้องคิดรหัสผ่านใหม่นอกสถานที่ เพราะต้องใช้ลูกเต๋าร่วมกับรายการคำศัพท์ หรือบางเว็บไซต์ยังใช้มาตรฐานเก่าที่บังคับให้ต้องมีอักขระพิเศษ ตัวพิมพ์ใหญ่ และตัวเลข รวมอยู่ด้วย (ซึ่งการกำหนดเช่นนี้ปัจจุบันทราบกันดีแล้วว่าเป็นการเพิ่มข้อจำกัดของรหัสผ่าน ทำให้รหัสผ่านมีความปลอดภัยน้อยลงและเดาได้ง่าย ทางผู้เสนอแนวทางนี้ก็ได้แสดงความเสียใจไปแล้วตั้งแต่ปี 2017) แล้วจะทำอย่างไรดีล่ะหากต้องการสร้างรหัสแบบสุ่มแท้? ไม่ต้องเป็นห่วง ยังมีระบบสร้างรหัสผ่านแบบสุ่มด้วยเหรียญอยู่ครับ สามารถนำไปประยุกต์ใช้ได้ โดยใช้เพียง
  1. เหรียญ 4 เหรียญ (เหรียญอะไรก็ได้ แต่แนะนำให้เป็นขนาดและชนิดเดียวกัน หรือใช้เหรียญเดียวทอยหลายรอบก็ได้)
  2. แป้มพิมพ์คอมพิวเตอร์มาตราฐาน
เราจะใช้หน้าของเหรียญเพื่อสร้างเลขฐานสอง โดยเมื่อทอยเหรียญลงพื้นแล้วให้เหรียญทางซ้ายสุดหรือบนสุดเป็นหลักใหญ่แล้วไล่รองลงมาตามลำดับ  โดย หัว = 1; ก้อย = 0

กระบวนการสร้างรหัสผ่าน
  1. สุ่มกำหนดแถวของแป้นพิมพ์ ทอย 2 เหรียญ: ก้อย-ก้อย (00) = แถวล่างสุด, ก้อย-หัว (01) = แถวถัดขึ้นมา, หัว-ก้อย (10)= แถวรองบนสุด, หัว-หัว (11) แถวบนสุด
  2. สุ่มกำหนดปุ่มในแถว ทอย 4 เหรียญ: จะได้ค่าตั้งแต่ 0 ถึง 15 (ซึ่งแปลงเลขฐานสองเป็นฐานสิบแล้ว) ใช้ตัวเลขนี้เพื่อนับปุ่มในแถวที่เลือก โดยเริ่มจากด้านซ้ายไปขวา และนับปุ่มอักษรแรกเป็น 0
    • หากค่าที่ได้มากกว่าจำนวนปุ่มในแถว ให้ทอยใหม่
    • หากต้องการได้ค่าความสุ่มระดับสูงสุด คุณควรเริ่มใหม่ตั้งแต่ข้อ 1 คือสุ่มแถวใหม่อีกครั้ง แต่ค่าเบี่ยงเบนของความสุ่มก็ไม่ได้มีความแตกต่างอย่างมีนัยสำคัญมากนัก หากจะใช้แถวเดิมก็ไม่เป็นไร
  3. สุ่มกำหนดว่าพิมพ์ใหญ่หรือพิมพ์เล็ก (กด Shift หรือไม่) ทอย 1 เหรียญ: เพื่อกำหนดว่าตัวอักษรจะเป็นตัวพิมพ์ใหญ่ (หัว) หรือตัวพิมพ์เล็ก (ก้อย) 
ตัวอย่าง
  1. ทอยครั้งที่ 1: เหรียญทางซ้าย = หัว, เหรียญทางขวา = ก้อย (10): เลือกแถวรองบนสุด (QWERTYUIOP...)
  2. ทอยครั้งที่ 2: เหรียญจากซ้ายไปขวา: หัว-ก้อย-ก้อย-หัว (1001 = 9): เลือกปุ่มลำดับที่ 9 ซึ่งก็คือ P (เริ่มนับ 0 ที่ Q)
  3. ทอยครั้งที่ 3: ก้อย (0): ให้ใช้ตัวพิมพ์เล็ก (ไม่ต้องกด Shift): ดังนั้นคือตัว p
แล้วให้ทำซ้ำแบบนี้ไปเรื่อยๆจนกว่าจะได้ความยาวรหัสผ่านพอกับความต้องการ (โดยมาตราฐานแนะนำที่ 10 ตัว หรือ 8-16 ตัวขึ้นไป)

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

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


แถม
เว็บไซต์อันดับสถิติรหัสผ่านที่ใช้กันเยอะและเจาะง่ายทั่วโลก มีอันดับเฉพาะสำหรับแต่ระประเทศ รวมถึงประเทศไทยด้วย https://nordpass.com/most-common-passwords-list/

หากไม่สะดวกทอยเหรียญจริงแนะนำให้ทอยเหรียญผ่านเว็บ https://www.random.org/coins/ ซึ่งเป็นเว็บแบบสุ่มแท้ (True random จากสัญญาณรบกวนในบรรยากาศ ซึ่งไม่ใช่จากการสุ่มเทียมที่คำนวณด้วยโปรแกรม หรือให้มันสุ่มรหัสผ่านให้เลยก็ได้ที่ https://www.random.org/passwords/) พอจะเทียบเท่าได้กับการทอยเหรียญจริงอยู่ครับ แต่ถ้าทอยเหรียญเองจะเป็นการสุ่มแท้ที่ดีที่สุดครับ

เพราะปัญหาของการสุ่มคือ
เราจะรู้ได้อย่างไรว่านั่นคือการสุ่ม...

ศึกษาเพิ่มเติม

ไม่มีความคิดเห็น:

แสดงความคิดเห็น