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