用戶身份認證方法、終端和服務端的制作方法
【技術領域】
[0001]本發(fā)明實施例涉及通信技術,尤其涉及一種用戶身份認證方法、終端和服務端。
【背景技術】
[0002]現(xiàn)今智能終端越來越普及,其中一個很重要的原因就是大量應用軟件可提供用戶下載,可以擴充終端的功能。然而,如此也造成終端安全問題日益嚴重,各種惡意軟件都可能對終端造成嚴重威脅。例如,以最敏感的移動支付來說,用戶輸入的密碼有可能被惡意軟件竊取,支付的金額也有可能被篡改,這些都是很難單純透過軟件來保護的。因此,通過可信任區(qū)(TrustZone)的硬件切換隔離架構,在Trustzone的監(jiān)控器之上,利用硬件將軟件的安全模式和普通模式完全隔離,并且只通過Trustzone監(jiān)控器切換。其中,安全模式下只運行最敏感的關鍵部分(例如,與支付相關的程序代碼),盡可能減少可信計算基。具體的,將需要高度安全保護的程序部份置于安全模式運行,例如,用戶輸入密碼的界面或是確認支付的界面等。當應用程序(例如支付程序)需要用到這些界面時,便送出調用請求,以切換至安全模式,待相關支付動作運行完畢后,再將運算結果送回至普通模式的原程序。由于在安全模式操作時,獨享了許多硬件資源,因此可保障這些關鍵操作不受惡意軟件攻擊或竊取。
[0003]傳統(tǒng)的口令認證方式雖然也秉承了安全模式和普通模式分離的架構,但是口令泄露的風險太大,安全性依然不高。生物特征認證方式是目前終端認證的一個趨勢?,F(xiàn)有技術中,在遠端的指紋認證方面,一般是通過將用戶的指紋保存在終端的安全存儲區(qū),當有需要對用戶身份進行認證時(例如,網上購物需要支付時),則終端通過錄入用戶指紋,并與安全存儲區(qū)中的指紋進行比對,最后將比對結果發(fā)送給服務端(例如,支付寶平臺)。
[0004]但是,現(xiàn)有技術中,服務端太過依賴終端的比對結果,若終端被惡意軟件攻擊,惡意軟件會代替終端向服務端發(fā)送“已支付“的比對結果,實際上并未支付,這樣的“身份假冒”會導致服務端在支付方面具有很大的風險;另外,若服務端為了避免身份假冒帶來的風險而選擇自己驗證指紋,則需要終端將用戶的指紋信息發(fā)送給服務端,由服務端自己去比對,但是會造成用戶隱私泄露。
【發(fā)明內容】
[0005]本發(fā)明實施例提供一種用戶身份認證方法、終端和服務端,用以解決現(xiàn)有技術在指紋驗證過程中,由于終端被惡意軟件攻擊時造成的身份假冒以及用戶隱私泄露的技術問題。
[0006]第一方面,本發(fā)明實施例提供一種用戶身份認證方法,包括:
[0007]終端根據(jù)預設的第一生物特征處理指令集,判斷當前輸入的第一用戶生物特征是否與第二用戶生物特征匹配,獲得第一結果;其中,所述第一生物特征處理指令集為服務端配置給所述終端的,所述第二用戶生物特征為所述終端預先在所述服務端上注冊的生物特征;
[0008]所述終端判斷所述第一結果是否正確,其中,所述終端判斷所述第一結果是否正確具體包括當終端判斷第一用戶生物特征與第二用戶生物特征匹配,且第一結果中沒有攜帶第二用戶生物特征,則說明該第一結果正確;
[0009]若是,則所述終端將所述第一結果發(fā)送給所述服務端,以使所述服務端根據(jù)所述第一結果確定所述第一用戶生物特征是否通過驗證。
[0010]結合第一方面,在第一方面的第一種可能的實施方式中,所述終端根據(jù)預設的第一生物特征處理指令集,判斷當前輸入的第一用戶生物特征是否與第二用戶生物特征匹配,獲得第一結果,具體包括:
[0011]所述終端接收所述服務端發(fā)送的生物特征認證請求;其中,所述生物特征認證請求中包括所述服務端隨機生成的挑戰(zhàn)文;
[0012]所述終端根據(jù)所述第一用戶生物特征、預先存儲的第二用戶密鑰密文和第二用戶生物特征安全梗概,獲取第一用戶密鑰;其中,所述第二用戶密鑰密文為加密的第二用戶密鑰;
[0013]所述終端根據(jù)所述第一用戶密鑰對所述挑戰(zhàn)文進行簽名處理,獲得第一簽名。
[0014]結合第一方面的第一種可能的實施方式,在第一方面的第二種可能的實施方式中,所述終端判斷所述第一結果是否正確,具體包括:
[0015]所述終端根據(jù)預設的第二用戶公鑰判斷所述第一簽名是否正確;
[0016]若是,所述終端將所述第一簽名和所述第二用戶公鑰發(fā)送給所述服務端,以使所述服務端根據(jù)所述第二用戶公鑰和所述第一簽名確定所述第一用戶生物特征是否通過驗證。
[0017]結合第一方面的第一種可能的實施方式,在第一方面的第三種可能的實施方式中,所述終端根據(jù)當前輸入的第一用戶生物特征、預先存儲的第二用戶密鑰密文和第二用戶生物特征安全梗概,獲取第一用戶密鑰,具體包括:
[0018]所述終端根據(jù)所述第二用戶生物特征安全梗概和所述第一用戶生物特征,獲取第一生物特征編碼;
[0019]所述終端根據(jù)所述第一生物特征編碼的哈希值解密所述第二用戶密鑰密文,獲得所述第一用戶密鑰。
[0020]結合第一方面的第二種可能的實施方式,在第一方面的第四種可能的實施方式中,所述終端根據(jù)預設的第二用戶公鑰判斷所述第一簽名是否正確,具體包括:
[0021]所述終端根據(jù)所述第二用戶公鑰判斷所述第一簽名是否與第三簽名相同;所述第三簽名為所述終端根據(jù)所述第二用戶密鑰對所述挑戰(zhàn)文進行簽名處理得到的。
[0022]結合第一方面至第一方面的第四種可能的實施方式中的任一項,在第一方面的第五種可能的實施方式中,所述終端根據(jù)預設的第一生物特征處理指令集,判斷當前輸入的第一用戶生物特征是否與第二用戶生物特征匹配,獲得第一結果之前,還包括:
[0023]所述終端根據(jù)預設的第二生物特征處理指令集和所述第二用戶生物特征,將所述第二用戶生物特征注冊在所述服務端上;其中,所述第二生物特征處理指令集為所述服務端配置給所述終端的。
[0024]結合第一方面的第五種可能的實施方式,在第一方面的第六種可能的實施方式中,所述終端根據(jù)預設的第二生物特征處理指令集和所述第二用戶生物特征,將所述第二用戶生物特征注冊在所述服務端上,包括:
[0025]所述終端產生用戶公鑰密鑰對;其中,所述用戶公鑰密鑰對包括所述第二用戶密鑰和所述第二用戶公鑰;
[0026]所述終端接收用戶輸入的第二用戶生物特征;
[0027]所述終端根據(jù)所述第二用戶生物特征的哈希值對所述第二用戶密鑰加密,獲取所述第二用戶密鑰密文和所述第二用戶生物特征安全梗概;
[0028]所述終端保存所述第二用戶密鑰密文和所述第二用戶生物特征安全梗概。
[0029]結合第一方面的第六種可能的實施方式,在第一方面的第七種可能的實施方式中,所述終端產生用戶公鑰密鑰對之前,所述方法還包括:
[0030]所述終端向所述服務端發(fā)送生物特征注冊請求;其中,所述生物特征注冊請求包括用戶身份標識ID和終端ID ;
[0031]所述終端接收所述服務端發(fā)送的裝置密鑰密文和裝置公鑰;所述裝置密鑰密文為加密的裝置密鑰;
[0032]所述終端根據(jù)用戶輸入的用戶賬戶口令解密所述裝置密鑰密文,獲取裝置密鑰。
[0033]結合第一方面的第七種可能的實施方式,在第一方面的第八種可能的實施方式中,所述終端保存所述第二用戶密鑰密文和所述第二用戶生物特征安全梗概之后,所述方法還包括:
[0034]所述終端根據(jù)所述裝置密鑰對所述第二用戶公鑰和所述用戶ID進行簽名處理,獲得所述第二簽名;
[0035]所述終端根據(jù)所述裝置公鑰判斷所述第二簽名是否正確;
[0036]若正確,則所述終端將所述第二簽名發(fā)送給所述服務端,以使所述服務端根據(jù)所述裝置公鑰和所述第二簽名確定所述第二用戶生物特征是否注冊成功。
[0037]第二方面,本發(fā)明實施例提供一種用戶身份認證方法,包括:
[0038]服務端預先將第一生物特征處理指令集配置給終端,以使所述終端根據(jù)所述第一生物特征處理指令集,判斷所述終端當前輸入的第一用戶生物特征是否與第二用戶生物特征匹配,并獲得第一結果;其中,所述第二用戶生物特征為所述終端預先在所述服務端上注冊的生物特征;
[0039]所述服務端接收所述終端發(fā)送的所述第一結果;
[0040]所述服務端根據(jù)所述第一結果確定所述第一用戶生物特征是否通過驗證。
[0041]結合第二方面,在第二方面的第一種可能的實施方式中,所述服務端接收所述終端發(fā)送的所述第一結果之前,還包括:
[0042]所述服務端向所述終端發(fā)送攜帶挑戰(zhàn)文的生物特征認證請求,以使所述終端根據(jù)所述第一用戶生物特征、所述終端上預先存儲的第二用戶密鑰密文和第二用戶生物特征安全梗概,獲取第一用戶密鑰后,根據(jù)所述第一用戶密鑰對所述挑戰(zhàn)文進行簽名處理,獲得第一簽名;其中,所述第二用戶密鑰密文為加密的第二用戶密鑰。
[0043]結合第二方面的第一種可能的實施方式,在第二方面的第二種可能的實施方式中,所述服務端接收所述終端發(fā)送的所述第一結果,具體包括:
[0044]所述服務端接收所述終端發(fā)送的所述第一簽名和所述第二用戶公鑰;
[0045]則所述服務端根據(jù)所述第一結果確定所述第一用戶生物特征是否通過驗證,具體包括:
[0046]所述服務端根據(jù)所述第二用戶公鑰和所述第一簽名確定所述第一用戶生物特征是否通過驗證。
[0047]結合第二方面的第二種可能的實施方式,在第二方面的第三種可能的實施方式中,所述服務端預先將第一生物特征處理指令集配置給終端之前,所述方法還包括:
[0048]所述服務端將第二生物特征處理指令集配置給所述終端;
[0049]所述服務端接收所述終端發(fā)送的生物特征注冊請求;其中,所述生物特征注冊請求包括用戶身份標識ID和終端ID ;
[0050]所述服務端將裝置密鑰密文和裝置公鑰發(fā)送給所述終端,以使所述終端根據(jù)用戶輸入的用戶賬戶口令解密所述裝置密鑰密文,獲取裝置密鑰后,根據(jù)所述裝置密鑰對所述第二用戶公鑰和所述用戶ID進行簽名處理,獲得所述第二簽名;
[0051]所述服務端接收所述終端發(fā)送的第二簽名;
[0052]所述服務端根據(jù)所述裝置公鑰和所述第二簽名確定所述第二用戶生物特征是否注冊成功。
[0053]結合第二方面的第三種可能的實施方式,在第二方面的第四種可能的實施方式中,所述服務端將裝置密鑰密文和裝置公鑰發(fā)送給所述終端,具體包括:
[0054]所述服務端產生裝置公鑰密鑰對;其中,所述裝置公鑰密鑰對包括所述裝置公鑰和所述裝置密鑰;
[0055]所述服務端根據(jù)所述用戶賬戶口令的哈希值加密所述裝置密鑰,生成裝置密鑰密文;
[0056]所述服務端將所述裝置密鑰密文和所述裝置公鑰發(fā)送給所述終端。
[0057]結合第二方面的第二種可能的實施方式,在第二方面的第五種可能的實施方式中,所述服務端根據(jù)所述第二用戶公鑰和所述第一簽名確定所述第一用戶生物特征是否通過驗證,具體包括:
[0058]所述服務端根據(jù)所述第二用戶公鑰判斷所述第一簽名是否與第三簽名相同;其中,所述第三簽名為所述終端根據(jù)所述第二用戶密鑰對所述挑戰(zhàn)文進行簽名處理得到的。
[0059]第三方面,本發(fā)明實施例提供一種終端,包括:
[0060]獲取模塊,用于根據(jù)預設的第一生物特征處理指令集,判斷當前輸入的第一用戶生物特征是否與第二用戶生物特征匹配,獲得第一結果;其中,所述第一生物特征處理指令集為服務端配置給所述終端的,所述第二用戶生物特征為所述終端預先在所述服務端上注冊的生物特征;
[0061]判斷模塊,用于判斷所述第一結果是否正確,其中,所述終端判斷所述第一結果是否正確具體包括當終端判斷第一用戶生物特征與第二用戶生物特征匹配,且第一結果中沒有攜帶第二用戶生物特征,則說明該第一結果正確;
[0062]發(fā)送模塊,用于在所述判斷模塊判斷所述第一結果正確時,將所述第一結果發(fā)送給所述服務端,以使所述服務端根據(jù)所述第一結果確定所述第一用戶生物特征是否通過驗證。
[0063]結合第三方面,在第三方面的第一種可能的實施方式中,所述獲取模塊,包括:
[0064]第一接收單元,用于接收所述服務端發(fā)送的生物特征認證請求;其中,所述生物特征認證請求中包括所述服務端隨機生成的挑戰(zhàn)文;
[0065]第一獲取單元,用于根據(jù)所述第一用戶生物特征、預先存儲的第二用戶密鑰密文和第二用戶生物特征安全梗概,獲取第一用戶密鑰;其中,所述第二用戶密鑰密文為加密的第二用戶密鑰;
[0066]第二獲取單元,用于根據(jù)所述第一用戶密鑰對所述挑戰(zhàn)文進行簽名處理,獲得第一簽名。
[0067]結合第三方面的第一種可能的實施方式,在第三方面的第二種可能的實施方式中,所述判斷模塊,具體用于根據(jù)預設的第二用戶公鑰判斷所述第一簽名是否正確;
[0068]則所述發(fā)送模塊,具體用于若所述判斷模塊判斷所述第一簽名正確時,將所述第一簽名和所述第二用戶公鑰發(fā)送給所述服務端,以使所述服務端根據(jù)所述第二用戶公鑰和所述第一簽名確定所述第一用戶生物特征是否通過驗證。
[0069]結合第三方面的第一種可能的實施方式,在第三方面的第三種可能的實施方式中,所述第一獲取單元,具體用于根據(jù)所述第二用戶生物特征安全梗概和所述第一用戶生物特征,獲取第一生物特征編碼;并根據(jù)所述第一生物特征編碼的哈希值解密所述第二用戶密鑰密文,獲得所述第一用戶密鑰。
[0070]結合第三方面的第二種可能的實施方式,在第三方面的第四種可能的實施方式中,所述判斷模塊,具體用于根據(jù)所述第二用戶公鑰判斷所述第一簽名是否與第三簽名相同;所述第三簽名為所述終端根據(jù)所述第二用戶密鑰對所述挑戰(zhàn)文進行簽名處理得到的。
[0071]結合第三方面至第三方面的第四種可能的實施方式中的任一項,在第三方面的第五種可能的實施方式中,所述終端還包括:
[0072]注冊模塊,用于在所述獲取模塊根據(jù)預設的第一生物特征處理指令集,判斷當前輸入的第一用戶生物特征是否與第二用戶生物特征匹配,獲得第一結果之前,根據(jù)預設的第二生物特征處理指令集和所述第二用戶生