如何发现照片中模糊的信息

当你在网上分享一张图片时,模糊或像素化敏感信息(比如账号)是一种常见的做法,但你的信息可能没有你想象的那么安全。这需要一些工作,但是有一些方法可以发现那些敏感的文本。...
Illustration for article titled How to Uncover Blurred Information in Photographs

当你在网上分享一张图片时,模糊或像素化敏感信息(比如账号)是一种常见的做法,但你的信息可能没有你想象的那么安全。这需要一些工作,但是有一些方法可以发现那些敏感的文本。

这篇文章是我们在tl80的邪恶周系列的一部分,在这里我们看到了完成事情的阴暗面。知道邪恶意味着知道如何打败它,所以你可以利用你的邪恶力量为善。想要更多吗?查看我们的邪恶周标签页。

毫无疑问,你们都在电视和网络上看到过一些人的照片,这些人为了掩面而变得模糊不清。例如,这里有一个比尔·盖茨。

Illustration for article titled How to Uncover Blurred Information in Photographs

在大多数情况下,这是一个很好的方法来审查人们的脸,因为没有一个方便的方法来扭转模糊回到一张照片足够详细,可以辨认。那很好,如果这是你想要的。然而,许多人也采取模糊敏感数字和文本。我来说明为什么这是个坏主意。

假设有人出于任何原因(向某人证明我赚了一百万美元、展示支票的有趣之处、将某物的大小与信用卡进行比较等)在网上发布了一张支票或信用卡的照片,用极为常见的马赛克效果对图像进行删剪以隐藏数字:

Illustration for article titled How to Uncover Blurred Information in Photographs

因为没人能读懂数字所以看起来很安全?错了。有一种方法可以攻击这个计划:

步骤1:获取空白支票图像

有两种方法。你可以用Photoshop把现有图片中的数字打印出来,如果是信用卡的话,你可以在同一个机构开一个账户,从同一个角度给自己的卡拍照,并匹配白平衡和对比度。然后,用你自己的高分辨率照片把你的数字用Photoshop打印出来。

当然,在这些示例图像中这很简单:

Illustration for article titled How to Uncover Blurred Information in Photographs

第二步:迭代各种可能性

使用一个脚本遍历所有可能的帐号,并为每个帐号生成一个检查,将数字的各个部分作为一个部分屏蔽。例如,对于Visa卡,数字按4分组,因此您可以单独执行每个部分,因此只需要生成4*10000=40000个图像,这对于脚本来说很容易。

Illustration for article titled How to Uncover Blurred Information in Photographs

步骤3:以与原始图像相同的方式模糊每个图像

确定用于模糊原始图像的马赛克瓷砖的确切大小和偏移量(以像素为单位),然后对每个模糊图像执行相同的操作。在这种情况下,我们看到模糊图像有8x8像素的马赛克单位,偏移量是通过从图像顶部(未显示)开始计数来确定的:

Illustration for article titled How to Uncover Blurred Information in Photographs

现在我们遍历所有图像,以与原始图像相同的方式模糊它们,以获得如下结果:

Illustration for article titled How to Uncover Blurred Information in Photographs

第四步:确定每个模糊图像的马赛克亮度向量

这是什么意思?好吧,让我们看看0000001的马赛克版本(放大):

Illustration for article titled How to Uncover Blurred Information in Photographs

…并确定每个马赛克区域的亮度级别(0-255),以某种一致的方式将它们索引为a=[a_1,a_2…,a_n]:

Illustration for article titled How to Uncover Blurred Information in Photographs

在这种情况下,帐号0000001创建马赛克亮度向量a(0000001)=[213201190,…]。我们以类似的方式找到每个帐号的mozaic亮度向量,使用脚本模糊每个图像并读取亮度。设a(x)为账号x的函数。a(x)_i表示从帐号x获得的马赛克亮度向量a的第i个向量值。上面,a(0000001)×1=213。

我们现在对我们在网上或任何地方找到的原始检查图像做同样的处理,得到一个向量,我们在此称之为z=[zƏ1,zƏ2,…zƏn]:

Illustration for article titled How to Uncover Blurred Information in Photographs

第四步:找到距离原始图像最近的迭代

确定原始图像的马赛克亮度,称之为z=[z_1,z_2,…z_n],然后简单地计算每个帐号(用x表示)马赛克亮度向量的距离(先对每个进行规格化):

d(x)=sqrt((a(x)×0/N(a(x))-z×0/N(z))^2+(a(x)×1/N(a(x))-z×1/N(z))^2+…)

其中N(a(x))和N(z)是由

N(a(x))=(a(x)^0^2+a(x)^1^2+…)^2

N(z)=(z^0^2+z^1^2+…)^2

现在,我们简单地求出最低的d(x)。对于信用卡,只有一小部分可能的数字验证了假设可能的信用卡号码,所以这也是一个简单的检查。

在上面的例子中,我们计算,

N(z)=平方米(206^2+211^2+…)=844.78459

不适用(0000001)=907.47837

不适用(0000002)=909.20647

...

然后继续计算距离:

d(0000001)=1.9363

d(0000002)=1.9373

...

d(1124587)=0.12566

d(1124588)=0.00000

...

账号是1124588吗?

“但你用的是你自己精心**的易于破译的图像!”

在现实世界中,我们有照片,而不是在Photoshop中虚构的支票。我们有扭曲的文字,因为相机的角度,不完善的路线,等等。但这并不能阻止人类准确地确定这些扭曲是什么,并创建一个脚本来应用它们!无论哪种方法,所确定的最小距离都可以作为候选距离。尤其是在信用卡的世界里,数字被很好地分成四个一组,而实际上只有十分之一的数字是有效的,这使得你很容易从你的前几个最短的距离中选择最有可能的候选人。

为了在真实照片上实现这一点,您需要做的一件重要的事情是改进距离算法。例如,除了提高性能的方法之外,您还可以重写上面的距离公式来标准化标准偏差。您还可以为每个马赛克区域独立地计算RGB或HSV值,还可以使用脚本将文本在每个方向上扭曲几个像素,并进行比较(在快速PC上仍然可以进行可行的比较)。您还可以使用类似于现有的最近形状算法的算法来帮助提高真实照片的可靠性。

所以是的,我用了一个图像来对抗它自己,并设计它在这里工作。但该算法肯定可以改进,以适用于真实世界的照片。这只是一个概念的证明。但有一点是肯定的:这是一个非常容易解决的问题。不要用简单的马赛克来模糊你的图像。你所要做的就是减少只包含log(10^N)/log(2)个帐户数据有效位的图像中的信息量。分发此类图像时,您希望消除个人信息,而不是通过减少图像中的视觉信息量来掩盖这些信息。

考虑在屏幕上创建一个100x100的图形。现在让我们假设我只是平均出整个图形,并用整个平均值替换每个像素(也就是说,把它变成一个单像素的“马赛克”)。您刚刚创建了一个以256^(10000)个可能性开始的函数,并将其散列为256个可能性。很明显,对于得到的8位信息,您不可能将其还原为原始图像。但是,如果您知道原始图像是10种可能的图像之一,那么只要知道结果的8位数字,就可以轻松地确定使用了哪些原始图像。

字典密码攻击与此类似

大多数UNIX/Linux系统管理员都知道/etc/passwd或/etc/shadow存储使用Salt或MD5等单向加密进行加密的密码。这是相当安全的,因为没有人能够通过查看密码的密文来解密密码。身份验证是通过对登录用户输入的密码执行相同的单向加密,并将该结果与存储的单向结果进行比较来实现的。如果两者匹配,则用户已成功通过身份验证。

众所周知,当用户选择字典中的单词作为密码时,单向加密方案很容易被破坏。然后,攻击者只需对整个英语词典进行加密,并将每个单词的密文与/etc/passwd中存储的密文进行比较,然后选择正确的单词作为密码。因此,用户通常被建议选择更复杂的密码,而不是文字。字典攻击可以这样说明:

Illustration for article titled How to Uncover Blurred Information in Photographs

字典攻击和模糊图像攻击的相似之处在于模糊图像是一种单向加密方案。您正在将现有图像转换为另一个设计为不可读的图像。然而,由于账号通常只会增加到数百万,我们可以将可能的账号(即0000001到9999999之间的所有数字)组合成一个“字典”,例如,使用自动图像处理器将这些数字中的每一个都用Photoshop处理到一张空白支票的照片上,并模糊每个图像。在这一点上,人们可以简单地比较模糊的像素,看看最接近的匹配原始模糊照片。

解决方法很简单:不要模糊你的图像!相反,只需在它们上面涂上颜色:

Illustration for article titled How to Uncover Blurred Information in Photographs

请记住,您希望图像的查看器没有任何信息,而不是模糊的信息。这似乎是一个复杂的方法来恢复文本,但真正的问题是,这是完全可能的。

为什么模糊敏感信息是个坏主意| dheera.net


Dheera Venkatraman是美国马萨诸塞州剑桥市麻省理工学院电子工程和计算机科学系的研究生。

比尔盖茨通过维基共享网站拍摄的照片。

想看看你在tl80上的作品吗?给安迪发邮件。

  • 发表于 2021-05-20 07:54
  • 阅读 ( 131 )
  • 分类:互联网

你可能感兴趣的文章

如何在photoshop中模糊人脸、文本和背景

... 如何模糊敏感信息 ...

  • 发布于 2021-03-11 23:19
  • 阅读 ( 505 )

如何聚焦和锐化模糊的照片和电影

...略图。SmartDeblur附带了一个示例图像,您可以在其中学习如何对图像进行去模糊处理以读取隐藏的文本。 ...

  • 发布于 2021-03-14 21:18
  • 阅读 ( 182 )

如何使用adobe photoshop制作鬼鬼祟祟的老式万圣节照片

...很想看到有人得到一把扫帚和女巫服装,并结合我的文章如何使某人悬浮在Photoshop这一课。你也可以跟着我使用的图像。 ...

  • 发布于 2021-03-17 04:53
  • 阅读 ( 217 )

如何使用黑暗,免费的adobe lightroom替代品

... 如何使用lighttable ...

  • 发布于 2021-03-20 02:43
  • 阅读 ( 201 )

如何在procreate中用颜色、纹理或照片填充书法文本

Procreate是一款特别受欢迎的手写应用程序。除了一吨伟大的免费和付费的书法笔,你也可以使用应用程序来填补你的信件颜色,图像,等等。 ...

  • 发布于 2021-03-23 14:11
  • 阅读 ( 405 )

如何在android上获得肖像模式

...**商都以自己的方式实现这些特性。所以这里有一个关于如何在各种Android设备上激活肖像模式的指南——以及如何在没有内置肖像模式的**上获得肖像模式。 ...

  • 发布于 2021-03-24 08:30
  • 阅读 ( 397 )

如何判断一个图像是被操纵的还是经过照片处理的

...应该确保阴影的长度和角度相匹配。 另外,看看阴影是如何投射到每个主题上的。如果有纹理对象(如岩石),则阴影看起来应该与图像中的其他纹理对象非常相似。 查找模糊区域和jpeg噪声 当一个图像经历了共享、保存和重...

  • 发布于 2021-03-31 20:03
  • 阅读 ( 177 )

冻结还是模糊?摄影中捕捉运动的两种方法

...像是在运动,你需要把一些想法放到事情上。让我们看看如何在照片中捕捉运动。 在拍摄移动物体时,你可能会发现两个主要问题。你会遇到的第一个问题是快门速度太慢,拍摄对象看起来很模糊,就像我在新奥尔良拍的一个...

  • 发布于 2021-04-05 22:48
  • 阅读 ( 132 )

如何在photoshop中模糊人脸和文本

...下展示你的护照照片有多糟糕。不管是什么原因,下面是如何在Photoshop中模糊一些东西。 在Photoshop中打开要模糊的图像。我要用这张我和一个朋友在山上的照片。 从工具栏中选择选框工具,或使用键盘快捷键M。 在要模糊的图...

  • 发布于 2021-04-06 23:01
  • 阅读 ( 191 )

如何使用photoshop将降雪添加到照片中

...。这是一张完全可以相信大雪刚刚开始的照片。 相关:如何改善(几乎)任何数码照片,没有自动增强 在继续之前,还应该对图像进行任何其他编辑。如果你有很多想法,可以看看我关于如何改进几乎所有数码照片的文章。我...

  • 发布于 2021-04-07 01:18
  • 阅读 ( 133 )
永恒的黄瓜
永恒的黄瓜

0 篇文章

相关推荐