งานสัมมนา PrivacyCon ที่จัดโดยคณะกรรมการการค้าของสหรัฐ (FTC) หัวข้อที่ได้รับความสนใจอย่างมากในปีนี้คือประเด็นเรื่องความปลอดภัยของ Internet of Things
งานวิจัยชื่อ The Internet of Unpatched Things ของนักศึกษาจากมหาวิทยาลัยพรินซ์ตัน เลือกอุปกรณ์ IoT มาจำนวนหนึ่ง (ในกลุ่มนี้มี Nest, SmartThing, Belkin WeMo) มาเชื่อมต่อกันผ่าน Wi-Fi และคลื่น Z-Wave แล้วพบว่าอุปกรณ์หลายชิ้นยังขาดระบบรักษาความปลอดภัยอยู่มาก เช่น ส่งข้อมูลผ่าน HTTP โดยไม่เข้ารหัสใดๆ, กล้องวงจรปิดเชื่อมต่อแบบ FTP ไม่เข้ารหัสที่พอร์ต 21 แม้กระทั่งอุปกรณ์ชื่อดังอย่าง Nest เอง ถึงแม้การส่งข้อมูลทั้งหมดต้องผ่าน HTTPS แต่ข้อมูลสภาพอากาศกลับอัพเดตผ่าน HTTP แทน (Nest แก้ปัญหานี้แล้ว)
งานวิจัยนี้เป็นภาพสะท้อนสภาพความปลอดภัยของอุปกรณ์ IoT ว่ายังมีช่องโหว่อีกมาก แม้กระทั่งความปลอดภัยพื้นฐานอย่าง HTTPS ก็ยังไม่ค่อยใช้งานกัน และต่อให้ใช้ HTTPS ก็ใช่ว่าจะปลอดภัยจากปัญหา man-in-the-middle ถ้าใช้ใบรับรองไม่ได้มาตรฐาน
เอกสารนำเสนอฉบับเต็มสามารถดาวน์โหลดได้จาก Dropbox
ที่มา - Naked Security
Comments
เรื่องนี้ในหลายๆ อุปกรณ์เป็นปัญหาระดับ hardware ครับที่ไม่สามารถรันได้เร็วพอจะถอดรหัส HTTPS ได้ ESP8266 ที่ผมและคนเล่น Arduino หลายคนใช้ก็ใช้ HTTPS ไม่ได้ ;w;
บล็อกส่วนตัวที่อัพเดตตามอารมณ์และความขยัน :P
ถ้าเรื่องประสิทธิภาพซีพียูล้วนๆ นี่ใช้ cipher suite ที่กินซีพียูน้อยๆ อย่างพวก ChaCha20 น่าจะช่วยได้ แต่ผมดูแล้วยังไม่มีคนพอร์ตไปลงเลย
lewcpe.com, @wasonliw
ลอง mbed ซิครับ
mbed ยังไม่ลง ESP8266 ไงครับ จริงๆ ถ้ามีคนพอร์ตเฉพาะ mbed TLS มาลงน่าจะดีมากเพราะ TLS lib ของ ESP8266 มันไม่โอเพนซอร์ส
lewcpe.com, @wasonliw
งั้นคงต้องรอซักพัก เพิ่งจะ alpha เอง
แนะนำ linkit ครับแพงอีกนิดแต่แรงกว่าจม ใช้lua ไม่ได้ แต่คอมไพล์c++ ผ่านไวไฟได้ครับnodejs python ก็ใช้ได้
ราคามันกระโดดไปเยอะเลยครับ
พวก 8266 อย่าง NodeMCU หาในอาลีได้ไม่ถึง 9$
อาจจะไม่ตอบโจทย์ซะทีเดียว แต่ Encryption Module ของ libelium Waspmote ที่พัฒนาบนพื้นฐานเดียวกันกับ Arduino ก็ไม่เลวนะครับ (แต่ต้องออกแรง Port นิดนึง)
ชิปที่ฝั่ง Engine Encrypt/Decrypt เช่น AES มันแพงนิครับ
แถมยังไม่มี Controller ติดมาด้วยอีกต่างหาก ทำให้เมื่อทำเป็นบอร์ดแล้ว
มันใหญ่และแพงเกินกว่าที่จะเอามาใช้แค่ ส่งข้อมูลสภาพอากาศ หรือเปิด/ปิด หลอดไฟ 1-2 หลอดครับ
อันนี้เป็นประเด็นหลักเลยครับ
ที่ดีที่สุดเท่าที่ผมคิดได้ตอนนี้คือใช้พวก microcomputer ไปประมวลผลเป็นกึ่งๆ server กลางบ้านให้ sensor แต่ละตัวส่งข้อมูลผ่านพวกนี้ไปเข้ารหัสและอัพขึ้นเน็ตให้
อาจจะไม่ใช่แนวทางที่ดีนัก (กรณีแฮกเกอร์เข้าถึงเซ็นเซอร์พวกนี้ได้โดยตรง หรือเข้าคุมศูนย์กลางได้) แต่ก็พอจะกันได้ในระดับหนึ่ง
บล็อกส่วนตัวที่อัพเดตตามอารมณ์และความขยัน :P
กระบวนการเข้ารหัสที่ไม่ใช่ AES และให้ความปลอดภัยดีพอควรก็มีครับ แต่ไม่เป็นที่นิยมเท่า อันนี้ก็แสดงปัญหาอีกว่าโลก IoT โดยรวมยังไม่ได้คิดเรื่องนี้ว่าถ้าไม่เป็น AES จะเป็นอะไรดี จะให้ทำให้ตรงกัน
lewcpe.com, @wasonliw
แสดงว่าถ้าคำนึงถึงความปลอดภัยแล้ว เรายังต้องการ hardware ที่ดีกว่านี้อีกในการที่จะทำให้มันรันได้เร็วพอที่จะใช้ https ได้
ถ้ายังเป็นอย่างนี้แล้วถ้ามีเรื่องแบบมีคนแฮกเข้ามาคุมอุปกรณ์ในบ้านได้ น่าจะทำให้ IoT มีปัญหาในความน่าเชื่อถืออย่างมากในสายตาคนทั่วไป และอาจจะทำให้อนาคตของ IoT สะดุดได้
สินค้าตระกูล .NET MF ก็เริ่มมี hardware support HTTPS ออกมาแล้วครับ (Framework มีมานานแล้วแต่ตัวชิปไม่มีประสิทธิภาพพอ)