本發(fā)明屬于身份認證技術(shù)領(lǐng)域,尤其涉及在身份認證過程中的一種基于生物特征的安全校驗方法及客戶端、服務(wù)器。
背景技術(shù):
傳統(tǒng)的密碼校驗過程中需要輸入密碼,每次輸入密碼的過程中,都存在泄漏風險,如鍵盤記錄木馬、物理窺視等。由于指紋具有穩(wěn)定性強、個人唯一、算法準確性高等特點,近年來很多設(shè)備都開始采用指紋校驗的功能,例如通過指紋校驗實現(xiàn)在線支付,可以提高用戶體驗,增加支付安全性。
在現(xiàn)有技術(shù)中,在線指紋校驗過程中客戶端將用戶的指紋數(shù)據(jù)(指紋圖像或指紋特征數(shù)據(jù))發(fā)送到服務(wù)器端,在服務(wù)器端和用戶原來的指紋數(shù)據(jù)進行比較,完成校驗。因為需要把指紋數(shù)據(jù)傳輸?shù)椒?wù)器端,上傳過程中存在指紋數(shù)據(jù)泄漏風險,指紋數(shù)據(jù)為個人隱私數(shù)據(jù),用戶不一定同意上傳,同時泄漏會造成聲譽風險。即使用戶同意上傳指紋數(shù)據(jù),在指紋數(shù)據(jù)上傳過程中還要耗費網(wǎng)絡(luò)流量,服務(wù)器端也需要比對指紋數(shù)據(jù),需耗費額外的計算資源及存儲資源。
技術(shù)實現(xiàn)要素:
本發(fā)明的目的是提供一種基于生物特征的安全校驗方法及客戶端、服務(wù)器,以避免現(xiàn)有技術(shù)校驗過程中存在的上述耗費網(wǎng)絡(luò)流量、存在個人指紋數(shù)據(jù)泄露風險等技術(shù)問題,并提高安全性。
為了實現(xiàn)上述目的,本發(fā)明技術(shù)方案如下:
一種基于生物特征的安全校驗方法,應(yīng)用于身份認證系統(tǒng)中的客戶端,所述身份認證系統(tǒng)還包括服務(wù)器端,所述客戶端保存有開通記錄,所 述開通記錄包含有開通生物特征校驗過程中獲取的用于生物特征校驗的生物特征模版ID,所述安全校驗方法包括:
向服務(wù)器端發(fā)送認證請求,接收服務(wù)器端返回的認證請求應(yīng)答消息;
接收用戶輸入的生物特征,獲取該生物特征對應(yīng)的生物特征模版ID,將獲取的所述生物特征模版ID與保存的開通記錄中的生物特征模版ID進行比對,如果吻合則生成包括該獲取的生物特征模版ID的認證響應(yīng)消息,向服務(wù)器端發(fā)送認證響應(yīng)消息,以便服務(wù)器端接收所述認證響應(yīng)消息進行校驗。
其中,所述開通生物特征校驗過程包括:
向服務(wù)器端發(fā)送開通生物特征校驗的開通請求,接收服務(wù)器端返回的開通請求應(yīng)答消息;
接收用戶輸入的用于校驗的生物特征,獲取該用于校驗的生物特征對應(yīng)的生物特征模版ID,生成開通記錄保存;
生成包括所述生物特征模版ID的開通響應(yīng)消息,向服務(wù)器端發(fā)送開通響應(yīng)消息,以便服務(wù)器端接收所述開通響應(yīng)消息,獲取其中包含的所述生物特征模版ID生成用戶記錄保存。
進一步地,所述服務(wù)器端以約定的第一私鑰對所述認證請求應(yīng)答消息或開通請求應(yīng)答消息進行簽名,則客戶端在接收到所述認證請求應(yīng)答消息之后,還包括:
以約定的第一公鑰對接收的認證請求應(yīng)答消息進行校驗,如果校驗通過才進行后續(xù)的響應(yīng),否則報錯;
則客戶端在接收到所述開通請求應(yīng)答消息之后,還包括:
以約定的第一公鑰對接收的開通請求應(yīng)答消息進行校驗,如果校驗通過才進行后續(xù)的響應(yīng),否則報錯。
通過本步驟,可以進一步加強開通過程中的安全性,防止偽造開通過程。
進一步地,所述開通請求應(yīng)答消息中攜帶有挑戰(zhàn)值,所述開通生物特征校驗過程還包括:
生成包括用戶私鑰和用戶公鑰的用戶公私鑰對,保存用戶私鑰;
根據(jù)開通請求應(yīng)答消息中的挑戰(zhàn)值選擇簽名算法,并使用選擇的簽名算法和約定的第二私鑰對生成的開通響應(yīng)消息進行簽名后發(fā)送給服務(wù)器端,所述開通響應(yīng)消息包括用戶公鑰,以便服務(wù)器端接收所述開通響應(yīng)消息并使用約定第二公鑰進行校驗,在服務(wù)器端保存用戶公鑰。
進一步地,所述認證請求應(yīng)答消息中攜帶有挑戰(zhàn)值,所述安全校驗方法還包括:
根據(jù)所述挑戰(zhàn)值選擇簽名算法,用選擇的簽名算法和所述用戶私鑰對認證響應(yīng)消息進行簽名,以便所述服務(wù)器端在接收到所述認證響應(yīng)消息后,同樣根據(jù)所述挑戰(zhàn)值選擇簽名算法和所述用戶公鑰對認證響應(yīng)消息進行校驗。
通過在開通生物特征校驗過程中生成用戶密鑰對,并在認證過程中使用選擇的簽名算法和用戶密鑰對來進行校驗,增強了安全性,防止偽造消息的重放攻擊。
進一步地,所述開通請求應(yīng)答消息還包括用戶ID,所述客戶端在接收到所述開通請求應(yīng)答消息后,還包括:
將所述用戶ID保存在所述開通記錄中,并且在客戶端生成的開通響應(yīng)消息中還包括所述用戶ID,以便所述服務(wù)器端在接收到所述開通響應(yīng)消息后,獲取其中的用戶ID并將其保存在所述用戶記錄中。
所述開通響應(yīng)消息還包括客戶端設(shè)備ID,以便所述服務(wù)器端在接收到所述開通請求應(yīng)答消息后,獲取其中的設(shè)備ID并將其保存在所述用戶記錄中。
所述認證請求應(yīng)答消息還包括用戶ID,所述在接收用戶輸入的生物特征,獲取該生物特征對應(yīng)的生物特征模版ID之后,還包括:
根據(jù)用戶ID查找到對應(yīng)的開通記錄,以便將獲取的所述生物特征模版ID與該查找到的開通記錄中的生物特征模版ID進行比對;
在客戶端生成的認證響應(yīng)消息中還包括所述用戶ID,以便所述服務(wù)器端在接收到所述認證響應(yīng)消息后,獲取其中的用戶ID并根據(jù)所述用戶ID查找到對應(yīng)的用戶記錄。
所述認證響應(yīng)消息還包括客戶端設(shè)備ID,以便所述服務(wù)器端在接收 到所述認證響應(yīng)消息后,獲取所述認證響應(yīng)消息中的設(shè)備ID,根據(jù)所述設(shè)備ID查找到對應(yīng)的用戶記錄。
通過上述步驟,能支持一個終端設(shè)備支持多個用戶,或一個用戶具有多個終端設(shè)備的情況,根據(jù)用戶ID或設(shè)備ID來找到對應(yīng)的開通記錄或者用戶記錄來進行對比校驗。
本發(fā)明還提出了一種基于生物特征的安全校驗方法,應(yīng)用于身份認證系統(tǒng)中的服務(wù)器端,所述身份認證系統(tǒng)還包括客戶端,所述服務(wù)器端保存有用戶記錄,所述用戶記錄包含有開通生物特征校驗過程中獲取的用于生物特征校驗的生物特征模版ID,所述安全校驗方法包括:
接收來自客戶端的認證請求,向客戶端發(fā)送認證請求應(yīng)答消息;
接收來自客戶端的認證響應(yīng)消息,所述認證響應(yīng)消息包括生物特征模版ID;
將所述認證響應(yīng)消息中的生物特征模版ID與保存的用戶記錄中的生物特征模版ID進行比對校驗,如果一致則校驗通過,否則報錯。
其中,所述開通生物特征校驗過程包括:
接收來自客戶端的開通生物特征校驗的開通請求,向客戶端發(fā)送開通請求應(yīng)答消息,以便客戶端根據(jù)用戶輸入的用于校驗的生物特征,獲取該用于校驗的生物特征對應(yīng)的生物特征模版ID,生成開通記錄保存;
接收來自客戶端的開通響應(yīng)消息,獲取所述開通響應(yīng)消息包括的生物特征模版ID,生成用戶記錄保存。
進一步地,所述安全校驗方法還包括:
以約定的第一私鑰對所述認證請求應(yīng)答消息或開通請求應(yīng)答消息進行簽名,以便所述客戶端以約定的第一公鑰對接收的認證請求應(yīng)答消息進行校驗,如果校驗通過才進行后續(xù)的響應(yīng),否則報錯,或以約定的第一公鑰對接收的開通請求應(yīng)答消息進行校驗,如果校驗通過才進行后續(xù)的響應(yīng),否則報錯。通過本步驟,可以進一步加強開通過程中的安全性,防止偽造開通過程。
進一步地,所述開通請求應(yīng)答消息中攜帶有挑戰(zhàn)值,所述客戶端生成包括用戶私鑰和用戶公鑰的用戶公私鑰對,保存用戶私鑰,所述開通生物 特征校驗過程還包括:
接收客戶端根據(jù)開通請求應(yīng)答消息中的挑戰(zhàn)值選擇簽名算法,并使用選擇的簽名算法和約定的第二私鑰簽名的開通響應(yīng)消息,所述開通響應(yīng)消息包括用戶公鑰,同樣根據(jù)挑戰(zhàn)值選擇簽名算法,并使用第二公鑰校驗開通響應(yīng)消息,在服務(wù)器端保存用戶公鑰。
進一步地,所述安全校驗方法還包括:
接收客戶端根據(jù)認證請求應(yīng)答消息中的挑戰(zhàn)值選擇簽名算法,并使用選擇的簽名算法和用戶私鑰進行簽名的認證響應(yīng)消息,同樣根據(jù)挑戰(zhàn)值選擇簽名算法和用戶公鑰校驗認證響應(yīng)消息的簽名。
通過在開通生物特征校驗過程中生成用戶密鑰對,并在認證過程中使用選擇的簽名算法和用戶密鑰對來進行校驗,增強了安全性,防止偽造消息的重放攻擊。
進一步地,所述開通請求應(yīng)答消息還包括用戶ID,以便所述客戶端在接收到所述開通請求應(yīng)答消息后,將所述用戶ID保存在所述開通記錄中,并且在客戶端生成的開通響應(yīng)消息中還包括所述用戶ID,則所述服務(wù)器端在接收到所述開通響應(yīng)消息后,還包括:
從所述開通響應(yīng)消息中獲取用戶ID,將所述用戶ID保存在所述用戶記錄中。
所述開通響應(yīng)消息還包括客戶端設(shè)備ID,所述服務(wù)器端在接收到所述開通響應(yīng)消息后,還包括:
從所述開通響應(yīng)消息中獲取設(shè)備ID,將所述設(shè)備ID保存在所述用戶記錄中。
所述認證請求應(yīng)答消息還包括用戶ID,以便所述客戶端根據(jù)用戶ID查找到對應(yīng)的開通記錄,將獲取的所述生物特征模版ID與該查找到的開通記錄中的生物特征模版ID進行比對,并在客戶端生成的認證響應(yīng)消息中還包括所述用戶ID,所述服務(wù)器端在接收到所述認證響應(yīng)消息后,還包括:
獲取所述認證響應(yīng)消息中的用戶ID,根據(jù)所述用戶ID查找到對應(yīng)的用戶記錄。
所述認證響應(yīng)消息還包括客戶端設(shè)備ID,所述服務(wù)器端在接收到所述認證響應(yīng)消息后,還包括:
獲取所述認證響應(yīng)消息中的設(shè)備ID,根據(jù)所述設(shè)備ID查找到對應(yīng)的用戶記錄。
本發(fā)明還提出了一種客戶端,應(yīng)用于身份認證系統(tǒng),所述身份認證系統(tǒng)還包括服務(wù)器端,所述客戶端保存有開通記錄,所述開通記錄包含有開通生物特征校驗過程中獲取的用于生物特征校驗的生物特征模版ID,所述客戶端包括:
請求模塊,用于向服務(wù)器端發(fā)送認證請求,接收服務(wù)器端返回的認證請求應(yīng)答消息;
響應(yīng)模塊,用于接收用戶輸入的生物特征,獲取該生物特征對應(yīng)的生物特征模版ID,將獲取的所述生物特征模版ID與保存的開通記錄中的生物特征模版ID進行比對,如果吻合則生成包括獲取的生物特征模版ID的認證響應(yīng)消息,向服務(wù)器端發(fā)送認證響應(yīng)消息,以便服務(wù)器端接收所述認證響應(yīng)消息進行校驗。
進一步地,所述請求模塊還用于向服務(wù)器端發(fā)送開通生物特征校驗的開通請求,接收服務(wù)器端返回的開通請求應(yīng)答消息;所述響應(yīng)模塊還用于接收用戶輸入的用于校驗的生物特征,獲取該用于校驗的生物特征對應(yīng)的生物特征模版ID,生成開通記錄保存,生成包括所述生物特征模版ID的開通響應(yīng)消息,向服務(wù)器端發(fā)送開通響應(yīng)消息,以便服務(wù)器端接收所述開通響應(yīng)消息,獲取其中包含的所述生物特征模版ID生成用戶記錄保存。
進一步地,所述服務(wù)器端以約定的第一私鑰對所述認證請求應(yīng)答消息或開通請求應(yīng)答消息進行簽名,則所述請求模塊在接收到所述認證請求應(yīng)答消息之后,還用于以約定的第一公鑰對接收的認證請求應(yīng)答消息進行校驗,如果校驗通過才進行后續(xù)的響應(yīng),否則報錯;所述請求模塊在接收到所述開通請求應(yīng)答消息之后,還用于以約定的第一公鑰對接收的開通請求應(yīng)答消息進行校驗,如果校驗通過才進行后續(xù)的響應(yīng),否則報錯。
本發(fā)明所述開通請求應(yīng)答消息中攜帶有挑戰(zhàn)值,所述響應(yīng)模塊還用于生成包括用戶私鑰和用戶公鑰的用戶公私鑰對,保存用戶私鑰;根據(jù)開通 請求應(yīng)答消息中的挑戰(zhàn)值選擇簽名算法,并使用選擇的簽名算法和約定的第二私鑰對生成的開通響應(yīng)消息進行簽名后發(fā)送給服務(wù)器端,所述開通響應(yīng)消息包括用戶公鑰,以便服務(wù)器端接收所述開通響應(yīng)消息并使用約定第二公鑰進行校驗,在服務(wù)器端保存用戶公鑰。
進一步地,所述認證請求應(yīng)答消息中攜帶有挑戰(zhàn)值,所述響應(yīng)模塊還用于根據(jù)所述挑戰(zhàn)值選擇簽名算法,用選擇的簽名算法和所述用戶私鑰對認證響應(yīng)消息進行簽名,以便所述服務(wù)器端在接收到所述認證響應(yīng)消息后,同樣根據(jù)所述挑戰(zhàn)值選擇簽名算法和所述用戶公鑰對認證響應(yīng)消息進行校驗。
本發(fā)明還提出了一種服務(wù)器,應(yīng)用于身份認證系統(tǒng),所述身份認證系統(tǒng)還包括客戶端,所述服務(wù)器保存有用戶記錄,所述用戶記錄包含有開通生物特征校驗過程中獲取的用于生物特征校驗的生物特征模版ID,所述服務(wù)器包括:
應(yīng)答模塊,用于接收來自客戶端的認證請求,向客戶端發(fā)送認證請求應(yīng)答消息;
校驗?zāi)K,用于接收來自客戶端的認證響應(yīng)消息,所述認證響應(yīng)消息包括生物特征模版ID,將所述認證響應(yīng)消息中的生物特征模版ID與保存的用戶記錄中的生物特征模版ID進行比對校驗,如果一致則校驗通過,否則報錯。
進一步地,所述應(yīng)答模塊還用于接收來自客戶端的開通生物特征校驗的開通請求,向客戶端發(fā)送開通請求應(yīng)答消息,以便客戶端根據(jù)用戶輸入的用于校驗的生物特征,獲取該用于校驗的生物特征對應(yīng)的生物特征模版ID,生成開通記錄保存;所述校驗?zāi)K還用于接收來自客戶端的開通響應(yīng)消息,獲取所述開通響應(yīng)消息包括的生物特征模版ID,生成用戶記錄保存。
進一步地,所述應(yīng)答模塊還用于以約定的第一私鑰對所述認證請求應(yīng)答消息或開通請求應(yīng)答消息進行簽名,以便所述客戶端以約定的第一公鑰對接收的認證請求應(yīng)答消息進行校驗,如果校驗通過才進行后續(xù)的響應(yīng),否則報錯,或以約定的第一公鑰對接收的開通請求應(yīng)答消息進行校驗,如 果校驗通過才進行后續(xù)的響應(yīng),否則報錯。
本發(fā)明所述開通請求應(yīng)答消息中攜帶有挑戰(zhàn)值,所述客戶端生成包括用戶私鑰和用戶公鑰的用戶公私鑰對,保存用戶私鑰,所述校驗?zāi)K還用于接收客戶端根據(jù)開通請求應(yīng)答消息中的挑戰(zhàn)值選擇簽名算法,并使用選擇的簽名算法和約定的第二私鑰簽名的開通響應(yīng)消息,所述開通響應(yīng)消息包括用戶公鑰,同樣根據(jù)挑戰(zhàn)值選擇簽名算法,并使用第二公鑰校驗開通響應(yīng)消息,保存用戶公鑰。
進一步地,所述校驗?zāi)K還用于接收客戶端根據(jù)認證請求應(yīng)答消息中的挑戰(zhàn)值選擇簽名算法,并使用選擇的簽名算法和用戶私鑰進行簽名的認證響應(yīng)消息,同樣根據(jù)挑戰(zhàn)值選擇簽名算法和用戶公鑰校驗認證響應(yīng)消息的簽名。
本發(fā)明一種基于生物特征的安全校驗方法及客戶端、服務(wù)器,實現(xiàn)在客戶端的指紋校驗、指紋模版存儲、校驗過程在可信執(zhí)行環(huán)境(TEE)中進行,和普通硬件完全隔離,無隱私泄漏風險。同時減少傳輸指紋數(shù)據(jù)過程中網(wǎng)絡(luò)流量,同時在服務(wù)器端也只比較指紋模版ID,減少服務(wù)器端計算開銷及存儲開銷。開通指紋校驗時與具體指紋模版綁定,開通后添加的新指紋模版不能用于校驗,增加安全性。通過選擇的簽名算法進一步增強驗證過程的安全性,防止偽造消息的網(wǎng)絡(luò)攻擊。
附圖說明
圖1為本發(fā)明開通生物特征校驗過程流程圖;
圖2為本發(fā)明基于生物特征的安全校驗方法流程圖;
圖3為本發(fā)明客戶端結(jié)構(gòu)示意圖;
圖4為本發(fā)明服務(wù)器結(jié)構(gòu)示意圖。
具體實施方式
下面結(jié)合附圖和實施例對本發(fā)明技術(shù)方案做進一步詳細說明,以下實施例不構(gòu)成對本發(fā)明的限定。
在基于生物特征的校驗中,通過指紋識別、語音識別、臉部識別、虹 膜識別等技術(shù)手段來進行身份認證越來越普遍。這種生物特征校驗應(yīng)用的范圍很廣,例如在門禁系統(tǒng)中,或互聯(lián)網(wǎng)支付中。本實施例以互聯(lián)網(wǎng)支付中的指紋校驗為例來詳細描述本發(fā)明一種基于生物特征的安全校驗方法。
有別于在線指紋校驗,本實施例的互聯(lián)網(wǎng)支付中的指紋校驗,在用戶的客戶端完成指紋的比對,并在服務(wù)器端進一步進行結(jié)果校驗,通過雙重保護來保證指紋校驗的有效性。本實施例的客戶端一般為應(yīng)用程序,安裝在用戶的移動終端、電腦或其他智能設(shè)備中,有些客戶端直接是服務(wù)商提供的網(wǎng)頁結(jié)合指紋掃描終端。
本實施例的指紋校驗方法,包括指紋校驗開通過程、校驗過程,以下分別進行說明。
實施例一、指紋校驗的開通過程。
互聯(lián)網(wǎng)支付的指紋校驗首先需要開通指紋校驗功能,如圖1所示,包括如下步驟:
①、客戶端向服務(wù)器端發(fā)送開通指紋校驗的開通請求。
當用戶開通指紋校驗功能時,首先向服務(wù)器端發(fā)起開通請求。
②、服務(wù)器端接收到開通指紋校驗的開通請求后,向客戶端發(fā)送開通請求應(yīng)答消息。
③、客戶端在收到開通請求應(yīng)答消息后,接收用戶輸入的用于校驗的指紋圖像,獲取該用于校驗的指紋圖像對應(yīng)的指紋模版ID。
在開通指紋校驗之前,用戶的客戶端設(shè)備上存儲了用戶錄入的多個指紋模版,該指紋模版是從指紋圖像提取的指紋特征。在開通指紋校驗功能時,用戶將用來進行指紋校驗的手指的指紋圖像輸入到客戶端,例如將該手指放在指紋掃描設(shè)備上,獲取指紋圖像,提取出指紋特征,從而與客戶端已經(jīng)存儲的指紋模版進行對比,獲取對應(yīng)的指紋模版ID。
如果在開通指紋校驗之前,用戶的客戶端設(shè)備上沒有存儲任何用戶的指紋模版,這里也可以直接錄入用戶用來進行指紋校驗的指紋圖像,生成指紋模版及指紋模版ID,獲取該指紋模版ID。
④、客戶端保存開通記錄,開通記錄包括指紋模版ID。
開通記錄是保存在客戶端設(shè)備中的記錄,包含開通時用戶用來進行指 紋校驗的指紋模版ID,用于在后續(xù)步驟的指紋校驗中,與輸入的指紋模版ID進行對比,看輸入的指紋模版ID是否與最初開通時的指紋模版ID一致。即只有采用開通時輸入的指紋模版ID才能在后續(xù)校驗中應(yīng)用,不能夠通過破解用戶的開機密碼修改用于校驗的指紋模版ID,從而保證了即使用戶客戶端設(shè)備丟失,也不必擔心密碼被破解而被不法分子冒用。
⑤、客戶端生成包括開通記錄中指紋模版ID的開通響應(yīng)消息,向服務(wù)器端發(fā)送開通響應(yīng)消息。
本實施例將開通記錄中的指紋模版ID攜帶在開通響應(yīng)消息中發(fā)送到服務(wù)器端,以便在服務(wù)器端保存上述信息。
⑥、服務(wù)器端接收開通響應(yīng)消息,生成用戶記錄保存,用戶記錄中包括該用戶的指紋模版ID。
從而在服務(wù)器端接收到客戶端發(fā)來的開通響應(yīng)消息,在服務(wù)器端用戶記錄保存,用戶記錄中包括該用戶的指紋模版ID。在服務(wù)器端保存用戶記錄,以便在后續(xù)的校驗過程中進行結(jié)果校驗。
優(yōu)選地,為了進一步地增加開通過程中的安全性,本實施例的步驟②中,還包括如下步驟:
服務(wù)器端采用第一私鑰對開通請求應(yīng)答消息進行加密。
從而在客戶端接收到開通請求應(yīng)答消息后,需要對開通請求應(yīng)答消息進行校驗。一般來說,在客戶端與服務(wù)器端約定有服務(wù)器公私鑰對,包括第一公鑰和第一私鑰,第一公鑰保存在客戶端,第一私鑰保存在服務(wù)器端。服務(wù)器端在采用第一私鑰對開通請求應(yīng)答消息進行加密后發(fā)送到客戶端,客戶端用第一公鑰解密進行校驗,校驗通過則進行后續(xù)的步驟,否則報錯。這里用到的加密算法可以為對稱算法、非對稱算法、摘要算法等。
從而在本實施例的步驟③中,還包括步驟:
客戶端采用第一公鑰校驗開通請求應(yīng)答消息,如果校驗通過才進行后續(xù)的響應(yīng),否則報錯。
即客戶端在接收到開通請求應(yīng)答消息后,用第一公鑰解密進行校驗,校驗通過則進行后續(xù)的步驟,否則報錯。需要注意的是,在一般安全要求不高的情況下,也可以省略對開通請求應(yīng)答消息的校驗過程,第一公鑰和 第一私鑰始終不變,對于任意的客戶端都一樣。
本實施例的客戶端上如果開通了多個用戶,例如多個用戶共用一個客戶端,則開通記錄中需要包含用戶ID,以便區(qū)分不同用戶的開通記錄。然而由于客戶端容易被黑客攻擊篡改用戶ID,因此本實施例在開通請求應(yīng)答消息中包括用戶ID,由于開通請求應(yīng)答消息經(jīng)過了加密簽名,能有效防止在開通請求應(yīng)答消息的傳送過程中被篡改,通過在開通請求應(yīng)答消息中包含用戶ID,并采用該用戶ID來生成開通記錄,能有效保證開通記錄中記錄了正確的用戶ID及其對應(yīng)的指紋模版ID,從而保證了后續(xù)步驟中校驗的正確性。
因此本實施例的開通請求應(yīng)答消息中進一步包含用戶ID,并在開通記錄中包含用戶ID和指紋模版ID,在開通響應(yīng)消息中也包含用戶ID和指紋模版ID,從而在服務(wù)器端接收到開通響應(yīng)消息后,獲取用戶ID和指紋模版ID,并生成用戶記錄保存,用戶記錄中包括用戶ID和指紋模版ID。
則當用戶用用戶ID登錄后,根據(jù)用戶ID來找對應(yīng)的開通記錄,能夠根據(jù)用戶ID來匹配其開通記錄中的指紋模版ID,能夠支持多用戶共用一個客戶端。同理在服務(wù)器端,也根據(jù)用戶ID來查找用戶記錄,比對其對應(yīng)的指紋模版ID進行校驗。
進一步地,當用戶有多個終端設(shè)備,為了區(qū)分不同的終端設(shè)備,在開通響應(yīng)消息中還包含了設(shè)備ID,能夠進一步區(qū)分用戶的不同設(shè)備。從而在服務(wù)器端存儲包括用戶ID、設(shè)備ID和指紋模版ID的用戶記錄。當用戶具有多個設(shè)備時,對應(yīng)用戶的不同設(shè)備,在服務(wù)器端保存不同的用戶記錄,從而能夠識別校驗。同理,當用戶使用不同的終端設(shè)備,基于本發(fā)明的上述步驟,能夠區(qū)分用戶的不同終端設(shè)備,進行校驗。即在比對時,還根據(jù)設(shè)備ID來找到對應(yīng)的開通記錄和用戶記錄,分別與匹配的開通記錄和用戶記錄中的指紋模版ID進行比對校驗。
優(yōu)選地,為了進一步防止在校驗過程中的重放攻擊,在本實施例的開通過程中,還采用挑戰(zhàn)應(yīng)答方式來進一步增強安全性。即在步驟②中,開通請求應(yīng)答消息還攜帶有挑戰(zhàn)值。挑戰(zhàn)應(yīng)答方式是身份認證中常用的方法之一,因此服務(wù)器端接收來自客戶端的開通請求后,生成挑戰(zhàn)值,向客戶 端發(fā)送攜帶挑戰(zhàn)值的開通請求應(yīng)答消息,后續(xù)步驟通過驗證應(yīng)答值來進行校驗。挑戰(zhàn)值是在身份認證過程中通過隨機算法生成的,關(guān)于隨機數(shù)的生成,現(xiàn)有技術(shù)中有偽隨機算法和強隨機算法,本實施例采用強隨機算法,獲得的隨機數(shù)分布更加均勻。則客戶端在接收到開通應(yīng)答消息后,還需要生成應(yīng)答值,在開通響應(yīng)消息中攜帶應(yīng)答值發(fā)送給服務(wù)器端,服務(wù)器端需要對此進行校驗。
本實施例在步驟③之后,還包括步驟:
客戶端根據(jù)開通請求應(yīng)答消息中包含的挑戰(zhàn)值選擇簽名算法,生成用戶公私鑰對,在保存的開通記錄中包含用戶私鑰;
用選擇的簽名算法和約定的第二私鑰對開通響應(yīng)消息進行簽名,在開通響應(yīng)消息中包括生成的用戶公鑰;
同樣根據(jù)所述挑戰(zhàn)值選擇的簽名算法和約定的第二公鑰對開通響應(yīng)消息進行校驗,在校驗通過后,保存包括所述用戶公鑰的用戶記錄,如果校驗失敗則報錯。
其中根據(jù)接收的挑戰(zhàn)值來選擇簽名算法,例如可選擇的簽名算法有4中,分別為簽名算法1、簽名算法2、簽名算法3、簽名算法4。可以以挑戰(zhàn)值求余的方式選擇算法,如果挑戰(zhàn)值除以4余數(shù)為0,則選擇簽名算法1,余數(shù)為1則選擇簽名算法2,依次類推。
具體的簽名算法有安全哈希算法RAS-SHA1、RSA-SHA256等,上述簽名算法對應(yīng)有統(tǒng)一的用戶公私鑰生成算法,在開通時生成一對用戶公私鑰對,用來作為后續(xù)進行指紋驗證時的加密和解密,從而每個用戶擁有自己的用戶公私鑰對,用戶公私鑰匙對包括用戶私鑰和用戶公鑰。
在發(fā)送開通響應(yīng)消息前,本實施例采用選擇的簽名算法和約定的第二私鑰對開通響應(yīng)消息進行簽名,這里的第二私鑰是客戶端硬件所決定的,相應(yīng)地在服務(wù)器端具有對應(yīng)的第二公鑰。
需要說明的是,本實施例以挑戰(zhàn)值求余的方式選擇算法,也可以直接以挑戰(zhàn)值的個位數(shù)或十位數(shù)來進行選擇,或根據(jù)挑戰(zhàn)值除以4得到的值來進行選擇,本發(fā)明不限于具體選擇方式。
在服務(wù)器對開通響應(yīng)消息的校驗過程中,包括如下兩個校驗步驟:
1)、使用第二公鑰和簽名算法對簽名進行校驗。
在服務(wù)器端,根據(jù)與客戶端相同的方法對挑戰(zhàn)值求余,選擇對應(yīng)的簽名算法,同時根據(jù)約定的第二公鑰對簽名的響應(yīng)消息進行校驗。
2)、使用與客戶端相同的算法計算得到應(yīng)答值與響應(yīng)消息中的應(yīng)答值進行比較校驗。
在指紋校驗過程中,客戶端在接收到開通請求應(yīng)答消息后,需要進行響應(yīng),向服務(wù)器端返回響應(yīng)消息。響應(yīng)消息中包括應(yīng)答值,該應(yīng)答值是根據(jù)挑戰(zhàn)值按照固定的算法計算得到的,以便服務(wù)器端根據(jù)同樣的算法計算得到應(yīng)答值進行比較校驗。
從而在校驗通過后,服務(wù)器端保存對應(yīng)的用戶記錄,服務(wù)器端保存的用戶記錄包括用戶ID、設(shè)備ID、用戶公鑰、指紋模版ID,以便在后續(xù)的校驗過程中進行結(jié)果校驗。
本實施例中開通請求應(yīng)答消息包括用戶ID和挑戰(zhàn)值,開通記錄包括用戶私鑰、用戶ID和指紋模版ID,而開通響應(yīng)消息包括用戶公鑰、用戶ID、設(shè)備ID和指紋模版ID,在服務(wù)器端保存的用戶記錄包括用戶ID、設(shè)備ID、指紋模版ID和用戶公鑰。
實施例二、用戶在使用過程中的指紋認證過程。
用戶在使用該互聯(lián)網(wǎng)支付時,需要校驗用戶的指紋,如圖2所示,執(zhí)行如下步驟:
(1)、客戶端向服務(wù)器端發(fā)送給認證請求,服務(wù)器端獲取來自客戶端的認證請求。
(2)、服務(wù)器端接收到認證請求后,向客戶端發(fā)送認證請求應(yīng)答消息。
(3)、客戶端在收到認證請求應(yīng)答消息后,接收用戶輸入的用于校驗的指紋圖像,獲取該用于校驗的指紋圖像對應(yīng)的指紋模版ID,與客戶端保存的開通記錄中的指紋模版ID進行比對,如果吻合則進入下一步,否則報錯。
在支付過程中的指紋校驗,用戶只需根據(jù)提示界面,將用來支付的手指放在指紋掃描器上,輸入用于校驗的指紋圖像??蛻舳藦拇鎯Φ闹讣y模版中找到對應(yīng)的指紋模版,獲取該指紋模版ID,根據(jù)用戶ID找到對應(yīng)的 開通記錄,與開通記錄中的指紋模版進行比對。如果獲得指紋模版ID與開通記錄中的一致,則校驗通知,否則報錯,校驗不通過。
例如,用戶在開通指紋驗證功能時使用的是食指,那么在開通記錄中保存的就是“食指”的指紋模版ID,在驗證時,先識別用戶在終端中輸入的指紋所對應(yīng)的指紋模版ID是否為“食指”的指紋模版ID,即是否與開通記錄中保存的指紋模版ID一致。
本實施例在客戶端本地進行指紋模版ID的比對,不用在網(wǎng)絡(luò)中傳輸用戶的指紋,避免了用戶生物特征的泄漏。
(4)、客戶端生成包括獲取的指紋模版ID的認證響應(yīng)消息,向服務(wù)器端發(fā)送認證響應(yīng)消息。
(5)服務(wù)器端接收認證響應(yīng)消息,與本地保存的對應(yīng)用戶記錄中的指紋模版ID進行比對,如果吻合則校驗通過,否則報錯。
本實施例的指紋認證過程,客戶端在進行指紋校驗后,僅需要將指紋模版ID而不是指紋模版發(fā)送到服務(wù)器端,由服務(wù)器端與用戶記錄中的指紋模版ID進行再次對比,通過兩次對比進一步進行指紋認證,更加安全。同時傳輸?shù)氖侵讣y模版ID,傳輸過程中的傳輸流量也比較少,并且服務(wù)器端的計算量也小。
與實施例一相同的是,為了區(qū)分用戶和用戶的終端設(shè)備,在認證請求應(yīng)答消息中包括用戶ID,以便在客戶端本地根據(jù)用戶ID查找到對應(yīng)的開通記錄,并與其中的指紋模版ID進行對比。同時認證響應(yīng)消息中包含設(shè)備ID、用戶ID以及指紋模版ID,服務(wù)器端據(jù)此找到對應(yīng)的用戶記錄,將該指紋模版ID與本地保存的對應(yīng)用戶記錄進行比對,如果一致則認為校驗通過,結(jié)束校驗過程,否則報錯,校驗失敗。
與實施例一相同的是,在實施例二中,也可以對認證應(yīng)答消息采用第一私鑰進行加密,然后在客戶端用第一公鑰進行解密驗證。
值得注意的是,在校驗指紋的認證過程,本實施例仍然基于挑戰(zhàn)應(yīng)答方式來進行校驗。同樣在認證應(yīng)答消息中包括挑戰(zhàn)值,客戶端根據(jù)挑戰(zhàn)值選擇簽名算法,簽名算法所采用的密鑰,可以是第二私鑰,這時候在服務(wù)器端采用第二公鑰進行校驗。
優(yōu)選地,使用開通記錄中的用戶私鑰對認證響應(yīng)消息進行簽名,在服務(wù)器端,同樣根據(jù)挑戰(zhàn)值選擇簽名算法,用根據(jù)用戶記錄中的用戶公鑰對認證響應(yīng)消息進行校驗。校驗的過程同實施例一對響應(yīng)消息的校驗過程,只不過使用的密鑰不同,實施例一使用第二公鑰進行校驗,而實施例二使用用戶公鑰進行校驗。由于用戶公私鑰對對每個用戶是唯一的,進一步保證校驗過程中的安全性。
即:客戶端根據(jù)所述挑戰(zhàn)值選擇簽名算法,用選擇的簽名算法和所述用戶私鑰對認證響應(yīng)消息進行簽名;服務(wù)器端在接收到認證響應(yīng)消息后,同樣根據(jù)挑戰(zhàn)值選擇簽名算法和用戶公鑰對認證響應(yīng)消息進行校驗。
與實施例一不同的是,本步驟的認證請求應(yīng)答消息中還包括業(yè)務(wù)信息,以便在客戶端接收到認證應(yīng)答消息后,在客戶端顯示業(yè)務(wù)信息。用戶可以根據(jù)顯示的業(yè)務(wù)信息判斷是否是自己正在進行指紋認證對應(yīng)的業(yè)務(wù),如果是則選擇進行繼續(xù)操作,否則可以放棄指紋認證。
無論在開通過程還是后面的校驗過程,本發(fā)明根據(jù)隨機數(shù)選擇簽名算法,不限于選擇一種簽名算法來進行簽名,也可以選擇多種算法的組合進行簽名操作,提高算法的變化。例如根據(jù)隨機數(shù)的個位數(shù)和十位數(shù),選擇兩個簽名算法,先后進行兩次簽名來進一步增強簽名的安全性。本實施例對響應(yīng)消息進行的簽名校驗,由于是隨機的簽名算法,即使用戶私鑰泄露,由于攻擊者不知道簽名算法,也無法偽造響應(yīng)消息。
在現(xiàn)有技術(shù)中,F(xiàn)IDO聯(lián)盟推出的校驗方案包括了密碼、網(wǎng)頁插件以及校驗硬件,而校驗硬件多種多樣,例如U盤(或U盾)、NFC芯片、TPM(可信賴平臺模塊)芯片,以及指紋掃描器、語音識別、臉部識別、虹膜識別等生物識別硬件。使用FIDO聯(lián)盟的校驗方法,用戶的密碼不會被發(fā)送出去,而是由手機、電腦等設(shè)備內(nèi)部的軟件進行處理;校驗通過后,軟件發(fā)送密鑰到登錄服務(wù)器,不保存任何登陸信息;與此同時,登陸服務(wù)器發(fā)送密鑰到用戶設(shè)備告知其“已經(jīng)通過認證”。企業(yè)如果要使用FIDO的認證方式,只需要在服務(wù)器上安裝校驗軟件,然后在客戶和員工的設(shè)備上安裝相應(yīng)的插件或應(yīng)用程序即可。然而以指紋校驗為例,F(xiàn)IDO的指紋校驗的開通僅能和設(shè)備綁定,即開通指紋后,所有設(shè)備上的指紋模版,都能 完成指紋校驗,指紋開通后添加的指紋模版也能完成校驗,而一般在設(shè)備上添加指紋只需輸入簡單密碼(如4為數(shù)字密碼),成為安全短板,存在安全漏洞。同時從服務(wù)器端來的消息也沒有簽名,可以通過偽造消息對設(shè)備端模塊進行攻擊。而本發(fā)明在開通過程中存儲開通記錄和用戶記錄,在后續(xù)無法進行用于指紋校驗的指紋模版ID的更改,防止了在指紋開通后添加指紋模版;同時通過挑戰(zhàn)值選擇簽名算法,在校驗過程中增加簽名,可以防止偽造消息進行攻擊。
如圖3所示,本發(fā)明還提出了一種客戶端,應(yīng)用于身份認證系統(tǒng),所述身份認證系統(tǒng)還包括服務(wù)器端,所述客戶端保存有開通記錄,所述服務(wù)器端保存有用戶記錄,所述開通記錄和用戶記錄包含有開通生物特征校驗過程中獲取的用于生物特征校驗的生物特征模版ID,所述客戶端包括:
請求模塊,用于向服務(wù)器端發(fā)送認證請求,接收服務(wù)器端返回的認證請求應(yīng)答消息;
響應(yīng)模塊,用于接收用戶輸入的生物特征,獲取該生物特征對應(yīng)的生物特征模版ID,與本地保存的開通記錄中的生物特征模版ID進行比對,如果吻合則生成包括獲取的生物特征模版ID的認證響應(yīng)消息,向服務(wù)器端發(fā)送認證響應(yīng)消息,以便服務(wù)器端接收所述認證響應(yīng)消息,與服務(wù)器端本地保存的用戶記錄中的生物特征模版ID進行比對校驗,否則報錯。
進一步地,所述請求模塊還用于向服務(wù)器端發(fā)送開通生物特征校驗的開通請求,接收服務(wù)器端返回的開通請求應(yīng)答消息;所述響應(yīng)模塊還用于接收用戶輸入的用于校驗的生物特征,獲取該用于校驗的生物特征對應(yīng)的生物特征模版ID,生成開通記錄保存,生成包括所述生物特征模版ID的開通響應(yīng)消息,向服務(wù)器端發(fā)送開通響應(yīng)消息,以便服務(wù)器端接收所述開通響應(yīng)消息,獲取其中包含的所述生物特征模版ID生成用戶記錄保存。
進一步地,所述服務(wù)器端以約定的第一私鑰對所述認證請求應(yīng)答消息或開通請求應(yīng)答消息進行簽名,則所述請求模塊在接收到所述認證請求應(yīng)答消息之后,還用于以約定的第一公鑰對接收的認證請求應(yīng)答消息進行校驗,如果校驗通過才進行后續(xù)的響應(yīng),否則報錯;所述請求模塊在接收到所述開通請求應(yīng)答消息之后,還用于以約定的第一公鑰對接收的開通請求 應(yīng)答消息進行校驗,如果校驗通過才進行后續(xù)的響應(yīng),否則報錯。
本發(fā)明所述開通請求應(yīng)答消息中攜帶有挑戰(zhàn)值,所述響應(yīng)模塊還用于生成包括用戶私鑰和用戶公鑰的用戶公私鑰對,保存用戶私鑰;根據(jù)開通請求應(yīng)答消息中的挑戰(zhàn)值選擇簽名算法,并使用選擇的簽名算法和約定的第二私鑰對生成的開通響應(yīng)消息進行簽名后發(fā)送給服務(wù)器端,所述開通響應(yīng)消息包括用戶公鑰,以便服務(wù)器端接收開通響應(yīng)消息并使用約定第二公鑰進行校驗,在服務(wù)器端保存用戶公鑰。
進一步地,所述認證請求應(yīng)答消息中攜帶有挑戰(zhàn)值,所述響應(yīng)模塊還用于根據(jù)所述挑戰(zhàn)值選擇簽名算法,用選擇的簽名算法和所述用戶私鑰對認證響應(yīng)消息進行簽名,以便所述服務(wù)器端在接收到所述認證響應(yīng)消息后,同樣根據(jù)所述挑戰(zhàn)值選擇簽名算法和所述用戶公鑰對認證響應(yīng)消息進行校驗。
進一步地,所述開通請求應(yīng)答消息還包括用戶ID,所述響應(yīng)模塊還將所述用戶ID保存在所述開通記錄中,并且在生成的開通響應(yīng)消息中還包括所述用戶ID,以便所述服務(wù)器端在接收到所述開通響應(yīng)消息后,獲取其中的用戶ID并將其保存在所述用戶記錄中。
進一步地,所述開通響應(yīng)消息還包括客戶端設(shè)備ID,以便所述服務(wù)器端在接收到所述開通請求應(yīng)答消息后,獲取其中的設(shè)備ID并將其保存在所述用戶記錄中。
進一步地,所述認證請求應(yīng)答消息還包括用戶ID,所述響應(yīng)模塊在接收用戶輸入的生物特征,獲取該生物特征對應(yīng)的生物特征模版ID之后,還根據(jù)用戶ID查找到對應(yīng)的開通記錄,以便將獲取的所述生物特征模版ID與該查找到的開通記錄中的生物特征模版ID進行比對;
在所述響應(yīng)模塊生成的認證響應(yīng)消息中還包括所述用戶ID,以便所述服務(wù)器端在接收到所述認證響應(yīng)消息后,獲取其中的用戶ID并根據(jù)所述用戶ID查找到對應(yīng)的用戶記錄。
進一步地,所述認證響應(yīng)消息還包括客戶端設(shè)備ID,以便所述服務(wù)器端在接收到所述認證響應(yīng)消息后,獲取所述認證響應(yīng)消息中的設(shè)備ID,根據(jù)所述設(shè)備ID查找到對應(yīng)的用戶記錄。
如圖4所示,本發(fā)明還提出了一種服務(wù)器,對應(yīng)于前面的服務(wù)器端,應(yīng)用于身份認證系統(tǒng),所述身份認證系統(tǒng)還包括客戶端,所述客戶端保存有開通記錄,所述服務(wù)器保存有用戶記錄,所述開通記錄和用戶記錄包含有開通生物特征校驗過程中獲取的用于生物特征校驗的生物特征模版ID,所述服務(wù)器端包括:
應(yīng)答模塊,用于接收來自客戶端的認證請求,向客戶端發(fā)送認證請求應(yīng)答消息;
校驗?zāi)K,用于接收來自客戶端的認證響應(yīng)消息,所述認證響應(yīng)消息包括生物特征模版ID,將所述認證響應(yīng)消息中的生物特征模版ID與保存的用戶記錄中的生物特征模版ID進行比對校驗,如果一致則校驗通過,否則報錯。
進一步地,所述應(yīng)答模塊還用于接收來自客戶端的開通生物特征校驗的開通請求,向客戶端發(fā)送開通請求應(yīng)答消息,以便客戶端根據(jù)用戶輸入的用于校驗的生物特征,獲取該用于校驗的生物特征對應(yīng)的生物特征模版ID,生成開通記錄保存;所述校驗?zāi)K還用于接收來自客戶端的開通響應(yīng)消息,獲取所述開通響應(yīng)消息包括的生物特征模版ID,生成用戶記錄保存。
進一步地,所述應(yīng)答模塊還用于以約定的第一私鑰對所述認證請求應(yīng)答消息或開通請求應(yīng)答消息進行簽名,以便所述客戶端以約定的第一公鑰對接收的認證請求應(yīng)答消息進行校驗,如果校驗通過才進行后續(xù)的響應(yīng),否則報錯,或以約定的第一公鑰對接收的開通請求應(yīng)答消息進行校驗,如果校驗通過才進行后續(xù)的響應(yīng),否則報錯。
本發(fā)明所述開通請求應(yīng)答消息中攜帶有挑戰(zhàn)值,所述客戶端生成包括用戶私鑰和用戶公鑰的用戶公私鑰對,保存用戶私鑰,所述校驗?zāi)K還用于接收客戶端根據(jù)開通請求應(yīng)答消息中的挑戰(zhàn)值選擇簽名算法,并使用選擇的簽名算法和約定的第二私鑰簽名的開通響應(yīng)消息,所述開通響應(yīng)消息包括用戶公鑰,同樣根據(jù)挑戰(zhàn)值選擇簽名算法,并使用第二公鑰校驗開通響應(yīng)消息,在服務(wù)器端保存用戶公鑰。
進一步地,所述校驗?zāi)K還用于接收客戶端根據(jù)認證請求應(yīng)答消息中 的挑戰(zhàn)值選擇簽名算法,并使用選擇的簽名算法和用戶私鑰進行簽名的認證響應(yīng)消息,同樣根據(jù)挑戰(zhàn)值選擇簽名算法和用戶公鑰校驗認證響應(yīng)消息的簽名。
進一步地,所述開通請求應(yīng)答消息還包括用戶ID,以便所述客戶端在接收到所述開通請求應(yīng)答消息后,將所述用戶ID保存在所述開通記錄中,并且在客戶端生成的開通響應(yīng)消息中還包括所述用戶ID,則所述校驗?zāi)K在接收到所述開通響應(yīng)消息后,還從所述開通響應(yīng)消息中獲取用戶ID,將所述用戶ID保存在所述用戶記錄中。
進一步地,所述開通響應(yīng)消息還包括客戶端設(shè)備ID,所述校驗?zāi)K在接收到所述開通響應(yīng)消息后,還從所述開通響應(yīng)消息中獲取設(shè)備ID,將所述設(shè)備ID保存在所述用戶記錄中。
進一步地,所述認證請求應(yīng)答消息還包括用戶ID,以便所述客戶端根據(jù)用戶ID查找到對應(yīng)的開通記錄,將獲取的所述生物特征模版ID與該查找到的開通記錄中的生物特征模版ID進行比對,并在客戶端生成的認證響應(yīng)消息中還包括所述用戶ID,所述校驗?zāi)K在接收到所述認證響應(yīng)消息后,還獲取所述認證響應(yīng)消息中的用戶ID,根據(jù)所述用戶ID查找到對應(yīng)的用戶記錄。
進一步地,所述認證響應(yīng)消息還包括客戶端設(shè)備ID,所述校驗?zāi)K在接收到所述認證響應(yīng)消息后,還獲取所述認證響應(yīng)消息中的設(shè)備ID,根據(jù)所述設(shè)備ID查找到對應(yīng)的用戶記錄。
以上實施例僅用以說明本發(fā)明的技術(shù)方案而非對其進行限制,在不背離本發(fā)明精神及其實質(zhì)的情況下,熟悉本領(lǐng)域的技術(shù)人員當可根據(jù)本發(fā)明作出各種相應(yīng)的改變和變形,但這些相應(yīng)的改變和變形都應(yīng)屬于本發(fā)明所附的權(quán)利要求的保護范圍。