博主在近期工作中遇到了一些关于图片溯源的课题,所以博主整理了下几种常见溯源方式来供大家讨论学习,博主计划分为几篇博文分开讲解,本期博主先介绍PNG图片的溯源。
首先我们需要先认识一下PNG格式的结构,我们可以在 https://www.w3.org/TR/png/ 找到有关PNG的文件结构。
其中“11.3.3Textual information”小节是这么描述png文本块的:“PNG provides the tEXt, iTXt, and zTXt chunks for storing text strings associated with the image, such as an image description or copyright notice. Keywords are used to indicate what each text string represents. Any number of such text chunks may appear, and more than one with the same keyword is permitted.”
翻译一下:
“PNG 提供 tEXt、 iTXt和 zTXt块来存储与图像关联的文本字符串,例如图像描述或版权声明。关键字用于指示每个文本字符串代表什么。可以出现任意数量的此类文本块,并且允许出现多个具有相同关键字的文本块。”
我们还可以看到他支持下述的关键字:
在这些关键字中,最重要的就是最后一个“XML:com.adobe.xmp”关键字。为什么说他重要呢?
因为在我们日常生活中遇到的大部分的PNG图片都是使用了“Adobe”全家桶(PS、AI、Reader、…)处理出来的,而Adobe全家桶在大部分的情况下都会在PNG中使用“XML:com.adobe.xmp”关键字在文本块的部分储存信息。
下面我们来找一个案例尝试一下。
首先我们找到一个使用Adobe编辑过的PNG图片,右击->选择“010 Editor”打开。
选择安装模板
我们可以在其中找到有关上面提到的文本块。
我们左键选中该区块下的“data”部分,便可以上面编辑区中定位到该部分。
我们可以看到最前面的17个字符为“XML:com.adobe.xmp”,说明这个png是Adobe软件处理的,后面的内容遵守的是“ISO 16684-1:2012”标准。
我们将后面的内容复制出来,并使用xml格式化工具进行格式化,得到如下内容:
其中有几个信息比较重要:
一是创建工具,我们可以看到是一台Windows系统安装的“Adobe Illustrator CC”制作的该图片;
二是创建时间,我们可以看到该图片是在“2018-04-22T02:20:34+05:00”创建,时区为“UTC+5”。
三是修改时间,我们还可以看到图片是“2020-03-26T00:25:07-04:00”修改过,时区为“UTC-4”。
(具体时区对应国家在之前提过,可以在“http://t.90.re”的“全球上班时间对照表”查看。)
四是历史记录,我们可以看到每一次图片的编辑时间、时区、软件等等,何时更换过时区,何时更换了编辑软件、何时做了什么操作之类的。
最后,希望各位能有所收获。
转载请注明:夜羽的博客 » 【原创】通过图片进行攻击溯源-PNG