技術(shù)解析移動(dòng)支付:安全體系尚不成熟
來(lái)源:站長(zhǎng)新聞AiWeTalk的空間 2014-01-10
原標(biāo)題:技術(shù)帖:今天的移動(dòng)支付,還是很不安全
導(dǎo)讀:前段時(shí)間有文章說(shuō)微信的移動(dòng)支付既簡(jiǎn)單又安全。這一點(diǎn),老李頗不贊同。剛好曾搞過(guò)兩年的手機(jī)動(dòng)態(tài)令牌的研究,這里也來(lái)說(shuō)兩句。
在安全領(lǐng)域有兩個(gè)基本的原則:
1、 沒(méi)有絕對(duì)安全,安全是相對(duì)的;
2、 所有的簡(jiǎn)單、方便都是以犧牲安全程度為代價(jià)的,只是看你如何權(quán)衡罷了。
個(gè)人認(rèn)為,在手機(jī)上支付,各種條件尚有欠缺,環(huán)境尚不成熟,為時(shí)過(guò)早。(錢袋、盒子支付、拉卡拉推廣的卡槽式手機(jī)支付理論上屬于傳統(tǒng)的POS機(jī)支付,不屬于嚴(yán)格意義上的手機(jī)支付,不屬于這里涵蓋的范圍)
移動(dòng)支付的密鑰在哪兒?
簡(jiǎn)單的用戶名和靜態(tài)密碼都是容易被破解或竊取的(無(wú)論如何組合數(shù)字和字母,多少位),已經(jīng)不能滿足今天電子支付的安全要求了。所以,銀行目前普遍采用“用戶名+密碼+密鑰”三合一的方式來(lái)實(shí)現(xiàn)用戶身份的認(rèn)證!坝脩裘兔艽a”就是你在銀行開(kāi)戶時(shí)設(shè)定的,而“密鑰”是你下載到U盾保存(也由銀行發(fā)放)的數(shù)字證書或者銀行發(fā)放的帶有顯示屏的六位到八位的動(dòng)態(tài)令牌。
無(wú)論是數(shù)字證書還是動(dòng)態(tài)令牌,都是代表你身份的唯一象征,就好比你的指紋是你的唯一標(biāo)識(shí)。對(duì)于銀行而言,每一個(gè)用戶都具有唯一的數(shù)字證書或者動(dòng)態(tài)令牌,反之亦然。
用戶的“密鑰”和PC機(jī)獨(dú)立是電子支付的最基本的要求。如果早期使用過(guò)網(wǎng)銀的客戶一定記得,最初數(shù)字證書是備份在PC機(jī)的硬盤里的,之所以現(xiàn)在要備份到一個(gè)獨(dú)立的U盾里,就是為了將你的“密鑰”與PC分離。這樣,即使有黑客能夠侵入你的電腦,沒(méi)有數(shù)字證書或者動(dòng)態(tài)令牌顯示的數(shù)字也無(wú)法完成資金的轉(zhuǎn)移。
前幾年有一些用戶在電腦支付完忘記拔U盾而被黑客將銀行賬戶的資金轉(zhuǎn)走,所以,現(xiàn)在的網(wǎng)銀在你退出的時(shí)候都會(huì)提醒你,“你的U盾還未拔掉,建議您拔掉U盾“(動(dòng)態(tài)令牌不存在這個(gè)問(wèn)題)。
U盾的操作系統(tǒng)是專有的,很少有人會(huì)破解U盾,所以,只要U盾不在PC機(jī)上,該P(yáng)C也就無(wú)法與銀行建立一條加密的隧道,你就有了一層很堅(jiān)固的保障。
動(dòng)態(tài)令牌的工作原理是簡(jiǎn)單地來(lái)說(shuō)就是一種密碼算法。理論上來(lái)講,只要有足夠長(zhǎng)的時(shí)間和良好的設(shè)備,任何密碼都可通過(guò)窮舉法加以破解,即把所有的密碼組合全試一次。但對(duì)于動(dòng)態(tài)令牌的一些算法(如MD5、SHA-1),使用窮舉法尋找它的沖突至少需要進(jìn)行2^80次運(yùn)算,這對(duì)于我們來(lái)說(shuō)近乎不可能。試想我們使用一臺(tái)每秒運(yùn)算30億次的計(jì)算機(jī),運(yùn)用窮舉法去尋找一個(gè)沖突,到找到為止需要花費(fèi)多少時(shí)間呢?大概需要1200萬(wàn)年以上!
目前微信使用的,據(jù)我觀察(沒(méi)有看到任何介紹),有點(diǎn)類似短信動(dòng)態(tài)令牌方式,即用戶方無(wú)需一個(gè)動(dòng)態(tài)令牌的實(shí)體,服務(wù)器端通過(guò)短信網(wǎng)關(guān)將動(dòng)態(tài)令牌發(fā)送下來(lái)。所謂動(dòng)態(tài)令牌,就是不斷變動(dòng)的六位或者八位數(shù)字。數(shù)字一旦出現(xiàn),永不重復(fù),這就保證了即使黑客竊取你的密碼,過(guò)了密碼的存活周期后,也無(wú)法進(jìn)入系統(tǒng)進(jìn)行身份認(rèn)證,所以,動(dòng)態(tài)令牌有時(shí)也叫一次性口令,One Time Password,簡(jiǎn)稱OTP。動(dòng)態(tài)令牌的存活時(shí)間從幾秒鐘到幾個(gè)小時(shí)可調(diào),根據(jù)你實(shí)際的應(yīng)用場(chǎng)景設(shè)定,一般為30-60秒更換一次。
動(dòng)態(tài)令牌的顯示數(shù)字是依靠某種算法運(yùn)算所得。服務(wù)器端運(yùn)算出來(lái)一個(gè)結(jié)果,并通過(guò)短信發(fā)送給手機(jī)端,然后用戶將這六位數(shù)字錄入,傳遞到服務(wù)器端進(jìn)行對(duì)比,驗(yàn)證用戶的身份。這里先不去考慮密碼編制算法的可靠性(是否真的有MD5等那樣堅(jiān)固,我沒(méi)有看到任何資料說(shuō)微支付密碼采用何種算法,不好評(píng)價(jià)),僅就短信傳遞密碼,就存在可達(dá)性和安全性的問(wèn)題。
根據(jù)目前運(yùn)營(yíng)商的平均水平,短信的到達(dá)率大約在95%左右,但遇到一些特殊情況,如節(jié)假日,有可能會(huì)發(fā)生延遲、丟失的現(xiàn)象。比方說(shuō),剛剛過(guò)去的雙十一。短信一般不用于關(guān)鍵信息(對(duì)丟失、時(shí)延敏感)的傳遞,也屬于“best effort”盡力而為范疇。
而且,短信雖然在傳遞中,報(bào)文是加密的,但依然容易被攔截且破解。這樣,也會(huì)造成動(dòng)態(tài)密碼的泄露。所以,主流的動(dòng)態(tài)令牌形式是一個(gè)獨(dú)立于任何設(shè)備(無(wú)論P(yáng)C還是手機(jī))的硬件設(shè)備,也像U盾一樣(很多銀行、證券公司采用),只是多一個(gè)顯示數(shù)字的屏幕。
動(dòng)態(tài)令牌一旦激活,在使用過(guò)程中將不會(huì)再與服務(wù)器發(fā)生通訊,用戶不可能通過(guò)空中截取。
動(dòng)態(tài)令牌內(nèi)部是靠一個(gè)小CPU按照與服務(wù)器同樣的算法分別運(yùn)算著。每一時(shí)刻,服務(wù)器跟動(dòng)態(tài)令牌的數(shù)字都是一致的,所以,無(wú)論何時(shí)需要身份的認(rèn)證,無(wú)需通訊,動(dòng)態(tài)令牌跟服務(wù)器的數(shù)字也會(huì)保持正確。
無(wú)論是數(shù)字證書,還是動(dòng)態(tài)令牌,移動(dòng)支付的需要一個(gè)分離的“密鑰”,才能稱得上安全。目前我看到的多數(shù)解決方案在這方面都有欠缺,是皇帝的新裝?
手機(jī)本身的安全無(wú)法保證
智能手機(jī)的快速普及,使今天的手機(jī)已經(jīng)與昨天的手機(jī)不可同日而語(yǔ)。但是在帶給人方便的同時(shí),也將PC端帶給大家的問(wèn)題復(fù)制過(guò)來(lái)了。手機(jī)上的各種漏洞層出不窮,尤其是基于開(kāi)放的安卓系統(tǒng)的手機(jī),在方便的同時(shí),也方便了別人竊取你的信息。任何一個(gè)應(yīng)用,都可以采集你的諸多私密信息。蘋果手機(jī)由于采用封閉系統(tǒng),要略好一點(diǎn),但也不是沒(méi)有漏洞,只要有心可為,還是有空子可鉆。在這一樣環(huán)境里,完成支付,真的有點(diǎn)“裸奔”的感覺(jué)。
雖然現(xiàn)在有了手機(jī)版的360安全衛(wèi)士,安全管家等等,但并沒(méi)有一個(gè)真正的行業(yè)標(biāo)準(zhǔn)規(guī)定大家該如何做,只是一個(gè)建議。而多數(shù)網(wǎng)民對(duì)此更是一無(wú)所知,即使看到了建議也不會(huì)像PC端那樣從容應(yīng)對(duì)。
之前的手機(jī)應(yīng)用,大多屬于非關(guān)鍵類業(yè)務(wù),即使有些信息泄露也無(wú)傷大雅。但如果真的用來(lái)支付等直接跟錢打交道的業(yè)務(wù),個(gè)人認(rèn)為還是為時(shí)過(guò)早。
綜合上述兩個(gè)方面,老李還是認(rèn)為先別急著在手機(jī)上玩支付,等手機(jī)的安全體系完成再說(shuō)吧。而且,從另一方面,各家移動(dòng)支付的玩家們也在完善自己的解決方案,老李從運(yùn)營(yíng)商們的手機(jī)支付規(guī)范中,都看到了明確的“密鑰”分發(fā)的環(huán)節(jié),說(shuō)明這一問(wèn)題已經(jīng)引起了足夠的重視。假以時(shí)日,這并不是一個(gè)不可解決的問(wèn)題,只是目前,尚不成熟。
手機(jī)支付的出路
前面分析了目前的手機(jī)支付存在的問(wèn)題,如果單純考慮用移動(dòng)端本身來(lái)解決這一問(wèn)題,個(gè)人認(rèn)為必須有比較完善的密鑰發(fā)放和管理機(jī)制才能算是一個(gè)完整的解決方案。
按照目前可以看見(jiàn)的產(chǎn)品(包括已經(jīng)面市和在研發(fā)中),大概分為三大類。第一類是NFC近場(chǎng)支付,這也是個(gè)人最看好的未來(lái)的一種支付方式;第二類是通過(guò)外接設(shè)備來(lái)完成密鑰的保存;第三類是將支付風(fēng)險(xiǎn)轉(zhuǎn)化到PC端。
三大類中,后兩類相對(duì)比較成熟,設(shè)備和支付方案都有比較嚴(yán)格的金融機(jī)構(gòu)審核。從本質(zhì)意義上來(lái)說(shuō),后兩種方案其實(shí)還是傳統(tǒng)支付方案的延續(xù),只是換了個(gè)手機(jī)終端的形式而已。NFC方案目前還屬于發(fā)展中的一個(gè)方案,由于配套的終端識(shí)別設(shè)備(POS機(jī)部署或者傳統(tǒng)POS機(jī)改造)以及終端標(biāo)準(zhǔn)(13.56M&2.4G)的待定,尚需時(shí)日。
3.1、NFC近場(chǎng)支付
NFC是Near Field Communication縮寫,即近距離無(wú)線通訊技術(shù)。是一種非接觸式識(shí)別和互聯(lián)技術(shù),可以在移動(dòng)設(shè)備、消費(fèi)類電子產(chǎn)品、PC 和智能控件工具間進(jìn)行近距離無(wú)線通信。
NFC以其快捷便利安全迅速得到大眾的喜愛(ài)。在日本,DOCOMO大約在六七年前就推出了FeliCa移動(dòng)支付業(yè)務(wù),擁有NFC功能的手機(jī)用戶,可以通過(guò)手機(jī)在全國(guó)的am/pm連鎖店購(gòu)物。
NFC目前的工作頻段只要有13.56M和2.4G兩種。這也是銀聯(lián)與中國(guó)移動(dòng)之所以遲遲未能達(dá)成一致的主要原因。因?yàn)殂y聯(lián)傾向的標(biāo)準(zhǔn)是前者,而移動(dòng)傾向的標(biāo)準(zhǔn)是后者。2012年6月兩家最終簽訂合作協(xié)議說(shuō)明雙方可能在這一方面達(dá)成了某種妥協(xié)。
從形式上,NFC目前主要的也可以分成拖尾式和RFID-SIM卡方式。
拖尾式就是無(wú)需更換手機(jī),將射頻功能部分集成于雙界面SIM/UIM卡中,射頻部分天線直接與SIM/UIM卡高速管腳相連。射頻天線可以采用拖尾的方式與SIM/UIM卡相連,也可定制于手機(jī)中。
拖尾式的好處是無(wú)需更換手機(jī),只需更換SIM卡,符合移動(dòng)運(yùn)營(yíng)商在SIM/UIM卡加載安全及移動(dòng)支付應(yīng)用的要求。天線采用SIM/UIM卡拖尾方式對(duì)手機(jī)外觀要求較高,不是每款手機(jī)都適合采用此方式。
RFID-SIM方案采用將射頻單元(包括射頻模塊、天線)直接集成到有源SIM/UIM卡上的方式工作,工作頻率為2.4GHz。目前,中國(guó)移動(dòng)主要采用的是此方案。
無(wú)論是拖尾式,還是RFID-SIM卡模式,密鑰都可以保存在獨(dú)立的電子錢包存儲(chǔ)器里。所有的SIM卡應(yīng)用,必須通過(guò)一種只有SIM卡廠商才有的編譯器編譯方可,所以外人很難破解,里面的密鑰是安全的。(老李曾經(jīng)做過(guò)一款SIM應(yīng)用,編譯過(guò)程非常復(fù)雜,不是外界常用的系統(tǒng),而且SIM卡廠商基本都不對(duì)非運(yùn)營(yíng)商之外的第三方提供服務(wù)。)
.2、在外接設(shè)備中集成密鑰
目前,主流的圍繞手機(jī)(包括SIM卡)外接的移動(dòng)支付方案也有三種。一種是以錢袋、拉卡拉、盒子支付為代表的從手機(jī)音頻口外接刷卡槽方案;還有一種是在手機(jī)的SIM卡上貼片方案;第三種是在手機(jī)的SD卡中保存數(shù)字證書(銀聯(lián)曾考慮過(guò)此方案)。
外接卡槽式
這一種方式可以將一個(gè)外接的刷卡槽插入手機(jī)的音頻接口,從而使手機(jī)變成了一個(gè)移動(dòng)POS機(jī)。它只利用了手機(jī)的通訊和運(yùn)算功能,而密鑰可以保存在卡槽設(shè)備里。除了需要刷卡的時(shí)候插入終端外,其他時(shí)間卡槽和手機(jī)終端是分離狀態(tài)的。這樣就保證了密鑰和手機(jī)終端分離的目的,從而達(dá)到手機(jī)支付安全的目的。
手機(jī)貼片式
這種方式主要圍繞原有的SIM卡進(jìn)行改造。在原來(lái)的SIM卡基礎(chǔ)上,貼上一個(gè)小貼片,貼片與SIM卡可以合二為一,插入原來(lái)的SIM卡槽。手機(jī)貼片模式的支付完成,是通過(guò)SIM卡應(yīng)用菜單實(shí)現(xiàn)的。在每個(gè)人的手機(jī)里,都有一個(gè)SIM卡應(yīng)用的菜單。用戶開(kāi)卡(貼片模式完成后,需要拿專用的POS機(jī)來(lái)完成開(kāi)卡激活,與運(yùn)營(yíng)商無(wú)關(guān),是服務(wù)提供商的服務(wù)范圍)。
理論上來(lái)講,貼片式的貼片也是跟手機(jī)分離的,密鑰也可以保存在貼片里。而且,貼片的激活機(jī)制也需要通過(guò)POS機(jī)非常復(fù)雜但專業(yè)的流程實(shí)現(xiàn)。所以,貼片式的支付也是安全的。
SD卡模式
中國(guó)銀聯(lián)也曾考慮過(guò)SD卡模式,即在手機(jī)的SD卡中保存數(shù)字證書,也就是密鑰。用戶現(xiàn)需要安裝保存在SD卡中的客戶端程序,然后需要開(kāi)卡激活該客戶端,即下載保存數(shù)字證書(密鑰)。然后就可以通過(guò)客戶端中的相關(guān)操作完成支付了。
上面三種模式,是目前手機(jī)支付領(lǐng)域比較主流的三種外接設(shè)備的工作方式。個(gè)人比較傾向卡槽方案,一不改變?nèi)说氖褂昧?xí)慣,也無(wú)需綁定、更換信用卡;貼片方式開(kāi)卡流程非常復(fù)雜,需要有專人用專用的POS機(jī)激活,不利于大面積推廣;SD卡模式的加密是個(gè)問(wèn)題,如果把密鑰保存在SD卡中,不太可能有用戶只在使用支付的時(shí)候才換上專用的SD卡,如果長(zhǎng)期攜帶會(huì)有安全隱患(就如同U盾在PC機(jī)上長(zhǎng)連接一樣)。
3.3、轉(zhuǎn)化到PC端解決
第三種解決方案是目前支付寶模式。因?yàn)橛脩艨梢圆⒉恢苯釉谝苿?dòng)端關(guān)聯(lián)銀行卡。而通過(guò)支付寶賬戶做了一層緩沖。用戶完全可以通過(guò)PC端的操作來(lái)完成從銀行賬戶到支付寶的關(guān)聯(lián)乃至轉(zhuǎn)賬,再通過(guò)PC端與移動(dòng)端一致的支付寶賬戶完成購(gòu)買商品的支付。這樣即便有風(fēng)險(xiǎn),也只是支付寶移動(dòng)端賬戶的風(fēng)險(xiǎn),而不是你銀行卡所有資金的風(fēng)險(xiǎn)。而在PC端完成支付已經(jīng)是非常成熟的業(yè)務(wù)了。當(dāng)然也有的用戶喜歡在移動(dòng)端來(lái)完成支付寶到銀行卡的關(guān)聯(lián),個(gè)人建議不要這么做。
如果今天非要用手機(jī)完成支付的話,那么個(gè)人認(rèn)為后兩種方案還是可取的。第一種NFC近場(chǎng)支付,需要等待整個(gè)體系的建立完成,如標(biāo)準(zhǔn)、POS機(jī)設(shè)備等。
其他的解決方案,個(gè)人認(rèn)為尚不完善,其安全性有待考察。
我的評(píng)論