วิธีแฮ็ก Firefox เพื่อแก้ปัญหาไม่รองรับ WebUSB
(github.com/ArcaneNibble)> "เราไม่ต้องการ WebUSB!"
- มีวิธีที่หน้าเว็บจะเข้าถึงอุปกรณ์ USB ได้โดยไม่ต้องใช้ WebUSB และยังสามารถออกแบบอุปกรณ์ให้เลี่ยงข้อกำหนดเรื่องการขอความยินยอมจากผู้ใช้ได้ด้วย
เดโมแบบรวดเร็ว
- โหลด
u2f-hax.uf2ลงบน Raspberry Pi Pico แล้วโหลดindex.htmlบน localhost หรือ secure context อื่น - ปุ่ม "On!" และ "Off!" จะสลับสถานะ LED และสถานะของพิน
GP22จะอัปเดตบนหน้าเพจเป็นระยะ
มันเป็นไปได้อย่างไร?
- Pico ถูกโปรแกรมให้จำลอง U2F dongle (physical two-factor security key)
- แทนที่จะเป็นฟังก์ชันด้านความปลอดภัย ข้อมูลตามอำเภอใจจะถูกซ่อนไว้ใน "key handle" และลายเซ็นของข้อความ
U2F_AUTHENTICATE - หาก key handle เริ่มต้นด้วย 0xfeedface, Pico จะ "ยืนยัน" การมีอยู่ของผู้ใช้ทันทีและส่งข้อมูลกลับ
ทำไมถึงเป็นไปได้?
- U2F key handle ถูกออกแบบให้เป็นก้อนข้อมูลทึบแสงที่ security dongle เป็น "เจ้าของ"
- มันถูกออกแบบมาเพื่อให้ dongle ต้นทุนต่ำหนึ่งตัวสามารถเชื่อมโยงกับหลายเว็บไซต์ได้
- ภายใน dongle จะเก็บ "master" cryptographic key เฉพาะไว้ และเมื่อมีการลงทะเบียนก็จะสร้างคู่ public/private key ใหม่แล้วส่งกลับ
- เนื่องจาก key handle ถูกจัดการแบบทึบแสง จึงสามารถซ่อนข้อมูลตามอำเภอใจไว้ได้
วิธีส่งข้อมูลกลับ
- ซ่อนข้อมูลไว้ในลายเซ็น ECDSA
- ลายเซ็นประกอบด้วยตัวเลขสองค่า (r, s) และแต่ละค่าจะถูกคำนวณให้อยู่ในช่วงที่กำหนด
- Chrome ตรวจสอบว่าตัวเลขในลายเซ็นอยู่ในช่วงที่ถูกต้อง แต่ Firefox ไม่ตรวจสอบ
- เพื่อเลี่ยงการตรวจสอบความถูกต้องเริ่มต้นของ Chrome จึงตั้งค่าไบต์แรกของแต่ละตัวเลขเป็น 0x7f
นี่เป็นช่องโหว่ด้านความปลอดภัยหรือไม่?
- ไม่ใช่ และไม่สามารถเข้าถึงอุปกรณ์ USB ใดก็ได้ตามอำเภอใจ
- ใช้งานได้เฉพาะกับอุปกรณ์ที่จงใจฝ่าฝืนกฎเท่านั้น
- security model ของอุปกรณ์ USB นั้นน่าสงสัยอยู่แล้วบนแพลตฟอร์มส่วนใหญ่
- ไม่ควรเชื่อมต่ออุปกรณ์ที่ไม่รู้จักแบบสุ่มเข้ากับคอมพิวเตอร์
1 ความคิดเห็น
ความคิดเห็นจาก Hacker News
เธรดนี้พูดถึง WebUSB เป็นหลัก ไม่ได้เกี่ยวกับ OP โดยตรง WebUSB เป็นการแฮ็กที่เจ๋งมาก
Firefox ไม่รองรับการสื่อสารกับอุปกรณ์ USB แบบสุ่มใด ๆ อย่างไรก็ตาม รองรับการสื่อสารผ่าน USB กับกุญแจความปลอดภัย U2F
คนที่ใช้ WebUSB บอกว่ามันยอดเยี่ยม ส่วนคนที่ไม่ได้ใช้ก็งงว่าทำไมถึงจำเป็น
การปรับแต่งคีย์บอร์ดที่ใช้เฟิร์มแวร์ QMK/Via ด้วย WebUSB เป็นฝันร้าย
USB Serial เป็นเครื่องมือที่ยอดเยี่ยม และตอนนี้ก็มีรายชื่อเครื่องมือที่ใช้เบราว์เซอร์ตั้งค่าอุปกรณ์ได้
สำหรับคนที่แฟลชอุปกรณ์บ่อย ๆ ข้อดีนั้นชัดเจน แต่สำหรับผู้ใช้ทั่วไปไม่ใช่เรื่องสำคัญ
อาจจะดีกว่าถ้าไม่ปล่อยให้พอร์ต USB ถูกใช้โดยโค้ดที่ทำงานบนเบราว์เซอร์
การแฟลช GrapehenOS ลงบนโทรศัพท์ Pixel เป็นหนึ่งในประสบการณ์ติดตั้ง OS ที่ราบรื่นและรวดเร็วที่สุด
เข้ารหัสคีย์ส่วนตัวด้วยคีย์ "มาสเตอร์" แล้วส่งคืนคีย์ส่วนตัวที่เข้ารหัสแล้วเป็น key handle
มีข้อถกเถียงทางการเมืองที่เกี่ยวข้องกับ WebUSB