譚亦夫 李子臣
(北京印刷學院信息工程學院 北京 102600)
隨著信息技術(shù)的發(fā)展,信息傳遞方式已有了天翻地覆的變化,QR 碼作為一種全新的信息存儲與傳遞技術(shù),在許多領(lǐng)域都起著關(guān)鍵作用。例如各種票務(wù)的防偽、身份識別、產(chǎn)品溯源與電子商務(wù)的應(yīng)用等。QR碼以識別速度快、數(shù)據(jù)密度大、占用空間小的優(yōu)勢,在移動支付方式中占著主要地位。但是傳統(tǒng)QR 碼容易被篡改,存在著安全隱患。例如媒體曝光過的詐騙手段,不法分子在車上貼罰單,并附有QR 碼“掃碼可繳費”,類似此等的詐騙手段還有很多,基于日常生活消費,公共事業(yè)繳費等,編造虛假的繳費信息通知或提示,誤導公眾掃描支付,實施欺詐。針對QR 碼移動支付安全問題[1~3],已有學者提出VCS 與QR 碼結(jié)合進行認證的研究[4~11],該研究方向已成為當前的研究熱點。
QR 碼由黑白模塊排列構(gòu)成,李麗娜[12]提出將QR 碼分為兩份分享圖像,然后將兩份分享圖像與載體QR 碼進行融合,載體QR 碼中包含鏈接信息。一份融合后的含密QR 碼存放在商店并公開,另一份存儲在云端。支付時,通過讀取載體QR 碼中包含的鏈接信息,下載云端存儲的含密QR碼,將兩份分享圖像疊加獲得秘密QR 碼,從而進行支付。但該系統(tǒng)基于模塊單元對QR 碼進行分享,并且恢復步驟基于簡單的或運算,攻擊者可以從公開的分享圖像中獲取秘密圖像部分信息,對圖像安全造成威脅。張舒等[13]提出使用有意義的圖像將秘密圖像掩蓋,降低圖像引起攻擊者注意的可能性,該方案使QR碼的隱秘性更高,但降低了實用性,普通掃描設(shè)備無法識別掩蓋后的圖像。Cheng Y等提出一個改進的后的基于可視密碼的QR 碼加密方案[14],獲得了較高的安全性與實用性,并加入了門限設(shè)置,使應(yīng)用場景更加廣泛。Wan S 提出將分享份直接生成新的QR 碼[15],該方案使移動設(shè)備能夠更加方便地對秘密圖像進行解密,優(yōu)化了使用性能的同時降低了圖像被攻擊的可能性。
針對上述問題,基于可視密碼技術(shù),提出一種可驗證的QR碼支付方案。使用基于像素級別的分享方案,拆分QR碼與驗證圖像,將其中一份直接編碼生成QR碼,供用戶掃描,解決了掃描設(shè)備無法精確到像素級別的問題?;诖耍窒韴D像上的像素點完全隨機,攻擊者無法根據(jù)單獨分享份篡改信息。利用多秘密可視密碼方案,對恢復的QR 碼進行驗證,提升QR碼的安全性。
在信息安全來越被重越視的今天,可視密碼作為一種安全領(lǐng)域的一種新興技術(shù),成為了重要的研究熱點之一。可視密碼的概念由Naor 與Shamir 于1994 年提出[16]。是一種針對圖像,通過人眼視覺進行解密的圖像加密技術(shù)。一幅秘密的二值圖像,經(jīng)拆分后,生成n份分享圖像,最后由k份分享圖像進行疊加,解密結(jié)果可由人眼直接識別??梢暶艽a還具有很多優(yōu)點。
1)隱蔽性
利用可視密碼的生成方案所得出的分享圖像的像素點均是隨機分布的,攻擊者看不出隱藏的秘密。
2)安全性
使用任何不滿足恢復條件的攻擊方法對圖像進行研究都無法得到任何關(guān)于秘密圖像的信息。
3)簡單性
與傳統(tǒng)密碼技術(shù)不同的是,可視密碼的解密階段沒有計算性的步驟,只需要將分享圖像進行疊加即可。
4)通用性
可視密碼無需使用者掌握密碼學知識,對使用者的要求低,適用范圍廣。
Naor和Shamir的可視密碼方案如下:
對二值秘密圖像的像素進行拆分,以像素擴展為4 的可視密碼方案為例,白色像素與黑色像素分別具有六種拆分方式。如表1。
表1 像素擴展為4的可視密碼模型
以圖1 為例子,使用像素擴展為4 的(2,2)VCS所得出的實驗結(jié)果。將原圖像進行拆分,得到的分享圖像為內(nèi)容毫無意義的圖像,從單個分享圖像中無法的到秘密圖像的任何信息。
圖1 (2,2)-VCS實驗結(jié)果
QR 碼(Quick Response)是一種二維條碼,可以被快速識別并解碼。相比傳統(tǒng)條形碼。QR碼可以存儲更多的信息,并且無需在掃描的時候?qū)蕭呙杵?,可以自動定位,方便快捷?,F(xiàn)如今,QR 碼越加受歡迎,第三方支付、信息查詢、信息交互,由于QR碼的普及,簡化了大量復雜的操作過程。
但是QR碼的安全性也因為它自身的開源性受到極大的挑戰(zhàn),很容易受到攻擊,例如重編碼進行病毒植入。
圖2 QR碼病毒植入
針對商業(yè)活動中QR 碼容易被攻擊篡改等問題,提出了一種帶認證的QR 碼支付方案。系統(tǒng)流程如圖3。
選取一張與QR碼相同大小的驗證圖像,與QR碼圖像一同加密,生成兩份分享,一份秘密存儲于云端,另一份與云端存儲地址共同生成QR 碼供用戶掃描。用戶通過掃描QR碼獲取分享份與云端地址,發(fā)送分享份至云端,云端通過解密疊加后,將還原的QR 碼與驗證圖像發(fā)還用戶,用戶根據(jù)驗證圖像確定QR碼的安全性。
圖3 系統(tǒng)流程圖
生成的分享份中需要含有兩個秘密圖像,所以應(yīng)選取多密圖可視密碼方案。分享步驟如下。
1)像素拆分
基于或運算,拆分秘密圖像,生成分享圖像。分享規(guī)則如表2所示。
表2 拆分規(guī)則
由于需要隱藏兩份秘密圖像,為減小分享份的大小,選取像素擴展為2 的VCS,對兩張秘密圖像S1,S2進行拆分。
2)分享生成
生成兩個空的分享矩陣K1,K2。設(shè)QR碼與驗證圖像都是大小為260*260 的二值圖像,則兩個分享矩陣的大小為520*520。將K1,K2按2*2 大小分塊,得到,其中i,j ∈[1,260]。其中每個小塊的第一行存儲S1的分享像素,第二行存儲S2的分享像素。下面舉例說明。
設(shè)S1與S2的 像 素 值 分 別 為S1(1,0,0,1) ,S2(0,1,0,1) 。則 按 照 拆 分 規(guī) 則中的第一個行向量(0,1)與(1,0)是S1第一個像素1所拆分的分享份,第二行的行向量是S2中的第一個像素0 拆分所得分享份。按照同樣的規(guī)則對剩余的像素進行加密,為使分享更加混亂,使其直觀上更像噪聲圖像,需要對圖像進行置換。隨機選擇與,交換行向量。
為了讓秘密圖像分別顯示,需要對圖像進行移位 變 換。選 定 位 移 量k1,k2…kn,其 中n=520,ki≤520,并將ki作為密鑰,存儲于云端服務(wù)器。根據(jù)ki對K2的各行像素依次進行移位操作,位移量為ki,獲得,對進行QR 編碼,生成可掃描的QR碼,供移動端掃碼。
整個過程,用戶只需要掃描發(fā)送與接收解密后的QR 碼與驗證圖像,用戶可根據(jù)接收到的驗證圖像判斷QR 碼的安全性,驗證圖像可設(shè)置為商家標識,便于用戶識別。
解密后的QR碼由于像素的擴展與多密圖信號的干擾,顯示出的密圖無法由掃描設(shè)備識別,需要對還原的QR碼做信號增強,提高圖像的識別率。
在Matlab2017中進行仿真實驗,該算法應(yīng)用于移動支付的安全認證當中,具有以下幾點優(yōu)勢:
1)該系統(tǒng)將付款碼分開管理,一份用于公開,一份秘密存儲于云端服務(wù)器中,攻擊者無法篡改付款碼。篡改的分享圖像無法通過移位認證,保障了QR碼的安全。
2)認證圖像隱藏的干擾沒有改變付款碼的信息,掃描設(shè)備可以正常解碼,經(jīng)過圖像增強的還原結(jié)果,完全能夠達到電子設(shè)備的識別要求。
3)圖像的恢復與驗證只需要進行簡單的移位變換與疊加即可完成,驗證效率高。
4)分享圖片在直觀上與數(shù)據(jù)上,都類似噪聲圖像,無法從單獨的分享圖像中獲得任何有關(guān)付款碼與驗證圖像的信息。以實驗圖像為例,秘密圖像大小為260×260,分享圖像大小為520×520,在做位移處理時,每一行像素有519種位移量,共有520種可能性。即根據(jù)一張分享圖像恢復云端秘密存儲的圖像概率為(1/520)520。
根據(jù)上述總結(jié),基于可視密碼的可驗證QR 碼支付方案具有較高的安全性,攻擊者對單一分享的攻擊無法獲得另一分享的任何信息,更不能改變原始付款碼信息,有效杜絕了QR 碼信息篡改所造成的病毒植入等問題,提升了支付的安全性。
實驗選取260*260 的圖像作為付款碼圖像與驗證圖像,如圖4。
圖4 原始圖像
拆分圖像獲得分享圖K1、K2、移位生成的與包含的QR碼,如圖5。
圖5 分享圖像
解密圖像與驗證結(jié)果如圖6。
圖6 解密圖像
為提高QR 碼支付的安全性,基于多密圖可視密碼技術(shù)提出了安全QR 碼支付方案,該方案允許用戶在進行付款操作之前,驗證QR碼的安全性,有效杜絕詐騙等違法行為。為了減少云端的數(shù)據(jù)量與運算量,可以對加解密方式進行改進,減少密鑰長度,提高運行速度。