隐形水印实验室

网传 APP 截图都带「暗水印」可追踪身份——这是真的吗?亲手嵌入、提取、攻击,体验两种隐形水印技术的原理

什么是隐形水印?

肉眼看不见,但机器能读出来

隐形水印(Invisible Watermark)是一种将信息嵌入图像中、但人眼无法察觉的技术。企业用它在截图中嵌入用户 ID、时间戳等信息,一旦截图泄露,就能追溯到源头。

本页演示两种主流方案:
空间域水印——直接修改像素值的最低位(LSB),简单高效但不抗压缩
频域水印(DCT)——在频率空间嵌入信息,抗 JPEG 压缩、缩放等攻击

空间域水印:修改像素最低位

原理

每个像素的颜色值是 0~255(8 位二进制)。最低位(LSB)的变化只改变亮度 ±1,人眼完全无法分辨。
例如:像素值 10110100(180)→ 改最低位为 1 → 10110101(181)
亮度只变了 0.4%,但这一位就能存储一个 bit 的信息。

点击或拖拽上传图片(也可使用下方示例图)

1 (越高越容易被看出)

原始图像

嵌入水印后

差异放大 ×50(肉眼看不见的变化)

LSB 位平面可视化

被修改的像素 未修改的像素
-
嵌入容量 (bits)
-
PSNR (dB)
-
修改像素占比

弱点

LSB 水印非常脆弱:JPEG 压缩、截图、缩放、加滤镜都会破坏最低位数据。点击「攻击测试」亲自验证——压缩后水印就读不出来了。

频域水印:在频率空间藏信息

原理

图像可以用 DCT(离散余弦变换)分解为不同频率的分量。低频 = 大面积色块,高频 = 边缘细节。
水印嵌入在中频区域:比低频更隐蔽(不影响整体色调),比高频更鲁棒(不会被压缩丢弃)。
JPEG 压缩本身就是基于 DCT 的,所以频域水印天然抗 JPEG 压缩。

点击或拖拽上传图片(也可使用下方示例图)

30 (越高越抗攻击,但越容易看出)

原始图像

嵌入水印后

差异放大 ×30

DCT 频谱可视化

-
PSNR (dB)
-
SSIM
-
压缩后存活

优势

频域水印在 JPEG 压缩(质量 50%)后仍能提取。这就是为什么企业级暗水印方案几乎都基于频域变换——你截图、压缩、发朋友圈,水印依然在。

两种方案对比

特性 空间域(LSB) 频域(DCT)
嵌入原理修改像素最低位修改 DCT 中频系数
隐蔽性极高(1-bit 变化)高(取决于强度参数)
嵌入容量大(每像素 1+ bit)较小(受块数限制)
抗 JPEG 压缩极差强
抗缩放裁剪极差中等
实际应用隐写术、学术研究企业暗水印、版权保护

真实案例

企业暗水印追踪泄密

多家互联网公司在内部系统截图中嵌入隐形水印(包含员工工号、截图时间)。曾有员工将内部截图发到社交媒体,公司通过提取水印在数小时内定位到泄密者。

钉钉、飞书、企业微信等办公软件的文档预览页面,都被曝出使用了类似的暗水印技术。有些是肉眼可见的浅色底纹(明水印),有些则是完全不可见的频域水印。

注意

本页演示的是简化版原理。真实的企业级方案会结合多种技术(扩频、纠错码、模板同步等),鲁棒性远超本页演示。
结论:不要以为截图加个滤镜就能去掉暗水印。

链接已复制到剪贴板