Tags:
Topics: 
Node Thumbnail

ทีมวิจัยจากมหาวิทยาลัยเคมบริดจ์รายงานถึงการวิเคราะห์ข้อมูลจากโทรศัพท์เพื่อสร้างหมายเลขประจำตัวเครื่องสำหรับติดตามตัวผู้ใช้ โดยใช้ข้อมูลจากเซ็นเซอร์ต่างๆ ในตัวเครื่อง เช่น accelerometer หรือ gyroscope ทำให้เว็บหรือแอปสามารถติดตามว่าผู้ใช้กำลังใช้งานจากโทรศัพท์เครื่องเดียวกันหรือไม่ โดยไม่ต้องขออนุญาตใดๆ เรียกว่า SensorID

SensorID อาศัยข้อเท็จจริงที่ว่าเซ็นเซอร์ในโทรศัพท์นั้นจะถูกปรับค่า (calibrate) เพื่อชดเชยความผิดพลาดจากการผลิตเสมอ โดยการปรับค่านี้จะอาศัยการทดสอบระหว่างการผลิตและใส่ค่าที่ปรับแล้วเอาไว้ในเฟิร์มแวร์ โดยทั่วไปแล้วผู้ที่อ่านค่าเซ็นเซอร์ เช่น เว็บหรือแอปต่างๆ จะไม่สามารถเห็นรายการปรับค่านี้ได้ แต่ทีมวิจัยวิเคราะห์ข้อมูลจากการขออ่านค่าเซ็นเซอร์ และสามารถสร้างหมายเลขประจำเครื่องได้อย่างแม่นยำ โดยทีมงานเรียกหมายเลขที่ได้จาก gyroscope ว่า GyroID, หมายเลขที่ได้จากเข็มทิศ MagID, และหมายเลขที่ได้จาก accelerometer ว่า AccelID

สำหรับแอปบน iOS เทคนิคนี้สามารถสร้างหมายเลขประจำเครื่องที่มีระดับความยุ่งเหยิง (entropy) ที่ 67 บิต ทำให้แยกเครื่องแต่ละเครื่องในโลกออกจากกันได้แทบเสมอ ขณะที่การสร้างหมายเลขผ่านเว็บจะมีความละเอียดน้อยกว่าที่ 42 บิต ส่วนบน Pixel 2/3 ทีมงานระบุว่าสามารถสร้างหมายเลขประจำเครื่องผ่าน AccelID ได้แต่ความละเอียดน้อยกว่ามาก ทำให้อาจจะแยกเครื่องได้ไม่แม่นยำ

การระบุเครื่องได้เช่นนี้ทำให้เว็บไซต์หรือแอปสามารถติดตามผู้ใช้ได้ตลอดเวลา ไม่ว่าผู้ใช้จะเปลี่ยนหมายเลขโทรศัพท์, อัพเดตเครื่อง, ล้างเครื่อง, หรือใช้เปลี่ยนแอปใช้งาน โดยปกติแล้วระบบ sandbox ของ iOS มีการป้องกันการอ่านหมายเลขประจำเครื่องเพื่อความเป็นส่วนตัวของผู้ใช้

แอปเปิลแก้ช่องโหว่นี้แล้วบน iOS 12.2 โดยค่าจากเซ็นเซอร์ต่างๆ จะถูกใส่ค่า noise เข้าไปเล็กน้อยก่อนส่งให้แอป ส่วนบน Mobile Safari จะปิดสิทธิ์การอ่านค่าจากเซ็นเซอร์เป็นค่าเริ่มต้น

ที่มา - SensorID

Get latest news from Blognone

Comments

By: big50000
AndroidSUSEUbuntu
on 24 May 2019 - 03:23 #1111243
big50000's picture

คำถาม: แอป VR จะได้รับผลกระทบจากการแก้ไขช่องโหว่นี้หรือไม่

By: iamfalan
iPhoneAndroidWindows
on 24 May 2019 - 07:06 #1111249 Reply to:1111243

Noise ที่ใส่ไปควรจะเล็กน้อยจนแอพ VR หรือ AR ไม่สามารถรับรู้ความแตกต่างได้ครับ
จุดประสงค์ของ noise คือ ป้องกัน ไม่ให้สามารถ gen id ที่เหมือนกันบนเครื่องเดิมได้ครับ ให้ค่ามันเปลี่ยนไปเรื่อยๆ เท่านี้ก็ติดตาตัวไม่ได้แล้ว

By: SomeThing
Windows
on 24 May 2019 - 08:42 #1111255

ตามไปอ่านต้นทางแล้วก็ยังไม่ค่อยเข้าใจนักว่าทำงานได้ยังไง ตอนแรกอ่านพาดหัวนึกว่าสามารถดึง Factory Calibration Gain/Offset ออกมาได้ แต่ไปๆ มาๆ กลายเป็นทีมวิจัยสามารถแยก Calibration data จากข้อมูล Sensor ได้? (จริงดิ) สมมุติว่า Sensor response ค่ามาหลายๆ ครั้งได้ค่า 1.0, 1.11, 1.09 .. ทำนองนี้เราจะรู้ค่า Calibration ได้ยังไงหว่า

By: Krit04
iPhoneWindows
on 24 May 2019 - 08:49 #1111258
Krit04's picture

อัพผ่าน iOS 12.2 มาแล้ว ค่อยสบายใจขึ้นมาหน่อย