本文主要是介绍mID:通过莫尔条纹追踪屏幕照片(mID: Tracing Screen Photos via Moiré Patterns),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
前言
想起CSDN账号密码了,正好讲组会的时候介绍了这篇文章,搬过来,选自30th USENIX Security Symposium. August 11–13, 2021。
由于专业的局限和有限的水平,这篇介绍会尽量避开原文中物理原理方面的知识,并难免有误解和错漏,感兴趣的可自行去阅读原文。
原文链接:https://www.usenix.org/conference/usenixsecurity21/presentation/cheng-yushi
论文pdf:https://www.usenix.org/system/files/sec21-cheng-yushi.pdf
概要
本文中,作者提出了mID,这是一种新的类似水印的技术,当照片被拍向屏幕时,它可以在照片上创建一个精心制作的莫尔条纹。并设计成似乎是自然生成的,但是依然能可靠地编码id,并与泄密者的身份联系起来。
背景知识介绍
网络窃密
网络窃密是指在网络空间非法泄露敏感的商业信息,如数字文件、图像或代码等。据估计,2018年,仅欧洲就因此损失600亿欧元的经济增长和28.9万个工作岗位,已经成为一个严重的商业威胁。
此类网络盗窃通常与内部人士有关,员工合法访问机密商业文件,但通过电子邮件或消息系统将其泄露给未授权方。为了识别和追踪泄漏的来源,数字水印是一种帮助识别文件泄漏来源的流行技术,公司记录从网络或USB端口流出的文件,并在每个机密文件中插入每个员工独有的数字水印。然而,为了避免暴露,恶意的内部人士可能会使用自己的智能手机拍摄屏幕上显示的秘密文件,以消除嵌入的隐藏数字水印。
莫尔条纹
莫尔条纹,又称摩尔纹,是18世纪法国研究人员莫尔先生首先发现的一种光学现象。从技术角度上讲,莫尔条纹是两条线或两个物体之间以恒定的角度和频率发生干涉的视觉结果。当人眼无法分辨这两条线或两个物体时,只能看到干涉的花纹,这种光学现象中的花纹就是莫尔条纹。
天然莫尔现象可以通过观察褶皱的小网尼龙窗帘,或在两张相互扭成20-30度的图表纸上看到。
莫尔条纹通常是由周期性层的叠加产生的,并以新的结构出现,而这些结构不存在于任何原始层中。周期层可以是图像、尼龙窗帘、光学过滤器等。假设l1和l2是两个周期性层,s是生成的叠加图案,其中。
两个周期性函数的相乘导致了频域中的非线性。
简单的说,它在频域中包含两个新分量(f1+f2)和(f1-f2)。由于人眼对低频信号更加敏感,如果新分量(f1 - f2)低于人类视觉系统(HVS)的截止频率,同时又有明显的振幅,就会成为引人注目的莫尔条纹。
相机的的成像元件其实可以看作很多个独立存在的采样点,这些采样点是有规则的排列的,而且采样点和采样点之间的部分无法成像。所以可以将相机成像元件视作一个点阵(或者网格)。同理,显示器的屏幕也是可以视为一个点阵(网格)。
电脑屏幕上的图案在数码相机拍摄时,会干扰数码相机光传感器的形状,从而产生莫尔图案。
在本文中,作者将这种效果应用于屏幕照片取证。
大致流程
为了通过莫尔条纹跟踪文件泄漏的来源,mID应该满足以下要求。
(1)给用户极其细微的视觉差异,嵌入式mID对用户没有明显的视觉冲击。换句话说,用户不应该能够识别mID对显示进行了哪些修改。
(2)给对手的视觉迟钝。照片中精心制作的莫尔条纹应与屏幕-相机通道自然生成的图案相似。否则,对手可能会注意到mID的存在而放弃图像以避免被跟踪。
该方案由mID编码阶段和解码阶段组成。大致分为四个模块:
( a ) mID生成,( b ) mID嵌入,( c ) mID提取,( d ) mID解码。
mID编码
为了通过莫尔条纹标记信息源,作者设计了一个n位的mID,它由一个2位的前检查代码、一个有效负载和一个2位的结束检查代码组成。有效负载表示信息源的标识,并以二进制数字(位)的形式出现,每个位的值为“0”或“1”。作者设想它可以从三个层面提供照片取证。
•设备层面
设备和用户紧密绑定的,设备只能由所有者访问时,负载可以根据显示设备的硬件信息生成,例如MAC (media access control)地址。
•操作系统层面
当多个用户共享同一台设备,但使用各自的操作系统帐号时,可根据操作系统用户帐号信息在操作系统级别生成负载。
•应用程序层面
对于敏感的应用程序,例如内部邮件系统或公司的数据库,负载可以根据与应用程序相关联的帐户信息生成。
显示光栅生成
屏幕像素(l1’)投射到相机传感器上,形成l1,相机的CFA(color filter array颜色滤波阵列)形成l2,它们的叠加产生了莫尔条纹,也就生成了mID。在l1’,l1, l2这三个层次中只能操纵屏幕像素(l1’)的中间光栅来生成mID,CFA层(l2)由智能手机内置摄像头的物理结构决定,投影屏幕显示(l1)也会受到相机传感器的影响。
周期性光栅层可以用频率和相位项建模
其中l(x,y)为坐标(x,y)处的像素值,p()为决定光栅频率的周期函数,φ(x,y)为决定其几何布局的相位函数。
具体周期函数p、相位函数φ的选择涉及针孔效应等物理理论方面的内容,此处省略。
mID嵌入
感兴趣的区域
为了嵌入生成的光栅并最大化它们被拍摄到照片中的可能性,需要自动分析屏幕的当前页面。
考虑到公司的目标是防止网络窃取商业机密,当前页面中包含机密信息的一些区域,如文本或图像,对公司来说是更重要的。感兴趣区域(ROI)。为了寻找合适的mID嵌入区域,作者首先利用计算机视觉(CV)技术定位当前页面可能的ROI,主要提取文本和图像的位置。提取的ROI数量由屏幕内容决定,我们计算这些区域的质心作为当前页面的ROI中心。或者,防御者可以根据他们的要求手动标记ROI
嵌入的区域
为了最大限度地提高mID在屏幕照片中被捕获的可能性,作者将生成的光栅嵌入到ROI中心附近,即嵌入区域(ROEs)。一般来说,会假设靠近ROI中心的平面区域更适合嵌入,因为mID更容易被屏幕照片捕捉到,且当前页面的细节丢失更少,对用户造成的视觉差异更小。 此外,我们设计在每个ROE中嵌入一位mID。这是因为将整个mID嵌入到一个ROE中可能需要一个大的平坦区域。将mID划分为多个ROE有助于降低ROE的大小要求。
因此,作者在ROI中心附近搜索N个矩形区域,其中N为mID的比特数,每个嵌入区域的大小为p×q,其中p和q分别代表1位光栅的高度和宽度。宽度q可以进一步计算为q = 2k ×n。理论上,高度p可以是任何值,但为了确保屏幕照片中Moiré模式的可区分性,需要最小值p。在实践中,我们建议p > 50。注意,嵌入区域可以是任何形状。为了便于编码和解码,我们在这里使用矩形。
作者使用一个大小为p×q、步长为w的滑动窗口m 浏览当前页面进行ROE搜索。对于以(x,y)为质心坐标的每个图像窗口B(x,y),我们综合考虑均匀性和位置,评估其适应度F(x,y):
mID提取
智能手机拍摄的图像包含莫尔条纹和其他元素。为了获得嵌入的mID,作者首先在智能手机采集的图像中定位莫尔条纹的区域,作者称之为莫尔区域。
形象整改
由于不平行的摄像头和屏幕平面,智能手机拍摄的图像通常会产生几何畸变,它们之间有一个角。因此,捕获的屏幕不再是一个规则的矩形,而是一个扭曲的四边形。为此,作者首先在齐次坐标下使用常用的投影变换对畸变图像进行校正,然后提取校正后的包含屏幕的矩形进行摩尔区域提取。
波纹区域提取
提取莫尔区域的一种直观方法是搜索红绿条纹。然而,莫尔条纹可能在不同的背景上以不同的颜色出现,并且由于屏幕-摄像机通道引入的噪声而模糊,简单地搜索特定颜色的条纹可能不够。因此,作者使用用于mID编码的横向编码风格,因为与垂直方向相比,莫尔区域在水平方向上可能有更大的颜色变化。
为了具有鲁棒性地提取莫尔区域,我们使用一个2维窗口Wm 大小是hm ×wm ,每一步是tm去扫描经过矫正的矩形图像。具体来说,我们计算平均颜色变化Varh 和Varv 在水平和垂直方向上,并使用以下公式确定当前窗口是否属于摩尔区域:
其中r为比值阈值,将水平变化较大的窗口视为莫尔区域的一部分。为了达到较高的提取精度,通常要求提取窗口的大小和步长在较细的粒度上。实际上,作者设Hm = Wm =Sm = 10像素,r = 1.5。扫描之后,作者在几个集群中获得了许多莫尔窗口,其中可能有一些异常值。集群的数量,即照片中包含的莫尔区域的数量,通常小于或等于中位数N,因为两个相邻的嵌入区域在照片中显示为一个莫尔区域。为了定位,莫尔区域,我们首先用mean shift聚类对莫尔窗口进行聚类,从而大致得到每个莫尔区域的中心。然后,作者利用随机样本一致性(RANSAC)来区分离群点,并为每个莫尔区域寻找包含剩余集群莫尔窗口的最小矩形。逐步迭代它们的边界直到收敛,然后提取莫尔区域进行进一步的译码。
mID解码
图像预处理
首先,为了减轻解码的负担,将得到的莫尔区域按照其水平坐标排列并连接在一起。这样,我们得到一个联合莫尔区域(JMA)进行解码。
接下来进行图像预处理,包括:
(1)颜色空间变换,使解码算法在不同颜色之间具有鲁棒性;为了使解码算法在不同的RGB颜色中都能得到破译,我们将联合莫尔区域域转化为HSV(色调、饱和度、数值)颜色空间。
(2)饱和度平衡,减少焦点位置和环境光的影响;
(3)饱和差放大,放大0位和1位的饱和差,帮助解码。
处理后效果如下
ID恢复
饱和度曲线
图像预处理后,在检查码的帮助下,绘制饱和曲线,再对bit进行聚类。
利用汉宁窗来减少拍摄时引入的噪声,提高信噪比(SNR)。因此,我们得到一个水平的饱和曲线,用于进一步解码
比特聚类
对于一个N位的mID,作者将其饱和度曲线进一步划分为N个分段,计算每个分段的饱和度和作为对应位的值,记为{P0,P1,……PN−1}。由于处理过的饱和序列可能有可能影响聚类阈值的异常值(在作者的例子中是异常大的值),通过抑制大值数据点来减少它们的影响。
具体来说,对于一个n位的mID,将最大的K个数据点减小如下:
然后,使用k-means聚类算法将相同的bit分组到同一个类中,并使用检查码识别每个类,即,“0”或“1”,这样,作者从屏幕照片中恢复mID
实验效果
实验设置
为了评估mID方案的性能,作者在不同的设置下进行实验,在3个月的时间里,用5台显示设备和6台智能手机收集了5000多张照片。详细来说,作者评估了(1)id,(2)显示设备,(3)捕捉设备,(4)环境光,(5)拍摄距离,(6)拍摄角度的影响与误码率(BER)和身份编号错误率(NER)的指标。
各种因素对译码的影响
实验结果表明,中位数平均误码率为0.6%,平均误码率为4.0%。此外,性能几乎不受显示设备、摄像头、id和环境光的影响。
用户使用研究
简单的说,mID的应用不会对普通用户的观感造成太大影响。
总结
在本文中,作者提出了mID,一种数字取证机制,利用莫尔条纹通过照片来识别文件泄漏的来源。
优点
1.这是第一个屏幕拍照取证的工作。
2.利用屏幕拍摄过程中自然产生的光学现象,不会引起窃照者的注意,而且在照片中能够有规律地观察到,且极难被移除。
3.性能几乎不受显示设备、id和环境光的影响,误码率较低,可以与现有的几种技术相辅相成。
缺点
1.在窃照者已知该技术的情况下较易防范,如在相机镜头上添加光学低通滤波器(OLPE),使用增强的颜色插值算法等
2. 会被未来的摄像技术影响性能,如相机的AI后处理,多摄像头系统等。
3.需要在设备上预先安装mID软件来实时生成,不太方便而且也有一定的算力成本。
可能的改进
未来考虑进一步的提高解码精度来作为无可辩驳的证据;探索更大的攻击范围;另外,相似的屏幕刷新率产生的条纹或许也能用于取证或隐藏信息。
这篇关于mID:通过莫尔条纹追踪屏幕照片(mID: Tracing Screen Photos via Moiré Patterns)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!