ARM7 智能卡的動(dòng)態(tài)口令終端研究與實(shí)現(xiàn)
3 動(dòng)態(tài)口令實(shí)現(xiàn)
3.1 動(dòng)態(tài)口令實(shí)現(xiàn)流程
基于ARM7智能卡的動(dòng)態(tài)口令認(rèn)證系統(tǒng)終端采用雙因素認(rèn)證方式,首先獲取動(dòng)態(tài)口令具有PIN碼保護(hù),用戶需要輸入正確的PIN碼,才能產(chǎn)生動(dòng)態(tài)口令。利用手機(jī)STK菜單功能,使用Get Input命令輸入數(shù)字PIN碼。用戶除了輸入正確的PIN碼之外,還要求與認(rèn)證服務(wù)器的計(jì)數(shù)器實(shí)現(xiàn)同步才能得到正確的操作口令。
動(dòng)態(tài)口令的實(shí)現(xiàn)過(guò)程包括開(kāi)通服務(wù)、數(shù)據(jù)同步及獲取口令等。開(kāi)通服務(wù)主要包括密鑰分散以及數(shù)據(jù)加密兩部分,智能卡和認(rèn)證服務(wù)器都預(yù)先存儲(chǔ)10 組相同的主密鑰。在開(kāi)通時(shí)智能卡利用隨機(jī)生成的密鑰索引(簡(jiǎn)稱KID)選取其中的一組(16 字節(jié)),采用PBOC 算法進(jìn)行密鑰分散后得到用于數(shù)據(jù)加密的會(huì)話密鑰KC,然后使用KC 對(duì)卡號(hào)和隨機(jī)生成的口令加密密鑰(deskey)經(jīng)過(guò)三重?cái)?shù)據(jù)加密標(biāo)準(zhǔn)算法(簡(jiǎn)稱3DES)加密,再將加密結(jié)果連同密鑰索引一起以數(shù)據(jù)短信息的形式上行給認(rèn)證服務(wù)器,認(rèn)證服務(wù)器接收到數(shù)據(jù)后,利用密鑰索引取出相同的主密鑰,同樣對(duì)主密鑰進(jìn)行PBOC 密鑰分散得到解密密鑰KC,再用KC 解出對(duì)應(yīng)智能卡的ICCID 及deskey,并同時(shí)將同步計(jì)數(shù)器清零,實(shí)現(xiàn)了與卡端的同步。數(shù)據(jù)同步主要用于防止智能卡計(jì)數(shù)器與認(rèn)證服務(wù)器計(jì)數(shù)器出現(xiàn)異常時(shí)能夠重新獲取同步信息的操作。
獲取口令過(guò)程主要包括三部分,首先使用智能卡內(nèi)部與認(rèn)證服務(wù)器隨機(jī)生成的deskey 對(duì)卡片序列號(hào)(簡(jiǎn)稱ICCID)和計(jì)數(shù)器Counter 進(jìn)行加密,然后對(duì)加密結(jié)果進(jìn)行SHA1-HASH 處理得到20 字節(jié)密文,最后對(duì)HASH 結(jié)果進(jìn)行數(shù)字化。其實(shí)現(xiàn)流程如下圖(3)所示:
其中數(shù)字化是從 HASH 結(jié)果的20 字節(jié)(160bit)數(shù)據(jù)中動(dòng)態(tài)取出4 字節(jié)的數(shù)據(jù),把該4 字節(jié)數(shù)據(jù)轉(zhuǎn)換為8 位十進(jìn)制數(shù)字。
3.2 動(dòng)態(tài)口令STK 菜單實(shí)現(xiàn)
用戶識(shí)別應(yīng)用發(fā)展工具 SIM TOOL KIT(簡(jiǎn)稱STK)是在原SIM 卡被動(dòng)式的操作系統(tǒng)上,衍生出的SIM 卡交互式操作系統(tǒng)。其原理就是通過(guò)手機(jī)SIM 卡接口,為手機(jī)的用戶接口(簡(jiǎn)稱UI)提供符合GSM11.14 規(guī)范的字節(jié)流,手機(jī)UI 把這些字節(jié)流解析成能夠識(shí)別的菜單元素,從而構(gòu)建一個(gè)跟手機(jī)菜單系統(tǒng)一致的應(yīng)用菜單。這個(gè)應(yīng)用菜單跟手機(jī)菜單是有區(qū)別的,用戶選擇菜單后,手機(jī)把這個(gè)信息直接傳遞給ARM7 智能卡,而不是手機(jī)的操作系統(tǒng)。動(dòng)態(tài)口令的輸出采用STK 菜單方式在手機(jī)屏幕上進(jìn)行顯示,為了實(shí)現(xiàn)STK 操作流程,需要將動(dòng)態(tài)口令加密算法封裝成字節(jié)碼(Byte Code)形式在智能卡操作系統(tǒng)內(nèi)部進(jìn)行運(yùn)算,最終采用STK 的display 命令在手機(jī)終端將結(jié)果顯示出來(lái)。在具體STK 菜單設(shè)計(jì)過(guò)程中,采用了自行設(shè)計(jì)的《手機(jī)STK 功能仿真器》工具對(duì)動(dòng)態(tài)口令的STK 菜單進(jìn)行了仿真測(cè)試,動(dòng)態(tài)口令的 STK 菜單在手機(jī)上實(shí)現(xiàn)效果圖如下圖(4)所示:
在ARM7智能卡內(nèi)部使用STK菜單方式實(shí)現(xiàn)動(dòng)態(tài)口令令牌功能,口令由智能卡內(nèi)部生成,通過(guò)手機(jī)屏幕以STK菜單形式顯示出來(lái)??诹顒?dòng)態(tài)生成,隨時(shí)間或者次數(shù)變化而變化,具有不可預(yù)測(cè)性。口令生命周期短,一次有效,既可以克服靜態(tài)口令重復(fù)使用容易泄漏的弱點(diǎn),有效抵御密碼竊取和重播攻擊行為,又具有友好的菜單操作界面。由于用戶口令更新階段是在手機(jī)終端完成的,因此也可以防止拒絕服務(wù)攻擊及口令猜測(cè)攻擊等行為。
4 結(jié)論
本文利用手機(jī)終端STK 功能擴(kuò)展技術(shù),使用ARM7 智能卡硬件平臺(tái)實(shí)現(xiàn)動(dòng)態(tài)口令客戶端STK 菜單設(shè)計(jì),解決了動(dòng)態(tài)口令終端USIM 卡或PIM 卡需更換用戶SIM 卡或因刮刮卡、令牌因終端成本高帶來(lái)的不足;利用智能卡內(nèi)部的硬件加密算法及STK 菜單提供的友好界面,很好地解決了動(dòng)態(tài)口令信息交換的安全與數(shù)據(jù)加密問(wèn)題。本文設(shè)計(jì)實(shí)現(xiàn)的動(dòng)態(tài)口令終端系統(tǒng)將在各網(wǎng)絡(luò)平臺(tái)中應(yīng)用推廣,屆時(shí)將會(huì)在越來(lái)越多的商業(yè)場(chǎng)合得到廣泛應(yīng)用。預(yù)計(jì)5年內(nèi)整個(gè)項(xiàng)目手機(jī)用戶使用的帶動(dòng)態(tài)口令功能的ARM7 智能卡片可達(dá)100 多萬(wàn)片,產(chǎn)生經(jīng)濟(jì)效益可達(dá)1500 多萬(wàn)元。
評(píng)論