วิธีคำนวณเอนโทรปีของข้อความรหัสผ่าน
สูตร log2 เป็นตัวอย่างการทำงานของรายการ EFF ทั้งสามรายการ ค่าใช้จ่ายแบบโคลงเคลง และเหตุใดเครื่องวัดความแข็งแกร่งของเว็บไซต์ไม่เห็นด้วยกับหน้านี้
เอนโทรปีวัดกระบวนการ ไม่ใช่รหัสผ่าน
รหัสผ่านเดียวไม่มีเอนโทรปี วลี "หลักแบตเตอรี่ม้าที่ถูกต้อง" ไม่ได้แข็งแกร่งหรืออ่อนแอในตัวเอง แต่สิ่งสำคัญคือมันเกิดขึ้นมาได้อย่างไร หากเครื่องดึงสี่คำจากรายการ 7,776 ออกมาอย่างสม่ำเสมอ จะเป็นหนึ่งในประมาณ 3.7 ล้านผลลัพธ์ที่มีโอกาสเท่าเทียมกัน ถ้ามีใครเลือกมันเพราะเคยเห็นในการ์ตูน มันก็เป็นหนึ่งในไม่กี่อย่าง และไม่มีการเปลี่ยนแปลงทางคณิตศาสตร์มากนัก
ดังนั้นตัวเลขทุกตัวในไซต์นี้จึงอธิบายถึงตัวสร้างและการตั้งค่า ภายใต้สมมติฐานที่ว่าผู้โจมตีรู้การตั้งค่าเหล่านั้นและเหลือเพียงการเดาสุ่มเท่านั้น สมมติฐานนั้นเป็นแบบอนุรักษ์นิยม รายการ จำนวนคำ ช่วงความยาว ตัวคั่น และกฎตัวพิมพ์ล้วนถูกเผยแพร่ในหน้านี้ ดังนั้นการถือว่าเป็นความลับจะทำให้ตัวเลขทุกตัวในที่นี้สูงเกินจริง
สูตร
สำหรับตัวเลือกที่สร้างจากความเป็นไปได้ที่มีแนวโน้มเท่ากัน N เอนโทรปีคือบิต log2(N) แต่ละตัวเลือกที่เป็นอิสระจะเพิ่มบิตของตัวเอง ดังนั้น k ที่เป็นอิสระจากกลุ่ม N เดียวกันจะได้:
บิต = k × log2(N)
นั่นคือการคำนวณทั้งหมดสำหรับข้อความรหัสผ่าน ฐานบันทึก 2 คือสิ่งที่เปลี่ยน "จำนวนความเป็นไปได้" ให้เป็น "จำนวนบิต" และบิตมีความสะดวกเนื่องจากแต่ละบิตที่เกินมาจะเพิ่มงานที่ผู้โจมตีต้องเผชิญเป็นสองเท่า เจ็ดสิบบิตนั้นยากเป็นสองเท่าของหกสิบเก้า และยากกว่าหกสิบประมาณหนึ่งพันเท่า
สูตรเดียวกันครอบคลุมรหัสผ่านอักขระแบบสุ่ม โดยที่ N เท่ากับขนาดของชุดอักขระ และ k คือความยาว: อักขระ 20 ตัวที่ดึงมาจากชุด 80 ให้ 20 × log2(80) ซึ่งมีขนาดประมาณ 126 bits
ตัวอย่างการทำงานสำหรับทั้งสามรายการ
รายการยาว EFF มี 7,776 คำ log2(7,776) มีค่าประมาณ 12.925 ดังนั้นแต่ละคำจึงมีประมาณ 12.9 bits หกคำให้ 6 × 12.925 เกี่ยวกับ 77.5 bits — ค่าเริ่มต้นในหน้านี้ และ EFF เป็นคำแนะนำของตัวเองสำหรับรายการนั้น เจ็ดคำให้เกี่ยวกับ 90.5 แปดคำเกี่ยวกับ 103.4
รายการสั้นทั้งสองมี 1,296 คำ log2(1,296) เป็นเรื่องเกี่ยวกับ 10.34 ดังนั้นหกคำจึงให้เกี่ยวกับ 62 bits เจ็ดคำเกี่ยวกับ 72.4 และแปดคำเกี่ยวกับ 82.7 นั่นคือสาเหตุที่รายการสั้นๆ ต้องการคำพิเศษหนึ่งหรือสองคำเพื่อให้ตรงกับคำที่ยาว
ห้าคำจากรายการยาวมาถึงประมาณ 64.6 bits — เกือบจะเหมือนกันทุกประการกับหกคำจากรายการสั้น เส้นทางทั้งสองไปสู่จุดแข็งที่กำหนดนั้นใช้แทนกันได้อย่างแท้จริง เลือกคำใดก็ตามที่คุณพบว่าพิมพ์ง่ายกว่า
ช่วงความยาวมีผลกับรูปอย่างไร
ความยาวคำขั้นต่ำและสูงสุดจะกรองรายการก่อนที่จะวาดคำใดๆ ดังนั้น N ในสูตรคือจำนวนคำที่เหลืออยู่ในตัวกรอง ไม่ใช่ขนาดของไฟล์ หน้านี้คำนวณใหม่เมื่อคุณเปลี่ยนช่วงและแสดงจำนวนที่เหลืออยู่ ดังนั้นตัวเลขเอนโทรปีจึงเกี่ยวกับพูลที่ใช้งานจริงเสมอ
นี่เป็นเอฟเฟกต์เล็กน้อยสำหรับช่วงที่สมเหตุสมผลและเป็นเอฟเฟกต์ขนาดใหญ่สำหรับช่วงที่รุนแรง การจำกัดรายการยาวให้เหลือเพียงคำสี่ตัวอักษรพอดี ทำให้มีผู้สมัครไม่กี่ร้อยคน โดยแต่ละคำจะลดลงจากประมาณ 12.9 bits เหลือเพียงประมาณ 8 — ซึ่งจะเปลี่ยนข้อความรหัสผ่านหกคำจากประมาณ 77 bits ให้เป็นประมาณ 48 หน้าเว็บจะแสดงสิ่งนั้น และ ณ จุดนั้นเพจจะแจ้งให้คุณขยายช่วงหรือเพิ่มคำ
ตัวเลือกตัวคั่นและตัวพิมพ์เพิ่มอะไรบ้าง
ตัวคั่นแบบคงที่จะไม่เพิ่มอะไรเลย หากทุกช่องว่างเป็นยัติภังค์ ผู้โจมตีที่รู้การตั้งค่าจะใส่ยัติภังค์ในทุกช่องว่างด้วย ไม่มีทางเลือกให้พวกเขาเดา
ตัวเลือกตัวคั่นแบบสุ่มจะแตกต่างออกไป แต่ละช่องว่างใช้อักขระหนึ่งในห้าตัวแยกจากกัน ดังนั้นแต่ละช่องว่างจึงเพิ่ม log2(5) ประมาณ 2.32 bits ข้อความรหัสผ่านหกคำมีห้าช่องว่าง ซึ่งเป็นประมาณ 11.6 บิตพิเศษ — กำไรจริง และหน้าจะนับมัน
ตรรกะเดียวกันนี้ใช้กับกรณีและปัญหา ล่าง บน ตัวพิมพ์ใหญ่ และการสลับกันเป็นกฎตายตัวและไม่บวกอะไรเลย กรณีสุ่มจะพลิกเหรียญอิสระต่อคำ ดังนั้นจึงเพิ่มหนึ่งบิตต่อคำ: หกบิตในข้อความรหัสผ่านหกคำ ก็นับเช่นกัน
เป็นที่น่าสังเกตว่าสิ่งเหล่านี้มีความเรียบง่ายเพียงใด ตัวพิมพ์เล็กและตัวคั่นแบบสุ่มจะเพิ่มประมาณ 17 bits ให้กับข้อความรหัสผ่านหกคำ ในขณะที่คำที่เจ็ดจะเพิ่มประมาณ 13 ด้วยตัวมันเองและง่ายต่อการจดจำมาก การเพิ่มคำมักเป็นตัวช่วยที่ดีกว่าเสมอ
มีค่าใช้จ่ายเท่าไร
ด้วยโคลงสั้น ๆ แต่ละคำจะไม่ถูกดึงออกมาจากสระทั้งหมดอีกต่อไป - มันมาจากคำที่ขึ้นต้นด้วยตัวอักษรที่คุณระบุ ดังนั้น สูตรจึงกลายเป็นผลรวมแทนที่จะเป็นผลคูณ: ผลรวมคือ log2 ของพูลสำหรับตัวอักษรตัวแรก บวก log2 ของพูลสำหรับตัวอักษรตัวที่สอง และอื่นๆ
ตัวอักษรกระจายไม่สม่ำเสมอมาก ในรายการแบบยาว EFF ซึ่งจำกัดอยู่ที่คำที่มีตัวอักษรห้าถึงเก้าตัว กลุ่มที่ขึ้นต้นด้วย s จะมีขนาดใหญ่กว่ากลุ่มที่ขึ้นต้นด้วย j หลายเท่า และใหญ่กว่ากลุ่มที่ขึ้นต้นด้วย x มาก ดังนั้นตัวโคลงหกตัวอักษรจะให้ตัวเลขที่ต่ำกว่าหกเท่าของค่าต่อคำที่ไม่มีข้อจำกัด และค่าที่ต่ำกว่านั้นจะขึ้นอยู่กับตัวอักษรที่คุณเลือก
หน้านี้จะหาผลรวมตามตัวอักษรที่คุณพิมพ์ ซึ่งเป็นวิธีเดียวที่จะให้ตัวเลขที่เที่ยงตรง หากตัวอักษรตัวใดตัวหนึ่งของคุณไม่มีคำในรายการและช่วงความยาวปัจจุบัน มันจะบอกว่าตัวอักษรตัวไหนแทนที่จะล้มเหลวอย่างเงียบๆ
กายกรรมก็ไม่เป็นความลับเช่นกัน สมมติว่าผู้โจมตีรู้ว่าชื่อย่อสะกดชื่อสุนัขของคุณ เพราะนั่นคือสิ่งที่จะถูกคาดเดา
เปลี่ยนเศษเล็กเศษน้อยให้กลายเป็นเวลาโดยสุจริต
การประมาณเวลาในหน้านี้ถือว่ามีการโจมตีออฟไลน์ที่คาดเดาได้หนึ่งล้านล้านครั้งต่อวินาทีต่อฐานข้อมูลรหัสผ่านที่ถูกขโมย และจะต้องลองใช้ความเป็นไปได้ครึ่งหนึ่งก่อนที่จะได้อันที่ถูกต้อง สมมติฐานเหล่านั้นจะถูกระบุทุกครั้งที่ปรากฏ เนื่องจากการประมาณเวลาโดยไม่มีสมมติฐานนั้นไม่มีความหมาย
หนึ่งล้านล้านเดาในวินาทีนั้นเป็นตัวเลขที่จงใจรุนแรง มันอยู่ในภูมิภาคที่เหมาะสมสำหรับฮาร์ดแวร์เฉพาะที่โจมตีฟังก์ชันแฮชที่รวดเร็วและถูกเลือกอย่างไม่ถูกต้อง ไซต์ที่ใช้แฮชรหัสผ่านสมัยใหม่อย่างถูกต้องจะโจมตีได้ช้ากว่าหลายล้านรายการ และแบบฟอร์มการเข้าสู่ระบบออนไลน์ใดๆ ก็ยังช้ากว่าหลายพันล้าน เนื่องจากความพยายามทุกครั้งเป็นคำขอเครือข่ายที่เซิร์ฟเวอร์สามารถจำกัดอัตราได้
นั่นคือสาเหตุที่ตัวเลขในหน้านี้มีวัตถุประสงค์ในแง่ร้าย หากการประมาณการระบุว่าการค้นหาจะใช้เวลานานกว่าใครๆ ตัวเลขที่แท้จริงเมื่อเทียบกับบริการที่ดำเนินการอย่างมีประสิทธิภาพก็ยังนานกว่า
เหตุใดเครื่องวัดความแข็งแกร่งของเว็บไซต์จึงบอกสิ่งที่แตกต่างออกไป
เครื่องวัดความแรงส่วนใหญ่จะให้คะแนนตัวละครที่อยู่ตรงหน้า เพราะนั่นคือทั้งหมดที่มี: พวกเขาไม่เคยเห็นว่ารหัสผ่านถูกสร้างขึ้นมาอย่างไร พวกเขาให้รางวัลประเภทอักขระผสม ลงโทษการทำซ้ำ และมักจะจับคู่กับพจนานุกรมรหัสผ่านทั่วไป เมื่อเทียบกับรหัสผ่านที่มนุษย์ประดิษฐ์ขึ้นซึ่งเป็นฮิวริสติกที่สมเหตุสมผล และเป็นสิ่งเดียวที่แบบฟอร์มสามารถทำได้
มันให้คะแนนข้อความรหัสผ่านที่สร้างขึ้นไม่ดีด้วยเหตุผลที่ผิด คำในพจนานุกรมตัวพิมพ์เล็กหกคำที่มีช่องว่างระหว่างคำเหล่านั้นดูคล้ายกับฮิวริสติกการนับตัวอักษร เช่นเดียวกับสิ่งที่สร้างขึ้นเพื่อเตือน แม้ว่าคำต่างๆ จะถูกสุ่มขึ้นมาและผลลัพธ์ที่ได้ก็แข็งแกร่งกว่าคำใดๆ ที่มิเตอร์จะปรบมือ
เมื่อตัวตรวจสอบและหน้านี้ไม่เห็นด้วยเกี่ยวกับข้อความรหัสผ่านที่สร้างขึ้นที่นี่ หน้านี้กำลังอธิบายกระบวนการ และตัววัดกำลังอธิบายลักษณะที่ปรากฏ ทั้งคู่ไม่ได้โกหก พวกเขากำลังวัดสิ่งต่าง ๆ และมีเพียงคนเดียวเท่านั้นที่รู้ว่าคำเหล่านี้มาจากไหน
จะเกิดอะไรขึ้นกับสิ่งที่คุณสร้าง
ToolAcre สร้างรหัสผ่านในเบราว์เซอร์ของคุณ สำหรับสภาพแวดล้อมที่มีความละเอียดอ่อนสูง ให้ตรวจสอบว่าเบราว์เซอร์ อุปกรณ์ และระบบปฏิบัติการของคุณเชื่อถือได้ก่อนที่จะใช้เครื่องมือสร้างรหัสผ่านบนเว็บ
- ข้อความรหัสผ่านและรหัสผ่านทุกอันถูกสร้างขึ้นในแท็บเบราว์เซอร์ของคุณ โดยตัวสร้างตัวเลขสุ่มเข้ารหัสของเบราว์เซอร์ของคุณ ไม่มีเซิร์ฟเวอร์เกี่ยวข้องเมื่อโหลดเพจแล้ว
- ไม่มีสิ่งใดที่สร้างขึ้นที่นี่ถูกส่งไปยัง ToolAcre นโยบายความปลอดภัยเนื้อหาของผลิตภัณฑ์นี้จำกัดเพจให้อยู่ที่ต้นทางของตัวเอง ดังนั้นเบราว์เซอร์จึงบล็อกความพยายามในการส่งข้อมูลไปที่อื่น
- ไม่มีการเขียนลงในที่จัดเก็บในเครื่อง พื้นที่จัดเก็บเซสชั่น คุกกี้ ฐานข้อมูลในเบราว์เซอร์ แถบที่อยู่ หรือคอนโซลของเบราว์เซอร์ การโหลดซ้ำจะทิ้งมันไป การปิดแท็บจะทิ้งมันไป
- ไม่มีบัญชี ไม่มีการลงชื่อเข้าใช้ ไม่มีสคริปต์การวิเคราะห์ และไม่มีสคริปต์โฆษณา ไฟล์เดียวที่ดาวน์โหลดคือรายการคำคงที่
- ไม่มีการเก็บประวัติ การสร้างอีกครั้งจะแทนที่ค่า และค่าก่อนหน้าจะไม่สามารถกู้คืนได้
คำถาม
กี่บิตก็เพียงพอแล้ว?
สำหรับบัญชีธรรมดาที่อยู่เบื้องหลังผู้จัดการรหัสผ่าน อะไรก็ตามที่อยู่เหนือ 70 bits นั้นเกินกว่าจะคาดเดาได้จริง สำหรับข้อความรหัสผ่านบางส่วนที่ปกป้องทุกสิ่งทุกอย่าง — ตัวจัดการเอง อุปกรณ์ของคุณ อีเมลของคุณ — ตั้งเป้าไว้สูงกว่า ประมาณ 90 bits หรือมากกว่า ซึ่งเป็นเจ็ดหรือแปดคำจากรายการยาวๆ
ทำไมการเพิ่มคำจึงช่วยได้มากกว่าการเพิ่มสัญลักษณ์?
คำจากรายการยาวจะคูณจำนวนความเป็นไปได้ด้วย 7,776 ประมาณ 12.9 bits สัญลักษณ์ต่อท้ายในตำแหน่งคงที่จะคูณด้วยหนึ่ง เพราะผู้โจมตีรู้ว่ามันอยู่ที่นั่น เฉพาะตัวเลือกที่นับแบบสุ่มเท่านั้น
เพจนับตัวเลือกกรณีสุ่มในรูปหรือไม่?
ใช่ ครั้งละหนึ่งบิตต่อคำ เพราะแต่ละคำเป็นการพลิกเหรียญที่เป็นอิสระ กฎกรณีและปัญหาคงที่จะนับเป็นศูนย์ เนื่องจากผู้โจมตีที่รู้กฎสามารถนำไปใช้ได้ด้วยตนเอง
เหตุใดจึงใช้คีย์สเปซครึ่งหนึ่งในการประมาณเวลา
เพราะโดยเฉลี่ยแล้วการค้นหาอย่างละเอียดถี่ถ้วนจะพบคำตอบได้ครึ่งทาง การใช้คีย์สเปซแบบเต็มจะทำให้เวลาเกินจริงเป็นสองเท่า ซึ่งเป็นข้อผิดพลาดในการปัดเศษในระดับเหล่านี้ แต่ก็ยังเป็นการปัดเศษที่ผิด
77 bits เพียงพอหรือไม่หากพิจารณาจากความเร็วของคอมพิวเตอร์
การเดาต้นทุนจะเพิ่มเป็นสองเท่าในทุก ๆ บิตที่พิเศษ ดังนั้นเลขคณิตจึงสนับสนุนกองหลังอย่างมาก ความเสี่ยงตามความเป็นจริงของข้อความรหัสผ่าน 77 บิตนั้นไม่ใช่การคำนวณดิบ แต่เป็นฟิชชิ่ง มัลแวร์บนอุปกรณ์ของคุณ การใช้ซ้ำทั่วทั้งไซต์ และบริการที่จัดเก็บไว้อย่างไม่ระมัดระวัง สิ่งเหล่านี้คือสิ่งที่ควรค่าแก่การเอาใจใส่
ข้อจำกัด
- เอนโทรปีเป็นขอบเขตบนของความยากลำบากในการคาดเดา ไม่ใช่การคาดการณ์ว่าบัญชีจะถูกบุกรุกอย่างไร บัญชีส่วนใหญ่สูญหายไปจากการฟิชชิ่ง การใช้ซ้ำ และฐานข้อมูลที่ถูกละเมิด แทนที่จะคาดเดา
- ตัวเลขจะถือว่าแหล่งกำเนิดเสียงแบบสุ่มคือเสียง หน้านี้ใช้ตัวสร้างการเข้ารหัสของเบราว์เซอร์และปฏิเสธที่จะทำงานโดยไม่มีตัวสร้าง แต่ไม่สามารถตรวจสอบตัวสร้างนั้นจากภายในเพจได้
- การประมาณการเวลาขึ้นอยู่กับอัตราการคาดเดาที่สันนิษฐานไว้ทั้งหมด อัตราที่ใช้ในที่นี้มีการระบุไว้ โดยจงใจรุนแรง และอาจผิดไปในทิศทางใดทิศทางหนึ่งสำหรับผู้โจมตีคนใดคนหนึ่ง
- การคำนวณถือว่าแต่ละคำถูกดึงออกมาอย่างเป็นอิสระและสม่ำเสมอ มันจะพูดเกินจริงถึงความแข็งแกร่งหากสิ่งนั้นไม่เป็นความจริง ซึ่งเป็นเหตุผลว่าทำไมเครื่องกำเนิดจึงดึงคำมาแทนที่แทนที่จะเอาคำที่ใช้ไปแล้วออก
- ไม่มีตัวเลขเอนโทรปีใดที่อธิบายถึงข้อความรหัสผ่านที่ถูกนำมาใช้ซ้ำ เขียนในที่ที่ไม่ปลอดภัย หรือพิมพ์ลงในเครื่องที่ถูกบุกรุก