网络安全之照片信息EXIF

1,010 阅读3分钟

1. 什么是EXIF

EXIF(Exchangeable Image File Format)交换图像文件格式是一种可以嵌入到数字图像文件中的元数据标准,用于记录照片的拍摄参数和制作信息。这些参数包括拍摄日期、时间、曝光时间、光圈、ISO、焦点距离、摄影机品牌、型号、唯一序列号等信息。

EXIF的产生是数字相机普及后,为了记录数码照片的拍摄信息,规定了拍摄信息的数据规范。EXIF可以通过多种方式保存,最常见的方式是保存在JPEG、TIFF和RAW格式的照片文件中。需要注意的是EXIF信息是不支持png,webp等图片格式的。

EXIF信息对于数字图像处理和管理非常重要。它不仅可以帮助摄影师了解每张照片的拍摄条件和参数,还可以为数字图像管理软件提供有用的数据,例如按日期或摄影机型号分类、过滤和搜索照片等。

EXIF信息也可以用于数字取证和安全领域。例如,通过分析EXIF信息可以确定照片的真实性,防止伪造和篡改。

2. 如何获取图片信息

场景 我们经常在一些聊天软件传输一些照片,例如WX你默认传输的时候他是会被压缩体积很小,应为破坏了EXIF信息,当你设置了原图传输他将保留你照片的EXIF 信息别人只要查看就可以读取你照片的信息。

上传图片是勾选了原图,就可以得到图片的元信息

2.1 网站读取信息

查看信息的网站

1. 原图信息

image.png

2. 非原图信息

image.png

2.2 exif.js库进行读取

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
    <script src="https://cdn.bootcdn.net/ajax/libs/exif-js/2.3.0/exif.js"></script>
</head>
<body>
    <div>
            <img width="300" height="300" id="img1" src="./images/noOrigin.jpg" alt="" />
            <p>非原图</p>
    </div>
    <div>
            <img width="300" height="300" id="img2" src="./images/origin.jpg" alt="" />
            <p>原图</p>
    </div>

    <script>
            let img1 = document.getElementById('img1')
            let img2 = document.getElementById('img2')
            EXIF.getData(img1, function () {
                    let allInfo = EXIF.getAllTags(this)
                    console.log('打印***非原图', allInfo)
            })
            EXIF.getData(img2, function () {
                    // 获取拍摄方向信息
                    // let orientation = EXIF.getTag(this, 'Orientation')
                    // // 获取曝光时间信息
                    // let exposureTime = EXIF.getTag(this, 'ExposureTime')
                    // // 获取ISO信息
                    // let iso = EXIF.getTag(this, 'ISOSpeedRatings')
                    // // 获取焦距信息
                    // let focalLength = EXIF.getTag(this, 'FocalLength')
                    // 所有信息...
                    let allInfo = EXIF.getAllTags(this)
                    console.log('打印***原图', allInfo)
            })
    </script>
</body>
</html>

部分参数说明

GPS 相关名称说明

GPSVersionIDGPS 版本

GPSLatitudeRef南北纬

GPSLatitude纬度

GPSLongitudeRef东西经

GPSLongitude经度

GPSAltitudeRef海拔参照值

GPSAltitude海拔

GPSTimeStamp GPS 时间戳

GPSSatellites测量的卫星

GPSStatus接收器状态

GPSMeasureMode测量模式

GPSDOP测量精度

GPSSpeedRef速度单位

GPSSpeed GPS 接收器速度

GPSTrackRef移动方位参照

GPSTrack移动方位

GPSImgDirectionRef图像方位参照

GPSImgDirection图像方位

GPSMapDatum地理测量资料

GPSDestLatitudeRef目标纬度参照

GPSDestLatitude目标纬度GPSDestLongitudeRef目标经度参照

GPSDestLongitude目标经度

GPSDestBearingRef目标方位参照

GPSDestBearing目标方位

GPSDestDistanceRef目标距离参照

GPSDestDistance目标距离

GPSProcessingMethod

GPS 处理方法名

GPSAreaInformation GPS 区功能变数名

GPSDateStampGPS 日期

GPSDifferential GPS 修正

image.png

3. 网络安全

  1. EXIF信息也可以被用于数字犯罪调查。例如,如果一张照片被用来散布虚假信息或者违法内容,它的EXIF信息可以帮助调查人员追踪照片来源和制作者。

  2. 隐私问题:照片的EXIF信息中包含拍摄日期、时间、地点、相机型号等个人隐私信息,这些信息容易被黑客获取,导致隐私泄露。因此,在上传照片时,需要特别注意隐私问题,避免包含敏感信息。尤其是不要在照片上显示自己的地址等敏感信息。

  3. 恶意文件问题:除了EXIF信息外,照片文件中还可能嵌入恶意代码或病毒,这些恶意文件可能会给计算机带来安全隐患。因此,在下载和查看照片时,需要注意是否存在恶意文件。建议使用杀毒软件对下载的照片进行检查。