ในการสร้างรหัสผ่านระบบ Diceware ซึ่งจำง่ายแต่แกะยาก แม้แต่ NSA (National Security Agency สำนักงานความมั่นคงแห่งชาติสหรัฐ) ก็ยากที่จะเดา ด้วยชุดคำต่างๆแบบสุ่ม เนื่องจากมนุษย์เราไม่ถนัดในการจำตัวอักขระหลายๆตัวที่ไร้ความหมาย แต่สามารถจำคำหรือวลีต่างๆได้ดีเพราะมันมีความหมาย ทำให้จดจำได้ง่าย การสร้างรหัสผ่านระบบ Diceware จึงใช้จุดแข็งนี้ของมนุษย์ร่วมกับพลังแห่งการสุ่ม ทำให้ได้รหัสผ่านที่แข็งแกร่ง ซึ่งเป็นระบบที่ EFF (the Electronic Frontier Foundation) แนะนำ
ในการสร้างรหัศผ่านด้วยการสุ่มคำนั้น ทางผู้เชี่ยวชาญแนะนำว่าต้องใช้การสุ่มแท้จะดีที่สุด เพราะโปรแกรมสุ่มส่วนใหญ่เป็นการสุ่มเทียม(คือสุ่มจากการคำนวณ) ดังนั้นจึงควรใช้ลูกเต๋าจริง หรือหากไม่สะดวกก็สามารถใช้เว็บ https://www.random.org/dice/ (ซึ่งเป็นการสุ่มแท้ True random จากสัญญาณรบกวนของบรรยากาศ)
วิธีสร้างรหัสผ่านระบบ Diceware
- ทอยเต๋าหกหน้า 5 ลูก (หรือ 1 ลูก 5 ครั้ง)
- จดแต้มที่ได้จากซ้ายไปขวา
- เปิดรายการคำที่กำหนดไว้จาก https://theworld.com/~reinhold/diceware.wordlist.asc (เป็นรายการดั้งเดิมยอดนิยม หากต้องการรายการคำชุดใหม่จาก EFF ดูในส่วนแถมข้างล่าง ซึ่งยังมีเทคนิคการจำ และอื่นๆ)
- ทำซ้ำ 4-6 ครั้งหรือมากกว่า ก็จะได้คำมาใช้เรียงเป็นรหัสผ่านตามหลักการ Diceware แล้วครับ
มาตราฐาน Dicewar มักแนะนำที่ 6 คำ หรือ 5 คำ+1 อัขระพิเศษที่สุ่มขึ้นมา หรือน้อยที่สุด 4 คำ แต่ยิ่งคำเยอะก็ยิ่งแข็งแกร่ง และคำแนะนำเสริมคือควรเว้นวรรคระหว่างคำ จะช่วยให้รหัสแข็งแกร่งขึ้น (แต่จะไม่เว้นวรรคก็ได้ หรือจะใช้ตัวแรกของคำเป็นตัวพิมพ์ใหญ่ก็ได้ หรือผสมผสาน แล้วแต่ชอบเลยครับ)
ในรายการมี 7,776 คำ ถ้าทอยเต๋าหกหน้า 5 ลูก สุ่มเอาคำ 6 คำจากกรายการ ก็จะได้รายการวลีที่เป็นไปได้ 7,776 ยกกำลัง 6 = 221,073,919,720,733,357,899,776 วลี โดยมีเอนโทรปีประมาณ 77.55 bits ซึ่งเป็นค่าการสุ่มที่สูงมาก (หากสุ่มเอา 20 คำ เอนโทปีจะสูงได้ถึงประมาณ 258.5 bits!) ซึ่งต่างจากรหัสที่มนุษย์เลือกเองซึ่งมักจะมีค่าเอนโทปีเฉลี่ยอยู่ที่ 40.45 bits เท่านั้น
ในภาษาทางวิชาการจะเรียกการสร้างรหัสผ่านระบบ Diceware นี้ว่า Passphrase ไม่ใช่ Password แต่มันก็อยู่ใต้สังกัดของ Password นั่นแหละครับ แค่แยกชื่อให้เฉพาะเจาะจงลงไปเท่านั้น ส่วนในภาษาไทยเราก็เรียกว่ารหัสผ่านเหมือนเดิม เอาจริงๆมันก็คือ Password ที่ใช้วลี (phrase) แทนอักขระ (word) นั่นเอง
วิธีการคำนวณค่าเอนโทปีของข้อมูล
เอนโทปีของข้อมูล = log2(x)
เมื่อ x = จำนวนความเป็นไปได้
log2(x) คือ 2 ยกกำลังเท่าไหร่จึงได้ x เช่น ค่าเอนโทรปีของการทอยเหรียญหนึ่งเหรียญมี หัว-ก้อย คือ มีความเป็นไปได้ 2 อย่าง แทนค่าใน log2(x) ได้ log2(2) = 1 bit เพราะ 2 ที่เป็นฐาน ยกกำลัง 1 ได้ 2 ที่อยู่ในวงเล็บ คำตอบจึงเป็น 1
ดังนั้น รายการวลีที่เป็นไปได้ของ 6 คำ = 221,073,919,720,733,357,899,776 วลี จึงเป็น log2(221,073,919,720,733,357,899,776) = 77.548875 bits หรือปัดเป็น 77.55 bits นั่นเอง
หรือคำนวณจาก log2 ของรายการคำที่มีแล้วคูณด้วยจำนวนคำที่สุ่มใช้ ในรายการคำมี 7,776 คำ คือ log2(7,776) = 12.925 แล้วนำมาคูณด้วยจำนวนคำที่สุ่มใช้ ในที่นี้คือ 6 คำ เป็น 12.925*6 = 77.55 bits ถ้าต้องการหาเอนโทปีจากรายการคำชุดนี้ของการใช้คำสุ่มกี่คำก็ลองคูณดูได้ครับ
หากต้องการนำมาคิดหาค่าความเป็นไปได้ในการเดารหัสว่าต้องเดากี่ครั้งจึงจะเจอ ให้เอา 2 ยกกำลังเอนโทปี เช่น จำนวนความเป็นไปได้ในการเดาของคำสุ่ม 6 คำจะเป็น 2 ยกกำลัง 77.55 ≈ 7,776 ยกกำลัง 6 (ที่เป็นค่าประมาณเพราะ bits ปัดเศษ) คือค่าของรายการวลีที่เป็นไปได้ของการสุ่มเอา 6 คำนั่นเองครับ
ความแข็งแกร่งของระบบ Diceware
ความแข็งแกร่งของรหัสผ่าน = เอนโทปี*ความยาว
เมื่อ ความยาว = จำนวนอักขระ หรือ จำนวนคำ (ขึ้นอยู่กับว่าโปรแกรมเจาะสุ่มทีละอักขระหรือคำ)
- 5 คำ อาจถูกโจมตีได้ด้วยคอมพิวเตอร์ที่มีหน่วยประมวลผลกราฟิกขั้นสูงประมาณหนึ่งพันเครื่อง (กลุ่มอาชญากรที่มีเครือข่ายบอทเน็ต (botnets) ของคอมพิวเตอร์ที่ติดไวรัสสามารถรวบรวมทรัพยากรดังกล่าวได้)
- 6 คำ อาจถูกโจมตีได้โดยองค์กรที่มีงบประมาณมหาศาล เช่น หน่วยงานความมั่นคงของประเทศขนาดใหญ่
- 7 คำขึ้นไป ไม่สามารถถูกโจมตีได้ด้วยเทคโนโลยีใดๆที่เรารู้จักในปัจจุบัน แต่ในปี 2030 องค์กรขนาดใหญ่บางแห่งอาจมีความสามารถในการทลายรหัสผ่านเหล่านี้ได้
- 8 คำ ควรจะมีความปลอดภัยอย่างสมบูรณ์จนถึงปี 2050
แถม
รายการคำ Diceware ชุดใหม่จาก EFF (the Electronic Frontier Foundation) https://www.eff.org/deeplinks/2016/07/new-wordlists-random-passphrasesหากเน้นสะดวก ไม่สนใจว่าจะเป็นสุ่มแท้หรือสุ่มเทียม สามารถใช้เว็บนี้ได้เลย https://diceware.dmuth.org/ เลือกจำนวนคำได้ คลิกเดียวจบ มันจะทอยเต๋าและเลือกคำตามการสุ่มของเว็บให้เลยครับ
แนะนำให้ใช้เทคนิคการจำแบบโลกี หรือ Roman Room หรือ Memory Palace ฯลฯ (อธิบายเทคนิคแบบสั้นๆ คือ ให้จำเป็นภาพแล้วแต่งเรื่องราวสนุกๆเกี่ยวกับภาพเหล่านั้นให้มีการเชื่อมโยงกัน) จะช่วยให้จำได้ง่ายขึ้นครับ
ถ้าจำไม่ได้จริงๆ ทางผู้สร้างระบบ Diceware แนะนำว่าอาจจดรหัสไว้ก็ได้ครับ เพราะการลืมรหัสมีโอกาสเกิดขึ้นได้มากมากกว่าการโดนขโมยกระดาษจดเสียอีก ขอแค่เก็บไว้ในที่ปลอดภัยไม่เปิดเผยต่อใครก็เป็นอันใช้ได้
รหัสผ่านแบบสุ่มนี้แม้จะมีความปลอดภัยสูงและซับซ้อนซึ่งช่วยเพิ่มความปลอดภัยให้กับบัญชีออนไลน์ อย่างไรก็ตามเท่านี้ย่อมไม่เพียงพอ ยังต้องมีความระมัดระวังและไม่เผยแพร่รหัสผ่านให้กับผู้อื่น, ใช้การตรวจสอบปัจจัยหลายชั้น(Two Factor Authentication), รหัสที่แข็งแกร่งแค่ไหนก็ช่วยอะไรไม่ได้หากพิมพ์เข้าไปในหน้าเว็บปลอมหรือถูกดักจับซึ่งขโมยรหัส ต้องตรวจสอบ URL ของเว็บให้ถี่ถ้วนก่อนกรอกรหัสเข้าไปให้ดี, จุดที่อ่อนแอที่สุดคือความประมาท (Human error), และอื่นๆ แนะนำให้ศึกษาเพิ่มเติมที่ แนะนำตัวช่วยรักษาความปลอดภัยบนโลกออนไลน์, คำถามที่พบบ่อยเกี่ยวกับ Diceware, แนวทางการใช้รหัสผ่านของ NIST และแนวทางปฏิบัติ
แนะนำอีกวิธีหนึ่งที่ได้ความแข็งแกร่งเทียบเท่าคือ ระบบสร้างรหัสผ่านแบบสุ่มด้วยเหรียญ แต่ระบบนี้จำยากกว่าระบบ Diceware เยอะครับ แต่ก็เป็นอีกทางเลือกที่น่าสนใจ หรืออาจใช้ผสมผสานก็ได้
เนื่องจากบางหน่วยงานยังคงใช้แนวคิดเก่าตั้งแต่ปี 2003 ที่บังคับให้รหัสผ่านต้องมีอักขระพิเศษ ตัวอักษรตัวพิมพ์ใหญ่ และตัวเลขในรหัสผ่าน ซึ่งปัจจุบันเป็นที่รู้กันแล้วว่าเป็นการเพิ่มข้อจำกัดของรหัสผ่าน ทำให้รหัสผ่านมีความปลอดภัยน้อยลงและเดาได้ง่าย ทั้งยังเกิดความยุ่งยาก ทางผู้เสนอแนวทางนี้ก็ได้ออกมาแสดงความเสียใจแล้วในปี 2017 อย่างไรก็ตาม ปัจจุบัน NIST ได้ปรับปรุงแนวทางดังกล่าวแล้ว โดยแนะนำว่าควรจะเน้นการใช้ประโยคยาวๆที่จดจำง่าย จะมีความปลอดภัยสูงกว่า ซึ่งการใช้ Diceware นับว่าสอดคล้องกับแนวทางใหม่นี้ ซึ่งหลายเว็บไซต์ก็เริ่มยกเลิกการบังคับใช้อักขระพิเศษฯบ้างแล้ว
ไม่มีความคิดเห็น:
แสดงความคิดเห็น