本發(fā)明涉及信息安全技術(shù)領(lǐng)域,具體地說是一種云加端三權(quán)分立實現(xiàn)密鑰生成和保護的方法及系統(tǒng)。
背景技術(shù):
移動信息化,是指在現(xiàn)代移動通信技術(shù)、移動互聯(lián)網(wǎng)技術(shù)構(gòu)成的綜合通信平臺基礎(chǔ)上,通過掌上終端、服務(wù)器、個人計算機等多平臺的信息交互溝通,實現(xiàn)管理、業(yè)務(wù)、以及服務(wù)的移動化、信息化、電子化和網(wǎng)絡(luò)化,向社會提供高效優(yōu)質(zhì)、規(guī)范透明、適時可得、電子互動的全方位管理與服務(wù)的過程。
saas是software-as-a-service(軟件即服務(wù))的簡稱,隨著互聯(lián)網(wǎng)技術(shù)的發(fā)展和應用軟件的成熟,在21世紀開始興起的一種完全創(chuàng)新的軟件應用模式。它與“on-demandsoftware”(按需軟件),theapplicationserviceprovider(asp,應用服務(wù)提供商),hostedsoftware(托管軟件)所具有相似的含義。它是一種通過internet提供軟件的模式,廠商將應用軟件統(tǒng)一部署在自己的服務(wù)器上,客戶可以根據(jù)自己實際需求,通過互聯(lián)網(wǎng)向廠商定購所需的應用軟件服務(wù),按定購的服務(wù)多少和時間長短向廠商支付費用,并通過互聯(lián)網(wǎng)獲得廠商提供的服務(wù)。用戶不用再購買軟件,而改用向提供商租用基于web的軟件,來管理企業(yè)經(jīng)營活動,且無需對軟件進行維護,服務(wù)提供商會全權(quán)管理和維護軟件,軟件廠商在向客戶提供互聯(lián)網(wǎng)應用的同時,也提供軟件的離線操作和本地數(shù)據(jù)存儲,讓用戶隨時隨地都可以使用其定購的軟件和服務(wù)。對于許多小型企業(yè)來說,saas是采用先進技術(shù)的最好途徑,它消除了企業(yè)購買、構(gòu)建和維護基礎(chǔ)設(shè)施和應用程序的需要。
云計算時代和移動互聯(lián)網(wǎng)時代,移動信息化和saas成為趨勢。用戶很難完全對saas服務(wù)廠商建立信任,如何提高用戶密鑰的安全性。
技術(shù)實現(xiàn)要素:
本發(fā)明的技術(shù)任務(wù)是針對以上不足,提供一種云加端三權(quán)分立實現(xiàn)密鑰生成和保護的方法及系統(tǒng),來解決如何提高用戶密鑰的安全性的問題。
本發(fā)明的技術(shù)任務(wù)是按以下方式實現(xiàn)的,一種云加端三權(quán)分立實現(xiàn)密鑰生成和保護的方法,利用移動端、saas服務(wù)端以及第三方密碼服務(wù)端三方共同生成一個用戶密鑰,使用時三方共同計算,各自保持獨立且相互制約又相互配合,提高用戶密鑰整體的安全性;包括如下步驟:
(1)、密鑰生成流程:移動端、saas服務(wù)端以及第三方密碼服務(wù)端三方共同生成一個密鑰sm2;
(2)、密鑰存儲流程:移動端的密鑰片段通過tee/se、綁定設(shè)備硬件、指紋/人臉生物特征、口令以及app加固多種手段綜合保護,saas服務(wù)端和第三方密碼服務(wù)端使用云密碼機安全存儲各自的密鑰片段;
(3)、密鑰使用流程:通過用戶在移動端認證后,移動端、saas服務(wù)端以及第三方密碼服務(wù)端三方各自根據(jù)自身的密鑰片段對數(shù)據(jù)進行運算,運算結(jié)果再進行二次計算形成最后結(jié)果。
作為優(yōu)選,所述步驟(1)中密鑰生成流程包括如下步驟:
①、移動端產(chǎn)生隨機數(shù)d1,從隨機數(shù)d1計算中間數(shù)據(jù)p1,使用saas服務(wù)端的公鑰或證書加密p1,得到p1’并將p1’發(fā)送到saas服務(wù)端;
②、saas服務(wù)端解密p1’得到p1,saas服務(wù)端調(diào)用云密碼機生成隨機數(shù)d2,根據(jù)隨機數(shù)d2和p1計算中間數(shù)據(jù)p2,p2使用第三方密碼服務(wù)端的公鑰或證書加密,得到p2’并將p2’發(fā)送到第三方密碼服務(wù)端;
③、第三方密碼服務(wù)端解密p2’得到p2,第三方密碼服務(wù)端調(diào)用云密碼機生成隨機數(shù)d3,根據(jù)隨機數(shù)d3和p2計算得到用戶公鑰;
其中,隨機數(shù)d1、隨機數(shù)d2、隨機數(shù)d3分別是移動端、saas服務(wù)端、第三方密碼服務(wù)端三方各自的密鑰片段,三方分別安全存儲和保護。
作為優(yōu)選,所述步驟(2)中密鑰存儲流程包括如下步驟:
①、隨機數(shù)d1在移動端采取多種手段綜合加密以及保護,具體如下:
(?。⒋_認移動端是否支持tee[可信計算環(huán)境]/se[安全單元]:
(?。⑷粢苿佣酥С謙ee/se,將在tee/se內(nèi)產(chǎn)生一對設(shè)備密鑰,使用設(shè)備密鑰的公鑰加密隨機數(shù)d1,得到d1’;其中,tee/se對設(shè)備密鑰的訪問控制支持指紋或本地口令認證;
(ⅱ)、若移動端不支持tee/se,隨機數(shù)d1和移動端設(shè)備硬件綁定,提取設(shè)備的硬件信息以及用戶設(shè)置的口令計算摘要,派生出對稱密鑰;使用對稱密鑰加密隨機數(shù)d1,得到d1’;
(ⅱ)、采用自定義的安全密碼鍵盤進行口令的輸入,安全密碼鍵盤用于預防截屏、錄屏、內(nèi)存嗅探多種攻擊手段;
(ⅲ)、整個app進行安全加固,用于防逆向、防篡改、防調(diào)試、防竊??;
(ⅳ)、采取以上措施后,隨機數(shù)d1得到了安全的防護,并通過指紋、手機以及口令要素認證。
②、saas服務(wù)端的隨機數(shù)d2,調(diào)用云密碼機,使用云密碼機的設(shè)備密鑰加密隨機數(shù)d2,得到d2’;
③、第三方密碼服務(wù)端的隨機數(shù)d3,調(diào)用云密碼機,使用云密碼機的設(shè)備密鑰加密隨機數(shù)d3,得到d3’。
作為優(yōu)選,所述步驟(3)中密鑰的使用流程包括如下步驟:
①、確認移動端是否支持tee/se:
(?。?、若移動端支持tee/se,在移動端輸入設(shè)備密鑰登入命令,調(diào)用移動端的設(shè)備私鑰,對d1’進行解密,得到隨機數(shù)d1;移動端設(shè)備密鑰登入命令為口令或指紋;
(ⅱ)、若移動端不支持tee/se,使用安全密碼鍵盤輸入用戶口令,讀取移動端硬件信息,口令和移動端硬件信息計算摘要,派生出一個對稱密鑰;使用該密鑰解密d1’,得到隨機數(shù)d1;
②、移動端得到隨機數(shù)d1后,使用隨機數(shù)d1對待處理的數(shù)據(jù)計算,得到中間結(jié)果s1,發(fā)送s1到saas服務(wù)端;
③、saas服務(wù)端調(diào)用云密碼機解密d2’,得到隨機數(shù)d2,使用隨機數(shù)d2對待處理的數(shù)據(jù)計算,得到s2,發(fā)送s2到第三方密碼服務(wù)端;
④、第三方密碼服務(wù)端調(diào)用云密碼機解密d3’,得到隨機數(shù)d3,使用隨機數(shù)d3對待處理的數(shù)據(jù)計算,得到s3;
⑤、s1、s2、s3經(jīng)過二次合成計算形成最后結(jié)果s。
更優(yōu)地,所述步驟(1)中①移動端產(chǎn)生隨機數(shù)d1,d1=mobilegenrand();
從隨機數(shù)d1計算中間數(shù)據(jù)p1,p1=encode(d1);使用saas服務(wù)端的公鑰加密p1,得到p1’,p1’=encrypt(p1,saaspubkey);步驟(1)中②saas服務(wù)端解密p1’,得到p1,p1=decrypt(p1’,saasprikey);saas服務(wù)端調(diào)用云密碼機生成隨機數(shù)d2,d2=jmjgenrand();根據(jù)d2和p1計算中間數(shù)據(jù)p2,p2=encode(d2,p1);p2使用第三方密碼服務(wù)端的公鑰加密,得到p2’,p2’=encrypt(p2,tdserpubkey);步驟(1)中③第三方密碼服務(wù)端解密p2’,得到p2,p2=decrypt(p1’,tdserprikey);第三方密碼服務(wù)端調(diào)用云密碼機生成隨機數(shù)d3,d3=jmjgenrand();根據(jù)隨機數(shù)d3和p2計算得到用戶公鑰,userpubkey=genpubkey(d3,p2)。
更優(yōu)地,所述步驟(2)中①移動端支持tee/se,在tee/se內(nèi)產(chǎn)生一對非對稱算法的設(shè)備密鑰,devkey=genkeypairbytee/se();使用設(shè)備密鑰的公鑰加密d1,得到d1’,d1’=encrypt(d1,devpubkey)。
更優(yōu)地,所述步驟(2)的①中移動端不支持tee/se,隨機數(shù)d1和移動端設(shè)備硬件綁定,提取設(shè)備的硬件信息以及用戶設(shè)置的口令計算摘要,派生出對稱密鑰,dkey=hash(deviceinfo+pin);使用對稱密鑰加密隨機數(shù)d1,得到d1’,d1’=encrypt(d1,dkey)。
更優(yōu)地,所述步驟(3)中的①移動端支持ee/se,在移動端輸入移動端設(shè)備密鑰登入命令,調(diào)用移動端的設(shè)備私鑰,對d1’進行解密,得到d1,d1=decypt(d1’,devprikey);步驟(3)中②移動端使用隨機數(shù)d1對待處理的數(shù)據(jù)計算,得到中間結(jié)果s1,s1=sign1(d1,hashdata);步驟(3)中④saas服務(wù)端調(diào)用云密碼機解密d2’,得到隨機數(shù)d2,d2=decypt(d2’,jmjprikey);使用隨機數(shù)d2對待處理的數(shù)據(jù)計算,得到s2,s2=sign2(d2,s1,hashdata);步驟(3)中③第三方密碼服務(wù)端調(diào)用云密碼機解密d3’,得到隨機數(shù)d3,d3=decypt(d3’,jmjprikey);使用隨機數(shù)d3對待處理的數(shù)據(jù)計算,得到s3,s3=sign3(d3,s2,hashdata);步驟(3)中④s1、s2、s3經(jīng)過二次合成計算形成最后結(jié)果s,s=signend(s1,s2,s3)。
更優(yōu)地,所述步驟(3)的①中移動端不支持tee/se,使用安全密碼鍵盤輸入用戶口令,讀取移動端硬件信息,口令和移動端硬件信息計算摘要,派生出一個對稱密鑰,dkey=hash(deviceinfo+pin);使用該密鑰解密d1’,得到隨機數(shù)d1,d1=decypt(d1’,dkey)。
一種云加端三權(quán)分立實現(xiàn)密鑰生成和保護的系統(tǒng),包括移動端、saas服務(wù)端、第三方密碼服務(wù)端以及云密碼機;移動端用于移動端密鑰片段的生產(chǎn)、安全存儲和使用;saas服務(wù)端用于saas服務(wù)端的密鑰片段的生成、安全存儲和使用,并提供api供其使用;第三方密碼服務(wù)端用于第三方密碼服務(wù)端的密鑰片段的生成、安全存儲和使用;云密碼機用于saas服務(wù)端以及第三方密碼服務(wù)端隨機數(shù)的生成、密鑰片段的加密和解密。
本發(fā)明的一種云加端三權(quán)分立實現(xiàn)密鑰生成和保護的方法及系統(tǒng)具有以下優(yōu)點:
1、本發(fā)明引入一個第三方機構(gòu)即第三方密碼服務(wù)端,利用移動端、saas服務(wù)端、第三方密碼服務(wù)端三方生成和存儲以及使用,三者之間相互制約又相互配合,從而提高整體的安全性;
2、用戶的密鑰在三方合作生成,使用時不合成原始密鑰,大大降低了被攻擊的風險;
3、移動端的密鑰片段通過tee/se、綁定設(shè)備硬件、指紋/人臉生物特征、口令、app加固等綜合手段保護,其中,采用自定義的安全密碼鍵盤進行口令的輸入,安全密碼鍵盤用于預防截屏、錄屏、內(nèi)存嗅探多種攻擊手段;整個app進行安全加固,用于防逆向、防篡改、防調(diào)試、防竊取;隨機數(shù)d1得到了安全的防護,并通過指紋、手機以及口令要素認證,大大提升了移動端密鑰片段的安全性;
4、saas服務(wù)端和第三方密碼服務(wù)端均通過云密碼機保護密鑰片段,安全性高。
附圖說明
下面結(jié)合附圖對本發(fā)明進一步說明。
附圖1為一種云加端三權(quán)分立實現(xiàn)密鑰生成和保護的系統(tǒng)的結(jié)構(gòu)框圖;
附圖2為一種云加端三權(quán)分立實現(xiàn)密鑰生成和保護的方法中密鑰生成流程框圖;
附圖3為一種云加端三權(quán)分立實現(xiàn)密鑰生成和保護的方法中移動端密鑰片段保護的流程框圖;
附圖4為一種云加端三權(quán)分立實現(xiàn)密鑰生成和保護的方法中密鑰使用的流程框圖。
具體實施方式
參照說明書附圖和具體實施例對本發(fā)明的一種云加端三權(quán)分立實現(xiàn)密鑰生成和保護的方法及系統(tǒng)作以下詳細地說明。
實施例1:
本發(fā)明的一種云加端三權(quán)分立實現(xiàn)密鑰生成和保護的方法,利用移動端、saas服務(wù)端以及第三方密碼服務(wù)端三方共同生成一個用戶密鑰,使用時三方共同計算,各自保持獨立且相互制約又相互配合,提高用戶密鑰整體的安全性;包括如下步驟:
(1)、密鑰生成流程:移動端、saas服務(wù)端以及第三方密碼服務(wù)端三方共同生成一個密鑰sm2;
(2)、密鑰存儲流程:移動端的密鑰片段通過tee/se、綁定設(shè)備硬件、指紋/人臉生物特征、口令以及app加固多種手段綜合保護,saas服務(wù)端和第三方密碼服務(wù)端使用云密碼機安全存儲各自的密鑰片段;
(3)、密鑰使用流程:通過用戶在移動端認證后,移動端、saas服務(wù)端以及第三方密碼服務(wù)端三方各自根據(jù)自身的密鑰片段對數(shù)據(jù)進行運算,運算結(jié)果再進行二次計算形成最后結(jié)果。
實施例2:
本發(fā)明的一種云加端三權(quán)分立實現(xiàn)密鑰生成和保護的方法,利用移動端、saas服務(wù)端以及第三方密碼服務(wù)端三方共同生成一個用戶密鑰,使用時三方共同計算,各自保持獨立且相互制約又相互配合,提高用戶密鑰整體的安全性;包括如下步驟:
(1)、密鑰生成流程:移動端、saas服務(wù)端以及第三方密碼服務(wù)端三方共同生成一個密鑰sm2;如附圖2所示,包括如下步驟:
①、移動端產(chǎn)生隨機數(shù)d1,d1=mobilegenrand();從隨機數(shù)d1計算中間數(shù)據(jù)p1,p1=encode(d1);使用saas服務(wù)端的公鑰或證書加密p1,得到p1’,p1’=encrypt(p1,saaspubkey);并將p1’發(fā)送到saas服務(wù)端;
②、saas服務(wù)端解密p1’得到p1,p1=decrypt(p1’,saasprikey);saas服務(wù)端調(diào)用云密碼機生成隨機數(shù)d2,d2=jmjgenrand();根據(jù)隨機數(shù)d2和p1計算中間數(shù)據(jù)p2,p2=encode(d2,p1);p2使用第三方密碼服務(wù)端的公鑰或證書加密,得到p2’,p2’=encrypt(p2,tdserpubkey);并將p2’發(fā)送到第三方密碼服務(wù)端;
③、第三方密碼服務(wù)端解密p2’得到p2,p2=decrypt(p1’,tdserprikey);第三方密碼服務(wù)端調(diào)用云密碼機生成隨機數(shù)d3,d3=jmjgenrand();根據(jù)隨機數(shù)d3和p2計算得到用戶公鑰,userpubkey=genpubkey(d3,p2);
其中,隨機數(shù)d1、隨機數(shù)d2、隨機數(shù)d3分別是移動端、saas服務(wù)端、第三方密碼服務(wù)端三方各自的密鑰片段,三方分別安全存儲和保護。
(2)、密鑰存儲流程:移動端的密鑰片段通過tee/se、綁定設(shè)備硬件、指紋/人臉生物特征、口令以及app加固多種手段綜合保護,saas服務(wù)端和第三方密碼服務(wù)端使用云密碼機安全存儲各自的密鑰片段;包括如下步驟:
①、隨機數(shù)d1在移動端采取多種手段綜合加密以及保護,如附圖3所示,具體如下:
(?。⒋_認移動端是否支持tee[可信計算環(huán)境]/se[安全單元]:
(?。?、若移動端支持tee/se,將在tee/se內(nèi)產(chǎn)生一對非對稱算法的設(shè)備密鑰,devkey=genkeypairbytee/se();使用設(shè)備密鑰的公鑰加密隨機數(shù)
d1,得到d1’,d1’=encrypt(d1,devpubkey);其中,tee/se對設(shè)備密鑰的訪問控制支持指紋或本地口令認證;
(ⅱ)、若移動端不支持tee/se,隨機數(shù)d1和移動端設(shè)備硬件綁定,提取設(shè)備的硬件信息以及用戶設(shè)置的口令計算摘要,派生出對稱密鑰,dkey=hash(deviceinfo+pin);使用對稱密鑰加密隨機數(shù)d1,得到d1’,d1’=encrypt(d1,dkey);
(ⅱ)、采用自定義的安全密碼鍵盤進行口令的輸入,安全密碼鍵盤用于預防截屏、錄屏、內(nèi)存嗅探多種攻擊手段;
(ⅲ)、整個app進行安全加固,用于防逆向、防篡改、防調(diào)試、防竊??;
(ⅳ)、采取以上措施后,隨機數(shù)d1得到了安全的防護,并通過指紋、手機以及口令要素認證。
②、saas服務(wù)端的隨機數(shù)d2,調(diào)用云密碼機,使用云密碼機的設(shè)備密鑰加密隨機數(shù)d2,得到d2’;
③、第三方密碼服務(wù)端的隨機數(shù)d3,調(diào)用云密碼機,使用云密碼機的設(shè)備密鑰加密隨機數(shù)d3,得到d3’。
(3)、密鑰使用流程:通過用戶在移動端認證后,移動端、saas服務(wù)端以及第三方密碼服務(wù)端三方各自根據(jù)自身的密鑰片段對數(shù)據(jù)進行運算,運算結(jié)果再進行二次計算形成最后結(jié)果。如附圖4所示,包括如下步驟:
①、確認移動端是否支持tee/se:
(ⅰ)、若移動端支持tee/se,在移動端輸入設(shè)備密鑰登入命令,調(diào)用移動端的設(shè)備私鑰,對d1’進行解密,得到隨機數(shù)d1,d1=decypt(d1’,devprikey);移動端設(shè)備密鑰登入命令為口令或指紋;
(ⅱ)、若移動端不支持tee/se,使用安全密碼鍵盤輸入用戶口令,讀取移動端硬件信息,口令和移動端硬件信息計算摘要,派生出一個對稱密鑰,dkey=hash(deviceinfo+pin);使用該密鑰解密d1’,得到隨機數(shù)d,d1=decypt(d1’,dkey)1;
②、移動端得到隨機數(shù)d1后,使用隨機數(shù)d1對待處理的數(shù)據(jù)計算,得到中間結(jié)果s1,s1=sign1(d1,hashdata),發(fā)送s1到saas服務(wù)端;
③、saas服務(wù)端調(diào)用云密碼機解密d2’,得到隨機數(shù)d2,d2=decypt(d2’,jmjprikey);使用隨機數(shù)d2對待處理的數(shù)據(jù)計算,得到s2,s2=sign2(d2,s1,hashdata);發(fā)送s2到第三方密碼服務(wù)端;
④、第三方密碼服務(wù)端調(diào)用云密碼機解密d3’,得到隨機數(shù)d3,d3=decypt(d3’,jmjprikey);使用隨機數(shù)d3對待處理的數(shù)據(jù)計算,得到s3,s3=sign3(d3,s2,hashdata);
⑤、s1、s2、s3經(jīng)過二次合成計算形成最后結(jié)果s,s=signend(s1,s2,s3)。
實施例3:
如附圖1所示,本發(fā)明的一種云加端三權(quán)分立實現(xiàn)密鑰生成和保護的系統(tǒng),包括移動端、saas服務(wù)端、第三方密碼服務(wù)端以及云密碼機;移動端用于移動端密鑰片段的生產(chǎn)、安全存儲和使用;saas服務(wù)端用于saas服務(wù)端的密鑰片段的生成、安全存儲和使用,并提供api供其使用;第三方密碼服務(wù)端用于第三方密碼服務(wù)端的密鑰片段的生成、安全存儲和使用;云密碼機用于saas服務(wù)端以及第三方密碼服務(wù)端隨機數(shù)的生成、密鑰片段的加密和解密。
通過上面具體實施方式,所述技術(shù)領(lǐng)域的技術(shù)人員可容易的實現(xiàn)本發(fā)明。但是應當理解,本發(fā)明并不限于上述的具體實施方式。在公開的實施方式的基礎(chǔ)上,所述技術(shù)領(lǐng)域的技術(shù)人員可任意組合不同的技術(shù)特征,從而實現(xiàn)不同的技術(shù)方案。
除說明書所述的技術(shù)特征外,均為本專業(yè)技術(shù)人員的已知技術(shù)。