(北京迅安網絡系統有限責任公司,北京 100048)
根據公安移動警務總體方案對安全的規定,使用移動終端開展移動警務業務時,需要實現身份認證和通信加密等功能,移動終端需要部署在各地的KPI 系統頒發的認證證書接入公安網絡,證書的載體通常是實現智能密碼鑰匙功能的SD卡或者SIM貼膜卡等外置的智能密碼鑰匙上,證書下發到智能密碼鑰匙后,再安裝到民警的手機中,民警通過證書攜帶的認證信息通過撥號認證接入公安網。更多的使用結果表明外置載體的詬病較多,如SD卡會占用手機卡槽,現在新型的手機也不再有普通的SD卡卡槽;設備、證書在丟失、損壞后,或證書更新、撤銷等操作時需要逐級上報,由信通部門管理員人工操作再次調試;調試環節復雜,需要使用讀卡器對每張TF 加密卡進行操作,然后手工輸入證書信息,再逐級分發到對應人員,維護成本高。如今很多終端廠商推出了手機內置安全芯片,可以在內置安全芯片接口基礎上開發符合GM/T 0016-2012[1]標準的SKF接口智能密碼鑰匙,配合在移動聯網平臺上部署的空中發證服務器,使民警可以在移動端進行首次的證書的申請、廢除操作,減少重復且繁雜的工作。
本軟件的設計目標是基于終端內置芯片,實現智能密碼鑰匙的所有功能,能夠實現身份認證和簽名驗簽等非對稱密碼運算及數據加密和通信加密等對稱密碼運算,安全等級高、密碼處理能力強。第三方應用可以使用本軟件提供的SKF接口執行相關智能密碼鑰匙接口,快捷方便的申請數字證書,進行業務操作。本軟件還提供了基礎密碼服務功能包括:簽名驗簽、私鑰解密、公鑰加密、密鑰對生成、密鑰對導入、對稱密鑰加解密、隨機數生成、安全散列函數計算等密碼功能。
終端內置安全芯片是內置于終端的嵌入式安全芯片,嵌入式安全芯片擁有安全的操作系統和強大的運算能力,在終端中存儲加密密鑰,密鑰信息不在終端外邊傳輸,加解密過程、密鑰存儲都在此芯片中完成,也可以使用硬件加密進而使手機處于安全的狀態,能夠保障密鑰的安全存儲和端到端之間信息傳遞的安全性。使用嵌入式安全芯片隔離用戶數據,現廣泛適用于移動辦公、金融、證券、保險等領域。
智能密碼鑰匙是一類支持密碼運算、密鑰存儲能力、可提供密碼應用接口的終端密碼設備,其主要功能是存儲用戶的加密信息(如私鑰、數字證書),可以記性數據加解密、數據的哈希校驗、數字簽名、訪問控制、實現身份認證和簽名驗簽等非對稱密碼運算及數據加密和通信加密等對稱密碼運算。智能密碼鑰匙通常以USB 接口形態出現,因此也被稱作USB Token或者USB Key。采用手機安全內置芯片芯片的方案的整體架構與原有TF加密卡方案保持一致,移動終端側智能密碼鑰匙主要提供密鑰證書存儲、簽名驗簽、私鑰解密、公鑰加密、對稱密鑰加解密、隨機數生成、安全散列函數計算等功能。
數字證書是一種具有權威性的數據文檔。它提供了一種在網絡信息傳遞中校驗身份的方式,其作用和實際生活中公安部發放的身份證或交通部授予司機的駕駛執照相同。是數字證書由一個由CA 這種權威證書授權(Certificate Authority)中心發放的,持有證書的用戶可以在互聯網信息傳遞中用它來識別對方的身份。數字簽名具有幾點特征:數據加解密能力、兩把鑰匙唯一對應、公加私解和私加公解、公鑰公開和私鑰私有、身份證明。
給予手機內置安全芯片的智能密碼鑰匙實現用戶安全接入網絡的方案中,證書加密是必不可少的核心業務之一。在證書加密業務中,首先需要使用智能密碼鑰匙中的簽名證書和簽名密鑰對實現身份認證,并使用加密證書和加密密鑰對實現臨時對稱密鑰的安全下發,此后手機終端可使用臨時對稱密鑰進行對通信數據的加解密等功能。
基于手機安全內置芯片的智能密碼鑰匙軟件應實現設備管理、訪問控制、應用管理、文件管理、容器管理和密碼服務接口功能。軟件的功能需求模塊如圖1 所示。

圖1 智能密碼鑰匙功能模塊圖Fig.1 Function module diagram of smart password key
各功能接口需求描述:
(1)設備管理接口。設備管理接口提供設備枚舉、設備連接、設備的狀態管理、斷開設備連接、設備的狀態信息獲取、設置設備標簽、設備鎖定、設備功能解鎖等相關功能的接口調用。(2)訪問控制接口。訪問控制接口是進行設備的認證、設備密碼修改、用戶管理員PIN碼修改、用戶管理員PIN碼驗證、PIN碼信息獲取、PIN碼解鎖和安全狀態清除等相關功能調用。其中設備認證是設備對接口調用方的認證,設備認證成功后才能進行其他接口調用,否則不能進行相關操作。修改設備認證密鑰接口可以更改設備認證密鑰。用戶管理員PIN碼修改接口可實現對應角色的PIN碼修改。用戶管理員PIN碼驗證接口提供對相關角色的驗證、使用此接口后才能調用相關接口。PIN碼信息獲取可查看對應角色的PIN碼相關信息,包括類型、最大重試次數和當前剩余重試次數。PIN碼解鎖可解鎖鎖死的用戶PIN碼。清除應用安全狀態,清除應用當前的安全狀態,使設備處于未認證狀態,調用接口時仍先進行認證接口調用。(3)應用管理接口。應用管理接口用來進行應用的枚舉、創建、打開、關閉和刪除等操作。創建應用是創建一個應用程序,但是需要獲得設備的權限。枚舉設備中存儲存在的所有應用,刪除應用是刪除指定的應用,但需要獲取設備權限。打開與關閉應用,分別打開或關閉相應的應用程序。(4)文件管理接口。文件管理接口可實現非證書類型的數據存儲,相關接口包括:枚舉文件、創建文件、讀取文件相關屬性、文件IO、刪除指定文件等接口。接口調用方可創建指定名稱、大小的文件,并可設置對應的讀寫權限。刪除文件接口可以刪除文件,執行此接口后文件中寫入的所有信息將丟失,文件設備中的占用的空間將被釋放。讀取文件相關屬性信息是獲取文件大小、權限、名稱等信息。(5)容器管理接口。本軟件提供的容器管理接口是對應用內的多個容器進行管理,包括枚舉容器、創建容器、打開容器、關閉容器和刪除容器操作。創建容器,在應用下建立指定名稱的容器并返回容器句柄,本操作需獲取用戶權限。刪除容器是在用戶權限下,在應用下刪除指定名稱的容器并釋放容器相關的資源。關閉容器是關閉容器句柄,并釋放容器句柄相關資源。寫入數字證書是向容器內導入數字證書,導出數字證實是從容器內導出數字證書。(6)密碼服務接口。密碼服務接口可提供數據簽名驗簽、對稱和非對稱加密運算、密鑰導入導出、MAC 碼的計算、密碼雜湊運算等功能。包括:生成隨機數,是產生指定長度的隨機數。生成簽名密鑰對是生成RSA 或者ECC 簽名密鑰對并輸出簽名公鑰。數據簽名指使用不同類型容器(可以為ECC、RSA容器)內的簽名私鑰,對待簽名數據執行數字簽名。將簽名結果數據存放到緩沖區,設置為簽名的長度。RSA 簽名是使用簽名公鑰,對指定數據進行數字簽名。簽名后的結果存放入緩沖區,設置簽名的長度。ECC 數字簽名,采用ECC 算法和指定私鑰,對指定數據進行簽名,輸入數據為待簽數據的雜湊值,當使用SM2 算法時該輸入數據為待簽數據經過SM3 雜湊處理后的結果。
根據智能密碼鑰匙的實際應用場景,本軟件應具備設備認證功能、權限管理功能并滿足密鑰安全要求和性能要求。
接口調用方必須通過設備加密認證后才能在設備內創建和刪除應用。設備認證使用分組密碼算法和設備認證密鑰進行。認證的流程如:(1)被認證方從設備獲取隨機數,并填充至密碼算法的分塊長度,組成數據塊;(2)被認證方對數據塊進行加密,得到加秘結果,然后發送至設備;(3)設備收到數據后,驗證數據是否正確。正確則通過設備認證,否則設備認證失敗。
(1)設備權限:通過設備認證后獲得設備權限。(2)用戶權限:對于每個應用,都有其使用人員,在創建應用時指定用戶密碼,用戶輸入密碼后才能對此應用進行其他操作。(3)管理員權限:創建應用時同時創建管理員密碼,管理員可管理此應用,進行用戶密碼的修改,重置和清除用戶登錄狀態。權限的使用遵循以下要求:
設備權限僅用于創建應用、刪除應用和修改設備認證密鑰。用戶權限用來創建、刪除容器、新建文件和進行簽名驗簽等操作。如果不進行校驗密碼操作,無法執行上述的接口調用。創建應用時會指定管理員密碼、用戶密碼,并設置最大的輸入錯誤次數。如果輸入次數過多達到最大錯誤次數,會將用戶密碼鎖定,即使輸入正確的密碼也無法認證成功,也無法進行相關接口的調用操作。
智能密碼鑰匙的設計應當遵守幾點安全要求:(1)設備內產生的隨機數為正隨機數,應符合隨機性檢測的要求;(2)設備內產生的會話密鑰應使用隨機數;(3)設備內產生非對稱密鑰使用的素數應滿足素性要求;(4)設備內的密鑰應具備有效的密鑰保護機制防止解剖、探測和讀取;(5)設備內的密鑰應按權限要求使用;(6)除公鑰外的密鑰不能以明文形式出現在設備外;(7)簽名私鑰必須在設備中產生;(8)容器內的私鑰不能以任何形式導出設備;(9)刪除容器時必須銷毀該容器內所有的密鑰。
(1)RSA 2048密鑰對生成一次性能:2400ms;(2)RSA 2048簽名一次性能:140ms;(3)SM2密鑰對生成一次性能:150ms;(4)SM2簽名一次性能:300ms;(5)SM3雜湊性能:12Mbps;(6)SM4加解密性能:8Mbps;(7)存儲空間:Applet支持存儲8對加密或者簽名密鑰對(按RSA2048計算)、8個對稱密鑰。
本文主要介紹了基于手機安全內置芯片的智能密碼鑰匙的設計與實現,智能密碼鑰匙功能實現后可以提供接口供第三方應用來調用,通過本軟件提供的密碼接口實現數字證書的發放、數據的加解密、數據簽名驗簽和數據雜湊等功能,可滿足各類用戶對數據安全的要求,實現用戶數據安全存儲。