阿里根據截圖查到泄露者,用的什麼黑科技?(數字盲水印)

https://stgod.com/1482web

本文分爲五個部分,第一部分綜述;第二部分頻域數字盲水印製做原理介紹;第三部分盲水印攻擊性實驗;第四部分總結;第五部分附錄(源代碼)。算法

1、綜述

本文提供的一種實現「阿里經過肉眼沒法識別的標識碼追蹤員工」的技術手段。經過看其餘答主的分析,阿里可能還沒用到頻域加水印的技術。安全

在原答案中,存在措辭欠妥之處,對此表示由衷的歉意。服務器

相對於空域方法,頻域加盲水印的方法隱匿性更強,抵抗攻擊能力更強。這類算法解水印困難,你不知道水印加在那個頻段,並且受到攻擊每每會破壞圖像本來內容。本文簡要科普經過頻域手段添加數字盲水印。對於web,能夠添加一個背景圖片,來追蹤截圖者。網絡

所謂盲水印,是指人感知不到的水印,包括看不到或聽不見(沒錯,數字盲水印也可以用於音頻)。其主要應用於音像做品、數字圖書等,目的是,在不破壞原始做品的狀況下,實現版權的防禦與追蹤。dom

添加數字盲水印的方法簡單可分爲空域方法和頻域方法,這兩種方法添加了冗餘信息,但在編碼和壓縮狀況不變的狀況下,不會使原始圖像大小產生變化(原來是10MB添加盲水印以後仍是10MB)。測試

空域是指空間域,咱們平常所見的圖像就是空域。空域添加數字水印的方法是在空間域直接對圖像操做(之因此說的這麼繞,是由於不只僅原圖是空域,原圖的差分等等也是空域),好比將水印直接疊加在圖像上。網站

咱們常說一個音有多高,這個音高是指頻率;一樣,圖像灰度變化強烈的狀況,也能夠視爲圖像的頻率。頻域添加數字水印的方法,是指經過某種變換手段(傅里葉變換,離散餘弦變換,小波變換等)將圖像變換到頻域(小波域),在頻域對圖像添加水印,再經過逆變換,將圖像轉換爲空間域。相對於空域手段,頻域手段隱匿性更強,抗攻擊性更高。ui

所謂對水印的攻擊,是指破壞水印,包括塗抹,剪切,放縮,旋轉,壓縮,加噪,濾波等。數字盲水印不只僅要敏捷性高(不被人抓到),也要防護性強(抗打)。就像Dota的敏捷英雄每每是脆皮,數字盲水印的隱匿性和魯棒性是互斥的。(魯棒性是抗攻擊性的學術名字)編碼

2、頻域製做數字盲水印的方法

信號是有頻率的,一個信號能夠看作是無數個不一樣階的正弦信號的的疊加。

阿里根據截圖查到泄露者,用的什麼黑科技?(數字盲水印)

上式爲傅里葉變換公式,ƒ(t) 是指時域信號(對於信號咱們說時域,由於是與時間有關的,而圖像咱們每每說空域,與空間有關),ω 是指頻率。想要對傅里葉變換有深刻了解的同窗,建議看一下《信號與系統》或者《數字信號處理》的教材,裏面系統介紹了傅里葉變換、快速傅里葉變換、拉普拉斯變換、z變換等。

簡而言之,咱們有方法將時域信號轉換成爲頻域,一樣,咱們也能將二維信號(圖像)轉換爲頻域。在上文中提到,圖像的頻率是指圖像灰度變換的強烈狀況。關於此方面更系統的知識,參見岡薩雷斯的《圖像處理》。

下面以傅里葉變換爲例,介紹經過頻域給圖像添加數字盲水印的方法。注意,由於圖像是離散信號,咱們實際用的是離散傅里葉變換,在本文采用的都是二維快速傅里葉變換,快速傅里葉變換與離散時間傅里葉變換等價,經過蝶型歸併的手段,速度更快。下文中傅里葉變換均爲二維快速傅里葉變換。

阿里根據截圖查到泄露者,用的什麼黑科技?(數字盲水印)

上圖爲疊加數字盲水印的基本流程。編碼的目的有二,一是對水印加密,二控制水印能量的分佈。如下是疊加數字盲水印的實驗。這是原圖像,尺寸300*240 (不要問我爲何不用Lena,那是我前女朋友),

阿里根據截圖查到泄露者,用的什麼黑科技?(數字盲水印)

以後進行傅里葉變換,下圖變換後的頻域圖像,

阿里根據截圖查到泄露者,用的什麼黑科技?(數字盲水印)

這是我想加的水印,尺寸200*100,

阿里根據截圖查到泄露者,用的什麼黑科技?(數字盲水印)

這是我編碼後的水印,編碼方式採用隨機序列編碼,經過編碼,水印分佈到隨機分佈到各個頻率,而且對水印進行了加密,

阿里根據截圖查到泄露者,用的什麼黑科技?(數字盲水印)

將上圖與原圖的頻譜疊加,可見圖像的頻譜已經發生了巨大的變化,

阿里根據截圖查到泄露者,用的什麼黑科技?(數字盲水印)

以後,將疊加水印的頻譜進行傅里葉逆變換,獲得疊加數字水印後的圖像,

阿里根據截圖查到泄露者,用的什麼黑科技?(數字盲水印)

肉眼幾乎看不出疊加水印後的圖像與原圖的差別,這樣,數字盲水印已經疊加到圖像中去。實際上,咱們是把水印以噪聲的形式添加到原圖像中。下圖是在空域上的加水印圖與原圖的殘差(調整了對比度,否則殘差調小看不見),

阿里根據截圖查到泄露者,用的什麼黑科技?(數字盲水印)

能夠看出,實際上上述方法是經過頻域添加冗餘信息(像噪聲同樣)。這些噪聲遍及全圖,在空域上並不容易破壞。

最終,均方偏差(MSE)爲0.0244

信噪比(PSNR)爲64.2dB那麼,爲何頻譜發生了巨大的變化,而在空域卻變化如此小呢?這是由於咱們避開了圖像的主要頻率。下圖是原圖頻譜豎過來的樣子,其能量主要集中在低頻。

阿里根據截圖查到泄露者,用的什麼黑科技?(數字盲水印)

水印提取是水印疊加的逆過程,

阿里根據截圖查到泄露者,用的什麼黑科技?(數字盲水印)

經提取後,咱們獲得以下水印,問:爲何水印要對稱呢?嘿嘿,你們想一想看。

阿里根據截圖查到泄露者,用的什麼黑科技?(數字盲水印)

3、攻擊性實驗

本部分進行攻擊性實驗,來驗證經過頻域手段疊加數字盲水印的魯棒性。

1.進行塗抹攻擊,這是攻擊後的圖片:
阿里根據截圖查到泄露者,用的什麼黑科技?(數字盲水印)

再進行水印提取:

阿里根據截圖查到泄露者,用的什麼黑科技?(數字盲水印)

2.進行剪切攻擊,就是網上常常用的截圖截取一部分的狀況:

阿里根據截圖查到泄露者,用的什麼黑科技?(數字盲水印)

進行循環補全:

阿里根據截圖查到泄露者,用的什麼黑科技?(數字盲水印)

提取水印:

阿里根據截圖查到泄露者,用的什麼黑科技?(數字盲水印)

3.伸縮攻擊(這個實驗明碼作的,水印能量較高,隱匿性不強):

阿里根據截圖查到泄露者,用的什麼黑科技?(數字盲水印)

提取水印(水印加的很差,混頻挺嚴重的):

阿里根據截圖查到泄露者,用的什麼黑科技?(數字盲水印)

4.旋轉攻擊(明碼):

阿里根據截圖查到泄露者,用的什麼黑科技?(數字盲水印)

提取水印:

阿里根據截圖查到泄露者,用的什麼黑科技?(數字盲水印)

5.JPEG壓縮後(這個實驗我好像是拿明碼作的,能量主要加在了高頻):

阿里根據截圖查到泄露者,用的什麼黑科技?(數字盲水印)

提取結果:

阿里根據截圖查到泄露者,用的什麼黑科技?(數字盲水印)

6.PS 4像素馬賽克/均值濾波等,攻擊後圖像(這是我女友嗎?醜死了):

阿里根據截圖查到泄露者,用的什麼黑科技?(數字盲水印)

提取水印後圖像:

阿里根據截圖查到泄露者,用的什麼黑科技?(數字盲水印)

7.截屏,

截屏後我手動摳出要測試的圖像區域,而且抽樣或者插值到原圖尺寸:

阿里根據截圖查到泄露者,用的什麼黑科技?(數字盲水印)

測試結果:

阿里根據截圖查到泄露者,用的什麼黑科技?(數字盲水印)

8. 亮度調節(明碼):

阿里根據截圖查到泄露者,用的什麼黑科技?(數字盲水印)

水印提取:

阿里根據截圖查到泄露者,用的什麼黑科技?(數字盲水印)

9.色相調節(明碼):

阿里根據截圖查到泄露者,用的什麼黑科技?(數字盲水印)

水印提取:

阿里根據截圖查到泄露者,用的什麼黑科技?(數字盲水印)

10.飽和度調節(明碼):

阿里根據截圖查到泄露者,用的什麼黑科技?(數字盲水印)

水印:
阿里根據截圖查到泄露者,用的什麼黑科技?(數字盲水印)

11.對比度(明碼):

阿里根據截圖查到泄露者,用的什麼黑科技?(數字盲水印)

水印:

阿里根據截圖查到泄露者,用的什麼黑科技?(數字盲水印)

12.評論區用waifu2x去噪後圖片:

阿里根據截圖查到泄露者,用的什麼黑科技?(數字盲水印)

解水印:

阿里根據截圖查到泄露者,用的什麼黑科技?(數字盲水印)

13.美圖秀秀,我對我女票一鍵美顏,美白,磨皮,加腮紅,加脣彩(有一種很羞恥的感受,捂臉):

阿里根據截圖查到泄露者,用的什麼黑科技?(數字盲水印)

提取水印:

阿里根據截圖查到泄露者,用的什麼黑科技?(數字盲水印)

14.對於背景純色的圖其實也是無所謂的

阿里根據截圖查到泄露者,用的什麼黑科技?(數字盲水印)

能量係數爲10時加水印圖片:以爲太顯噪就把能量係數調低,不過水印的隱祕性和魯棒性是互斥的

阿里根據截圖查到泄露者,用的什麼黑科技?(數字盲水印)

最終提取出的水印:

阿里根據截圖查到泄露者,用的什麼黑科技?(數字盲水印)

15.我用將RGB>600的像素設置成爲(0,255,0)來模擬PS魔術手,

阿里根據截圖查到泄露者,用的什麼黑科技?(數字盲水印)

提取水印爲:

阿里根據截圖查到泄露者,用的什麼黑科技?(數字盲水印)

16.屏攝,好吧,這個實驗我作哭了

屏攝圖:

阿里根據截圖查到泄露者,用的什麼黑科技?(數字盲水印)

實驗結果:

阿里根據截圖查到泄露者,用的什麼黑科技?(數字盲水印)

我把水印能量係數調整到2000都沒有用。

屏攝以後與原圖信噪比爲4dB左右,我用多抽樣濾波的方式試過,濾不掉屏攝引入的噪聲。屏攝不只引入了椒鹽噪聲,乘性噪聲,還有有規律的雪花紋理(摩爾紋)。

4、總結

基於頻域的盲水印方法隱藏性強,魯棒性高,可以抵禦大部分攻擊。可是,對於盲水印算法,健壯性和隱匿性是互斥的。

本文方法針對屏攝不行,我屢次實驗沒有成功,哪位大神能夠作一下或者討論討論。還有二值化不行,這是我想固然的,以爲確定不行因此沒作實驗。其餘的我試了試,用給出的方法調整一下能量係數均可以。我想你們最關心的是什麼最安全,不會被追蹤。

不涉及圖像的都安全,好比拿筆記下來。涉及圖像的屏攝最安全,截屏十分不安全。

=====彩蛋(加密過的測試圖)====
阿里根據截圖查到泄露者,用的什麼黑科技?(數字盲水印)

我在上圖明碼寫入了信息。爲了抵抗jpg壓縮,我水印能量較高,而且由於沒有編碼,能量分佈不均。圖中規律性紋路,就是你懂的。嘿嘿,你懂的,解開看看吧。

5、附錄/源碼分享

  1. %% 傅里葉變換加水印源代碼
  2. %% 運行環境 Matlab2010a
  3. clc;clear;close all;
  4. alpha = 1;
  5. %% read data
  6. im = double(imread('gl1.jpg'))/255;
  7. mark = double(imread('watermark.jpg'))/255;
  8. figure, imshow(im),title('original image');
  9. figure, imshow(mark),title('watermark');
  10. %% encode mark
  11. imsize = size(im);
  12. %random
  13. TH=zeros(imsize(1)*0.5,imsize(2),imsize(3));
  14. TH1 = TH;
  15. TH1(1:size(mark,1),1:size(mark,2),:) = mark;
  16. M=randperm(0.5*imsize(1));
  17. N=randperm(imsize(2));
  18. save('encode.mat','M','N');
  19. for i=1:imsize(1)*0.5
  20. for j=1:imsize(2)
  21. TH(i,j,:)=TH1(M(i),N(j),:);
  22. end
  23. end
  24. % symmetric
  25. mark_ = zeros(imsize(1),imsize(2),imsize(3));
  26. mark_(1:imsize(1)*0.5,1:imsize(2),:)=TH;
  27. for i=1:imsize(1)*0.5
  28. for j=1:imsize(2)
  29. mark_(imsize(1)+1-i,imsize(2)+1-j,:)=TH(i,j,:);
  30. end
  31. end
  32. figure,imshow(mark_),title('encoded watermark');
  33. %imwrite(mark_,'encoded watermark.jpg');
  34. %% add watermark
  35. FA=fft2(im);
  36. figure,imshow(FA);title('spectrum of original image');
  37. FB=FA+alpha*double(mark_);
  38. figure,imshow(FB); title('spectrum of watermarked image');
  39. FAO=ifft2(FB);
  40. figure,imshow(FAO); title('watermarked image');
  41. %imwrite(uint8(FAO),'watermarked image.jpg');
  42. RI = FAO-double(im);
  43. figure,imshow(uint8(RI)); title('residual');
  44. %imwrite(uint8(RI),'residual.jpg');
  45. xl = 1:imsize(2);
  46. yl = 1:imsize(1);
  47. [xx,yy] = meshgrid(xl,yl);
  48. figure, plot3(xx,yy,FA(:,:,1).^2+FA(:,:,2).^2+FA(:,:,3).^2),title('spectrum of original image');
  49. figure, plot3(xx,yy,FB(:,:,1).^2+FB(:,:,2).^2+FB(:,:,3).^2),title('spectrum of watermarked image');
  50. figure, plot3(xx,yy,FB(:,:,1).^2+FB(:,:,2).^2+FB(:,:,3).^2-FA(:,:,1).^2+FA(:,:,2).^2+FA(:,:,3).^2),title('spectrum of watermark');
  51. %% extract watermark
  52. FA2=fft2(FAO);
  53. G=(FA2-FA)/alpha;
  54. GG=G;
  55. for i=1:imsize(1)*0.5
  56. for j=1:imsize(2)
  57. GG(M(i),N(j),:)=G(i,j,:);
  58. end
  59. end
  60. for i=1:imsize(1)*0.5
  61. for j=1:imsize(2)
  62. GG(imsize(1)+1-i,imsize(2)+1-j,:)=GG(i,j,:);
  63. end
  64. end
  65. figure,imshow(GG);title('extracted watermark');
  66. %imwrite(uint8(GG),'extracted watermark.jpg');
  67. %% MSE and PSNR
  68. C=double(im);
  69. RC=double(FAO);
  70. MSE=0; PSNR=0;
  71. for i=1:imsize(1)
  72. for j=1:imsize(2)
  73. MSE=MSE+(C(i,j)-RC(i,j)).^2;
  74. end
  75. end
  76. MSE=MSE/360.^2;
  77. PSNR=20*log10(255/sqrt(MSE));
  78. MSE
  79. PSNR
  80. %% attack test
  81. %% attack by smearing
  82. %A = double(imread('gl1.jpg'));
  83. %B = double(imread('attacked image.jpg'));
  84. attack = 1-double(imread('attack.jpg'))/255;
  85. figure,imshow(attack);
  86. FAO_ = FAO;
  87. for i=1:imsize(1)
  88. for j=1:imsize(2)
  89. if attack(i,j,1)+attack(i,j,2)+attack(i,j,3)>0.5
  90. FAO_(i,j,:) = attack(i,j,:);
  91. end
  92. end
  93. end
  94. figure,imshow(FAO_);
  95. %extract watermark
  96. FA2=fft2(FAO_);
  97. G=(FA2-FA)*2;
  98. GG=G;
  99. for i=1:imsize(1)*0.5
  100. for j=1:imsize(2)
  101. GG(M(i),N(j),:)=G(i,j,:);
  102. end
  103. end
  104. for i=1:imsize(1)*0.5
  105. for j=1:imsize(2)
  106. GG(imsize(1)+1-i,imsize(2)+1-j,:)=GG(i,j,:);
  107. end
  108. end
  109. figure,imshow(GG);title('extracted watermark');
  110. %% attack by cutting
  111. s2 = 0.8;
  112. FAO_ = FAO;
  113. FAO_(:,s2*imsize(2)+1:imsize(2),:) = FAO_(:,1:int32((1-s2)*imsize(2)),:);
  114. figure,imshow(FAO_);
  115. %extract watermark
  116. FA2=fft2(FAO_);
  117. G=(FA2-FA)*2;
  118. GG=G;
  119. for i=1:imsize(1)*0.5
  120. for j=1:imsize(2)
  121. GG(M(i),N(j),:)=G(i,j,:);
  122. end
  123. end
  124. for i=1:imsize(1)*0.5
  125. for j=1:imsize(2)
  126. GG(imsize(1)+1-i,imsize(2)+1-j,:)=GG(i,j,:);
  127. end
  128. end
  129. figure,imshow(GG);title('extracted watermark');
  130. %%小波變換加水印,解水印你們按照加的思路逆過來就好
  131. clc;clear;close all;
  132. %% read data
  133. im = double(imread('gl1.jpg'))/255;
  134. mark = double(imread('watermark.jpg'))/255;
  135. figure, imshow(im),title('original image');
  136. figure, imshow(mark),title('watermark');
  137. %% RGB division
  138. im=double(im);
  139. mark=double(mark);
  140. imr=im(:,:,1);
  141. markr=mark(:,:,1);
  142. img=im(:,:,2);
  143. markg=mark(:,:,2);
  144. imb=im(:,:,3);
  145. markb=mark(:,:,3);
  146. %% parameter
  147. r=0.04;
  148. g = 0.04;
  149. b = 0.04;
  150. %% wavelet tranform and add watermark
  151. % for red
  152. [Cwr,Swr]=wavedec2(markr,1,'haar');
  153. [Cr,Sr]=wavedec2(imr,2,'haar');
  154. % add watermark
  155. Cr(1:size(Cwr,2)/16)=...
  156. Cr(1:size(Cwr,2)/16)+r*Cwr(1:size(Cwr,2)/16);
  157. k=0;
  158. while k<=size(Cr,2)/size(Cwr,2)-1
  159. Cr(1+size(Cr,2)/4+k*size(Cwr,2)/4:size(Cr,2)/4+...
  160. (k+1)*size(Cwr,2)/4)=Cr(1+size(Cr,2)/4+...
  161. k*size(Cwr,2)/4:size(Cr,2)/4+(k+1)*size(Cwr,2)/4)+...
  162. r*Cwr(1+size(Cwr,2)/4:size(Cwr,2)/2);
  163. Cr(1+size(Cr,2)/2+k*size(Cwr,2)/4:size(Cr,2)/2+...
  164. (k+1)*size(Cwr,2)/4)=Cr(1+size(Cr,2)/2+...
  165. k*size(Cwr,2)/4:size(Cr,2)/2+(k+1)*size(Cwr,2)/4)+...
  166. r*Cwr(1+size(Cwr,2)/2:3*size(Cwr,2)/4);
  167. Cr(1+3*size(Cwr,2)/4+k*size(Cwr,2)/4:3*size(Cwr,2)/4+...
  168. (k+1)*size(Cwr,2)/4)=Cr(1+3*size(Cr,2)/4+...
  169. k*size(Cwr,2)/4:3*size(Cr,2)/4+(k+1)*size(Cwr,2)/4)+...
  170. r*Cwr(1+3*size(Cwr,2)/4:size(Cwr,2));
  171. k=k+1;
  172. end;
  173. Cr(1:size(Cwr,2)/4)=Cr(1:size(Cwr,2)/4)+r*Cwr(1:size(Cwr,2)/4);
  174. % for green
  175. [Cwg,Swg]=WAVEDEC2(markg,1,'haar');
  176. [Cg,Sg]=WAVEDEC2(img,2,'haar');
  177. Cg(1:size(Cwg,2)/16)=...
  178. Cg(1:size(Cwg,2)/16)+g*Cwg(1:size(Cwg,2)/16);
  179. k=0;
  180. while k<=size(Cg,2)/size(Cwg,2)-1
  181. Cg(1+size(Cg,2)/4+k*size(Cwg,2)/4:size(Cg,2)/4+...
  182. (k+1)*size(Cwg,2)/4)=Cg(1+size(Cg,2)/4+...
  183. k*size(Cwg,2)/4:size(Cg,2)/4+(k+1)*size(Cwg,2)/4)+...
  184. g*Cwg(1+size(Cwg,2)/4:size(Cwg,2)/2);
  185. Cg(1+size(Cg,2)/2+k*size(Cwg,2)/4:size(Cg,2)/2+...
  186. (k+1)*size(Cwg,2)/4)=Cg(1+size(Cg,2)/2+...
  187. k*size(Cwg,2)/4:size(Cg,2)/2+(k+1)*size(Cwg,2)/4)+...
  188. g*Cwg(1+size(Cwg,2)/2:3*size(Cwg,2)/4);
  189. Cg(1+3*size(Cg,2)/4+k*size(Cwg,2)/4:3*size(Cg,2)/4+...
  190. (k+1)*size(Cwg,2)/4)=Cg(1+3*size(Cg,2)/4+...
  191. k*size(Cwg,2)/4:3*size(Cg,2)/4+(k+1)*size(Cwg,2)/4)+...
  192. g*Cwg(1+3*size(Cwg,2)/4:size(Cwg,2));
  193. k=k+1;
  194. end;
  195. Cg(1:size(Cwg,2)/4)=Cg(1:size(Cwg,2)/4)+g*Cwg(1:size(Cwg,2)/4);
  196. % for blue
  197. [Cwb,Swb]=WAVEDEC2(markb,1,'haar');
  198. [Cb,Sb]=WAVEDEC2(imb,2,'haar');
  199. Cb(1:size(Cwb,2)/16)+b*Cwb(1:size(Cwb,2)/16);
  200. k=0;
  201. while k<=size(Cb,2)/size(Cwb,2)-1
  202. Cb(1+size(Cb,2)/4+k*size(Cwb,2)/4:size(Cb,2)/4+...
  203. (k+1)*size(Cwb,2)/4)=Cb(1+size(Cb,2)/4+...
  204. k*size(Cwb,2)/4:size(Cb,2)/4+(k+1)*size(Cwb,2)/4)+...
  205. g*Cwb(1+size(Cwb,2)/4:size(Cwb,2)/2);
  206. Cb(1+size(Cb,2)/2+k*size(Cwb,2)/4:size(Cb,2)/2+...
  207. (k+1)*size(Cwb,2)/4)=Cb(1+size(Cb,2)/2+...
  208. k*size(Cwb,2)/4:size(Cb,2)/2+(k+1)*size(Cwb,2)/4)+...
  209. b*Cwb(1+size(Cwb,2)/2:3*size(Cwb,2)/4);
  210. Cb(1+3*size(Cb,2)/4+k*size(Cwb,2)/4:3*size(Cb,2)/4+...
  211. (k+1)*size(Cwb,2)/4)=Cb(1+3*size(Cb,2)/4+...
  212. k*size(Cwb,2)/4:3*size(Cb,2)/4+(k+1)*size(Cwb,2)/4)+...
  213. b*Cwb(1+3*size(Cwb,2)/4:size(Cwb,2));
  214. k=k+1;
  215. end;
  216. Cb(1:size(Cwb,2)/4)=Cb(1:size(Cwb,2)/4)+b*Cwb(1:size(Cwb,2)/4);
  217. %% image reconstruction
  218. imr=WAVEREC2(Cr,Sr,'haar');
  219. img=WAVEREC2(Cg,Sg,'haar');
  220. imb=WAVEREC2(Cb,Sb,'haar');
  221. imsize=size(imr);
  222. FAO=zeros(imsize(1),imsize(2),3);
  223. for i=1:imsize(1);
  224. for j=1:imsize(2);
  225. FAO(i,j,1)=imr(i,j);
  226. FAO(i,j,2)=img(i,j);
  227. FAO(i,j,3)=imb(i,j);
  228. end
  229. end
  230. figure, imshow(FAO); title('watermarked image');
  • 其實若是防護作得好,想繞過還真的沒那麼容易。按照DLP,也就是數據防泄密的思路:

1.重要的圖片或者文檔內加水印,文件裏面再加上全息數字水印(這個你們都說得很全面了)

然而這就足夠了嗎?或者說只有這些防禦?乃義務!

2.全部終端監控敏感操做:另存、截屏、剪貼板、對敏感文檔的操做等等,上述行爲一概上傳到審計服務器上備份待查。

3.禁止未受權(未安裝終端防禦程序)的終端接入內網和業務系統

4.有敏感操做或者跨終端登陸的時候經過攝像頭拍攝人臉(知道爲何扎克伯格要貼攝像頭了吧)

5.按期對硬盤進行文件掃描,關鍵字、類似度、OCR等方法識別出多是敏感或者涉密的文件,並提取特徵,進行標定。

6.一樣採用散列值、關鍵字、類似度匹配等方法檢查全部網絡出口:郵件、聊天、網站、網盤等,對傳輸內容所有解碼進行審計而且記錄。

7.檢查或者關閉全部物理出口,USB、Wi-Fi、藍牙、音頻口(防止經過耳機口盜竊數據)。

8.全部文件落地加密(文件加密或者全盤加密),偷硬盤也沒用。

9.全部電子設備進出辦公區域所有審覈檢查。

10.核心機密文檔不落地,存放於核心服務器,採用遠程終端或者虛擬窗口方式查閱/編輯。

別笑,富士康和華爲基本上就是這麼幹的。

 

轉載請註明出處:https://stgod.com/1482

相關文章
相關標籤/搜索