微信发原图会不会泄露位置?我把一张照片从手机追到平台,信息一层层掉光了

关键词:EXIF信息,图片元数据,照片位置信息,原图泄露,图片取证

摘要:同一张 iPhone 原图,发到微信、微博、Telegram、邮件之后,EXIF 里到底还剩什么?这篇把 EXIF、GPS、IFD1 缩略图、C2PA 内容凭证拆开讲,附 ExifTool 具体命令和平台实测对比。

先说个让我后背发凉的事

图片

大概是 2019 年,我在闲鱼上挂了一支二手镜头,买家说要看成色,我拿手机随手拍了六张发过去。对方回了一句:你们小区绿化挺好。

我当时第一反应是这人是不是在我附近,第二反应才想起来去看照片属性。那张图里 GPSLatitude、GPSLongitude、GPSAltitude 三个标签全都在,经纬度精确到小数点后六位,高度还带海拔。我从没在相机 App 里主动开过什么定位,但系统默认就是写的。

从那以后我养成了一个习惯,凡是要发出去的照片,先跑一遍工具。这篇就把我这些年踩过的坑、查过的东西整理一下。

EXIF 到底是个什么东西,里面塞了哪些字段

EXIF 这套标准是 1995 年由 JEIDA(后来并入 JEITA)定下来的,存在 JPEG 文件的 APP1 段里。APP1 段的长度字段只有 2 个字节,所以单段最多 65533 字节,EXIF 装不下的东西只能另找地方,通常就是往 XMP 里丢。

真正值得看的是这几类标签:

  • Make / Model,厂牌和机型,苹果会写成 Apple iPhone 15 Pro 这种格式
  • Software,我认为这是最有意思的一个。见过一张号称现场直击的照片,Software 一栏写着 Adobe Photoshop 2024 (Windows)
  • DateTimeOriginal,拍摄时间,精确到秒
  • Orientation,取值 1 到 8,一共八个方向枚举,手机横竖拍全靠它纠正
  • GPSLatitude / GPSLongitude / GPSAltitude / GPSDateStamp,不用解释
  • FNumber、ExposureTime、ISO、LensModel,光圈快门感光度加镜头型号

图片

另外各家厂商还会往里塞私有的 MakerNotes 块,佳能、尼康、苹果都有。那里面才是真东西,机身序列号、镜头序列号、连拍序号都有可能在里面躺着。佳能部分机型会把镜头序列号写进 MakerNotes,这意味着你出二手的镜头在图片里其实带着身份证。

怎么自己动手查,具体命令和步骤

Mac 上最简单的是 Finder 选中图片按 Cmd + I,或者用预览的显示检查器。但苹果这个面板是筛选过的,只显示十来个字段,看不到全部。

Windows 上右键属性 → 详细信息,也能看一堆,同样是被资源管理器过滤之后的版本。我第一次看的时候以为照片里没信息,其实是被藏起来了。

想看全量,用 ExifTool。这个是 Phil Harvey 维护的开源工具,到现在还在更新,主页是 exiftool.org。Mac 上装:brew install exiftool。Windows 直接下那个 exe 包,扔到 PATH 里就行。

常用的几条:

图片

  • exiftool image.jpg —— 输出全部可读标签
  • exiftool -a -G1 image.jpg —— 显示所有标签并带分组名,同名标签也能一起出来
  • exiftool -GPS* image.jpg —— 只看 GPS 相关
  • exiftool -b -ThumbnailImage image.jpg > thumb.jpg —— 把内嵌缩略图抽出来
  • exiftool -all= -overwrite_original *.jpg —— 批量清空元数据

在线的也有,Jimpl、Metapicz 这些。但要是照片涉及人脸或者还没公开的内容,别上传,本地跑最稳。

一个冷门但好用的技巧:IFD1 里的那张小缩略图

JPEG 里经常还嵌着一张 160×120 左右的小图,存在 IFD1 这个结构里。某些修图软件保存的时候不会同步更新它,于是主图和缩略图就对不上了——主图里被裁掉的人、被抹掉的一行数字,缩略图里还在。

操作方法:先 exiftool -b -ThumbnailImage a.jpg > a_thumb.jpg 抽出来,然后放大,两张并排看。这个办法在一些新闻图片争议里被用过。

但我得说清楚它的边界:它能说明的是,这张图在某个环节被某个工具改过,不能说明改的是内容还是只调了颜色。而且 Lightroom 这类软件会顺手把缩略图一起更新,那就查不出来了。别拿它当铁证。

同一张图发给不同平台,信息掉得有多快

图片

这个我花了一个周末实测。同一张 iPhone 原图,分别发到几个平台再下载回来,用 exiftool 数标签:

  • 微信不开原图:只剩 Orientation 和极少数基础字段,Make、Model、GPS 全没了。开原图走的是文件传输链路,大部分标签还在,包括位置。
  • 微博:压缩加剥离,机身和 GPS 基本清空。
  • 小红书:会重新编码,质量因子降得比较狠,元数据同样清。
  • Telegram:发照片模式会压缩并剥离,用发送为文件则原封不动。
  • Gmail 附件:客户端本身不动它,但对方如果用预览模式看,前端渲染是另一回事。
  • Google Photos:默认保留 EXIF 包括位置,除非你在设置里关掉相关选项。

Twitter(现 X)在 2019 年就公开宣布过,上传图片会移除 GPS 信息。这个算是平台主动做的一件事。

结论有点反直觉:越是省事的发送方式,你的信息掉得越干净。这既是好事也是坏事,因为你自己写进去的版权信息、Creator、Copyright 会跟着一起消失,等你发现有人盗图的时候,手里那份原件的元数据已经被平台的转码链路洗过一遍了。

我的一个不太一样的看法:元数据是软的,像素才是硬的

现在网上那些拿 EXIF 打假的内容,我大部分不太信。因为元数据太容易改了,ExifTool 自己就能写:exiftool -Model=Canon EOS R5 a.jpg,一条命令下去机型就换了。时间、GPS、镜头型号,全都可以单独伪造,而且伪造完之后文件照样能正常打开。

真正有对比度的是像素层的东西。JPEG 的 DQT 段里存着量化表,不同编码器生成的量化表不一样;色度子采样是 4:2:0 还是 4:4:4,也会留下痕迹;有的软件用的是标准 libjpeg 表,有的用自己的。再往深了走是传感器噪声模式,学名叫 photo response non-uniformity,每一块 CMOS 的固定噪声图样基本是唯一的,法证领域真在用,但需要同一台机器的多张原图做参照,普通人做不了。

图片

所以我的建议是反过来的——与其研究怎么鉴定别人,不如先管住自己发出去的东西。

给照片断尾,具体几步

第一步,系统层关掉。iOS 走设置 → 隐私与安全性 → 定位服务 → 相机 → 选永不。安卓各家路径不一样,小米在相机设置里有个保存位置信息的开关,三星在相机设置的第一屏。

iOS 在分享面板顶部点选项,可以关掉位置和所有照片数据,这个挺方便,缺点是每次都要手动点。

第二步,批量清理。命令行 exiftool -all= -overwrite_original *.jpg 一把梭。Mac 上 ImageOptim 也能干这事,但要记得去偏好设置里勾上移除元数据的选项,它默认不一定全删。

第三步,也是我吃过亏的一步:别一刀切全删。我之前把一批客片清完元数据,后来想按镜头和光圈归类,全找不回来了。Copyright、Creator、Credit Line 这几个 IPTC 字段建议留着,只删 GPS、序列号、Software 这三类。

图片

C2PA 内容凭证这条路

C2PA 是 2021 年 2 月成立的,发起成员有 Adobe、Arm、BBC、Intel、微软、Truepic 这些。思路是给图片加一条可验证的签名链,记录谁拍的、用什么设备、改过几手。2023 年 10 月发布的徕卡 M11-P 是第一台内置这个功能的量产相机,后面尼康、索尼也在部分机型上跟进。

现实问题是,大部分平台在转存的时候会把 C2PA 的那段数据一起丢掉,所以现在的实际覆盖率很低,你大概率遇不到。但方向是对的,把来源信息从随手可改的 EXIF,挪到一个有密码学背书的地方。

顺便说说做内容的人该关心的那层图片信息

如果你是自己写东西发网站的,图片信息还有另一层含义,就是搜索引擎读得懂的那部分。文件名别再用 IMG_2847.jpg,用关键词加连字符;alt 文本写清楚画面里是什么,别堆关键词;长边控制在 1200 到 1600 像素之间,够用又不会拖慢加载。

格式上 WebP 在同等质量下普遍比 JPEG 小 25% 到 35%,AVIF 还能再往下压。但要注意,WebP 的容器虽然支持 EXIF 和 XMP 两个 chunk,很多转换工具默认根本不写进去。如果你指望靠元数据维权,转格式之前一定先备份原图。

扯远了。回到那个闲鱼买家,后来我们成交了,他还多给了我 200 块。我到现在也不知道他是干嘛的。但从那之后我手机相机的位置权限就没再开过——倒不是怕,是我发现照片里那些信息,代价挺大,好处我一个都用不上。

标签: