你还在家里傻乐,别人已经顺着网线找上了门…(组图)

下班之后,差评君习惯刷刷平时加的几个技术群,看看近期有什么瓜可以吃。

突然发现有一条提醒。。嗯,点开看看。



这段话大概意思就是,Facebook 会在用户下载照片时,嵌入一段非常隐蔽的追踪代码,即使用户下载图片通过其他平台传播,Facebook 依旧可以通过这段代码,追查到图片的第一个转发者。

美国的《 福布斯新闻网 》推测,这种的追踪代码如果使用的好的话,Facebook 可以根据一张照片流传的轨迹,刻画出用户的网络活动轨迹:常联系的朋友、常逛的论坛、活跃的时间段等等。

如果这是真的话,那可就恐怖了。。


因隐私问题出席听证会的扎克伯格

Facebook 最近的名声已经很不好了,小扎自己谈起隐私也只能尴尬一笑,这时候又爆出追踪图片的事情…… 差评君在看到这个消息之后,想到了两件事情:

1. 这件事情是真是假,需要验证一下;

2. 国内的几家主流平台会不会也有类似的追踪代码。



差评君首先来验证下, Facebook 会在你下载图片的时候植入追踪代码是否为真。。那么,差评君必须先往自己的账号上上传一张照片。。

就这个了,锅哥不羁的身影!



然后,差评君再把锅哥图片下载下来,在 Facebook 上这么转了一圈,按理说,这张图片上就有了 Facebook 植入的小尾巴了~

据推文的发布者所述,这段追踪代码可以在十六进制查看器下观察到。

能够查看图片的十六进制编码的工具有很多,差评君这次使用的是 VS Code 内的十六进制查看插件「 hexdump for VSCode 」。


VS Code 是程序猿们的代码编写工具



之后我们在 VS Code 内打开图片文件,会发现界面右上角新增加了一个「Show Hexdump」(显示十六进制编码),点击后就会将文件转换为十六进制进行显示。






眨眼间火锅就变成了一串数字

接下来多图预警!

接下来多图预警!

接下来多图预警!

我们先来看一下原始照片的十六进制信息↓↓


原始图片在十六进制下能看到拍摄设备信息

那么我们将照片上传到 Facebook 之后再下载回来,查看其中的区别。

此时这部分信息从一加手机变成了 Photoshop 3.0;不仅如此,后面还跟上了一串由英文字母和数字组成的序号,这串序号就是被推测用于追踪的识别码。

那么有没有可能 Facebook 在上传照片的时候真的使用了 Photoshop 的部分功能呢?比如压缩图片大小、剪裁画面、增加滤镜,听着都像是和 Photoshop 有关的操作。

如果是这样,那下载回来的图片中真的出现 Photoshop 相关的字样也不是没有可能的。

所以作为对比,我们使用 Photoshop 处理一下锅哥的靓照,再观察描述信息会发生什么变化。




真正使用 Photoshop 编辑的文件,的确会有 Photoshop 版本信息的字样,但不会在其后添加不明意义的序号。

差评君又查看了一下使用另一款图像处理工具「 泼辣修图 」编辑过的图片的十六进制信息,其后也没有出现不明意义的序号。

之后差评君又从 Facebook 上下载了几张图片,查看了一下十六进制编码信息。

火锅:听说你在网上看别的狗?

果然,这张图片对应的十六进制编码信息中也出现奇怪的序号。。







所以这件事情差不多实锤了,Facebook 的确在图片中嵌入了可能用于追踪的代码,而且还妄图把这口锅甩给了 Photoshop。

做了坏事,还想告诉大家这是隔壁小孩做的,啧啧啧。

初步实锤之后,还有一个问题需要验证:这段代码是上传照片时加入的,还是下载照片时加入的?

有人倾向认为 Facebook 添加这段代码的本意是确定文件的最初所有权,在出现文件归属/版权争议的时候可以作为辅助证据使用。






若真相如此,Facebook 只需要在图片上传时加入追踪代码就可以了。

然而差评君对这个说法是不认同的,针对版权归属而做的追踪,早就可以通过向图片添加隐水印的方式实现了。

举个栗子,在火锅这张图片上通过频谱转换添加上了 「 差评吉祥物 」的水印,加上隐水印的火锅图片人眼看上去和原图片区别并不大,但在频谱上确确实实有差评的签名。。







而若要追踪每个下载了这张照片的用户的网络轨迹,则需要在每次下载照片时加入不同的序号,用于区分要追踪的目标。

为了解决这个问题,差评君和同事分别用各自的账号下载了数次火锅的靓照,结果发现有些同事得到的追踪代码是一致的,有些则与其他同事的不一致。。。

然而就在差评君准备第二天召唤更多同事做一波测试,挖掘其中规律的时候……

发现在新下载的图片文件中,追踪代码不见了…… 被媒体爆料之后,Facebook 悄悄把追踪代码都撤掉了!

序号消失,只留下了孤单的「Photoshop 3.0.8BIM」…



好吧,虽然 Facebook 的反应十分迅速,不过想必差友们也和差评君一样,对一家美国「 不知名科技企业 」的日常是不怎么关心的。 差评君更好奇的是,我们常用的几家主流平台会不会给图片嵌入类似的追踪代码呢?

在测试了微信(聊天、朋友圈)、QQ(聊天、空间)、知乎、微博和钉钉之后,差评君发现……

什么都没有,描述信息干净的像小黑胖的钱包。。



其实这件事情也很好理解,国外的聊天工具和论坛大多默认采用发送原图的选项,因此 Facebook 加入的追踪代码多数情况下能够得以保留。

而国内的多数聊天工具默认都会压缩图片,有些论坛甚至没有发送原图的选项,经过压缩图片大小这类二次处理步骤后,原有的描述信息很容易就被抹掉了。。

因此,在国内的网络环境下,通过在描述信息中添加追踪代码就妄图追踪用户的网络活动轨迹,纯属费力不讨好。

其实早在 4 年前,就已经有技术人员发现 Facebook 的追踪代码了,并在程序员社区 Stack Overflow 引发了讨论,但未能引起更多关注。






Facebook 虽然移除了描述信息中的追踪代码,但会不会有「Plan B」呢?

毕竟 AI 早就可以快速识别图片并进行标记。

至于是否真的存在「Plan B」,也只有 Facebook 自己知道了。


参考资料

https://www.forbes.com/sites/zakdoffman/2019/07/14/facebook-is-embedding-hidden-codes-to-track-all-your-uploaded-photos-report/

https://stackoverflow.com/questions/31120222/iptc-metadata-automatically-added-to-uploaded-images-on-facebook

推荐阅读