Podcast Knowledge as a Service EP : (33/100)ประวัติศาสตร์ความปลอดภัยของ Wireless ตอนจบ

Posted by

 

 

เล่าธรรมชาติของภัยคุกคามบน Wireless กันก่อน

เรื่องการดักจับข้อมูลได้ดื้อๆ เรื่องของ Rouge AP (เล่าใน podcast ไปฟังนะ ฮ่าๆๆ)

concept ดั้งเดิมของการสื่อสารจริงๆก่อนจะมาเป็นสายต้องบอกว่าเราสื่อสารกันด้วย wireless มาก่อน

และการสื่อสารในสมัยก่อนนั้นก็ถูกควบคุมและใช้งานโดยภาครัฐเท่านั้น

โดยในปี 1971 ได้มีการพัฒนาการสื่อสารไร้สายที่เรียกส่า AloHA net ขึ้นมาเพื่อสื่อสารกันระหว่างเกาะในฮาวาย ซึ่งต่อมา AloHA Protocol กลายมาเป็นต้นกำเนิดของ Ethernet ในระบบสาย ในปัจจุบัน

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

 

แต่วันนี้ผมจะมาเล่าประวัติศาสตร์ของ Wireless security กันหน่อย

 

ย้อนกลับไปในสมัยยุคมืดของ internet ฝรั่งเค้าใช้คำนี้จริงๆนะคือ Dark Age of internet คือยุคที่ยังไม่มี Switch คือไม่มีระบบเครือข่ายสาย ละยังไม่มีสิ่งที่เรียกว่า WiFi

 

ช่วงกลางๆถึงปลายยุค 90 การสื่อสารทั้งหมดในระบบเครือข่ายสามารถถูก sniff คือถูกดักฟังได้หมด ไม่ว่าจะใช้สายหรือไม่ใช้สาย ในระบบสายก็จะใช้อุปกรณ์ตัวหนึ่งที่เรียกว่า Hub ซึ่งทำหน้าที่แค่เป็นวงจรไฟฟ้าส่งสัญญาณทางไฟฟ้าไปหาเครื่องทั้งหมดในเครือข่าย ผู้ดูแลเครือข่าย หรือจริงๆคนอื่นๆก็ได้ที่พอมีความรู้ด้านเครือข่ายสามารถมองเห็นทุกอย่างที่วิ่งในระบบได้หมด ไม่ว่าจะ password หรือการใช้งาน web หรืออะไรก็ตาม โดยที่ไม่มีใครสนใจเรื่องของ privacy หรือ security เลย

ทีนี้พอช่วงใกล้ๆปี 2000 การใช้งานระบบเครือข่ายผ่านสายก็ได้เริ่มมีการเปลี่ยนแปลงคือมีการเอาอุปกรณ์ที่เรียกว่า Switch มาใช้แทน HUB ซึ่งไอ้เจ้า Switch เนี้ยะมันสามารถที่จะอ่านข้อมูลได้ว่าเรากำลังจะส่งไปหาใครแล้วจัดการส่งไปหาปลายทางที่เราต้องการเท่านั้น ไม่ได้ส่งไปหาทุกๆเครื่องที่อยู่ในระบบแล้ว ทำให้เกิดความน่าเชื่อถือมากขึ้น การดักฟังข้อมลในระบบสายทำได้ยากขึ้น (แต่ก็ไม่ใช่ทำไม่ได้นะ) ทำให้เรื่องของความปลอดภัยในระบบสายอยู่ในระดับที่น่าเชื่อถือได้แล้ว

 

ในฝั่งไร้สาย หรือ Wireless ราวๆปี 1997 เกิดมาตรฐาน ที่เรียกว่า 802.11 ขึ้นมาซึ่งเป็นมาตรฐานในการสื่อสารแบบไร้สายที่ส่งข้อมูลได้เร็วมาก คือ 2 Mbps เท่านั้น

ปี 1999 โน้นแหละถึงได้มีการออกมาตรฐานที่ใช้ได้จริงคือ 802.11b ขึ้นมาซึ่งมีความเร็วสูงสุดอยู่ที่ 11 mbps ในเมืองไทยเรายังทันมาตรฐานนี้ และเป็นมาตรฐานที่ใช้กันอย่างแพร่หลายในยุคนั้น

ในปีเดียวกันนั้นเอง WiFi Alliance ก็ได้ถูกก่อตั้งขึ้น และถือเครื่องหมายการค้า WiFi อย่างที่เล่าไปใน EP ก่อน

 

ในปี 1997 ที่มีการออกมาตรฐาน 802.11 มานั้นจริงๆได้มาการออกมาตรฐนความปลอดภัยใน wireless ติดมาด้วยและมาตรฐานนั้นยังคงมีอยู่ถึงทุกวันนี้

 

WEP (Wire Equvalent Privacy) คือมาตรฐานความปลอดภัยแรกของ WiFi ที่เกิดขึ้นมา

มาตรฐาน WEP นี้ถือว่าเป็นมาตรฐานความปลอดภัยที่ ห่วยมาก โดย version แรกของ WEP นั้นบังคับให้ใช้ Key เป็นเลขฐาน 16 ขนาด 10 หลัก หรือ 26 หลัก สองตัวเลือกนี้เท่านั้น !! ซึ่งเลขฐาน 16 นั้นก็มีตั้งแต่ 0-9, A-F ดังนั้น Key ของ WEP หน้าตาประหลาดๆยากต่อการจดจำเช่นเป็น A0123F54CD1 อะไรทำนองนี้ แถมที่บอกว่า 10 หรือ 26 หลักนั้นต้องใส่พอดีเปะๆ ห้ามขาดห้ามเกินเลยเด็ดขาด

 

ดังนั้นตอนที่มี WEP คนส่วนใหญ่หรือแม้แต่บริษัทล้วนปิด WEP ไม่ใช้ เพราะอะไร อันดับแรกคือมันใช้ยากมาก คิดดูจะบอกว่า password เราคือ A0123F54CD1 ยากแถมถ้าเอาจริงๆมันก็ไม่ได้แข็งแรงปลอดภัยขนาดนั้นเลย เพราะมันมีความเป็นไปได้แค่ 16 ยกกำลัง 10 ก็ราวๆ 1 ล้าน ล้าน ความเป็นไปได้ซึ่งคอมพิวเตอร์สามารถลองทุกความเป็นไปได้ในไม่กี่นาทีเท่านั้นเอง

หลังๆ WEP ได้มีการออก version ใหม่ที่ยอมให้ใส่ password เป็น ascii ได้คือคนอ่านออกได้แล้วเดี๋ยวมันไปเปลี่ยนเป็นเลขฐาน 16 เอง แต่มันก็ได้แค่ 5 ตัวอักษร หรือ 13 ตัวอักษรไม่ขาดไม่เกินเท่านั้น

แต่เพียงแค่นี้ในยุคนั้นก็ทำให้การใช้งาน WEP แพร่หลายมากขึ้นกว่าการใช้เลขฐาน 16 แล้ว

 

จริงๆอีกเหตุผลหนึ่งอาจจะเป็นเพราะตอนนั้นคนเริ่มตระหนักถึงความไม่ปลอดภัยของ WiFi แล้วด้วย

แต่ยังไงก็ตาม WEP โดยตัวอัลกอลิทึ่มในการเข้ารหัสเองก็ไม่ปลอดภัยอยู่ดี เพราะมันใช้การเข้ารหัสที่ชื่อว่า RC4 ซึ่งไม่แข็งแรงเลย จริงๆมันก็มีการเข้ารหัสที่ปลอดภัยกว่านั้นอยู่นะแต่ใช้ไม่ได้ เพราะในสมัยนั้น US Goverment มองว่า อัลกอลิทึ่มการเข้ารหัสคืออาวุธประเภทหนึ่งทำให้ห้ามเอาการเข้ารหัสหลายๆอย่างไปใช้นอกประเทศเดี๋ยวความลับรั่วไหล มันเลยเหลือแค่อัลกอลิทึ่มที่ไม่ปลอดภัย ทำให้สามารถ break การเข้ารหัสได้ อย่างไม่ยากเย็น ถ้าทุกวันนี้เราค้นคำว่า hack WEP ก็จะเจอ Video เต็ม youtube ที่สอนวิธี  crack WEP

นอกจากนี้ WEP ยังมีลักษณะเป็น share key คือทุกคนที่เชื่อมต่ออยู่บนโครงข่ายเดียวกันใช้ password ตัวเดียวกัน ทำให้ทุกคนสามารถดักฟังข้อมูลของคนอื่นได้ทั้งหมด เช่นถ้าอยู่ในร้านกาแฟทุกคนที่ใช้ Access point ตัวเดียวกันสามารถดักจับและแก้ไขข้อมูลได้หมดทุกคน  

 

EP2

ระหว่างนั้นราวๆปี 2003 มาตรฐาน 802.11g ก็ถูกพัฒนาขึ้นเสร็จพอดี และแน่นอนมาพร้อมกับ security ใหม่ๆที่ถูกพัฒนาขึ้นมาด้วยนั่นคือ มาตรฐาน WPA ซึ่งพัฒนาจาก WEP มาเยอะมาก แน่นอนว่าอย่างแรกคือ password ที่ human friendly มากกว่าเดิมคือให้ตั้งเป็น password ได้ตรงๆ ส่วนการเข้ารหัสก็มีการพัฒนาขึ้นเช่นกันโดยเลือกเอา TKIP หรือ  Temporal Key Integrity Protocol มาใช้จัดการกับ key โดยหลักๆ TKIP จะทำสองอย่างคือ 1. TKIP ทำการสร้าง 128 bit nounce number มาใช้ป้องกันการโจมตีที่เรียกว่า replay attack ซึ่งทำให้การ crack WEP นั้นทำได้ง่าย
replay attack คืออะไร ? (เล่าใน podcast นะไปฟังเอา ยาว ฮ่าๆๆ)

อีกอย่างที่ WPA ทำคือการทำเอา MAC (Message Authentication Code) มาใช้แทน CRC ซึ่งทำให้การปลอมข้อมูลนั้นทำไม่ได้เลยถ้าไม่รู้ key

 

สิ่งที่สำคัญที่สุดเเลยที่ WPA เปลี่ยนแปลงไปและทำให้มันแข็งแรงขึ้นคือการที่ไม่ใช้ key เหมือนเดิมทุกครั้งแบบเดียวกับ WEP โดย TKIP สร้าง key ชั่วคราวขึ้นมาสำหรับแต่ละ session ทำให้คนอื่นๆที่อยู่บน Access point เดียวกันไม่สามารถดักจับข้อมูลได้อีกต่อไป

 

TKIP ถูกโจมตีสำเร็จครั้งแรกในปี 2008 โดยใช้การโจมตีที่เรียกว่า Man in the Middle attack แถวถอดรหัสจาก packet สั้นๆ ของการทำ QoS บนมาตรฐาน 802.11e โดยใช้เวลาประมาณ 12 – 15 นาทีก็สามารถ break key ออกมาได้

แต่นั่นแหละในความเป็นจริงก็ไม่ค่อยมีคนใช้ QoS บน Wireless ซักเท่าไหร่ทำให้การโจมตีแบบนี้เกิดขึ้นได้ยากแต่นั่นแหละการโจมตีที่เกิดขึ้นได้จริงๆก็ตามมาในเวลาไม่นาน

ปี 2009 oshihiro Ohigashi and Masakatu Morii ตีพิมพ์วิธีการโจมตี WPA/TKIP เรียกว่า Beck-Tews Attack ซึ่งสามารถโจมตี WPA ที่ไหนก็ได้ ในเวลา 12 – 15 นาทีเช่นกัน

 

จริงๆราวๆปี 2004 ทาง IEEE เริ่มเห็นแล้วว่า WPA/WEP TKIP ที่ใช้อยู่นั้นน่าจะมีปัญหาเลยสร้างมาตรฐานเสริมขึ้นมาใหม่อีกตัวหนึ่งคือ 802.11i ซึ่งต่อมาทาง WiFi-Alliance ได้เอา 802.11i ไปใช้โดยเคลมว่ามันคือ WPA2 สิ่งที่เปลี่ยนไปจาก WPA คือมีการเอากลไกที่เรียกว่า AES-CCMP มาใช้ ส่วน AES CCMP คืออะไรนั้นไปฟังใน podcast นะ ยาวอีกแล้ว

และมี 2 mode คือ Non-Enterprise mode ที่ใช้ AES แบบ pre-share key และแบบ Enterprise mode ที่ใช้ server ภายนอกในการควบคุมการ authentication ส่วนใหญ่ก็ใช้ protocol ที่ชื่อว่า RADIUS เพื่อให้แต่ละ user มี key และ password ของตัวเอง

แต่เอาจริงๆ AES ก็มีปัญหาในตัวเองอยู่นิดหน่อยตรงที่มันจะใช้งานได้ก็จะต้องมี Hardware มาช่วยในการเข้าและถอดรหัสดังนั้นในช่วงแรกการใช้งาน WPA2 ยังคงเป็นการใช้ TKIP อยู่นานจนกระทั้ง hardware เข้ารหัส AES แพร่หลายไปทั่วจึงมีการใช้งาน AES เพิ่มขึ้นเรื่อยๆ

 

แต่แน่นอนว่าในโลกของ security ไม่มีอะไรอยู่ยืนยงไปตลอด

ในปี 2017 WPA2 ก็ถูก break ด้วยการโจมตีที่ชื่อว่า  KRACK attack ซึ่งใช้ช่องโหว่ที่ถ้าเครื่อง client ที่เคยต่อเข้ามาในระบบ หลุดออกไปเมื่อต่อกลับเข้ามาใหม่เพื่อให้สามารถเชื่อมต่อกลับมาได้อย่างรวดเร็วก็จะสามารถใช้ key เก่าต่อเลยได้ ซึ่งด้วยเหตุนี้ผู้โจมตีจะสามารถดักจับ packet แล้วเอามาเล่นซ้ำเพื่อบังคับให้ระบบส่ง packet เดิมด้วยเลข nounce ใหม่ๆ ทำให้ผู้โจมตีสามารถเดา key chain ทั้งหมดได้ จนกระทั่ง access เข้าระบบได้ ซึ่งในปัจจุบัน KRACK นี้ก็ยังไม่ได้ถูกแก้ไขใน WPA2 นะ เพราะช่องโหว่นี้มันเกิดในตัวมาตรฐาน 802.11i เลยไม่ได้เกิดที่การ implement ทำให้การแก้ไขทำได้ยาก ดังนั้นบางที่ที่เอาไปใช้จึงทำการ disable feature ที่ชื่อว่า EAPOL-Key re-transmission  แต่ถ้า disable ไปจะทำให้เมื่อ client หลุดการ reconnect กลับเข้ามาจะช้าเพราะต้องตกลงคู่ key ใหม่ แต่ก็อาจจะคุ้มที่จะทำเพราะมันทำให้ความปลอดภัยดีขึ้น

 

ในปี 2018 WiFi Alliance เลยทำการออกมาตรฐานใหม่ขึ้นมา คือ WPA3 ซึ่งเอาจริงๆถือว่าเร็วมากเพราะหลังจาก KRACK attack ถูกตีพิมพ์ราวๆปลายปี 2017 เพียงแต่มกรา 2018 ก็ออกมาตรฐานใหม่ออกมาแล้ว

 

WPA3 สร้างมาเพื่ออุดช่องโหว่ใน WPA2 โดยการเอา Simultaneous Authentication of Equals หรือ (SAE) มาใช้แทนการกำหนด key ไว้ล่วงหน้าที่กล่าวถึงไปก่อนหน้านี้ (Pre share key) ซึ่ง SAE เป็น Protocol ที่ใช้ในการทำ authentication และใช้ในการตกลงสร้าง key ทั้งสองฝั่งเหมือนกันโดยไม่ต้องแลกเปลี่ยน key ผ่านทางระบบเครือข่ายเลย พวกนี้ใช้ algorithm ทางคณิตศาสตร์คล้ายๆกับ Diffie Hellmen Algorithm ซึ่งผลลัพธ์ทำให้การตกลงสร้าง key ทำได้อย่างปลอดภัย และทำให้การโจมตีที่ชื่อว่า KRACK attack ทำไม่ได้ นอกจากนี้การตกลงสร้าง key กันเองของมันทำให้ password สั้น หรือยาวก็ไม่มีผลกับการโจมตีการเข้ารหัสอีกต่อไป แต่การโจมตีพวก brute force หรือ dictionary attack ยังทำได้อยู่นะ แปลว่าสุดท้ายเราก็ควรตั้ง password อย่างปลอดภัยอยู่ดี สามารถไปฟังเรื่องการตั้ง password อย่างปลอดภัยแบบไม่คลีเชได้ใน EP 6/100

นอกจากนี้ WPA3 standard ยังสามารถใช้ NFC ในการทำ authentication ได้ด้วย คือเอาอุปกรณ์ NFC ไปแปะเพื่อทำ authentication แต่จะใช้ได้ access point นั้นต้อง support NFC ด้วยนะ การใช้งานก็จะเป็นการเอามือถือหรืออุปกรณ์ IoT ที่ support NFC ไปแปะเพื่อได้สิทธิในการ access เข้า AP แต่เอาเข้าจริงๆผมก็ว่าการทำแบบนี้ หมายถึงการใช้ NFC ในการทำ authentication อาจจะเป็นการลดความปลอดภัยของระบบลงนะ แต่มองในอีกมุมนึงถ้าระบบเล็กๆอาจจะดีขึ้นก็ได้เพราะมันจะสามารถตัดปัญหาการตั้ง password ง่ายๆ โง่ๆไปได้ ไม่ต้องห่วงว่าผู้โจมตีจะมาขโมย password แต่ถ้าขโมยมือถือก็อีกเรื่องหนึ่ง

จริงๆตอนนี้ผมก็เคยเห็น Access point บางรุ่นมีความสามารถนี้เหมือนกันนะ เหมือนเค้าจะเรียกว่า tab to connect แต่ตอนนี้ก็ยังไม่ค่อยเห็น access point ในตลาดมีความสามารถนี้สักเท่าไหร่

อีกอย่างที่ WPA3 ทำเพื่ออุดช่องโหว่ของ WPA หรือ WPA2 คือการเอา PFS หรือ Perfect Forward Secrecy มาใช้ คือจากเดิมใน WPA หรือ WPA2 ผู้โจมตีอาจจะดักจับ packet เอาไว้ก่อนแม้ว่าจะไม่มี password หรืออ่านไม่ออกแล้วค่อยเอาที่ดักจับไว้มาทำการถอดรหัสทีหลังเมื่อได้ key มาแล้ว ซึ่ง PFS จะสร้าง key เฉพาะ session ตามช่วงเวลาขึ้นมาทำให้แม้ว่าจะมี key แต่ถ้าไม่ได้ใช้ในเวลาที่กำหนดก็จะไม่สามารถใช้งานได้แล้ว จริงๆกลไกนี้มีใน SSL/TLS ที่อยู่ใน HTTPS ด้วย แต่ก็ไม่ใช่ทุก HTTPS จะ implement PFS ไว้

 

แต่นั่นแหละในปัจจุบันที่อัด padcast นี้ WPA3 ก็ยังถือว่าเป็นของใหม่มากๆอยู่และมี Access point จำนวนไม่มากที่ support WPA3 แล้วแต่ยังไงก็ตามพวก Access point รุ่นใหม่ๆหน่อยที่ออกช่วงปี 2018 ก็จะมี feature add-on พิเศษที่ใช้ป้องการ KRACK attack แต่นั่นแหละเท่าที่เห็นเหมือนจะใช้ได้แค่บน 802.11ac เท่านั้น และ access point ที่ firmware หรือผลิตมาก่อนปี 2018 น่าจะสามารถถูกโจมตีด้วย KRACK attack ได้หมด อาจจะต้องพิจารณา upgrade firmware ถ้ามีก็อาจจะช่วยได้

 

ทั้งหมดนี้ก็เป็นประวัติศาสตร์ของความปลอดภัยบน WiFi เริ่มมาตั้งแต่ WEP มาจน WPA3 ที่เพิ่งมาปีนี้แต่นั่นแหละกว่าการ implement WPA3 จะถูกใช้อย่างแพร่หลายก็อาจจะต้องใช้เวลาอีกนาน พอสมควรแต่ก็ยังถือว่าในปลายอุโมงค์เราก็ยังมีแสงสว่างอยู่เหมือนกัน

 

ใส่ความเห็น

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  เปลี่ยนแปลง )

Facebook photo

You are commenting using your Facebook account. Log Out /  เปลี่ยนแปลง )

Connecting to %s