Oculus传感器能传输图像,有潜在安全隐患

0

Oliver Kreylos是加州大学戴维斯分校的研究员,主要关注虚拟和增强现实。他被称为行业中的一个扫地僧,是微软发布官方规格之前首先确定 HoloLens 的实际可视角度的人之一。最近,Kreylos 一直在挖掘 Oculus Rift 摄像传感器及其作为基本网络摄像头的能力。

首图是由 Kreylos 从他的一个 Oculus 传感器提取出来的图像。这些“传感器”本质上是用于在三维空间中跟踪 Rift 和 Touch 控制器的位置的相机,通过检测头戴显示器和控制器上的不可察觉的红外光来实现。Kreylos 通过分析传感器的硬件 Aptiva MT9M021 1/3″ CMOS 图像传感器 和一个 Etron eSP770 控制器发现,通过一些修改,你可以从 Oculus 传感器里看到可识别的图像,就像它是一个低分辨率的黑白摄像头那样。

这是咋个情况呢?

oculus-sensor-camera

根据 Kreylos 声称,只需把对一些基本的 Linux 技术的了解和对计算机工作方式的一般理解组合起来,就能把图像从 Oculus 传感器中复制出来。

他解释道:

Oculus 决定把 Rift “传感器”是一个标准网络摄像头的事实隐藏了起来。通常,当你将网络摄像头插入 USB 端口时,摄像机会在 USB 视频类(uvc)中宣布自己为设备,然后 PC 会加载标准的 uvc 摄像头驱动程序,让摄像头即插即用。

Rift 相机仍然是一个 uvc 相机,但当插入时发送到主机的 USB 描述符中,本应声明为“视频类”的字节被声明为了“供应商特定的类”。这就是当你把它插入一个没有安装 Oculus 的驱动程序软件的电脑时,它不显示为一个摄像头的原因。

为了使它“正常”工作,我不得把 Linux 内核的 uvc 相机驱动程序打了个补丁。这样当驱动程序看到与 Rift 相机匹配的 USB 供应商和产品 ID 时,它会忽略 USB 描述符中的类类型,并开始将其视为 uvc 相机。而又因为它本来就是一个摄像头,这样它就开始工作了。

基本上这意味着,Oculus 让传感器不向 Windows 操作系统宣称自己为摄像头。否则,Windows 可能会直接运行它自己的标准网络摄像头驱动程序,这不是 Oculus 需要的东西。相反,他们用到一个自定义的驱动程序,让 Windows 用来与传感器交互,使其只能与 Rift 协同工作。 Kreylos将此描述为一个“混淆”层,是 Oculus 来让这个摄像头”非正常化”的方法。

据 Kreylos 所说:

然后我注意到 Oculus 还添加了第二层混淆。相机的真实视频图像格式为灰度,每像素8位。在 uvc 中,图像格式通过四字符标识,也就是所谓的 fourcc 值来确定。灰度的 fourcc 值是“Y8”或“GRAY”,但是 Rift 相机的固件却骗人,发送的标识是“YUYV”,这是大多数网络摄像头使用的交错的16位彩色格式。固件通过这个方式,再配合对分辨率的规格的撒谎,掩盖了实际发送的像素是两倍大的情况。也就是说,它宣称自己的规格是 640 × 960 YUYV(16位),而不是实际上的 1280 × 960 Y8(8位)。这样,实际的原始图像数据和谎言拥有同样的总体布局(每个图像行1280字节)。

也就是说,即使你可以从 Oculus 传感器里得到一个静态画面,仍然需要经过调整才能得到一个真正的图片。Rift 传感器本来只是为了捕捉一个东西:红外跟踪点。事实上,Oculus 传感器里还包含了一个物理过滤器(750nm,过滤到红外以外的最好要到940nm以上),以消除可见光,因为那些东西“只是噪点,使其更难被计算操作”。

然而,只是因为这是传感器设计的目的,并不意味着一个牛逼的大脑不能使用这些硬件来生成一些可识别的东西。甚至都不是啥难事。据 Kreylos 声称,“要得到真正的图片,我只需忽略其声明的假视频格式,而直接把传入的原始数据作为实际格式。”

所以……Facebook 在监视我吗?

Oculus-Facebook-Logo

Facebook 或 Oculus 当然不太可能使用他们的传感器来监视客户,这将破坏公司希望与使用他们的硬件的用户建立的任何信任。但从技术上的可能性来说,一个获得你 PC 访问权限的黑客完全可以用它来监视你,就像任何其它网络摄像头一样。

Oculus 传感器被设计用来捕获特殊格式的坐标系,并立即丢弃屌任何图像数据。

Kreylos 称:

我的观点是,Oculus 的驱动并不保留或存储任何摄像头的图像。它们在到达 USB 使用后马上被销毁,只留下提取出来的(x,y)LED 位置被馈送到姿态估计算法中去。

现在,可以想象的是,驱动可以保留图像,甚至把数据发送到 Facebook 总部进行分析。但这你就想多了。潜在的收益并不高(优化广告投放目标?),但潜在的风险相当大 – 因为这种事迟早会被捅出来。不只是 PR 的角度,还有真正严重的法律后果。所以,他们肯定不会这样做。

Oculus 在这一点上也是坚定的。Facebook 的 VR 团队对 Kreylos 的调查结果也以类似的着重点进行了回应:

Rift 的传感器并不像一般的摄像头那样。我们设计这种传感器是专门用于检测 Rift 和 Touch 控制器上的红外信号的。这是我们确保 VR 中的体验和一个人在现实生活中移动的动作相一致的方式。由传感器捕获的每一帧都被经过处理以减少背景中的杂质,让红外信号能被清晰突出地显示出来。然后,当前帧立即会被丢弃掉。传感器没有直接连接到互联网,我们也不会存储传感器捕获的任何帧画面,因此没有人能从我们的服务器里访问到这些信息。

那我们该咋办呢?

尽管这些传感器的用途理论上仅限于此,但 Kreylos 让我们知道 Rift 的传感器可以捕获它面前任何人或东西的图像。这意味着该设备容易成为黑客和恶意软件的目标。正如 Kreylos 所说的:“实际值得担心的并非 Facebook,而是其他潜在的黑客,可能用病毒或恶意软件把这个传感器变成监视器。很显然,这在之后是几乎一定会发生的。”

Facebook 貌似也同意这一点,并表示“和其它 Windows 或 USB 外设一样,如果用户的 PC 被攻陷,那么传感器也可能被他人访问。”

这个意思是,你的 Oculus Rift 传感器完全能够把你和你的家里的图像传输到任何黑客手中,只要他们有足够的技巧,能攻陷你的 Windows 安全系统和其它你电脑上的安全软件。在没有其它额外信息的情况下,Oculus 传感器不会比你的 PC 更加脆弱或安全。

重要的是,所有的 Oculus Rift 用户都应该意识到,它们的传感器确实存在被入侵的可能性,并最好能采取一些合适的保护措施。

简单来说,如果你是那种觉得很有必要把你笔记本电脑上的网络摄像头用胶布覆盖的人的话,那你也应该把 Oculus 传感器给粘上。顺便,还有你的手机,前后也有摄像头。对了,麦克风录音更难被人察觉,最危险了。

玩笑归玩笑,这个传感器目前的规格,让我们对之后 Facebook 可能通过软件升级来开启一些 CV 用途,燃起了希望……

或者,你也可以这样
或者,你也可以这样

Via:UploadVR

LEAVE A REPLY

Please enter your comment!
Please enter your name here