就像世界上没有两片相同的雪花,你用手机拍摄的每张照片也是独一无二的。布法罗大学的研究人员掌握了一种方法,可以通过分析照片来追踪拍摄的手机,这项研究为身份验证提供了另一种可能性——用手机拍摄的照片来识别身份。
照片噪点也能当手机的「身份证」
由于元件尺寸和衬底材料的不可控,即使是同一型号的相机也会在传感器上有细微的差别。当均匀的光线投射到传感器上时,每个像素输出的值并不完全相同,这会导致图像的某些像素或明或暗,产生噪点,这种成像缺陷被称为 PRNU(光照响应不一致性)。
由于 PRNU 是由传感器本身的物理特性引起的,所以很难完全消除,这种差异用肉眼无法察觉,但可以通过特殊的滤镜提取,基于这些特征的不同,每个相机的每张照片都是独一无二的。
「这就像根据子弹轨迹来追踪枪,只不过我们是用照片来追踪手机。」研究人员 Kui Ren 提到。
在数码相机中,基于 PRNU 来判断图像来源的应用很常见,经常用于图片版权诉讼的取证。但整个过程需要对同一个相机拍摄的 50 张照片进行分析,所以这种验证方法并没有用于常见的身份识别。
不过研究人员发现,用 PRNU 验证身份在智能手机中是可行的。与数码相机相比,智能手机的图像传感器要小几十倍,像素的不均匀性更明显,所以只需要一张照片就可以完成和智能手机的匹配,而且智能手机的普及率和便携性比数码相机要高得多。
研究人员表示,这项技术可以成为身份验证中的一部分,作为密码、生物识别等验证方法的补充。Kui Ren 设计了一个新的安全协议,用来检测和阻止几种常见的网络攻击。
验证过程是这样的,用户在注册一项服务时,先提供一张照片作为「PRNU 指纹」的参考,当发起一笔交易时,服务商会要求用户拍摄 ATM 机或其他屏幕上的两个动态二维码,只有和用户所留的 PRNU 信息匹配时,交易才会确认。
协议要求二维码中要包含交易信息,如果服务商接收到的二维码照片和用户发起的交易不一致,身份验证会终止,这可以防止攻击者拦截信息,然后伪造成服务商发起恶意的交易请求。
二维码中还包含随机字符串和时间戳,保证二维码不会被预测,并且是唯一的。这可以防止攻击者非法获取到用户之前的二维码照片,并借此骗过服务商。
准确率 99.5%,比指纹识别强在哪里?
随 iPhone X 兴起的人脸识别实际上并不安全,前段时间接连出现双胞胎、母子甚至是同事破解 Face ID 的例子。相比人脸识别,指纹识别是目前更为成熟的验证方案,不过仍然存在安全漏洞。
制作假手指来骗过手机的指纹识别并不难,CITER 的研究人员就曾基于一张图像来制作 3D 打印模具。2014 年,一位黑客用德国国防部长手中的高清照片创建了一个指纹的替代方案。通过橡胶来伪造假手指的方法已经能够成功解锁手机。
比起传统的指纹识别,「PRNU 指纹」最大的优势就是可以防止伪造。
在个人隐私已经越来越公开化的今天,攻击者很容易就能从社交平台上获得用户的照片,借此分析出手机的 PRNU 特征并不难。但布法罗大学的研究人员表示,他们的方案可以及时检测和识别伪造行为。
攻击者伪造 PRNU 特征有两种方法,第一是直接用其他手机拍摄二维码,再把用户手机的 PRNU 特征添加上去,这样照片就同时有用户、攻击者手机的 PRNU 特征。
这就是为什么要求拍摄两张二维码照片的原因:当两张照片上同时叠加了两种 PRNU 特征时,它们之间的的噪点相似性要高得多,如果高出正常值,服务商就可以判断照片为伪造,身份认证就会失败。
第二种伪造方法是用其他手机拍摄二维码后,先去除攻击者手机的 PRNU 特征,然后再添加用户手机的 PRNU 特征。这样生成的照片包含正确的二维码,同时也有对应的 PRNU 特征。
为了检测出攻击者去除噪点的行为,二维码中嵌入了半脆弱探测信号,以此来判断二维码照片是否为伪造,这种方法被很多图片网站用来加强水印的验证。简单来说,攻击者去除噪点的同时也会把探测信号去掉,服务商根据探测信号是否存在,就可以判断照片上的 PRNU 特征是否为伪造。
研究人员用 16000 张图片,对 30 台 iPhone 6s 和 10 台 Galaxy Note 5 进行了测试,身份验证的准确率达到了 99.5%。Kui Ren 提到,未来他们还会在双摄手机上做实验,这会让身份伪造更困难。
和人脸、指纹、虹膜等生物识别方式相比,用照片来追踪手机是一个全新的概念。尽管研究人员在安全协议中已经防范了很多被攻击的可能,但技术的普及还要考虑商业成本和用户接受度。
拍照验证的操作倒是符合用户扫码、拍摄的习惯,但这种方式就目前来看应用场景还很少。不管是用作 ATM 取钱,还是零售店支付,人脸识别、指纹识别已经足够便捷。即使这项技术可以实现,也只能作为现有身份验证的补充。