2006/Feb/19

WEP

วันนี้ลองมานั่ง Set Security ใน WEP หลังจากได้ Router มา 2 วันที่แล้ว ต้องรีบนั่ง Set ก่อนที่บ้านอื่นๆจะมาเจอสัญญาณ และเข้ามา Copy ข้อมูลในเครื่อง

สำหรับนักเล่น Router มือใหม่อย่างผมต้องรู้จักกับ WEP เสียก่อนว่าคืออะไร

WEP(Wired Equivalent Privacy) เป็นการเข้าและถอดรหัสข้อมูล (WEP Encryption/Decryption) สำหรับ Security ใน Layer 2(Data Link) ของ
OSI Model (Open System interconnection Model) ไม่ให้คนอื่นเข้ามาใช้ทรัพยากรของเราที่กระจายในอากาศ

วิธีการทำ
1. ใส่คำที่ต้องการใน Passphrase จากนั้นเลือก WEP Encryption และ Generate
2. สำหรับ WEP Encrypytion มีให้เลือกว่าจะให้เข้ารหัสกี่ Bit (64, 128, 256)
2. หลังจาก Key จะถูกสุ่มออกมา ให้ใส่ Character ตามจำนวนการเข้ารหัสที่กำหนด

แต่สงสัยว่า ทำไม 64 Bit ถึงต้อง 5 Character ได้คำตอบมาดังนี้

WEP Encryption การทำงานของการเข้ารหัสข้อมูลในกลไก WEP เป็นดังนี้

1. Key ขนาด 64 หรือ 128 บิต ถูกสร้างขึ้นโดยการนำเอารหัสลับซึ่งมีความยาว 40 หรือ 104 บิต มาต่อรวมกับข้อความเริ่มต้น IV (Initialization Vector) ขนาด 24 บิตที่ถูกกำหนดแบบสุ่มขึ้นมา

2. Integrity Check Value (ICV) ขนาด 32 บิต ถูกสร้างขึ้นโดยการคำนวณค่า CRC-32 (32-bit Cyclic Redundant Check) จากข้อมูลดิบที่จะส่งออกไป (ICV ซึ่งจะถูกนำไปต่อรวมกับข้อมูลดิบ มีไว้สำหรับตรวจสอบความถูกต้องของข้อมูลหลังจากการถอดรหัสแล้ว)

3. ข้อความที่มีความสุ่ม (Key Stream) ขนาดเท่ากับความยาวของข้อมูลดิบที่จะส่งกับอีก 32 บิต (ซึ่งเป็นความยาวของ ICV) ถูกสร้างขึ้นโดยหน่วยสร้างข้อความที่มีความสุ่มหรือ PRNG (Pseudo-Random Number Generator) ที่มีชื่อเรียกว่า RC4 ซึ่งจะใช้ Key ที่กล่าวมาข้างต้นเป็น Input (หรือ Seed) หมายเหตุ PRNG จะสร้างข้อความสุ่มที่แตกต่างกันสำหรับ Seed แต่ละค่าที่ใช้
ข้อความที่ได้รับการเข้ารหัส (Ciphertext) ถูกสร้างขึ้นโดยการนำเอา ICV ต่อกับข้อมูลดิบแล้วทำการ XOR แบบบิตต่อบิตกับข้อความสุ่ม (Key Stream) ซึ่ง PRNG ได้สร้างขึ้น

4. สัญญาณที่จะถูกส่งออกไปคือ ICV และข้อความที่ได้รับการเข้ารหัส (Ciphertext)

WEP Decryption การทำงานของการถอดรหัสข้อมูลในกลไก WEP เป็นดังนี้

1. Key ขนาด 64 หรือ 128 บิต ถูกสร้างขึ้นโดยการนำเอารหัสลับซึ่งมีความยาว 40 หรือ 104 บิต (ซึ่งเป็นรหัสลับเดียวกับที่ใช้ในการเข้ารหัสข้อมูล) มาต่อรวมกับ IV ที่ถูกส่งมากับสัญญาณที่ได้รับ

2. PRNG สร้างข้อความสุ่ม (Key Stream) ที่มีขนาดเท่ากับความยาวของข้อความที่ได้รับการเข้ารหัสและถูกส่งมา โดยใช้ Key ที่กล่าวมาข้างต้นเป็น Input

3. ข้อมูลดิบและ ICV ถูกถอดรหัสโดยการนำเอาข้อความที่ได้รับมา XOR แบบบิตต่อบิตกับข้อความสุ่ม (Key Stream) ซึ่ง PRNG ได้สร้างขึ้น

4. สร้าง ICV' โดยการคำนวณค่า CRC-32 จากข้อมูลดิบที่ถูกถอดรหัสแล้วเพื่อนำมาเปรียบเทียบกับค่า ICV ที่ได้ถูกส่งมา หากค่าทั้งสองตรงกัน (ICV' = ICV) แสดงว่าการถอดรหัสถูกต้องและผู้ที่ส่งมาได้รับอนุญาต (มีรหัสลับของเครือข่าย) แต่หากค่าทั้งสองไม่ตรงกันแสดงว่าการถอดรหัสไม่ถูกต้องหรือผู้ที่ส่งมาไม่ได้รับอนุญาต

สรุป
40 bit / 8 = 5 อักษร หรือ 10 Hex
104 bit / 8 = 13 อักษร หรือ 26 Hex

อ้างอิง :
http://thaicert.nectec.or.th/paper/wireless/IEEE80211_2.php

Comment

Comment:

Tweet