专栏首页后台日记EXIF--你可能想象不到的信息泄露
原创

EXIF--你可能想象不到的信息泄露

用户是幸福的,因为他们根本不知道他们的隐私信息在不经意之间泄露。

这些天在重温《不朽法医》,里面有一集是关于网络时代根据网上用户的碎片信息抓捕罪犯的。刚好也在看朋友圈的照片,有感而发,想到了手机照片的信息泄露。

手机拍摄的照片信息泄露主要来源于照片的EXIF(Exchangeable Image File format)信息。EXIF是专门为数码相机的照片设定的,可以记录数码照片的属性信息和拍摄数据。常见的数据项如下:

项目

信息(举例)

制造厂商

Canon

相机型号

Canon EOS-1Ds Mark III

图象方向

正常(upper-left)

图象分辨率X

300

图象分辨率Y

300

分辨率单位

dpi

软件

Adobe Photoshop CS Macintosh

最后异动时间

2005:10:06 12:53:19

YCbCrPositioning

2

曝光时间

0.00800 (1/125) sec

光圈值

F22

拍摄模式

光圈优先

ISO感光值

100

Exif信息版本

30,32,32,31

图象拍摄时间

2005:09:25 15:00:18

图象存入时间

2005:09:25 15:00:18

曝光补偿(EV+-)

0

测光模式

点测光(Spot)

闪光灯

关闭

镜头实体焦长

12 mm

Flashpix版本

30,31,30,30

图象色域空间

sRGB

图象尺寸X

5616 pixel

图象尺寸Y

3744 pixel

GPS经度

116/1, 19/1, 5169/100

GPS维度

39/1, 58/1, 3543/100

GPS海拔

33066/515

从上表可以看见,透露的信息已经足以大概定位一个人。

下面我们来尝试一下,人肉自己拍的一张照片。

步骤1: 掏出手机,随意拍摄一张照片

步骤2:将这张照片通过微信文件传送,以原图的方式传输到电脑上。

步骤3:写几行代码读取这张照片的exif信息,以下以PHP代码为例:

$image = "/Users/UserA/Pictures/WechatIMG30.jpeg";

$exifInfo = exif_read_data($image, 0, true);
//格式化数据信息,方便肉眼查看
foreach ($exifInfo as $key => $section) {
    foreach ($section as $name => $val) {
        if (is_array($val)){
            $val = implode(", ", $val);
        }
        echo "$key.$name: $val\n";
    }
}

步骤4:使用php exifInfo.php 查看,信息如下:

FILE.FileName: WechatIMG30.jpeg
FILE.FileDateTime: 1537426941
FILE.FileSize: 1639310
FILE.FileType: 2
FILE.MimeType: image/jpeg
FILE.SectionsFound: ANY_TAG, IFD0, THUMBNAIL, EXIF, GPS
COMPUTED.html: width="4032" height="3024"
COMPUTED.Height: 3024
COMPUTED.Width: 4032
COMPUTED.IsColor: 1
COMPUTED.ByteOrderMotorola: 1
COMPUTED.ApertureFNumber: f/2.2
COMPUTED.Thumbnail.FileType: 2
COMPUTED.Thumbnail.MimeType: image/jpeg
IFD0.Make: Apple
IFD0.Model: iPhone SE
IFD0.Orientation: 6
IFD0.XResolution: 72/1
IFD0.YResolution: 72/1
IFD0.ResolutionUnit: 2
IFD0.Software: 11.3
IFD0.DateTime: 2018:09:20 15:02:00
IFD0.YCbCrPositioning: 1
IFD0.Exif_IFD_Pointer: 204
IFD0.GPS_IFD_Pointer: 1646
THUMBNAIL.Compression: 6
THUMBNAIL.XResolution: 72/1
THUMBNAIL.YResolution: 72/1
THUMBNAIL.ResolutionUnit: 2
THUMBNAIL.JPEGInterchangeFormat: 2050
THUMBNAIL.JPEGInterchangeFormatLength: 6871
EXIF.ExposureTime: 1/33
EXIF.FNumber: 11/5
EXIF.ExposureProgram: 2
EXIF.ISOSpeedRatings: 125
EXIF.ExifVersion: 0221
EXIF.DateTimeOriginal: 2018:09:20 15:02:00
EXIF.DateTimeDigitized: 2018:09:20 15:02:00
EXIF.ComponentsConfiguration:
EXIF.ShutterSpeedValue: 2297/454
EXIF.ApertureValue: 7983/3509
EXIF.BrightnessValue: 4489/1661
EXIF.ExposureBiasValue: 0/1
EXIF.MeteringMode: 5
EXIF.Flash: 16
EXIF.FocalLength: 83/20
EXIF.SubjectLocation: 2015, 1511, 2217, 1330
EXIF.MakerNote: Apple iOS
EXIF.SubSecTimeOriginal: 777
EXIF.SubSecTimeDigitized: 777
EXIF.FlashPixVersion: 0100
EXIF.ColorSpace: 1
EXIF.ExifImageWidth: 4032
EXIF.ExifImageLength: 3024
EXIF.SensingMethod: 2
EXIF.SceneType:
EXIF.ExposureMode: 0
EXIF.WhiteBalance: 0
EXIF.FocalLengthIn35mmFilm: 29
EXIF.SceneCaptureType: 0
EXIF.UndefinedTag:0xA432: 83/20, 83/20, 11/5, 11/5
EXIF.UndefinedTag:0xA433: Apple
EXIF.UndefinedTag:0xA434: iPhone SE back camera 4.15mm f/2.2
GPS.GPSLatitudeRef: N
GPS.GPSLatitude: 39/1, 58/1, 3543/100
GPS.GPSLongitudeRef: E
GPS.GPSLongitude: 116/1, 19/1, 5169/100
GPS.GPSAltitudeRef:
GPS.GPSAltitude: 33066/515
GPS.GPSTimeStamp: 7/1, 1/1, 5915/100
GPS.GPSSpeedRef: K
GPS.GPSSpeed: 0/1
GPS.GPSImgDirectionRef: T
GPS.GPSImgDirection: 52248/523
GPS.GPSDestBearingRef: T
GPS.GPSDestBearing: 52248/523
GPS.GPSDateStamp: 2018:09:20
GPS.UndefinedTag:0x001F: 65/1

首先,我们作为一个非摄影专业人员来看下都有哪些信息是我们可以提取,并且可能会泄露隐私的。

如果想深入了解EXIF并知道EXIF相关的协议,可以查看参考2里的链接地址。

IFD0.Make: Apple

IFD0.Model: iPhone SE

IFD0.Software: 11.3

IFD0.DateTime: 2018:09:20 15:02:00

苹果手机,型号iPhone SE, IOS版本11.3, 拍摄时间为2018:09:20 15:02:00。手机型号软件版本信息被泄露了。

IFD0.Orientation: 6

这个照片的方向,6:The 0th row is the visual right-hand side of the image, and the 0th column is the visual top. 意味你需要将脖子逆时针旋转90°看照片。

EXIF.UndefinedTag:0xA434: iPhone SE back camera 4.15mm f/2.2

使用的是后置摄像头

GPS.GPSLatitudeRef: N

GPS.GPSLatitude: 39/1, 58/1, 3543/100

GPS.GPSLongitudeRef: E

GPS.GPSLongitude: 116/1, 19/1, 5169/100

这是我认为最可怕的东西,经纬度信息,对应着东经116.331,北纬39.9765。让我们来看看这个坐标偏差有多大,在google map里用得到的经纬度查询,定位如图:

经纬度定位图

和我真实的地址,偏差在400米以内,好可怕。如果泄露了地理位置信息,那么被人肉的范围就缩到很小。下面还有:

GPS.GPSAltitude: 33066/515

海拔62米左右。这已经大概算出我在几层楼高的地方。如果出现海拔略高,并且刚好周边有个非常高的建筑,那基本上可以判断在哪栋楼的第几层了。

GPS.GPSSpeedRef: K

GPS.GPSSpeed: 0/1

GPS.GPSImgDirectionRef: T

GPS.GPSImgDirection: 52248/523

可以看到我拍照时,速度是0km/h,方向是100°左右。如果我在开车,那就可以知道我拍照瞬间的车速多少,往哪个方向开。

一张很随意的照片,如果以原图的方式发布到网上,在不查看照片视觉内容的时候,就已经可以泄露手机型号,操作系统版本,精度在400米以内的地理位置,海拔,速度和方向。而这些信息都是线下可以和真实人物结合的敏感信息。

最关键的是,这些信息都是在用户不经意的时候泄露了,大部分网民应该都发过自己手机里拍摄的照片。而有多少用户有考虑过照片里的信息泄露呢?甚至说,有多少用户知道照片EXIF信息可以携带这么多照片内容除外的信息?

幸运的是,不少软件在传输照片时,出于带宽成本考虑,会在本地将图片压缩,抹除大部分EXIF信息。这压缩的过程,降低了信息泄露的风险。

总结:用户隐私保护,任重而道远。

参考:

  1. https://en.wikipedia.org/wiki/Exif
  2. Exchangeable image file format for digital still cameras: Exif Version 2.3 http://www.cipa.jp/std/documents/e/DC-008-2012_E.pdf

相关的佚闻趣事:

In December 2012, anti-virus programmer John McAfee was arrested in Guatemala while fleeing from alleged persecution in Belize, which shares a border. Vice magazine had published an exclusive interview on their website with McAfee "on the run" that included a photo of McAfee with a Vice reporter taken with a phone that had geotagged the image.The photo's metadata included GPS coordinates locating McAfee in Guatemala, and he was captured two days later.

详情:https://www.cbsnews.com/news/john-mcafee-arrested-in-guatemala-for-illegal-entry/

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Mysql INSERT ON DUPLICATE KEY UPDATE

    INSERT ... ON DUPLICATE KEY UPDATE是MySQL insert的一种扩展。当发现有重复的唯一索引(unique key)或者主键...

    霸王猪
  • golang日志组件使用runtime.Caller性能问题分析

    runtime.Caller能够拿到当前执行的文件名和行号,这个方法几乎所有的日志组件里都有使用。

    霸王猪
  • Python|python文件打包实战之进阶篇

    在上周的文章中,小编给大家讲了python gui编程,做了一个有趣的“消息轰炸机”,如果想发给朋友用怎么办呢?所以今天,小编就通过实战来让大家学会用pyins...

    算法与编程之美
  • ubuntu18.04 安装python

    在Ubuntu中安装snmp的支持,有两种方法,第一种是直接通过apt-get进行安装。第二种是从netsnmp官网下载源码net-snmp-5.7.3.tar...

    py3study
  • 成为好程序员必须避免的5个坏习惯

    当你开始成为一个程序员的时候,在编程的时候很容易陷入下面所述的一些坏习惯。 作为一名程序员,犯错误不可避免,这是你学习编程课程中的一部分。在你的职业生涯中你会犯...

    企鹅号小编
  • apache http跳转https

    用户2657851
  • 了解adb的基本原理

    ADB就是Android调试桥的意思,很形象。但不知道是windows本身的原因还是windows乱七八糟软件太多,用USB调试手机时,经常连不上ADB,或者就...

    233333
  • 学界 | 南京理工大学ICCV 2017论文:图像超分辨率模型MemNet

    选自arXiv 机器之心编译 参与:路雪 利用卷积神经网络让图片清晰化的研究目前正成为计算机视觉领域的热点方向。近日,南京理工大学邰颖、杨健、许春燕与密歇根州立...

    机器之心
  • 【每周一坑】注册表单验证

    长假过后,大家都缓过神来了吗?在这里祝大家上班快乐~ 今天来个应用题。在使用各种网站和应用时,少不了要注册账号,这种注册表单大家应该屡见不鲜了吧。 ? 一般这些...

    Crossin先生
  • 起点到终点?web地图?我来告诉你!

    小伙伴们,做外卖项目的小伙伴,有没有遇到过,web端显示配送路线的小问题呢?今天思梦PHP就给大家带来高德地图,从添加起点到录入终点,做了一个指示路线的小功能!...

    思梦php

扫码关注云+社区

领取腾讯云代金券