mID:通过莫尔条纹追踪屏幕照片(mID: Tracing Screen Photos via Moiré Patterns)

本文主要是介绍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)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/329632

相关文章

图解可观测Metrics, tracing, and logging

最近在看Gophercon大会PPT的时候无意中看到了关于Metrics,Tracing和Logging相关的一篇文章,凑巧这些我基本都接触过,也是去年后半年到现在一直在做和研究的东西。从去年的关于Metrics的goappmonitor,到今年在排查问题时脑洞的基于log全链路(Tracing)追踪系统的设计,正好是对这三个话题的实践。这不禁让我对它们的关系进行思考:Metrics和Loggi

Weex入门教程之4,获取当前全局环境变量和配置信息(屏幕高度、宽度等)

$getConfig() 获取当前全局环境变量和配置信息。 Returns: config (object): 配置对象;bundleUrl (string): bundle 的 url;debug (boolean): 是否是调试模式;env (object): 环境对象; weexVersion (string): Weex sdk 版本;appName (string): 应用名字;

一款支持同一个屏幕界面同时播放多个视频的视频播放软件

GridPlayer 是一款基于 VLC 的免费开源跨平台多视频同步播放工具,支持在一块屏幕上同时播放多个视频。其主要功能包括: 多视频播放:用户可以在一个窗口中同时播放任意数量的视频,数量仅受硬件性能限制。支持多种格式和流媒体:GridPlayer 支持所有由 VLC 支持的视频格式以及流媒体 URL(如 m3u8 链接)。自定义网格布局:用户可以配置播放器的网格布局,以适应不同的观看需求。硬

Windows11电脑上自带的画图软件修改照片大小(不裁剪尺寸的情况下)

针对一张图片,有时候上传的图片有大小限制,那么在这种情况下如何修改其大小呢,在不裁剪尺寸的情况下 步骤如下: 1.选定一张图片,右击->打开方式->画图,如下: 第二步:打开图片后,我们可以看到图片的大小为82.1kb,点击上面工具栏的“重设大小和倾斜”进行调整,如下: 第三步:修改水平和垂直的数字,此处我修改为分别都修改为50,然后保存,可以看到大小变成63.5kb,如下:

想要从OPPO手机恢复数据?免费OPPO照片视频恢复软件

此实用程序可帮助那些寻找以下内容的用户: 在OPPO手机中格式化存储卡后可以恢复图片吗?我删除了 OPPO上的视频和图片,我感觉很糟糕,因为里面有我在拉斯维加斯拍摄的视频和照片 免费OPPO照片视频恢复软件 您能恢复OPPO上已删除的照片吗?我不小心格式化了OPPO SD 卡,有希望恢复已删除的照片吗? 救命!我在清理时删除了我的照片,我的问题是是否有任何免费软件可以从OPPO中恢复已

安卓实现弹出软键盘屏幕自适应调整

今天,我通过尝试诸多方法,最终实现了软键盘弹出屏幕的自适应。      其实,一开始我想通过EditText的事件来实现,后来发现,安卓自带的函数十分强大,只需几行代码,便可实现。实现如下:     在Manifest中设置activity的属性:android:windowSoftInputMode="adjustUnspecified|stateHidden|adjustResi

没资料的屏幕怎么点亮?思路分享

这次尝试调通一个没资料的屏幕,型号是HYT13264,这个是淘宝上面的老王2.9元屏,成色很好但是长期库存没有资料和代码能点亮,仅仅只有一个引脚定义。这里我使用Arduino Nano作为控制器尝试点亮这个模块。 首先,已知别人找出来的线序如下 1 - CS2 - RST 3 - DC4 - SCK5 - SDA6 - VCC7 - GND8 - K59 - K410

快速搞定“照片调色”!50000+Lr预设滤镜模板,一键让你照片不再丑!

照片调色不仅仅是调整颜色,更是一种艺术表达。通过巧妙地运用 LR 预设,可以突出照片的主题,增强情感共鸣。比如,在风景照片中,使用特定的预设可以让天空更蓝、草地更绿,让大自然的美丽更加生动地展现出来。 在人像摄影中,合适的 LR 预设可以让肤色更加自然、眼神更加明亮,让人物更加迷人。而且,LR 预设还可以根据不同的风格和场景进行定制,满足各种个性化的需求。如果你对照片调色还不是

Cocos2d-x自适应Android屏幕分辨

ndroid下分辨率太多,不太可能为每种分辨率做一套资源,目前一般来说比较流行的是320*480, 800*400, 854*400。当然现在720P的也出来了,但至少目前不是主流机型^_^. 对于不支持的分辨率,我希望的是能够按照屏幕大小按比例缩放,即有了下面的代码。 1:ViewAutoScale 写了一个ViewAutoScale函数,如下:   #include "ViewAuto

怎样将手机屏幕(远程)投屏到家里的大电视上?

我不住家里,前几次回去都会替老爸老妈清理手机。这两个星期没空回去,老爸吐槽手机用几天就又卡了,其实就是清理一些手机缓存的问题。 我说我远程控制他的手机,给他清理一下。他一听“控制”就不喜欢,说我大了,不尊重他,然后又把几件陈年小事又唠叨一遍。我只能顺着他意,不再提远程控制手机的方法。其实我也不懂,他愿意直接把手机给我操作,但不愿意被远程控制。我也只能说服自己,别人总是有些介意的奇奇怪怪的要点。但