央視披露了二維碼支付的風(fēng)險(xiǎn),"互聯(lián)網(wǎng)的一些事"推薦的這篇文章把一些提高二維碼支付安全性的干貨分享給大家,希望對大家有幫助。

要回答這個問題,需要先講清楚2個概念:
1、二維碼里有什么?
2、掃一下為什么會“中毒”?
第一個問題,現(xiàn)在二維碼里大致有這樣一些類型的數(shù)據(jù):長文本、短文本、名片、網(wǎng)址、wifi配置信息、地理位置信息。
第二個問題,首先通俗的解釋一下“中毒”的概念。中毒和生病一樣,病毒需要一個生存和發(fā)展的環(huán)境,如果掃碼能中毒,那么環(huán)境是誰?當(dāng)然是掃碼軟件以及掃碼軟件的運(yùn)行環(huán)境(通常就是手機(jī)操作系統(tǒng))了?,F(xiàn)在已知的二維碼“病毒”大致有以下3種方式:
釣魚網(wǎng)址,這個嚴(yán)格來說不是“病毒”,屬于社會工程學(xué)威脅范疇,用戶只需稍有安全意識則能有效避免被騙上當(dāng)。在手機(jī)上,打開一個網(wǎng)址本身在大多數(shù)情況下是安全的,但危險(xiǎn)在于停留在這個打開的網(wǎng)站上,用戶干了些什么。用戶自己主動輸入信用卡號、安全碼,用戶自己主動輸入支付寶用戶帳號。。。另外,網(wǎng)址并不等于網(wǎng)站入口。比如,有一類特殊的網(wǎng)址,叫做偽協(xié)議地址,這個也有想象力空間(但似乎沒見到攻擊案例),例如sms://、tel://等等,這些點(diǎn)擊之后,在不同的系統(tǒng)上有可能會打開不同的應(yīng)用程序,例如發(fā)短信、打電話等等。
HTML/JS混合代碼,這是由于很多二維碼軟件提供了所謂的智能內(nèi)容感知和識別,調(diào)用了瀏覽器解釋引擎去承載和處理這些代碼,實(shí)質(zhì)上就是給“病毒”提供了“溫床”,所以會“中毒”。但,就目前已知的攻擊案例來說,純第三方二維碼類應(yīng)用軟件即使被這些瀏覽器客戶端惡意代碼攻擊,在絕大多數(shù)情況下對用戶造成的影響也很有限。極少數(shù)情況,可能會發(fā)生在:
惡意代碼直接攻擊瀏覽器解釋引擎,造成內(nèi)存破壞類攻擊,直接獲得原生應(yīng)用程序級別的任意代碼執(zhí)行甚至是提升權(quán)限。這種問題發(fā)生的概率要遠(yuǎn)遠(yuǎn)小于PC端瀏覽器遭受同類型攻擊的概率。主要原因是:大多數(shù)攻擊程序是需要一定“行數(shù)”的代碼組成的,而二維碼的承載數(shù)據(jù)能力又是受限制于圖片編碼的容量極限的。簡單理解就是:復(fù)雜攻擊需要更多行數(shù)的代碼,較少行數(shù)的代碼只能實(shí)現(xiàn)較簡單的“攻擊”,二維碼由于自身設(shè)計(jì)的“缺陷”,無法提供惡意代碼存儲所必要的足夠空間,故攻擊想象空間和影響效果有限。
自定義的二維碼應(yīng)用。雖然二維碼本身承載的其實(shí)就只是普通文本數(shù)據(jù)(數(shù)字、字符啥的),但有些軟件給這些數(shù)據(jù)定義了一些自己的解析規(guī)則,目的是實(shí)現(xiàn)掃碼后自動XXX或自動YYY。壞就壞在這個自動化的過程,給了數(shù)據(jù)一秒變病毒的機(jī)會。如何理解?參考Web安全里的SQL注入、XSS等,就是最典型的數(shù)據(jù)一秒變病毒的參考案例。
上面3類“病毒”,第一種可以歸類為需要用戶交互才能得逞的病毒,后兩種可以歸類為無需用戶交互即可實(shí)現(xiàn)“感染”的病毒。
前者在目前來說最常見,后兩者攻擊易得手但造成的影響大多數(shù)情況下極為有限。
應(yīng)對方式和Web時代的安全問題類似,需要幾方面參與者的共同努力。
掃碼軟件廠商,在提供基于二維碼的新應(yīng)用時,要安全的設(shè)計(jì)和實(shí)現(xiàn)二維碼識別后內(nèi)容的解析引擎,對網(wǎng)址的識別可以集成第三方安全廠商提供的URL黑名單查詢服務(wù),對已知惡意網(wǎng)址提前向掃碼用戶告警,并取消點(diǎn)擊交互行為的支持。另外,掃碼軟件可以提供一個牛逼閃閃的安全模式(其實(shí)就是純文本模式啦),讓有安全意識和能力的用戶可以先看看是什么,再決定下一步如何解析、是否允許軟件自動化做XXX或自動化YYY。當(dāng)然了,做產(chǎn)品,還可以在用戶體驗(yàn)層面再智能一些,讓用戶可以更傻瓜一些點(diǎn)【下一步】。
用戶要做到,一要選擇知名的二維碼掃描軟件,二要避免打開陌生和奇怪的網(wǎng)址。
安全廠商,還和現(xiàn)在一樣,該干嘛干嘛,多給掃碼軟件廠商做做推廣,集成你們的惡意網(wǎng)址識別引擎吧。再牛逼一點(diǎn),云掃碼吧,所有二維碼里的數(shù)據(jù),你們先在云端看看,不良內(nèi)容給消消毒就是了。
至于二維碼未來的安全問題?先讓我們看到二維碼在未來有什么新應(yīng)用吧,如果沒有新應(yīng)用,那么以上內(nèi)容已經(jīng)涵蓋了二維碼病毒的成因和對策。新應(yīng)用?我已經(jīng)預(yù)測了以上的第三種方式了。
