湯億則 徐志強(qiáng) 黃紅兵
【摘要】設(shè)計(jì)了一款應(yīng)用于移動(dòng)設(shè)備音頻口的企業(yè)內(nèi)部專(zhuān)用身份認(rèn)證設(shè)備,該設(shè)備可以通過(guò)移動(dòng)設(shè)備經(jīng)過(guò)安全網(wǎng)閘訪問(wèn)身份數(shù)據(jù)庫(kù),實(shí)現(xiàn)生產(chǎn)用戶群的動(dòng)態(tài)安全接入。獨(dú)立設(shè)備在生產(chǎn)時(shí)預(yù)置了綁定密鑰,確保一機(jī)一密的特性。身份認(rèn)證設(shè)備經(jīng)過(guò)音頻口采用中斷的方式來(lái)交互移動(dòng)設(shè)備的數(shù)據(jù),通過(guò)密文傳輸實(shí)現(xiàn)手機(jī)客戶端與服務(wù)器間的數(shù)據(jù)安全,采用雙向認(rèn)證的方式實(shí)現(xiàn)相互信任且保證了認(rèn)證碼的動(dòng)態(tài)安全。
【關(guān)鍵詞】身份認(rèn)證設(shè)備;動(dòng)態(tài)口令;安全傳輸
1.引言
當(dāng)今社會(huì),很多身份認(rèn)證設(shè)備都被大家所熟悉和使用。自帶存儲(chǔ)空間,內(nèi)置安全芯片的USBKEY被廣泛地應(yīng)用于網(wǎng)上銀行等場(chǎng)景的身份認(rèn)證設(shè)備中,通過(guò)USB接口進(jìn)行通信,用戶可以將私鑰和數(shù)字證書(shū)存儲(chǔ)在內(nèi)置的存儲(chǔ)空間中,USB Key還內(nèi)置了標(biāo)準(zhǔn)的公鑰算法來(lái)實(shí)現(xiàn)對(duì)用戶身份的認(rèn)證[1]。近期,用于互聯(lián)網(wǎng)的身份認(rèn)證模型也被設(shè)計(jì)與應(yīng)用[2]。隨著生物測(cè)定技術(shù)的發(fā)展,用于身份認(rèn)證設(shè)備的生物識(shí)別技術(shù)除指紋識(shí)別這一技術(shù)外,還有虹膜識(shí)別、簽名的動(dòng)作等等基于身份特診的生物識(shí)別技術(shù)被廣泛應(yīng)用[3]。隨著移動(dòng)設(shè)備和通信技術(shù)的發(fā)展,應(yīng)用于手機(jī)的身份認(rèn)證設(shè)備也應(yīng)運(yùn)而生,例如騰訊公司的手機(jī)令牌、卡拉卡手機(jī)刷卡器等等,這些身份認(rèn)證設(shè)備一般通過(guò)互聯(lián)網(wǎng)鏈接,一般很少見(jiàn)有鏈接到專(zhuān)網(wǎng)的身份認(rèn)證設(shè)備。
目前,各個(gè)企業(yè)內(nèi)部的營(yíng)銷(xiāo)、ERP、PMS、協(xié)同辦公、電子郵件、視頻會(huì)議等應(yīng)用系統(tǒng)全面上線,整體信息化程度不斷提高。為了滿足專(zhuān)業(yè)工作者的實(shí)際業(yè)務(wù)需求,本文設(shè)計(jì)了一款應(yīng)用于移動(dòng)設(shè)備音頻口的企業(yè)內(nèi)部專(zhuān)用身份認(rèn)證設(shè)備,該設(shè)備可以通過(guò)移動(dòng)設(shè)備進(jìn)行身份認(rèn)證動(dòng)作來(lái)實(shí)現(xiàn)專(zhuān)業(yè)工作者用戶的動(dòng)態(tài)安全接入。
2.系統(tǒng)介紹
整個(gè)業(yè)務(wù)系統(tǒng)的框圖如圖1所示,該系統(tǒng)由移動(dòng)設(shè)備、服務(wù)器、身份認(rèn)證設(shè)備組成,各個(gè)部分之間的通信都是雙向的。整個(gè)系統(tǒng)是在移動(dòng)設(shè)備上安裝定制的APP軟件,在手機(jī)音頻口插上身份認(rèn)證設(shè)備后,設(shè)備給手機(jī)發(fā)送生產(chǎn)時(shí)預(yù)錄的綁定密鑰,手機(jī)把密鑰和用戶編號(hào)發(fā)到身份認(rèn)證數(shù)據(jù)庫(kù)進(jìn)行身份匹配,匹配成功后手機(jī)再發(fā)應(yīng)答給移動(dòng)設(shè)備,移動(dòng)設(shè)備收到正確的應(yīng)答后通知移動(dòng)設(shè)備允許連接。其中身份認(rèn)證是整個(gè)通信過(guò)程的安全保障。
圖1 系統(tǒng)框圖
身份認(rèn)證的過(guò)程是通信安全的重要保障,指的是對(duì)擁有特定身份的個(gè)體提供的驗(yàn)證信息進(jìn)行判斷的過(guò)程。為了保證操作者的信息不被非法用戶獲得和服務(wù)器內(nèi)數(shù)據(jù)庫(kù)中數(shù)據(jù)的安全,必須對(duì)每一位操作者的身份進(jìn)行驗(yàn)證,通過(guò)了安全的驗(yàn)證,才能連接成功,才能擁有訪問(wèn)的權(quán)限。而身份認(rèn)證機(jī)制是整個(gè)系統(tǒng)的安全性的第一個(gè)保障,可以成功避免攻擊者的主動(dòng)攻擊[4],確保了安全機(jī)制和訪問(wèn)控制的有效性。在本文描述的身份認(rèn)證設(shè)備設(shè)計(jì)中,如何實(shí)現(xiàn)綁定、如何實(shí)現(xiàn)動(dòng)態(tài)碼、如何解決傳輸過(guò)程中加密是要重點(diǎn)解決的問(wèn)題。
3.設(shè)計(jì)與結(jié)果
在硬件設(shè)計(jì)部分,采用的是MCU是如圖2所示的MSP430G系列的芯片,它自帶有模擬信號(hào)比較功能或者斜率模數(shù)(A/D)轉(zhuǎn)換的片載比較器,16位精簡(jiǎn)指令集(RISC) 架構(gòu),從待機(jī)模式喚醒所需要的時(shí)間小于1μs,62.5ns 指令周期時(shí)間。芯片MSP430G2755在串行板上編程,內(nèi)部頻率高達(dá)16MHz,具有四種校準(zhǔn)頻率。由于手機(jī)音頻口輸出的是模擬信號(hào),經(jīng)過(guò)芯片的片載比較器即可轉(zhuǎn)換為數(shù)字信號(hào),然后對(duì)其進(jìn)行編碼。
圖2 單片機(jī)芯片圖
要實(shí)現(xiàn)動(dòng)態(tài)碼,就要有實(shí)時(shí)的時(shí)鐘芯片,在本設(shè)備中,采用的實(shí)時(shí)日歷時(shí)鐘芯片是PCF8563,它是具有低功耗、自帶CMOS實(shí)時(shí)時(shí)鐘等特點(diǎn)的日歷型芯片,內(nèi)置一個(gè)掉電檢測(cè)器、一個(gè)中斷輸出以及可編程時(shí)鐘,地址和數(shù)據(jù)通過(guò)總線接口傳遞,額定工作電流和工作電壓分別為0.25uA、1.0~5.5V。PCF8563芯片的使用,有效確保了該設(shè)備在不插設(shè)備使用時(shí)也可以保持時(shí)鐘的準(zhǔn)確性,是該設(shè)備實(shí)現(xiàn)時(shí)鐘同步的保障。
圖3 設(shè)備綁定過(guò)程圖
設(shè)備和操作者的一次綁定過(guò)程如圖3所示,身份認(rèn)證設(shè)備第一次插入移動(dòng)設(shè)備時(shí),激活了移動(dòng)設(shè)備中的客戶端APP,將設(shè)備RAM中的設(shè)備編碼和綁定密鑰KEY發(fā)到移動(dòng)設(shè)備中的APP客戶端。這時(shí)APP會(huì)根據(jù)操作者的登入信息生成一個(gè)用戶編號(hào)USER_NO,客戶端把設(shè)備編碼、KEY和USER_NO一起發(fā)給服務(wù)器,服務(wù)器先判斷設(shè)備編碼是否有效,同時(shí)判斷KEY是否第一次發(fā)送,判斷成功后服務(wù)器將設(shè)備與用戶綁定,綁定成功后通知身份認(rèn)證設(shè)備已和客戶端的用戶綁定成功。其中USER_NO與移動(dòng)設(shè)備無(wú)關(guān),只有操作者的信息有關(guān),如果操作者更換移動(dòng)設(shè)備,使用的身份認(rèn)證設(shè)備也已經(jīng)成功綁定到服務(wù)器,這樣實(shí)現(xiàn)了設(shè)備的一次性綁定,由于沒(méi)有設(shè)定解綁定的密鑰,所以設(shè)備不能二次綁定。
圖4所示的是綁定成功之后用戶登入到客戶端是動(dòng)態(tài)碼匹配的過(guò)程圖。當(dāng)用戶登錄在APP客戶端登入時(shí),設(shè)備會(huì)根據(jù)客戶的操作時(shí)間與基礎(chǔ)的時(shí)間差生成一個(gè)身份認(rèn)證碼1,同時(shí)客戶端給服務(wù)器發(fā)送客戶登入的命令和認(rèn)證碼1,在服務(wù)器也會(huì)根據(jù)命令的產(chǎn)生時(shí)間與基礎(chǔ)的時(shí)間差生成一個(gè)身份認(rèn)證碼2,之后服務(wù)器檢查認(rèn)證碼1和2是否匹配,成功匹配則通知客戶端登入成功且更新設(shè)備和服務(wù)器的時(shí)間差,否則就退出客戶端。而設(shè)備也需要在一定的時(shí)間內(nèi)登入一次,這樣出現(xiàn)密碼匹配的錯(cuò)誤率就可以控制在合理的范圍內(nèi)。由于客戶端發(fā)送命令到服務(wù)器的時(shí)間非常短,不會(huì)影響密碼的匹配,忽略不計(jì)。在這里也解釋了為什么需要設(shè)備和服務(wù)端之間需要進(jìn)行時(shí)間的同步,時(shí)間越精確密碼匹配的錯(cuò)誤率就越低。
圖4 動(dòng)態(tài)碼匹配過(guò)程
圖5所示的是該設(shè)備的外觀圖。從圖中可以看出,外觀較簡(jiǎn)潔明了,預(yù)留了一個(gè)音頻口,不占用移動(dòng)設(shè)備的音頻口。
圖5 產(chǎn)品外觀圖
圖6 Manchester編碼構(gòu)成圖
為解決APP傳輸數(shù)據(jù)到認(rèn)證服務(wù)器過(guò)程中的安全傳輸問(wèn)題,我們?cè)O(shè)計(jì)了一套自定義加解密的安全算法。由于在設(shè)備中基礎(chǔ)編碼采用的是Manchester編碼,編碼的具體方法如圖6所示,前9位是數(shù)據(jù)頭,由9個(gè)1構(gòu)成,中間是10行數(shù)據(jù)區(qū),數(shù)據(jù)由4位二進(jìn)制數(shù)加1位行校驗(yàn)位組成。密文傳輸就是指將Manchester編碼里的數(shù)據(jù)區(qū)在提交到APP設(shè)備之前通過(guò)自定義算法加密產(chǎn)生密文,傳輸過(guò)程中保持密文傳輸,在身份認(rèn)證服務(wù)器用相同自定義算法進(jìn)行解密的過(guò)程,這里采用的是自定義對(duì)稱加密算法。具體生成密文的算法如下,把數(shù)據(jù)區(qū)視為一個(gè)50個(gè)byte的字符串,依次對(duì)字符串中各字節(jié)進(jìn)行加密操作,各字節(jié)與秘鑰進(jìn)行移位和異或來(lái)形成中間密文,然后把中間密文進(jìn)行二次編碼,實(shí)際上將每一個(gè)中間密文按高低位字節(jié)再次拆開(kāi)為2或4個(gè)隨機(jī)亂碼字符,此時(shí)形成最終密文。解碼的過(guò)程就是根據(jù)最終密文進(jìn)行密文組合,還原為中間密文,然后按同樣的密鑰移位后才能得到原文。
通過(guò)以上的設(shè)計(jì),該設(shè)備實(shí)現(xiàn)了綁定操作者身份且不可二次綁定、動(dòng)態(tài)碼的驗(yàn)證、傳輸過(guò)程全程密文,同時(shí)利用實(shí)時(shí)的低功耗時(shí)鐘芯片確保了設(shè)備的時(shí)間準(zhǔn)確,進(jìn)一步確保了動(dòng)態(tài)碼的準(zhǔn)確性。這樣就在整個(gè)密碼認(rèn)證過(guò)程中基本保障了接入者的信息安全。
4.結(jié)束語(yǔ)
本文采用動(dòng)態(tài)口令技術(shù)實(shí)現(xiàn)身份驗(yàn)證,為提高系統(tǒng)的安全性,將用戶密鑰內(nèi)置于身份認(rèn)證設(shè)備的RAM中,在身份認(rèn)證設(shè)備中通過(guò)自定義加密算法產(chǎn)生密文,傳輸過(guò)程中保持密文傳輸。此外,在該系統(tǒng)中動(dòng)態(tài)口令技術(shù)對(duì)服務(wù)端與客戶端之間的時(shí)鐘同步有很高的要求,若是時(shí)鐘芯片無(wú)法做到精確同步,則會(huì)出現(xiàn)登錄不穩(wěn)定的情況,目前采用的是鈕扣電池,這方面還有待做進(jìn)一步的研究。
參考文獻(xiàn)
[1]鄭松杰.“網(wǎng)上銀行身份認(rèn)證設(shè)備問(wèn)題及防范措施”[N].企業(yè)導(dǎo)報(bào),2011.05.15.
[2]郝輝,錢(qián)華林.“網(wǎng)絡(luò)服務(wù)系統(tǒng)統(tǒng)一身份認(rèn)證模型的研究與設(shè)計(jì)”[J].計(jì)算機(jī)科學(xué),2005.10.23.
[3]Wilson CL,Canela GT,Watson Cl.Neural network and fingerpint classification[J].Artific Neural Networks,2003:45-50.
[4]Gaskell G,Looi M. Integrating smart cards into authentication systems[A].Advances in Cryptology -EUROCRYPT.1995 Proceedings[C].Berlin:Spring Verlag,1995:271-281.
[5]王宏健,邵佩英,張籍.“一次性口令身份驗(yàn)證系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)”[J].計(jì)算機(jī)應(yīng)用研究,2001.
作者簡(jiǎn)介:湯億則,浙江杭州人,高級(jí)工程師,長(zhǎng)期從事電力系統(tǒng)通信運(yùn)維工作。