
摘 要
本文涉及動態(tài)二維碼的編碼解碼技術(shù),即一種動態(tài)二維碼生成及驗證方法,通過在終端把本地數(shù)據(jù)進行加密生成并顯示動態(tài)二維碼圖像,利用移動終端掃碼該動態(tài)二維碼并將得到某幀二維碼數(shù)據(jù),發(fā)送服務(wù)器后通過數(shù)據(jù)解密、時效驗證、標識校驗等進行合法驗證。
【關(guān)鍵詞】動態(tài) 二維碼 編碼 解碼 加密 驗證
二維碼作為一種先進的應(yīng)用,隨著移動互聯(lián)網(wǎng)和智能終端的普及,在媒體、商業(yè)、制造、物流等多個領(lǐng)域快速推廣,很好地充當了數(shù)據(jù)傳輸?shù)臉蛄海绕涫俏⑿拧⒅Ц秾毜亩S碼掃碼支付的廣泛應(yīng)用,二維碼已經(jīng)被大眾普遍接受和使用。
1 二維碼
二維碼是在平面上使用若干個與二進制相對應(yīng)圖形的來表示記錄數(shù)據(jù)信息的幾何形體。二維條碼具有信息容量大、密度高、糾錯能力強、安全性好、編碼范圍廣的優(yōu)點,同時還可以引入校驗糾錯碼,具有檢測錯誤和恢復(fù)刪除錯誤的能力。二維碼除了表示基本的英文、漢字、數(shù)字、網(wǎng)址等信息外,還可以存儲聲音、指紋、照片及圖像等多種信息。
2 動態(tài)二維碼
在傳統(tǒng)的二維碼中,靜態(tài)數(shù)據(jù)的重復(fù)使用增加了其丟失、泄露以及被破解的風險,降低了信息系統(tǒng)的安全系數(shù),而動態(tài)二維碼是在傳統(tǒng)二維碼的基礎(chǔ)上在一段時間內(nèi)多幀二維碼圖像交替顯示,其中每一幀二維碼圖像數(shù)據(jù)分別采用不同的密鑰動態(tài)加密生成,不易偽造不易破解,每一幀二維碼都有時效性,這樣更能保證數(shù)據(jù)的安全。
3 動態(tài)二維碼生成原理
本文所述動態(tài)二維碼是在QR Code碼的基礎(chǔ)上生成,一段時間內(nèi)多張不同的二維碼圖像不斷的切換,每一幀二維碼圖像分別用不同的密鑰動態(tài)加密生成,其內(nèi)容是通過符合標準的安全算法加密,一般的二維碼掃碼器掃描不出其真實內(nèi)容,同時,添加了時間驗證機制,確保每一幀二維碼圖像所包含的信息只在一段時間內(nèi)有效。基于以上兩點,即使二維碼圖像被惡意獲取,也可以很好地保證其信息安全性。
4 動態(tài)二維碼驗證原理
在某些特定應(yīng)用場景下,需要終端硬件信息和移動端用戶信息分別組織,然后再合并進行合法性驗證,根據(jù)驗證結(jié)果終端或者移動端進行響應(yīng)(例如某些行業(yè)設(shè)備通過手機進行的近距離非接觸檢查操控),驗證原理如下:
(1)終端(可以是多種具備計算和顯示功能的硬件設(shè)備)加密本地數(shù)據(jù)生成動態(tài)二維碼圖像并顯示。
(2)移動端掃描終端上的動態(tài)二維碼,得到某幀二維碼數(shù)據(jù)轉(zhuǎn)發(fā)給服務(wù)器。
(3)服務(wù)器進行時間驗證和數(shù)據(jù)解密后進行數(shù)據(jù)合法驗證,驗證結(jié)果信息返回給終端和移動端。
(4)終端和移動端收到服務(wù)器返回信息并進行相應(yīng)的顯示或者動作。
5 動態(tài)二維碼的生成和驗證過程
5.1 動態(tài)二維碼生成步驟
(1)客戶端和服務(wù)器交換加密密鑰A(每次值不同)和動態(tài)二維碼每幀圖像數(shù)據(jù)的有效時間I。客戶端把當前自身系統(tǒng)時間CT1記為客戶端起始時間,服務(wù)器把當前自身系統(tǒng)時間ST1記為服務(wù)器起始時間。
(2)客戶端收集本地硬件信息等關(guān)鍵信息拼成一個字符串,將該字符串經(jīng)過MD5運算得出另一個字符串(用于服務(wù)器確認關(guān)鍵信息字符串信息的完整性),將兩個字符串合并組成一個新的字符串D。
(3)將字符串D用密鑰A和隨機數(shù)B以DES加密得到密文E。
(4)在密文字符串E的前面,插入當前系統(tǒng)時間與CT1的差(簡稱Cintv)和隨機數(shù)B最后得到字符串F。
(5)將F按照QR碼的標準生成二維碼圖像并顯示。
(6)客戶端每隔一段時間(比如2秒)重復(fù)上述第2至5步驟,從而形成二維碼的動態(tài)更替顯示。
5.2 動態(tài)二維碼數(shù)據(jù)傳輸步驟
(1)移動端連接服務(wù)器后使用登錄名口令等方式通過使用者身份驗證
(2)移動端掃描客戶端的動態(tài)二維碼,獲得某幀二維碼數(shù)據(jù)轉(zhuǎn)發(fā)給服務(wù)器
5.3 動態(tài)二維碼時效驗證
(1)服務(wù)器接收到移動端發(fā)來的二維碼數(shù)據(jù)并解析。
(2)服務(wù)器在數(shù)據(jù)中得到Cintv(此二維碼的生成時間與起始時間的時間差)和隨機數(shù)B。
(3)服務(wù)器用當前系統(tǒng)時間減去起始時間ST1獲得時間差Sintv。
(4)Sintv減Cintv的差值小于等于二維碼有效時間I,則時效驗證通過并進行二維碼內(nèi)容驗證,否則此幀二維碼信息失效,驗證失敗信息返回給移動端顯示。
5.4 動態(tài)二維碼內(nèi)容驗證
(1)服務(wù)器用密鑰A和隨機數(shù)B解密二維碼數(shù)據(jù)獲得終端硬件等關(guān)鍵信息
(2)服務(wù)器驗證這些信息是否合法,不合法則把驗證結(jié)果返回給移動端顯示,合法則終端和移動端執(zhí)行相應(yīng)的顯示或者動作。
參考文獻
[1]郭婧.二維碼技術(shù)在移動電子商務(wù)中的應(yīng)用研究[J].通訊世界,2015(13).
[2]鄭君,李海霞.基于動態(tài)二維碼的安全身份認證方案的研究[J].湖北理工學院學報,2015(02).
[3]中國銀聯(lián)二維碼支付安全規(guī)范[S].Q/CUP 067-2016.
作者簡介
喬良樹(1969-),男,天津市人。碩士學位。研究方向為軌道交通信息技術(shù)、移動互聯(lián)網(wǎng)技術(shù)。
作者單位
天津凱發(fā)電氣股份有限公司 天津市 300392endprint