盲水印(Blind-WaterMark)

盲水印是一种肉眼不可见的水印方式,对图片资源使用图片盲水印或者文字水印,借此避免数字媒体未经授权的复制和拷贝,可通过对原图进行解码操作,得到水印图来证明版权归属。

这类盲水印是怎样实现的呢?原理并不复杂,通常是将图片进行离散余弦、小波或者傅里叶变换,得到图片的频谱信息,再将水印的编码信息叠加到图片的频谱上,然后再进行一次逆变换,生成的图片就带有几乎无法检测、但又可以确切还原出来的盲水印了。

盲水印的特性

  1. 隐蔽性由于不希望被察觉、不希望干扰用户体验、不希望被模仿等等原因,我们的水印不可见,也就是隐匿性。
  2. 强健性强健性通常也被称作鲁棒性,来自于其英文名称(Robustness)的音译。加了水印的图即使经过各种修改如压缩 、裁剪、涂画,旋转,也依然可以提取出水印。
  3. 不易移除性不易移除性跟鲁棒性有些相似, 不同的是:鲁棒性更加强调的是数字资源在传播过程中不要被不自觉地干扰和破坏。不易移除性是在别有用心者察觉了盲水印的存在后,不被他们自觉地移除或者破坏。

而这样的盲水印制作GitHub就有开源算法可以实现

 https://github.com/chishaxie/BlindWaterMark#blindwatermark
 

ctf解题

攻防世界 misc 4-1

附件链接:https://adworld.xctf.org.cn/media/file/task/94bcfe60a3d3409bb77823c70a4c0245.zip

下载得到zip解压得到PNG图片

 Kali下binwalk分析文件发现隐写zip foremost分离文件

 

解压分离后的zip得到一个压缩包和一个小提示

小提示

解压压缩包得到两张图片

 

考点是盲水印

Python实现盲水印提取

运行脚本前需要安装两个模块

先需要安装opencv

选择如下其中一条命令安装

pip install opencv-python
pip3 install opencv-python

安装matplotlib

python -m pip install matplotlib

使用如下其中一条命令提取盲水印(选择哪条取决于运行的是Python2脚本还是Python3)

python2 bwm.py decode day1.png day2.png flag.png
python bwmforpy3.py decode day1.png day2.png flag.png --oldseed

生成一个flag.png图片

得到flag

破坏测试

原图,水印图

                       

 加了盲水印的图及提取出来的水印图

                      

 光线攻击及提取出来的水印图

                    

多遮挡攻击及提取出来的水印图

                     

 涂画攻击及提取出来的水印图

                     

 

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
THE END
分享
二维码
< <上一篇

)">
下一篇>>