ข้อกำหนดทางเทคนิคสำหรับข้อความรหัสผ่าน WPA-PSK คืออะไร


8

ฉันกำลังคิดที่จะสร้างข้อความรหัสผ่าน WPA-PSK และฉันเห็นใน manpage ของ OpenBSD สำหรับwpa-psk(8):

The passphrase must be a sequence of between 8 and 63
ASCII-encoded characters.

อะไรคือเกณฑ์สำหรับ "เข้ารหัส ASCII" ที่นี่? เพียงว่าพวกเขาจะต้องเป็นตัวอักษร 8 บิตที่มีระดับบิตสูง? อนุญาตให้ใช้อักขระที่ไม่สามารถพิมพ์ได้หรือไม่

ลองคิดดูสิ ... วิธีการของฉันในการสร้างวลีรหัสผ่านแบบสุ่มนั้นสมเหตุสมผลหรือไม่? มันจะดีกว่าไหมถ้าจะสร้าง 64 bytes แบบสุ่มและใช้มันเป็นกุญแจ?

คำตอบ:


12

> อะไรคือเกณฑ์สำหรับ "ASCII-encoded" ที่นี่? เพียงว่าพวกเขาจะต้องเป็นตัวอักษร 8 บิตที่มีระดับบิตสูง? อนุญาตให้ใช้อักขระที่ไม่สามารถพิมพ์ได้หรือไม่

Wi-Fi Protected Accessของวิกิพีเดียกล่าวว่าวลีรหัสผ่าน WPA-PSK คือ 8 ถึง 63 ตัวอักษร ASCII ที่พิมพ์ได้และรวมถึงการอ้างอิงนี้เป็นเชิงอรรถ:

อักขระแต่ละตัวในวลีรหัสผ่านจะต้องมีการเข้ารหัสในช่วง 32 ถึง 126 (ฐานสิบ) โดยรวม (IEEE Std. 802.11i-2004, ภาคผนวก H.4.1)
อักขระเว้นวรรครวมอยู่ในช่วงนี้

> ลองคิดดูสิ ... วิธีการของฉันในการสร้างข้อความรหัสผ่านแบบสุ่มมีเหตุผลหรือไม่? มันจะดีกว่าไหมถ้าจะสร้าง 64 bytes แบบสุ่มและใช้มันเป็นกุญแจ?

> ฉันคิดว่าฉันจะยังคงสร้าง 256 บิตโดยใช้ RNG ที่ปลอดภัย ...

เราเตอร์ไร้สายของคุณและอุปกรณ์ทุกชิ้นที่คุณต้องการเชื่อมต่อกับเครือข่ายไร้สายของคุณช่วยให้คุณป้อนคีย์ WPA-PSK ด้วยตนเองเป็น 64 ตัวอักษรฐานสิบหกหรือไม่ ถ้าไม่เช่นนั้นคุณอาจต้องใช้วลีรหัสผ่าน ASCII เพื่อให้สามารถป้อนรหัสผ่านในอุปกรณ์ทั้งหมดของคุณ


จาก RFC2898 ที่อ้างถึงโดย @studiohack - ตลอดทั้งเอกสารนี้รหัสผ่านจะถูกพิจารณาว่าเป็นสตริง octet ที่มีความยาวตามอำเภอใจซึ่งการตีความเป็นสตริงข้อความจะไม่ถูกระบุ อย่างไรก็ตามเพื่อประโยชน์ในการทำงานร่วมกันขอแนะนำให้แอปพลิเคชันปฏิบัติตามกฎการเข้ารหัสข้อความทั่วไป ASCII และ UTF-8 [27] เป็นไปได้สองทาง (ASCII เป็นชุดย่อยของ UTF-8)
asveikau

นอกจากนี้ดูเหมือนว่า OpenBSD, Linux, Windows และ Mac OS X ทั้งหมดรองรับการใช้คีย์ hex ปัญหาเดียวที่ฉันพบคือ Maemo UI ไม่ชอบ - แต่ไฟล์ XML ที่สนับสนุนการกำหนดค่า
asveikau

ตกลงฉันเห็นส่วนของ 802.11i-2004 ที่บอกว่า คุณถูก.
asveikau

1

จากhttp://www.xs4all.nl/~rjoris/wpapsk.html - "การคำนวณคีย์ WPA - จากวลีรหัสผ่านไปยังคีย์เลขฐานสิบหกรายละเอียดของการคำนวณ":

สำหรับการเข้ารหัส WPA-PSK คีย์ไบนารีนั้นได้มาจากข้อความรหัสผ่านตามสูตรต่อไปนี้:

ฟังก์ชั่น PBKDF2 เป็นวิธีมาตรฐานในการรับคีย์จากวลีรหัสผ่าน มันถูกระบุใน RFC2898 พร้อมคำอธิบายที่ชัดเจนเกี่ยวกับวิธีการคำนวณ ฟังก์ชั่นนี้ต้องการฟังก์ชั่น pseudorandom พื้นฐาน ในกรณีของ WPA ฟังก์ชันพื้นฐานคือ HMAC-SHA1 SHA1 เป็นฟังก์ชั่นที่คำนวณแฮช 160 บิตจากข้อมูลอินพุตจำนวนมาก มีการอธิบายอย่างชัดเจนใน RFC3174 HMAC เป็นวิธีที่ได้มาตรฐานในการเปลี่ยนฟังก์ชั่นแฮชการเข้ารหัสเป็นฟังก์ชั่นตรวจสอบข้อความที่มีคีย์ มันถูกระบุไว้ใน RFC2104

เพื่อสรุปกระบวนการรับกุญแจเกี่ยวข้องกับการทำซ้ำ HMAC-SHA1 ฟังก์ชั่น 4096 ครั้งแล้วทำเช่นนั้นอีกครั้งเพื่อผลิตบิตคีย์มากขึ้น จำนวนการคำนวณที่เกี่ยวข้องนั้นเทียบเท่ากับการคำนวณแฮช SHA1 มากกว่า 1 MByte ของข้อมูล บางทีนั่นอาจอธิบายได้ว่าทำไมจาวาสคริปต์ในหน้านี้จึงช้า

สำหรับคำถามของคุณDoes my approach of randomly generating a passphrase make any sense? Would it be better to just generate 64 random bytes and use that as a key?:: อย่างใดอย่างหนึ่งจะแข็งแรงมากตราบใดที่คุณใช้สัญลักษณ์ตัวเลขและตัวอักษรแบบสุ่มทุกชนิดในวลีรหัสผ่านแบบสุ่มไบต์ของคุณ วิธีที่ฉันดู: ทั้งสองอย่าง (สร้างขึ้นหรือสุ่ม) จะเป็นไปไม่ได้ที่จะคาดเดา / แฮ็ค ...


1
ฮึ่ม ดังนั้นมันจะดูตามการอ่าน RFC ของฉันที่ฟังก์ชั่น PBKDF2 ไม่ได้ขึ้นอยู่กับว่าเป็นอักขระ ASCII ที่พิมพ์ได้และควรจะดีกับข้อมูลไบนารี ฉันคิดว่าฉันจะยังคงสร้าง 256 บิตโดยใช้ RNG ที่ปลอดภัย ... (ฉันไม่ค่อยมั่นใจว่ามันจะเป็นไปไม่ได้ที่จะคาดเดาว่ามีอัตราต่อรองเล็ก ๆ น้อย ๆ ข้อความรหัสผ่าน: P)
asveikau
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.