นักพัฒนาได้สาธิตวิธีการหลีกเลี่ยงข้อจำกัด WebUSB ใน Firefox โดยการเลียนแบบกุญแจความปลอดภัย U2F จุดประกายการถกเถียงใหม่เกี่ยวกับความสามารถในการเข้าถึงฮาร์ดแวร์ของเบราว์เซอร์ การพิสูจน์แนวคิดนี้แสดงให้เห็นว่า Raspberry Pi Pico สามารถถูกโปรแกรมให้สื่อสารกับหน้าเว็บผ่าน Firefox ได้แม้ว่าเบราว์เซอร์จะไม่รองรับ WebUSB ซึ่งเน้นย้ำถึงความสมดุลที่ซับซ้อนระหว่างฟังก์ชันการทำงานและความปลอดภัยในเบราว์เซอร์สมัยใหม่
การแฮ็กนี้ทำงานโดยใช้ประโยชน์จากข้อเท็จจริงที่ว่า Firefox ไม่สนับสนุน WebUSB แต่รองรับกุญแจความปลอดภัย U2F โดยการโปรแกรมไมโครคอนโทรลเลอร์ให้แสร้งเป็นกุญแจความปลอดภัยและลักลอบส่งข้อมูลตามอำเภอใจผ่านฟิลด์ key handle และลายเซ็นของข้อความการยืนยันตัวตน U2F นักพัฒนาได้สร้างช่องทางการสื่อสารแบบลับ ซึ่งช่วยให้เว็บไซต์สามารถควบคุมฮาร์ดแวร์ เช่น LED บนอุปกรณ์ได้โดยไม่ต้องมีการสนับสนุน WebUSB อย่างชัดเจน
การแบ่งแยก WebUSB: Chrome vs. Firefox และ Safari
ความคิดเห็นเผยให้เห็นความแตกแยกอย่างลึกซึ้งในชุมชนเทคโนโลยีเกี่ยวกับการสนับสนุน WebUSB Chrome (และเบราว์เซอร์ที่ใช้ Chromium) สนับสนุน WebUSB ในขณะที่ Firefox และ Safari เลือกที่จะไม่นำมาใช้โดยเจตนา นี่ไม่ใช่เพียงความแตกต่างทางเทคนิคเท่านั้น แต่สะท้อนถึงความไม่เห็นด้วยเชิงปรัชญาพื้นฐานเกี่ยวกับโมเดลความปลอดภัยของเบราว์เซอร์
Mozilla และ Apple ได้ปฏิเสธ WebUSB ด้วยเหตุผลด้านความเป็นส่วนตัวและความปลอดภัย โดยโต้แย้งว่าอุปกรณ์ USB ไม่ได้ถูกออกแบบมาเพื่อรับมือกับการโต้ตอบที่อาจเป็นอันตรายและการให้ความยินยอมของผู้ใช้อย่างมีความหมายนั้นทำได้ยาก แนวทางของ Google คือการใช้คุณสมบัตินี้พร้อมกับการแจ้งเตือนการอนุญาตและรายการบล็อกอุปกรณ์ โดยเฉพาะอย่างยิ่งสำหรับอุปกรณ์ที่มีความอ่อนไหวด้านความปลอดภัย เช่น กุญแจ FIDO/U2F
การรองรับ WebUSB โดยเบราว์เซอร์หลัก
- Chrome/Chromium: รองรับอย่างเต็มรูปแบบ
- Firefox: ไม่รองรับ (เนื่องจากข้อกังวลด้านความปลอดภัยและความเป็นส่วนตัว)
- Safari: ไม่รองรับ (เนื่องจากข้อกังวลด้านความปลอดภัยและความเป็นส่วนตัว)
กรณีการใช้งาน WebUSB ที่พบบ่อย
- การอัปโหลดเฟิร์มแวร์ให้กับ ESP32 และไมโครคอนโทรลเลอร์อื่นๆ
- การกำหนดค่าคีย์บอร์ดที่สามารถโปรแกรมได้
- การอัปเดตฮาร์ดแวร์ เช่น คอนโทรลเลอร์ Stadia
- การจัดการเครื่องพิมพ์ฉลาก
- การรองรับฮาร์ดแวร์เฉพาะทาง เช่น เครื่องบันทึก MiniDisc
ข้อกังวลด้านความปลอดภัย
- อุปกรณ์ USB ไม่ได้ถูกออกแบบมาเพื่อรับมือกับข้อมูลนำเข้าที่เป็นอันตราย
- ความยากในการขอความยินยอมที่มีความหมายจากผู้ใช้
- ความเป็นไปได้ในการระบุตัวตนอุปกรณ์ (device fingerprinting)
- ความคล้ายคลึงระหว่างหน้าต่างแจ้งเตือน WebUSB กับหน้าต่างแจ้งเตือนกุญแจความปลอดภัย
- ความเสี่ยงต่อการโจมตีแบบฟิชชิ่งผ่านความสับสนในการขออนุญาต
กรณีการใช้งานจริง vs. ข้อกังวลด้านความปลอดภัย
สำหรับนักพัฒนาและนักประดิษฐ์สมัครเล่นหลายคน WebUSB มอบประโยชน์ในทางปฏิบัติที่สำคัญ มันช่วยให้สามารถกำหนดค่าแป้นพิมพ์ผ่านเบราว์เซอร์ แฟลชเฟิร์มแวร์ไปยังไมโครคอนโทรลเลอร์เช่น ESP32 และโปรแกรมอุปกรณ์โดยไม่ต้องติดตั้งซอฟต์แวร์เฉพาะแพลตฟอร์ม ผู้ใช้คุณสมบัติเหล่านี้อธิบายประสบการณ์ว่าเป็นเรื่องมหัศจรรย์เมื่อเทียบกับวิธีการแบบดั้งเดิมที่ต้องใช้แอปพลิเคชันเนทีฟ
อย่างไรก็ตาม ผู้เชี่ยวชาญด้านความปลอดภัยเตือนเกี่ยวกับความเสี่ยงที่อาจเกิดขึ้นจากการเปิดเผยอุปกรณ์ USB ให้กับเว็บไซต์ โปรโตคอล USB ไม่ได้ถูกออกแบบมาโดยคำนึงถึงความปลอดภัยของเว็บ และอุปกรณ์หลายชิ้นขาดการป้องกันจากอินพุตที่เป็นอันตราย นอกจากนี้ยังมีความกังวลเกี่ยวกับการระบุลายนิ้วมือและการติดตามผ่านตัวระบุอุปกรณ์ USB
ทุกคนชอบความจริงที่ว่าเบราว์เซอร์เป็นแซนด์บ็อกซ์ที่ปลอดภัย ช่วยให้ผู้ใช้เรียกใช้โค้ดที่ไม่น่าเชื่อถือได้ ผมไม่เข้าใจว่าทำไมคนถึงต้องการเจาะรูมากมายในแซนด์บ็อกซ์
คำถามที่กว้างขึ้น: เบราว์เซอร์ควรทำอะไร?
การถกเถียงนี้เกี่ยวข้องกับคำถามพื้นฐานเกี่ยวกับบทบาทของเว็บเบราว์เซอร์ พวกมันควรเป็นเพียงตัวดูเอกสารที่มีความสามารถจำกัด หรือควรพัฒนาให้เป็นแพลตฟอร์มแอปพลิเคชันที่ครอบคลุมซึ่งสามารถเข้าถึงทรัพยากรของระบบได้?
ผู้แสดงความคิดเห็นหลายคนสังเกตว่าทางเลือกอื่นนอกจาก WebUSB มักเป็นการดาวน์โหลดและติดตั้งแอปพลิเคชันเนทีฟ ซึ่งโดยทั่วไปมีการเข้าถึงระบบที่กว้างขวางกว่าและมีข้อจำกัดด้านความปลอดภัยน้อยกว่าเบราว์เซอร์ คนอื่นๆ ชี้ให้เห็นว่าผู้ใช้ทั่วไปมีความต้องการฟังก์ชัน WebUSB น้อยมาก ทำให้ความเสี่ยงด้านความปลอดภัยเพิ่มเติมน่าสงสัยสำหรับประชากรส่วนใหญ่
การสนทนายังเน้นย้ำถึงความท้าทายในการออกแบบระบบการอนุญาตที่ให้ความยินยอมที่มีความหมาย ผู้ใช้จำนวนมากคลิกผ่านการแจ้งเตือนการอนุญาตโดยไม่เข้าใจผลกระทบอย่างเต็มที่ โดยเฉพาะอย่างยิ่งเมื่อการแจ้งเตือนเหล่านั้นดูคล้ายกับคำขอการตรวจสอบสิทธิ์ที่ถูกต้อง
ในขณะที่เบราว์เซอร์ยังคงพัฒนาต่อไป ความตึงเครียดระหว่างการขยายความสามารถและการรักษาความปลอดภัยจะยังคงอยู่ในศูนย์กลางของการพัฒนาแพลตฟอร์มเว็บ การแฮ็กที่สร้างสรรค์ที่แสดงในบทความนี้แสดงให้เห็นทั้งความเฉลียวฉลาดของนักพัฒนาและข้อพิจารณาด้านความปลอดภัยที่ซับซ้อนที่ผู้ให้บริการเบราว์เซอร์ต้องนำทาง
อ้างอิง: Update: Hi HN et al.!