信息隐写
信息隐写
概述
隐写术是一门关于信息隐藏的技巧与学科,通过信息隐写防止无关用户发现隐藏的信息或数据,保证私密信息可在开放环境中安全传输。
信息隐写与密码技术的区别
-
密码技术(看不懂):将明文加密成他人看不懂的密文
-
信息隐写(看不见):安全性来自对于第三方感知的麻痹
隐写载体
-
有冗余载体:图片、音频、视频
-
无冗余载体:文本、网络协议
隐写类型
图片隐写
PNG图片格式
| 数据块符号 | 数据块名称 | 字节 | 十六进制内容 | 描述 |
|---|---|---|---|---|
| PNG signature | PNG署名域 | 8 | 89 50 4E 47 0D 0A 1A 0A | PNG图片的开始 |
| IHDR | 文件头数据块 | - | - | 图片的宽、高、位深、压缩方法等信息 |
| IDAT | 图像数据块 | - | - | 数据实际的数据 |
| IEND | 图像结束数据 | 12 | 00 00 00 00 49 45 4E 44 AE 42 60 82 | 标记PNG文件结束 |
使用010editor/WinHex打开png图片显示如下:
图片EXIF信息隐写
-
EXIF
可交换图像文件歌时,记录图片的属性信息和拍摄数据(曝光时间、拍摄时间、位置信息、相机参数)
-
支持格式:JPEG/TOFF
-
工具
-
Unix系统:exiftool,点击此处查看使用教程
-
Windows系统:查看属性(Ctrl+Alt+Enter)
-
exiftool flagishere.jpeg "使用exiftool显示图片属性信息"
如上图,在EXIF的备注信息中可以直接看到flag
图片LSB低位隐写
-
原理
-
用秘密信息替换掉最低有效位的数据
-
图片是由RGB三种颜色组成,每种颜色占8位,,0X00~0XFF,一个像素点包含了\(256^3\)种颜色
-
人的肉眼只能分辨其中一小部分,修改RGB颜色分量中的最低的二进制位,肉眼无法区分
-
-
工具:Stegsolve
-
Data Extract:数据抽取,抽取图片中的隐藏数据
-
Frame Browser:帧浏览器,逐帧查看GIF图片
-
Image Combine:图片融合,进行\(OR,AND,XOR\)等运算
-
打开方式如下图(路径结合自己jdk的安装位置)
-
图片高度缩减隐写/图片结尾隐写
IHDR数据块
| 域名称 | 字节数 | 描述 |
|---|---|---|
| Data length | 4 | width到CRC校验码之前的长度 |
| Type | 4 | 说明数据块为IHDR型 |
| Width | 4 | 图像宽度 |
| Height | 4 | 图像高度 |
| Bit depth | 1 | 图像深度索引 彩色图像(1,2,4,8) 灰度图像(1,2,4,8,16) 真彩色图像(8,16) |
| - | 4 | ColorType、Compression method、Filter method、Interlace method |
| CRC校验码 | 4 | 对IHDR的17字节进行CRC32计算得到 |
-
工具
-
010editor/WinHex
-
crc校验:点击此处进入在线工具
-
文档隐写
压缩包结尾隐写
ZIP文件格式
| 名称 | 十六进制内容 | 说明 |
|---|---|---|
| 数据区 | 50 4B 03 04 | 头文件标记 |
| 目录区 | 50 4B 01 02 | 目录中头文件标记 |
| 目录结束 | 50 4B 05 06 | 目录结束标记 |
-
原理:在文件的结尾标识符之后附加隐藏信息,而不破坏源文件
-
工具:strings + [filename]
-
在对象文件或二进制文件中查找可打印的字符串
-
参数
-
-a -- all:扫描整个文件
-
-f --print-file-name:在显示字符串前先显示文件名
-
-t --radix={o,d,x}:输出字符的位置,基于八进制,十进制或十六进制
-
-e --encoding={s,S,b,l,B,L}:选择字符大小和排列顺序
-
-
零宽字符隐写
零宽字符
-
字节宽度为0的特殊字符
-
不可打印的Unicode字符,获取字符长度是会占用位置,存在但是不可见
点击此处进入在线工具
音频隐写
-
原理:人类听觉范围是\(20Hz~20000Hz\),只对\(2000Hz~4000Hz\)的信息最敏感
-
工具:
-
Audacity:分析音频的频谱和波形
-
MP3Stego:音频数据分析与隐写工具
-
摩斯电码
用长短2个不同的频率,通过不同的排列顺序表达不同的字母、数字和标点符号
附摩斯电码表
-
基本信号
-
嘀“·”:短促的电信号,持续\(=1t\)
-
嗒"-":保持一定时间的长信号,持续\(=3t\)
-
空格:无信号数据
-
嘀嗒间\(=1t\),字符间\(=3t\),单词间\(=7t\)
-
波形隐写
使用Audacity分析波形,波形高电位转换成1,地点为转换成0,二进制转换为\(ASCⅡ\)码,获取flag
频谱隐写
使用Audacity分析频谱图,获取flag
MP3编码隐写
将数据隐写在MP3文件的奇偶校验快中
-
工具:MP3Stego
-
数据隐写:
encode -E hidden_text.txt -P pass xxx.wav xxx.mp3 -
数据还原:
decode -X xxx.mp3 -P password
-