張彬, 王岳
(1濟(jì)南市質(zhì)量技術(shù)監(jiān)督局,山東濟(jì)南250002;
2國(guó)家網(wǎng)絡(luò)軟件產(chǎn)品質(zhì)量監(jiān)督檢驗(yàn)中心(濟(jì)南),山東濟(jì)南250101)
二維碼的安全技術(shù)研究
張彬1, 王岳2
(1濟(jì)南市質(zhì)量技術(shù)監(jiān)督局,山東濟(jì)南250002;
2國(guó)家網(wǎng)絡(luò)軟件產(chǎn)品質(zhì)量監(jiān)督檢驗(yàn)中心(濟(jì)南),山東濟(jì)南250101)
隨著信息安全獲得國(guó)家層面的關(guān)注,二維碼安全已成為社會(huì)普遍關(guān)注的焦點(diǎn)問題。本文以矩陣式二維碼中應(yīng)用最廣泛的QR碼為基礎(chǔ),通過論述QR碼的圖形結(jié)構(gòu)、編碼方式和編碼過程,總結(jié)了常見的攻擊二維碼的方法,并提出從編碼環(huán)節(jié)和解析環(huán)節(jié)協(xié)同引入安全機(jī)制的防護(hù)策略。目的在于從技術(shù)層面和二維碼產(chǎn)業(yè)的頂層架構(gòu)層面規(guī)范二維碼市場(chǎng)的運(yùn)行秩序,促進(jìn)二維碼行業(yè)形成統(tǒng)一的編碼體系、解析體系、應(yīng)用標(biāo)準(zhǔn)以及行業(yè)規(guī)范。
二維碼安全;QR碼;RC4加密算法;第三方認(rèn)證
矩陣式二維碼是當(dāng)前社會(huì)上應(yīng)用程度極高一種編碼技術(shù),主要應(yīng)用于信息發(fā)布、商家推廣、網(wǎng)站登錄、社交服務(wù)、電商支付、防偽溯源等方面。但是,在二維碼技術(shù)為大眾生活帶來便捷的同時(shí),其與生俱來的安全隱愚也成為無法忽視的風(fēng)險(xiǎn)。例如,當(dāng)智能手機(jī)用戶掃描來源不明的二維碼時(shí),可能立即被鏈接到惡意網(wǎng)站,使手機(jī)感染病毒或被植入木馬,造成不可預(yù)知的安全隱愚和經(jīng)濟(jì)損失。隨著國(guó)民經(jīng)濟(jì)的快速發(fā)展,消費(fèi)者對(duì)二維碼應(yīng)用的需求與日俱增,對(duì)二維碼安全性、行業(yè)規(guī)范性的需求更加迫切。
結(jié)合實(shí)際生活中二維碼的應(yīng)用,針對(duì)QR碼的攻擊行為,本文致力于在無法控制攻擊源頭的情況下提高二維碼信息的安全性。設(shè)計(jì)在編碼環(huán)節(jié)引入雙重加密策略,在解碼環(huán)節(jié)采用認(rèn)證技術(shù),從技術(shù)層面和二維碼行業(yè)監(jiān)管層面協(xié)同保證用戶獲得信息的安全性。
國(guó)外從上世紀(jì)八十年代開始了對(duì)二維碼技術(shù)的研究,研究早期主要針對(duì)二維碼的符號(hào)結(jié)構(gòu)、生成技術(shù)與編譯碼算法。比較成熟的碼制包括PDF417二維碼,QR碼,Code 49,Code 16K以及Code One碼[1],并且已經(jīng)由國(guó)際自動(dòng)識(shí)別制造商協(xié)會(huì)AIM Global、美國(guó)國(guó)家標(biāo)準(zhǔn)學(xué)會(huì)ANSI完成了上述碼制的符號(hào)標(biāo)準(zhǔn),其中QR代碼已經(jīng)有了國(guó)際標(biāo)準(zhǔn),現(xiàn)行的版本為ISO/IEC 18004-2015 Information technology--Automatic identification and data capture techniques--QR Code 2005 bar code symbology specification[2]。國(guó)外對(duì)二維碼碼制的研究已經(jīng)相對(duì)成熟,但對(duì)二維碼安全技術(shù)的研究還處于探索階段。
我國(guó)對(duì)二維碼技術(shù)的研究起步略晚于國(guó)外。在學(xué)習(xí)國(guó)外研究成果的基礎(chǔ)上,我國(guó)制定了兩個(gè)二維碼國(guó)家標(biāo)準(zhǔn):GB/T 17172 -1997《四一七條碼》以及GB/T 18284-2000《快速響應(yīng)矩陣碼》。在二維碼安全技術(shù)的研究方面,任勇金針對(duì)QR二維碼提出了一種基于Rijndae算法和異或運(yùn)算的雙重加密算法[3],周慶等針對(duì)QR二維碼提出了基于Ising模型的加密算法[4],安吉旺等提出一種結(jié)合了RSA和口令的改進(jìn)算法對(duì)編碼數(shù)據(jù)信息進(jìn)行加密[5],于英政等提出了QR二維碼的多級(jí)融合加密算法[6]??梢钥闯?,當(dāng)前對(duì)二維碼安全技術(shù)的研究主要集中于信息加密技術(shù)與編譯碼算法,忽視了二維碼行業(yè)中最缺失的體系管理與認(rèn)證技術(shù)。
矩陣式二維碼中的QR碼是目前社會(huì)應(yīng)用度極高的一種碼制,相比其他碼制,QR碼具有信息密度高、編碼范圍廣、容錯(cuò)能力強(qiáng)、譯碼可靠性高、易加密等優(yōu)勢(shì),因此本文以QR碼為例,詳析二維碼的安全機(jī)制。
2.1 QR碼簡(jiǎn)介
QR碼的“QR”取自快速響應(yīng)Quick Response[7]。QR碼1994年由日本Denso-Wave公司發(fā)明,QR碼標(biāo)準(zhǔn)JIS X 0510在1999 年1月發(fā)布,其現(xiàn)行實(shí)施的國(guó)際標(biāo)準(zhǔn)為ISO/IEC 18004-2015。QR碼支持的信息類型非常豐富,包括文本、圖片、網(wǎng)址鏈接、音頻、視頻等,并且支持對(duì)各種類型信息的加密。
QR碼是由若干個(gè)黑白方形模塊排列組成的正方形矩陣,分為編碼區(qū)域和功能圖形區(qū)域,深色模塊表示二進(jìn)制“1”,淺色模塊表示二進(jìn)制“0”,其符號(hào)規(guī)格根據(jù)編碼數(shù)據(jù)量自適應(yīng)調(diào)整,支持的數(shù)據(jù)類型包括數(shù)字型數(shù)據(jù)、字母數(shù)字型數(shù)據(jù)、8位字節(jié)型數(shù)據(jù)、中國(guó)漢字字符數(shù)據(jù)[7]。
2.2 QR碼編/譯碼原理
QR碼使用四種標(biāo)準(zhǔn)化編碼模式(數(shù)字、字母數(shù)字、二進(jìn)制字節(jié)、漢字)將數(shù)據(jù)內(nèi)容轉(zhuǎn)換為二維碼圖形,而通過掃描識(shí)讀完成數(shù)據(jù)內(nèi)容輸出的譯碼過程則為編碼的逆過程。編/譯碼流程[8]如圖1所示:
圖1 二維碼編/譯碼流程
編碼階段:①獲取原始信息,分析其數(shù)據(jù)類型,根據(jù)分析結(jié)果選定編碼效率最高的編碼模式。②根據(jù)步驟1確定的編碼模式,將原始信息轉(zhuǎn)換為相應(yīng)的二進(jìn)制比特流,完成信息編碼。③根據(jù)數(shù)據(jù)量將碼字分塊,采用糾錯(cuò)編碼技術(shù)按塊生成相應(yīng)的糾錯(cuò)信息碼,再按照分塊順序合并為最終糾錯(cuò)碼。④將數(shù)據(jù)內(nèi)容和糾錯(cuò)信息碼組成最終數(shù)據(jù)碼,添加模式信息、版本信息、尋像圖形、定位圖形和校正圖形等,掩模處理生成QR碼圖像。
譯碼階段:①通過尋像圖形和定位圖形確定QR碼的方向和位置,校正圖像,確定采樣網(wǎng)絡(luò)。②識(shí)別深淺模塊,讀取格式信息與版本信息,消除掩模,恢復(fù)數(shù)據(jù)內(nèi)容和糾錯(cuò)信息碼,用糾錯(cuò)碼進(jìn)行錯(cuò)誤檢查。③糾錯(cuò)后將數(shù)據(jù)信息解碼。④輸出數(shù)據(jù)內(nèi)容。
2.3 二維碼玫擊
由于二維碼的數(shù)據(jù)內(nèi)容與制作來源難以監(jiān)管,編/譯碼過程完全開放,識(shí)讀軟件質(zhì)量參差不齊,在缺乏統(tǒng)一的管理規(guī)范的前提下,造成二維碼存在諸多安全漏洞,針對(duì)二維碼的攻擊方式也呈現(xiàn)出多樣性的特點(diǎn)。主要包括如下四類:
1)誘導(dǎo)登錄惡意網(wǎng)站:攻擊者只需將偽造、詐騙或釣魚等惡意網(wǎng)站的網(wǎng)址鏈接制作成二維碼圖形,在誘導(dǎo)用戶掃碼登錄其網(wǎng)站后,獲取用戶輸入的個(gè)人敏感信息、金融賬號(hào)等。
2)木馬植入:攻擊者將自動(dòng)下載惡意軟件的命令編入二維碼,當(dāng)用戶在缺少防護(hù)措施的情況下掃描該類二維碼時(shí),用戶系統(tǒng)悄悄被植入了木馬、蠕蟲或隱匿軟件,攻擊者在后臺(tái)可以肆意破壞用戶文件,偷竊用戶信息,甚至遠(yuǎn)程控制用戶,郡發(fā)吸費(fèi)短信等等。
3)信息劫持:很多商家提供掃碼支付等在線支付手段,網(wǎng)絡(luò)支付平臺(tái)根據(jù)用戶訂單生成二維碼,方便用戶掃描支付。若攻擊者劫持了商家與用戶之間的通訊信息,并惡意修改訂單,這將對(duì)用戶和商家造成直接經(jīng)濟(jì)損失。
4)Web攻擊:隨著手機(jī)瀏覽器功能的日趨成熟,用戶能夠通過手機(jī)輸入網(wǎng)站域名或提交Web表單。攻擊者利用Web頁(yè)面的漏洞,將非法SQL語(yǔ)句插入二維碼信息,當(dāng)用戶使用手機(jī)掃描二維碼登錄Web頁(yè)面時(shí),惡意SQL語(yǔ)句被自動(dòng)執(zhí)行(SQL注入)。若數(shù)據(jù)庫(kù)防范機(jī)制脆弱,則會(huì)造成數(shù)據(jù)庫(kù)被侵入,導(dǎo)致更嚴(yán)重的危害。
針對(duì)二維碼編譯碼流程中存在的安全漏洞,以及目前幾類曲型的攻擊方式,本文設(shè)計(jì)在編碼環(huán)節(jié)引入雙重加密策略,在譯碼環(huán)節(jié)進(jìn)行解密,并使用認(rèn)證手段進(jìn)行安全管理。即采用信息加密技術(shù)保證二維碼信息的安全保密性,同時(shí)采用認(rèn)證管理手段保證用戶獲得信息的正確性。
3.1 二維碼加密算法選擇
二維碼加密策略要求兼顧信息保密性與編譯碼復(fù)雜度。若為了獲得信息的絕對(duì)保密,而選用加密復(fù)雜度極高的加密算法,則編譯碼的應(yīng)用效率呈幾何級(jí)數(shù)下降;若為了提高編譯碼效率,忽視加密算法的安全等級(jí),則失去了加密的意義。
對(duì)稱加密算法的優(yōu)點(diǎn)是加解密復(fù)雜度低、加密速度快、執(zhí)行效率高,不足之處在于其安全性依賴于密鑰保密性。序列密碼作為對(duì)稱加密算法的一種,采用隨機(jī)方式生成與明文序列長(zhǎng)度相等的密鑰序列,即將密鑰、明文表示成連續(xù)的二進(jìn)制流,對(duì)應(yīng)地進(jìn)行加密。相對(duì)分組密碼,序列密碼具有加解密速度快、差錯(cuò)傳播率低等優(yōu)點(diǎn),而且容易檢測(cè)插入、刪除、重播等主動(dòng)攻擊。序列密碼算法模型如下式所示:
式中E m,n()為加密函數(shù),D m,n()為解密函數(shù)。
RC4加密算法是曲型的序列密碼算法,應(yīng)用到二維碼編譯碼流程中時(shí),密文序列長(zhǎng)度固定且與明文序列長(zhǎng)度相等,不會(huì)因?yàn)樾畔㈤L(zhǎng)度變化影響糾錯(cuò)編碼的糾錯(cuò)性能與二維碼圖形結(jié)構(gòu)。因此選用RC4加密算法引入二維碼編譯碼流程。
3.2 QR碼雙重加密策略
將RC4加解密算法應(yīng)用于QR碼的編碼、譯碼環(huán)節(jié)。如圖2所示:
圖2 二維碼信息加/解密過程
第一步,二維碼編碼階段,在分析原始信息之后、信息編碼之前引入RC4加密算法,對(duì)原始信息進(jìn)行加密,加密過程如公式(4)所示。該次加密使得整個(gè)QR碼處理過程都在已加密信息的基礎(chǔ)上完成,即實(shí)現(xiàn)了二維碼信息的加密傳遞。
第二步,在信息編碼之后、糾錯(cuò)編碼之前進(jìn)行RC4二次加密,本步驟是對(duì)信息編碼之后生成的二進(jìn)制比特流進(jìn)行二次加密。RC4算法在加密過程中未改變二進(jìn)制流的長(zhǎng)度,因此不會(huì)影響后續(xù)糾錯(cuò)編碼過程。
第三步,二維碼譯碼階段,首先在糾錯(cuò)解碼和信息解碼之間進(jìn)行第一次RC4解密,解密過程如公式(5)所示;繼而在信息解碼之后進(jìn)行二次解密,還原二維碼原始信息。
3.3 QR碼認(rèn)證與管理
提高二維碼安全性能的通常方式是在編譯碼環(huán)節(jié)引入加密算法,并對(duì)加密算法進(jìn)行優(yōu)化,提高編譯碼執(zhí)行效率。但是“存在安全風(fēng)險(xiǎn)不是因?yàn)槎S碼編碼技術(shù)本身存在問題,而是因?yàn)椤貌缓茫А保?]。因此將編碼過程和譯碼過程規(guī)范化,是降低二維碼安全風(fēng)險(xiǎn)的關(guān)鏈。
本文設(shè)計(jì)在二維碼編譯碼環(huán)節(jié)引入第三方認(rèn)證管理機(jī)制。第三方認(rèn)證管理,是指圍繞二維碼商戶的登記與注冊(cè)、二維碼的制作與使用、掃碼應(yīng)用程序的識(shí)讀與解析,建立國(guó)家統(tǒng)一的二維碼管理體系。
該體系分為認(rèn)證平臺(tái)、解析平臺(tái)與數(shù)據(jù)檢索平臺(tái)三部分。商戶或個(gè)人需要通過認(rèn)證平臺(tái)注冊(cè)與登記,按照行業(yè)標(biāo)準(zhǔn)制作生成官方認(rèn)證的加密二維碼圖形。用戶在認(rèn)證平臺(tái)下載官方授權(quán)的二維碼掃描識(shí)讀應(yīng)用程序,作為掃碼工具的唯一來源。用戶完成掃碼后,識(shí)讀應(yīng)用程序使用唯一私鑰對(duì)掃描信息進(jìn)行解密,通過解析平臺(tái)對(duì)二維碼解析結(jié)果進(jìn)行確認(rèn),完成對(duì)二維碼安全性的第一道防護(hù);隨后將解析結(jié)果鏈接到認(rèn)證平臺(tái),認(rèn)證平臺(tái)對(duì)惡意網(wǎng)址、虛假信息和惡意指令進(jìn)行第二道攔截,為用戶屏蔽非法信息。依托官方數(shù)據(jù)檢索平臺(tái)的認(rèn)證機(jī)制,檢索、確認(rèn)信息來源的可靠性,最終將安全有效的掃碼結(jié)果反饋給用戶。認(rèn)證、解析流程如圖3所示:
圖3 二維碼認(rèn)證與管理
近年來,二維碼應(yīng)用技術(shù)已成為科技造福民生的曲型代表。它讓我們享受科技進(jìn)步所帶來的生活便捷,但也在用戶“見碼就掃”的不良習(xí)慣下屢次使我們跌入陷阱。因此研究如何有效規(guī)避二維碼安全風(fēng)險(xiǎn)具有重要現(xiàn)實(shí)意義。目前針對(duì)二維碼信息的加密算法已經(jīng)研究得相當(dāng)深入,但制約其發(fā)展的最大障礙是缺失頂層架構(gòu),缺少統(tǒng)一的管理體系和行業(yè)標(biāo)準(zhǔn)。本文設(shè)計(jì)在編碼環(huán)節(jié)引入雙重RC4加密策略,在解析環(huán)節(jié)引入第三方認(rèn)證管理手段,旨在從編碼機(jī)制、解析機(jī)制、二維碼認(rèn)證管理機(jī)制等方面推動(dòng)國(guó)家建立統(tǒng)一的二維碼管理體系。
此外,依托國(guó)家網(wǎng)絡(luò)軟件產(chǎn)品質(zhì)量監(jiān)督檢驗(yàn)中心(濟(jì)南)的公共平臺(tái),宣傳、規(guī)范二維碼統(tǒng)一管理體系的建立,推動(dòng)二維碼產(chǎn)業(yè)的規(guī)范發(fā)展,是實(shí)現(xiàn)二維碼行業(yè)監(jiān)管的一種有效嘗試。
[1] 高彥受,許春根.安全實(shí)用的二維碼研究與實(shí)現(xiàn)[J].信息網(wǎng)絡(luò)安全,2012(10):47-50.
[2] ISO/IEC.ISO/IEC 18004-2015,Information Technology--Automatic Identification and Data Capture Techniques--QR Code 2005 Bar Code Symbology Specification[S].Switzerland:ISO,2015.
[3] 任勇金.基于Rijndae和異或運(yùn)算的QR二維碼雙重加密研究[J].華章,2012(29):338.
[4] 周慶,黃黨志.基于Ising模型的QR碼加密算法[J].計(jì)算機(jī)應(yīng)用,2013,33(10):2861-2864.
[5] 安吉旺,徐凱宏.基于RSA和密鑰的二維碼加密編碼的研究[J].森林工程,2014,30(2):125-129.
[6] 于英政,許宏麗.基于QR二維碼的多級(jí)融合加密算計(jì)的設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)與數(shù)字工程,2014,42(12):2362 -2364.
[7] 國(guó)家質(zhì)量技術(shù)監(jiān)督局.GB/T18284-2000,快速響應(yīng)矩陣碼[S].北京:中國(guó)標(biāo)準(zhǔn)出版社,2000.
[8] 林佳華,楊永,任偉.QR二維碼的攻擊方法與防御措施[J].信息網(wǎng)絡(luò)安全,2013(5):29-32.
[9] 倪思潔.二維碼藏風(fēng)險(xiǎn)技術(shù)監(jiān)管有高招[N].中國(guó)科學(xué)報(bào),2013-04-04(4).
《通信技術(shù)》征稿啟示
《通信技術(shù)》是國(guó)內(nèi)創(chuàng)辦時(shí)間長(zhǎng)、影響大的IT專業(yè)媒體,由中國(guó)電子科技集團(tuán)公司主管、中國(guó)電子科技集團(tuán)公司第三十研究所主辦,主要報(bào)道信源處理、傳輸、業(yè)務(wù)與系統(tǒng)、網(wǎng)絡(luò)、移動(dòng)通信、信息安全等方面的先進(jìn)技術(shù)、理論研究成果和最新動(dòng)態(tài)。
自1967年創(chuàng)刊以來,《通信技術(shù)》一直以促進(jìn)民族通信事業(yè)的發(fā)展為已任,搭建了一個(gè)聯(lián)系編讀交流、展示通信技術(shù)發(fā)展的良好平臺(tái)。在強(qiáng)化品質(zhì)、不斷創(chuàng)新的基礎(chǔ)上,《通信技術(shù)》將以嶄新的面貌出現(xiàn)在您的面前——更新穎的內(nèi)容、更美觀的版面、更精美的印刷。為擴(kuò)大學(xué)術(shù)交流的渠道,本刊特向社會(huì)征集優(yōu)秀稿件。
熱誠(chéng)歡迎通信技術(shù)領(lǐng)域從事科學(xué)、教學(xué)、技術(shù)開發(fā)、維護(hù)管理等方面的專家、學(xué)者、在校師生和相關(guān)技術(shù)人員踴躍投稿。
征稿內(nèi)容:信源處理;傳輸;業(yè)務(wù)和系統(tǒng);網(wǎng)絡(luò);移動(dòng)通信;通信保密
在線投稿:www.txjszz.com/jwk_xxaq/ht-login.jsp
電 話:028-85169918/85151528 傳 真:028-85151528
《通信技術(shù)》編輯部
二O一四年一月一日
Research on Security Technology of TWo-Dimensional Code
ZHANG Bin1,WANG Yue2
(1Jinan Bureau of Quality and Technical Supervision,Jinan Shandong 250002,China;
2National Network Software Testing Center(Jinan),Jinan Shandong 250101,China)
With the great concern of information security from state level,the security of two-dimensional code becomes the focus of society.Based on QR code,the most widely-used one in matrix two-dimensional codes,the graphics structure,encoding mode and encoding process of QR code are expounded,several common methods attacking two-dimensional code summarized,and protection strategies in coordinate introduction of security mechanism from both encoding and parsing links also presented.The purpose is to regulate the operation order of two-dimensional code from technical level and the top-level architecture of two-dimensional code industry,thus promoting the two-dimensional code industry and forming the unified encoding system,analytical system,application standard and industry standard.
security of two-dimensional codes;QR code;RC4 encryption algorithm;third-party certification
TP309.7
A
1009-8054(2015)10-0110-04
張 彬(1974—),女,碩士,中級(jí)工程師,主要研究方向?yàn)樾畔踩?,軟件工程?/p>
王 岳(1987—),男,碩士,工程師,主要研究方向?yàn)樾畔踩?jì)算機(jī)網(wǎng)絡(luò)?!?/p>
2015-05-20
山東省質(zhì)量技術(shù)監(jiān)督局科研項(xiàng)目(No.2013KYZ23)