JPEG 图片篡改检测

查看 67|回复 8
作者:voidshine   
我写一个简单的 JPEG 图片防篡改工具. 希望大家帮我看看有没有漏洞可以钻.
主要思路是对 JPEG 图片进行签名并将签名信息写入 EOI 文件尾, 若签名后的图片内容有任何的改动(不包括修改文件名), 则无法通过验证, 以此来检测该图片相较于签名前的图片是否有改动过.
项目已上传至GitHub
$ pixelguard sign -i official.jpg  -o output_official.jpg                # 将签名信息写入图片尾部
JPEG file signature successful!
$ pixelguard verify output_official.jpg                        # 图片未被修改
This JPEG file has not been tampered with.
$ exiftool -Artist="happy-shine" output_official.jpg        # 修改 EXIF 信息(或修改像素点之类的操作)
    1 image files updated
$ pixelguard verify output_official.jpg                # 再次验证, 检测到图片内容被修改
Warning: This JPEG file has been tampered with!
vus520   
截屏缩放裁剪呢?
voidshine
OP
  
@vus520 测试过缩放, 也能检测到图片被修改. 原理上只要动过 JPEG 文件的文件头至文件尾的任何内容, 都会与签名信息对不上.
hatw   
比较 MD5 啥的不也一样?
voidshine
OP
  
@hatw 这种方法是自举的, 不依赖外部存储, 能自己证明我是我; md5 比较也就意味着要 原始图片的 md5 与 要验证的图片 md5 进行对比.
hatw   
@voidshine #4 了解,谢谢
alexsz   
一时想不出有哪些应用场景
voidshine
OP
  
@alexsz 确保监控摄像头捕获的图像未被篡改......之类的?
NoOneNoBody   
EOI 就是 ffd9 之后吧,这些截了也不影响图片显示,不少图片存储的服务器是直接截了的,避免借传图片之名传不当信息
如果截了之后,如何自举?
您需要登录后才可以回帖 登录 | 立即注册

返回顶部