吳淼, 嚴則明, 黃俊
(公安部第三研究所 網(wǎng)絡身份技術事業(yè)部, 上海 201204)
近幾年隨著我國互聯(lián)網(wǎng)產(chǎn)業(yè)的飛速發(fā)展,電子商務、電子政務已經(jīng)日益成為人們?nèi)粘I钪斜夭豢缮俚牟糠?。在人們享受互?lián)網(wǎng)給我們帶來便利的同時,也逐漸暴露出不少問題:
(1) 網(wǎng)絡虛擬性、身份匿名化卻制約了互聯(lián)網(wǎng)產(chǎn)業(yè)的發(fā)展。身份認證是驗證用戶身份的真實性、防止身份偽造的重要手段。網(wǎng)絡身份認證是網(wǎng)絡安全體系的基礎,無論是數(shù)據(jù)加密、訪問控制,還是其他網(wǎng)絡安全技術都必須基于有效的身份認證[1]。
(2) 二代居民身份證讀取設備容易被不法分子利用,各個第三方服務大量存儲用戶實名信息, 具有隱私泄露的風險[2]。個人信息的大規(guī)模違規(guī)收集、不正當處理、泄露,以及猖獗的地下黑產(chǎn),使人們成為了“透明人”。各種量身定做的騙局,精準指向的廣告營銷接踵而來,個人隱私暴露在公眾面前,使個人隱私無法得到有效地保護,同時隨著云計算、大數(shù)據(jù)時代的到來,整個社會變得更加透明[3]。
(3) 雖然當前eID(公民網(wǎng)絡電子身份標識)已經(jīng)被廣泛加載到銀行卡上,但是基于銀行卡的eID在使用上來說不是非常方便,很難有效融入移動互聯(lián)網(wǎng)。
針對上述情況,設計了一種基于手機安全芯片的eID簽發(fā)系統(tǒng),有效解決上述問題。
文中主要工作如下:
(1) 設計基于手機安全芯片的eID簽發(fā)平臺;
(2) 對平臺的安全性、性能及用戶體驗進行實驗和分析。
國際上對eID的定義是“由政府頒發(fā)給公民的用于線上和線下識別身份的證件[4]”。在我國eID是以密碼技術為基礎、以智能安全芯片為載體、由“公安部公民網(wǎng)絡身份識別系統(tǒng)”簽發(fā)的公民網(wǎng)絡電子身份標識,能夠在不泄露身份信息的前提下在線遠程識別身份。
為了保證基于手機安全芯片的eID簽發(fā)系統(tǒng)重要關鍵數(shù)據(jù)的安全,提出了以下幾點安全要求:
(1) 數(shù)據(jù)傳輸報文安全:所有發(fā)送到eID簽發(fā)系統(tǒng)的數(shù)據(jù)報文和eID簽發(fā)系統(tǒng)響應的數(shù)據(jù)報文都需要防偽造、防抵賴、防冒充和防篡改;
(2) 會話密鑰安全:接入方和eID簽發(fā)中心每次傳輸隱私數(shù)據(jù)都會隨機生成一個唯一的會話密鑰,確保會話密鑰在傳輸時的安全;
(3) 存儲的安全性:包括私鑰、公鑰和會話密鑰的存儲安全,私鑰不能導出等,eID核心數(shù)據(jù)的安全存儲等;
(4) 通信信道安全:保證數(shù)據(jù)傳輸通信信道安全,即使數(shù)據(jù)在傳輸過程中被截獲也無法獲取數(shù)據(jù)的明文;
(5) eID數(shù)據(jù)在手機終端的安全:eID數(shù)據(jù)在簽發(fā)成功后最終會返回到手機終端上,要確保eID數(shù)據(jù)在手機終端上不被攻破。
基于手機安全芯片的eID簽發(fā)平臺總體拓撲結構如圖1所示。
從圖1可以看出基于手機安全芯片的eID簽發(fā)平臺共有三大部分組成,第一部分是手機終端,第二部分是手機廠商提供的后臺服務,第三部分是eID簽發(fā)中心。手機廠商后臺服務相當于手機終端和eID簽發(fā)中心的橋梁,負責處理手機終端生成的數(shù)據(jù)并將這些數(shù)據(jù)發(fā)送到eID簽發(fā)中心。eID簽發(fā)中心又劃分了3個區(qū)域,應用服務區(qū)中部署的是eID受理系統(tǒng),負責接收簽發(fā)請求,并負責一些日志記錄的功能。安全可信發(fā)行區(qū)部署的是eID簽發(fā)系統(tǒng),eID簽發(fā)系統(tǒng)是整個平臺中的核心,負責eID的簽發(fā)。安全數(shù)據(jù)存儲區(qū)部署eID各種核心數(shù)據(jù)庫。其中安全可信發(fā)行區(qū)和安全數(shù)據(jù)存儲區(qū)的安全防護級別是最高的。
基于手機安全芯片的eID簽發(fā)框架如圖2所示。
該框架由4個獨立的子系統(tǒng)構成,各個子系統(tǒng)之間使用https協(xié)議通訊,同時為了保障eID的自主可控、安全可信,采用自主可控的國產(chǎn)安全芯片和密碼算法[5]。
一個完整的eID簽發(fā)流程如下:
(1) 用戶使用手機端的APP申請eID;
(2) 用戶將電子身份證件貼在手機的NFC區(qū)域上,在云端解密電子身份證件身份信息,通過甄別證件真?zhèn)魏螅謾C端會生成一個唯一的用戶標識(該用戶標識非證件號碼),手機端將相關數(shù)據(jù)及用戶標識發(fā)送到手機廠商的服務上;
(3) 手機廠商服務端向eID受理系統(tǒng)查詢該用戶是否有簽發(fā)過eID,若沒有簽發(fā)過eID,則可以繼續(xù)下面的簽發(fā)流程,反之提示用戶已經(jīng)簽發(fā)過eID。保證用戶eID的唯一性。
(4) 手機端進行活體檢測。采取安全手段防止手機攝像頭被劫持,確保用戶本人(活體)在操作自拍,而不是使用照片等非正常手段;
(5) 手機端將用戶的自拍照加密后通過手機廠商的服務發(fā)送至eID受理系統(tǒng)進行自拍照和電子身份證件解密照片進行比對,確定當前手機操作用戶與身份證件的“人證合一”;
圖1 系統(tǒng)總體拓撲結構
(6) 手機廠商后臺服務發(fā)送簽發(fā)eID請求到eID受理系統(tǒng),eID受理系統(tǒng)完成eID簽發(fā),并返回eID簽發(fā)指令。
當eID簽發(fā)中心完成簽發(fā)以后,手機端需要將eID簽發(fā)中心返回的eID身份數(shù)據(jù)寫入到手機安全芯片中,這樣才能保證用戶的eID身份數(shù)據(jù)的安全,為此設計了一種針對手機安全芯片的指令,通過這種指令可以有效地將eID身份信息寫入安全芯片中。指令的結構如圖3所示。
圖2 基于手機安全芯片的eID簽發(fā)框架
圖3 安全芯片寫入eID指令結構
手機端接收到eID簽發(fā)指令后,使用指令中的KIC對應的密鑰解密指令,隨后使用KIC對應的密鑰驗證指令的MAC值,在驗證無誤的情況下,將CMD中的eID憑據(jù)、加密身份信息及脫敏身份信息寫入到安全芯片中,至此就完成了手機端寫入eID數(shù)據(jù)的過程。
測試環(huán)境如下:
(1) eID受理系統(tǒng):24核CPU,126G內(nèi)存,CentOS 7.5操作系統(tǒng),共2臺服務器;
(2) eID簽發(fā)系統(tǒng):24核CPU,126G內(nèi)存,CentOS 7.5操作系統(tǒng),共2臺服務器;
(3) eID核心數(shù)據(jù)庫服務器:24核CPU,126G內(nèi)存,CentOS 7.5操作系統(tǒng),主從配置。
測試工具:JMeter。
性能要求:150個并發(fā)下,平均響應時間小于2秒,并且99%事務響應時間小于2秒。
(1) 150個并發(fā):平均響應時間1 214毫秒,99%事務1 978毫秒,tps 146,如圖4所示。
(2) 250個并發(fā):平均響應時間1 350毫秒,99%事務1 871毫秒,tps 177,如圖5所示。
(3) 300個并發(fā):平均響應時間1 397毫秒,99%事務1 738毫秒,tps 205,如圖6所示。
圖4 性能測試
圖5 性能測試
圖6 性能測試
從上面的性能測試結果看出eID簽發(fā)完全符合預定的性能要求。
(1) 數(shù)據(jù)傳輸報文安全。在傳輸數(shù)據(jù)報文的時候,發(fā)送方使用自己的SM2私鑰對報文做簽名,接收方使用發(fā)送方的SM2公鑰驗證報文簽名,這樣能確保報文傳輸?shù)耐暾胺乐辜倜啊?/p>
(2) SM4會話密鑰安全:SM4會話密鑰是用來加密每次請求中的隱私數(shù)據(jù),例如用戶的自拍照片等。接入方和eID簽發(fā)中心每次傳輸隱私數(shù)據(jù)都會隨機生成一個唯一的會話密鑰,SM4會話密鑰每次都是隨機的。SM4會話密鑰的傳輸使用數(shù)字信封的方式,用SM2加密算法加密后傳輸。
(3) 存儲的安全性:密鑰存放在加密機中,并且不可導出,確保密鑰的安全。eID核心數(shù)據(jù)庫部署在安全級別最高的屏蔽機房中的安全存儲區(qū),同時數(shù)據(jù)庫中不保存任何明文的隱私信息,所有信息都進過加密機加密或者HASH處理。
(4) eID數(shù)據(jù)在手機終端的安全:eID數(shù)據(jù)存放在手機的安全芯片中。當某個第三方手機APP需要驗證人員身份時,驗證過程在手機安全芯片和eID簽發(fā)中心之間完成,不會把隱私信息上傳至第三方APP的服務器上,最大程度保證用戶隱私信息安全。
文中設計了一種面向手機安全芯片的eID簽發(fā)方法。實驗表面該方法能有效地將eID簽發(fā)到手機安全芯片中,具有很高的安全性和實用性,能有效保證用戶的隱私安全。目前基于該方法的eID簽發(fā)平臺已經(jīng)商用,后續(xù)將會接入更多的移動終端設備。