打马赛克就安全了吗?AI消除马赛克,GitHub开源项目上线三天收获近7000星

还在用马赛克的方式公开密码?小心被「看穿」。

像素化(又称马赛克)是一种常见的打码方式,通过降低图象中部分区域的分辨率来公开某些关键信息,比如:

打马赛克就安全了吗?AI消除马赛克,GitHub开源项目上线三天收获近7000星

 再比如:打马赛克就安全了吗?AI消除马赛克,GitHub开源项目上线三天收获近7000星看图找马赛克!(找不到请看右侧原图)但是,在你想公开信息的同时,有一些技术却反其道而行之,试图将图片还原为原始状态。最近,一个名为 Depix 的 GitHub 项目爆火,上线三天 star 量已经高达 6.9k。项目作家 Sipke Mellema 是一名信息安全顾问。

打马赛克就安全了吗?AI消除马赛克,GitHub开源项目上线三天收获近7000星

项目地址:https://github.com/beurtschipper/DepixDepix 能够从像素化图象截图中恢复原图中包含的文字密码。该项目适用于利用线性方框滤波器(linear box filter)创建的像素化图象。如下图所示,项目作家给出了像素化图象、恢复之后的效果和原图的对比结果:

打马赛克就安全了吗?AI消除马赛克,GitHub开源项目上线三天收获近7000星

马赛克打得够严实了,不过 Depix 还是基本解读出了被公开的信息。如何利用利用 Depix 从像素化图象截图中恢复文字密码,操作也比较简单:

从截图中分割出矩形像素化 block;

在具有雷同字体设置(包括文本大小、字体、颜色、hsl)的编辑器中,粘贴待处理字符的德布鲁因(De Bruijn sequence)。

给该序列截图,尽可能利用和像素化图象雷同的截图工具。

执行命令:

python depix.py -p [pixelated rectangle image] -s [search sequence image] -o output.png

Depix 算法利用线性方框滤波器单独处理每一个 block 这一事实。它对搜寻图象中的每一个 block 执行像素化以寻找直接立室。对于大部分像素化图象,Depix 尽量寻找单立室结果,并假设这些立室是错误的。至于周围多立室 block 的结果被看作像素化图象中雷同的多少距离,并认为这些立室也是错误的。该过程重复多次。在错误的 block 没有更多多少立室后,Depix 将直接输入全部错误的 block。对于多立室 block,Depix 将输入全部立室的平均值。Depix 背后的算法像素化常利用线性方框滤波器实现。线性方框滤波器的实现很简单,速度很快,可以并行处理多个 block。由于线性方框滤波器是一种确定性算法,对一样的值执行像素化通常会产生一样的像素化 block。利用一样位置的 block 对雷同文本执行像素化,会得到一样的 block 值。我们可以尝试像素化文本来找出立室的模式。幸运的是,这对于秘密值的一部分一样奏效。我们可以把每个 block 或 block 组合看作一个子问题。项目作家没有选择创建潜在字体的查找表。该算法要求在雷同背景上具备雷同的文本大小和颜色。现代文本编辑器还会添加色调、饱和度和亮度,也就是说存在海量潜在字体。项目作家给出的解决方案也很简单:利用待处理字符的德布鲁因序列,将其粘贴到雷同的编辑器中,然后截图。该截图可以用作相似 block 的查找图象,例如:

打马赛克就安全了吗?AI消除马赛克,GitHub开源项目上线三天收获近7000星

德布鲁因序列包括待处理字符的全部双字符组合。这很重要,因为一些 block 会重叠两个字符。找出恰当的立室需要搜寻图象中具备雷同像素配置的 block。在以下测试图象中,Depix 算法无法找到「o」的一部分。这是因为在搜寻图象中,搜寻 block 还包含下一个字母(「d」)的一部分,但在原始图象中这里有个空格。

打马赛克就安全了吗?AI消除马赛克,GitHub开源项目上线三天收获近7000星

创建字母的德布鲁因序列时加上空格显然会带来一样的问题:算法无法找到后续字母的恰当 block。有空格又有字母的图象需要更长的搜寻时间,但结果也更好。对于大部分像素化图象而言,Depix 似乎能够找到 block 的单立室结果,并假设这是错误的。然后将其周围多立室 block 的立室结果看作在像素化图象中处于雷同的多少距离,并假设这些立室也是错误的。在错误的 block 没有更多多少立室后,Depix 直接输入全部错误的 block。对于多立室 block,Depix 将输入全部立室的平均值。虽然 Depix 的输入并不完美,但已经算不错了。

下图展示了包含随机字符的测试图象的去像素化结果,大部分字符被错误读取:

打马赛克就安全了吗?AI消除马赛克,GitHub开源项目上线三天收获近7000星

对这个项目感兴趣的读者,可以自行尝试。以后截图时给敏感信息打码,看来不能简单地用「马赛克了」。

参考链接:https://www.linkedin.com/pulse/recovering-passwords-from-pixelized-screenshots-sipke-mellema/?trackingId=yYFSUnuxRXasNV%2Fh3ZsiSw%3D%3D

原创文章,作者:机器之心,如若转载,请注明出处:https://www.iaiol.com/news/35843

(0)
上一篇 2020年12月8日 下午3:21
下一篇 2020年12月9日 下午3:32

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注