驗證信息的密鑰協(xié)商方法及裝置的制造方法
【技術領域】
[0001]本發(fā)明涉及網(wǎng)絡安全技術領域,具體涉及一種驗證信息的密鑰協(xié)商方法及裝置。
【背景技術】
[0002]現(xiàn)有移動業(yè)務中,常常需要用戶利用驗證信息進行操作,以保證業(yè)務的安全性。用戶可以通過短信或郵件等方式獲取驗證信息。例如,用手機注冊帳號或進行支付時,需要服務端向當前手機號下發(fā)短信進行身份驗證,且短信都以明文形式下發(fā)。但是目前一些操作系統(tǒng)(例如Android)平臺比較開放,任意軟件在注冊短信權(quán)限后都可隨意讀取短信內(nèi)容,在安全方面造成極大的隱患。
[0003]在許多認證,尤其是支付過程中,手機短信驗證都是最后一道安全措施。通常而言是由服務器(服務提供商,例如支付寶)通過短信網(wǎng)關給用戶此前綁定的手機號發(fā)送一個包含數(shù)字或字符的驗證碼的短信。用戶收到短信之后將短信中的驗證碼通過手機APP或者認證或支付的WEB頁面并提交給服務器。服務器根據(jù)提交的驗證碼判斷是否的確是該用戶在進行驗證或者支付操作。
[0004]問題在于,作為私人物品的手機,其短信并不像服務提供商以及用戶所理解的那么安全。隨便打開一個手機并查看每一個安裝的應用,就會發(fā)現(xiàn),許多看似完全無關的應用都會要求閱讀短信甚至是發(fā)送短信的權(quán)限。由此可見,用戶是根本不會在意安裝的應用擁有一些權(quán)限。一個惡意的木馬應用完全可以悄無聲息的讀到前面所述的驗證碼。Android4.4以前的系統(tǒng)(目前市場上絕大部分Android手機),木馬甚至可以在無Root的情況下在偷竊了驗證碼短信之后刪除該短信,在用戶毫無察覺的情況下就盜走驗證碼。
[0005]除了惡意的木馬可能盜取驗證碼短信之外,還有一個嚴重的問題是手機可能丟失。在手機丟失的情況,獲得手機的人可以很容易的利用短信找回密碼的功能進行非常多的操作,包括修改用戶登錄密碼、支付、轉(zhuǎn)賬等等。
【發(fā)明內(nèi)容】
[0006]鑒于上述問題,提出了本發(fā)明以便提供一種克服上述問題或者至少部分地解決上述問題的驗證信息的密鑰協(xié)商方法及裝置。
[0007]依據(jù)本發(fā)明的一個方面,提供一種驗證信息的密鑰協(xié)商方法,包括:在終端生成用于對所述驗證信息加解密的密鑰對,將公鑰通過網(wǎng)絡傳給網(wǎng)絡設備,并在本地保存私鑰,其中,所述驗證信息是用于驗證在目標應用程序執(zhí)行特定服務過程中終端或用戶的身份或權(quán)限的消息;在向終端發(fā)送驗證信息之前,所述網(wǎng)絡設備利用所述公鑰對所述驗證信息進行加密,并將加密的驗證信息發(fā)送給所述終端;所述終端利用所述私鑰對加密的驗證信息進行解密,獲得驗證信息。
[0008]優(yōu)選的,所述網(wǎng)絡設備利用所述終端公鑰對所述驗證信息進行加密之后,還利用網(wǎng)絡設備私鑰對加密的驗證信息進行簽名;在所述利用所述私鑰進行解密之前,首先利用預先獲取的網(wǎng)絡設備公鑰對加密的驗證信息的簽名進行校驗。
[0009]優(yōu)選的,還包括:所述終端定期向所述網(wǎng)絡設備發(fā)送用網(wǎng)絡設備公鑰加密的會話密鑰;所述網(wǎng)絡設備在利用所述公鑰對所述驗證信息進行加密之后,進一步采用所述會話密鑰對驗證信息進行二次加密;在所述利用所述私鑰對加密的驗證信息進行解密之后,利用保存在所述終端本地的所述會話密鑰進行二次解密。
[0010]優(yōu)選的,預先向用戶提供密碼輸入界面,接收用戶輸入的密碼,并采用用戶輸入的密碼對所述私鑰進行加密;在所述利用所述私鑰對加密的驗證信息進行解密之前,需要用戶輸入密碼,如果用戶輸入密碼正確,則利用用戶輸入的密碼對加密的私鑰進行解密,得到所述私鑰并執(zhí)行所述利用所述私鑰對加密的驗證信息進行解密的步驟。
[0011]優(yōu)選的,所述網(wǎng)絡設備在發(fā)送所述驗證信息之前,通過所述終端的設備信息查詢并獲得用戶所對應公鑰和/或會話密鑰。
[0012]優(yōu)選的,所述終端的設備信息包括設備號、手機號、IMEUP /或,IMSI。
[0013]優(yōu)選的,由所述終端上的所述目標應用程序執(zhí)行所述生成用于對所述驗證信息加解密的密鑰對以及所述所述利用所述私鑰對加密的驗證信息進行解密的步驟。
[0014]優(yōu)選的,由所述終端上的安全目標應用程序執(zhí)行所述生成用于對所述驗證信息加解密的密鑰對以及所述所述利用所述私鑰對加密的驗證信息進行解密的步驟;在所述獲得驗證信息之后,還包括:所述安全應用程序?qū)⑺鲵炞C信息提供給目標應用程序或者將所述驗證信息展示給用戶。
[0015]優(yōu)選的,所述目標應用程序調(diào)用所述安全應用程序提供的接口,從所述安全應用程序獲取所述驗證信息。
[0016]優(yōu)選的,所述方法還包括:所述安全應用程序驗證所述目標應用程序的合法性,只有所述目標應用程序合法時,才將所述驗證信息提供給所述目標應用程序。
[0017]優(yōu)選的,所述安全應用程序驗證所述目標應用程序的合法性包括:通過所述目標應用程序的簽名判斷所述目標應用程序是否合法,和/或,判斷所述目標應用程序是否具有讀取所述驗證信息的權(quán)限。
[0018]優(yōu)選的,所述判斷所述目標應用程序是否合法包括:根據(jù)所述目標應用程序的簽名判斷所述目標應用程序是否屬于安全的應用程序,或者,根據(jù)所述目標應用程序的簽名判斷所述目標應用程序是否屬于惡意應用程序,如果所述目標應用程序?qū)儆诎踩膽贸绦蚧蛘卟粚儆趷阂獍踩绦颍瑒t確定所述目標應用程序合法。
[0019]優(yōu)選的,所述判斷所述目標應用程序是否具有讀取所述驗證信息的權(quán)限包括:判斷所述目標應用程序是否是與提供所述驗證信息的網(wǎng)絡設備對應的應用程序,如果是,則確定所述目標應用程序具有讀取所述驗證信息的權(quán)限。
[0020]優(yōu)選的,在所述網(wǎng)絡設備利用所述密鑰對驗證信息進行加密之前,還包括:所述網(wǎng)絡設備通過預先獲得的有關所述終端驗證信息的協(xié)商參數(shù),獲知所述終端支持密文驗證信肩、O
[0021]優(yōu)選的,所述終端通過短信、郵件或者即時通信工具的通信方式從所述網(wǎng)絡設備獲取所述加密的驗證信息。
[0022]優(yōu)選的,在所述終端從所述網(wǎng)絡設備獲取加密的驗證信息之后,還包括:所述目標應用程序或者安全應用程序利用自身具有的訪問所述通信方式的權(quán)限,直接訪問所述通信方式獲取所述加密的驗證信息。
[0023]優(yōu)選的,在所述獲得驗證信息之后,還包括:在所述目標應用程序執(zhí)行特定服務過程中,利用所述驗證信息驗證終端或用戶的身份或權(quán)限。
[0024]優(yōu)選的,所述目標應用程序包括即時通信軟件、支付軟件或電商軟件。
[0025]優(yōu)選的,所述網(wǎng)絡設備是指發(fā)送所述驗證信息的服務器、網(wǎng)關或代理服務器。
[0026]依據(jù)本發(fā)明的另一個方面,提供一種驗證信息的密鑰協(xié)商裝置,包括:密鑰對生成單元,用于在終端生成用于對所述驗證信息進行加解密的密鑰對,將公鑰通過網(wǎng)絡傳給網(wǎng)絡設備,并在本地保存私鑰,其中,所述驗證信息是用于驗證在目標應用程序執(zhí)行特定服務過程中終端或用戶的身份或權(quán)限的消息;加密驗證信息接收單元,用于從網(wǎng)絡設備接收利用所述公鑰對所述驗證信息進行加密的驗證信息;加密驗證信息解密單元,用于利用所述私鑰對加密的驗證信息進行解密,獲得驗證信息。
[0027]優(yōu)選的,所述加密的驗證信息是利用網(wǎng)絡設備私鑰進行簽名處理過的;所述加密驗證信息解密單元,在所述利用所述私鑰進行解密之前,還利用預先獲取的網(wǎng)絡設備公鑰對加密的驗證信息的簽名進行校驗。
[0028]優(yōu)選的,還包括:會話密鑰生成單元,生成采用網(wǎng)絡設備公鑰加密的會話密鑰并將該會話密鑰提供給所述網(wǎng)絡設備;所述網(wǎng)絡設備在利用所述公鑰對所述驗證信息進行加密之后,進一步采用所述會話密鑰對驗證信息進行二次加密;所述加密驗證信息解密單元,在利用所述私鑰對加密的驗證信息進行解密之后,還利用保存在所述終端本地的所述會話密鑰進行二次解密。
[0029]優(yōu)選的,所述終端密鑰對生成單元保存在本地的私鑰是采用用戶輸入的密碼進行加密處理過的;所述加密驗證信息解密單元,在利用所述私鑰對加密的驗證信息進行解密之前,首先利用用戶輸入的密碼對加密的私鑰進行解密,得到所述私鑰。
[0030]優(yōu)選的,所述網(wǎng)絡設備在發(fā)送所述驗證信息之前,通過所述終端的設備信息查詢并獲得用戶所對應公鑰和/或會話密鑰。
[0031]優(yōu)選的,所述終端的設備信息包括設備號、手機號、IMEUP /或,IMSI。
[0032]優(yōu)選的,由所述終端上的所述目標應用程序執(zhí)行所述生成用于對所述驗證信息加解密的密鑰對以及所述所述利用所述私鑰對加密的驗證信息進行解密。
[0033]優(yōu)選的,由所述終端上的安全應用程序執(zhí)行所述生成用于對所述驗證信息加解密的密鑰對以及所述所述利用所述私鑰對加密的驗證信息進行解密;所述裝置還包括:驗證信息提供單元,用于利用所述安全應用程序?qū)⑺鲵炞C信息提供給所述目標應用程序;或者,驗證信息展示單元,用于利用所述安全應用程序?qū)⒔饷芎蟮尿炞C信息展示給用戶。
[0034]優(yōu)選的,所述目標應用程序調(diào)用所述安全應用程序提供的接口,從所述安全應用程序獲取所述驗證信息。
[0035]優(yōu)選的,所述裝置還包括:目標合法性驗證單元,用于利用所述安全應用程序驗證所述目標應用程序的合法性;所述驗證信息提供單元只有所述目標應用程序合法時,才將所述驗證信息提供給所述目標應用程序。
[0036]優(yōu)選的,所述目標合法性驗證單元具體用于:通過所述目標應用程序的簽名判斷所述目標應用程序是否合法,和/或,判斷所述目標應用程序是否具有讀取所述驗證信息的權(quán)限。
[0037]優(yōu)選的,所述目標合法性驗證單元具體用于:根據(jù)所述目標應用程序的簽名判斷所述目標應用程序是否屬于安全的應用程序,或者,根據(jù)所述目標應用程序的簽名判斷所述目標應用程序是否屬于惡意應用程序,如果所述目標應用程序?qū)儆诎踩膽贸绦蚧蛘卟粚儆趷阂獍踩绦?,則確定所述目標應用程序合法。
[0038]優(yōu)選的,所述目標合法性驗證單元具體用于:判斷所述目標應用程序是否是與提供所述驗證信息的網(wǎng)絡設備對應的應用程序,如果是,則確定所述目標應用程序具有讀取所述驗證信息的權(quán)限。
[0039]優(yōu)選的,所述網(wǎng)絡設備通過預先獲得的有關所述終端驗證信息的協(xié)商參數(shù),獲知所述終端支持密文驗證信息。
[0040]優(yōu)選的,所述終端通過短信、郵件或者即時通信工具的通信方式從所述網(wǎng)絡設備獲取所述加密的驗證信息。
[0041]優(yōu)選的,所述裝置還包括:權(quán)限訪問單元,用于支持所述目標應用程序或者安全應用程序利用自身具有的訪問所述通信方式的權(quán)限,直接訪問所述通信方式獲取所述加密的驗證信息。
[0042]優(yōu)選的,還包括:服務執(zhí)行單元,用于在所述目標應用程序執(zhí)行特定服務過程中,利用所述驗證信息驗證終端或用戶的身份或權(quán)限。
[0043]優(yōu)選的,所述目標應用程序包括即時通信軟件、支付軟件或電商軟件。優(yōu)選的,所述網(wǎng)絡設備是指發(fā)送所述驗證信息的服務器、網(wǎng)關或代理服務器。可見,本發(fā)明通過終端應用程序與網(wǎng)絡設備之間的密鑰協(xié)商,對驗證信息加密處理,并且應用程序直接讀取加密的驗證信息,從而利用解密的驗證信息進行業(yè)務等操作,也就是,只有這個應用程序才能對密文形式的驗證信息進行解密,對于木馬等惡意應用程序,即使能獲取到驗證信息,但由于驗證信息是密文形式的,也無從利用,有效保證了在應用程序上進行支付等業(yè)務操作的安全性。
[0044]在本發(fā)發(fā)明較優(yōu)的實施例中,包括APP或用戶本身,都無法獲取用戶的加密短信,因此即便手機丟失,在攻擊者擁有root甚至離線分析調(diào)試的能力的情況下,也依然不能讀取用戶的加密短信。能夠讀取用戶短信的只有用戶結(jié)合APP。由于整個過程除了依賴用戶密碼保護的終端私鑰,還依賴于APP內(nèi)存中保存的sess1n key,因此即便木馬程序能夠使用釣魚的方法欺騙用戶輸入用戶解開終端私鑰的密碼,也依然不能閱讀短信。
[0045]另外,本發(fā)明