本發(fā)明涉及可信計算技術(shù)領(lǐng)域,特別是涉及一種無CA的身份認證方法和系統(tǒng)。
背景技術(shù):
非對稱密鑰的認證通常采用證書的方式,通過CA(證書管理機構(gòu))提供第三方認證。在互聯(lián)網(wǎng)場景下,通信雙方難以通過會面等其他安全方式交換密鑰,因此需要第三方CA保證密鑰的安全性。但是在工控系統(tǒng)中如果通過CA提供第三方認證,不僅通信流量大,交互復(fù)雜度高,而且對于使用485、無線等通信方式的工控系統(tǒng),其通信帶寬、通信穩(wěn)定性遠不如互聯(lián)網(wǎng)可靠,通過CA提供第三方認證,通信速率低,通信穩(wěn)定性差,無法滿足工控系統(tǒng)的認證需求。
技術(shù)實現(xiàn)要素:
基于上述情況,本發(fā)明提出了一種無CA的身份認證方法和系統(tǒng),認證過程中無需在線CA的參與,減少了通信流量,消除了第三方CA的角色,降低了交互的復(fù)雜度。
為了實現(xiàn)上述目的,本發(fā)明技術(shù)方案的實施例為:
一種無CA的身份認證方法,包括以下步驟:
接收主站在接收身份認證指令后發(fā)送的主站非對稱密鑰中的主站公鑰和預(yù)存的主站公鑰的第一簽名,所述主站公鑰的第一簽名為在預(yù)設(shè)安全環(huán)境中接收所述主站發(fā)送的所述主站非對稱密鑰中主站公鑰后,利用生成的安全芯片非對稱密鑰中的安全芯片私鑰對在預(yù)設(shè)安全環(huán)境中接收的主站公鑰進行第一次簽名后得到的簽名;
利用所述安全芯片私鑰對接收的所述主站在接收身份認證指令后發(fā)送的主站公鑰進行第二次簽名,得到主站公鑰的第二簽名;
當所述主站公鑰的第一簽名和所述主站公鑰的第二簽名相同時,生成第一隨機數(shù);
利用所述主站非對稱密鑰中主站公鑰對所述第一隨機數(shù)進行加密,并將所述第一隨機數(shù)的加密結(jié)果發(fā)送至所述主站;
接收所述主站發(fā)送的第二隨機數(shù),所述第二隨機數(shù)為所述主站利用所述主站非對稱密鑰中的主站私鑰對所述第一隨機數(shù)的加密結(jié)果進行解密得到的隨機數(shù);
當所述第一隨機數(shù)與所述第二隨機數(shù)相同時,判定所述主站身份認證通過,并將所述主站的身份認證通過結(jié)果發(fā)送至所述主站。
一種無CA的身份認證方法,包括以下步驟:
接收主站在接收身份認證指令后發(fā)送的主站非對稱密鑰中的主站公鑰和預(yù)存的主站公鑰的第一簽名,所述主站公鑰的第一簽名為在預(yù)設(shè)安全環(huán)境中接收所述主站發(fā)送的所述主站非對稱密鑰中主站公鑰后,利用生成的安全芯片非對稱密鑰中的安全芯片私鑰對在預(yù)設(shè)安全環(huán)境中接收的主站公鑰進行第一次簽名后得到的簽名;
利用所述安全芯片私鑰對接收的所述主站在接收身份認證指令后發(fā)送的主站公鑰進行第二次簽名,得到主站公鑰的第二簽名;
當所述主站公鑰的第一簽名和所述主站公鑰的第二簽名相同時,生成第一隨機數(shù);
利用所述主站非對稱密鑰中主站公鑰對所述第一隨機數(shù)進行加密,并將所述第一隨機數(shù)的加密結(jié)果發(fā)送至所述主站;
接收所述主站發(fā)送的第二隨機數(shù)的散列值,所述第二隨機數(shù)的散列值為所述主站利用所述主站非對稱密鑰中的主站私鑰對所述第一隨機數(shù)的加密結(jié)果進行解密得到第二隨機數(shù)后,根據(jù)所述第二隨機數(shù)確定的散列值;
當所述第一隨機數(shù)的散列值與所述第二隨機數(shù)的散列值相同時,判定所述主站身份認證通過,并將所述主站的身份認證通過結(jié)果發(fā)送至所述主站,所述第一隨機數(shù)的散列值根據(jù)所述第一隨機數(shù)確定。
一種無CA的身份認證方法,包括以下步驟:
在接收身份認證指令后,將生成的主站非對稱密鑰中的主站公鑰和預(yù)存的主站公鑰的第一簽名發(fā)送至安全芯片,所述主站公鑰的第一簽名為所述安全芯片在預(yù)設(shè)安全環(huán)境中接收所述主站非對稱密鑰中主站公鑰后,利用生成的安全芯片非對稱密鑰中的安全芯片私鑰對在預(yù)設(shè)安全環(huán)境中接收的主站公鑰進行第一次簽名得到的簽名;
接收所述安全芯片發(fā)送的第一隨機數(shù)的加密結(jié)果,所述第一隨機數(shù)的加密結(jié)果為當所述主站公鑰的第一簽名和主站公鑰的第二簽名相同時,所述安全芯片生成第一隨機數(shù)后,利用所述主站非對稱密鑰中主站公鑰對所述第一隨機數(shù)進行加密得到的隨機數(shù)的加密結(jié)果,所述主站公鑰的第二簽名為所述安全芯片利用所述安全芯片私鑰對在身份認證指令后接收的主站公鑰進行第二次簽名得到的簽名;
利用所述主站非對稱密鑰中的主站私鑰對所述第一隨機數(shù)的加密結(jié)果進行解密,得到第二隨機數(shù),并將所述第二隨機數(shù)發(fā)送至所述安全芯片;
接收所述安全芯片發(fā)送的身份認證通過結(jié)果,所述身份認證通過結(jié)果為當所述第一隨機數(shù)與所述第二隨機數(shù)相同時,所述安全芯片判定所述主站身份認證通過的結(jié)果。
一種無CA的身份認證方法,包括以下步驟:
在接收身份認證指令后,將生成的主站非對稱密鑰中的主站公鑰和預(yù)存的主站公鑰的第一簽名發(fā)送至安全芯片,所述主站公鑰的第一簽名為所述安全芯片在預(yù)設(shè)安全環(huán)境中接收所述主站非對稱密鑰中主站公鑰后,利用生成的安全芯片非對稱密鑰中的安全芯片私鑰對在預(yù)設(shè)安全環(huán)境中接收的主站公鑰進行第一次簽名得到的簽名;
接收所述安全芯片發(fā)送的第一隨機數(shù)的加密結(jié)果,所述第一隨機數(shù)的加密結(jié)果為當所述主站公鑰的第一簽名和主站公鑰的第二簽名相同時,所述安全芯片生成第一隨機數(shù)后,利用所述主站非對稱密鑰中主站公鑰對所述第一隨機數(shù)進行加密得到的隨機數(shù)的加密結(jié)果,所述主站公鑰的第二簽名為所述安全芯片利用所述安全芯片私鑰對在身份認證指令后接收的主站公鑰進行第二次簽名得到的簽名;
利用所述主站非對稱密鑰中的主站私鑰對所述第一隨機數(shù)的加密結(jié)果進行解密,得到第二隨機數(shù),根據(jù)所述第二隨機數(shù)確定所述隨機數(shù)的散列值,并將所述第二隨機數(shù)的散列值發(fā)送至所述安全芯片;
接收所述安全芯片發(fā)送的身份認證通過結(jié)果,所述身份認證通過結(jié)果為當所述第一隨機數(shù)的散列值與所述第二隨機數(shù)的散列值相同時,所述安全芯片判定所述主站身份認證通過的結(jié)果,所述第一隨機數(shù)的散列值為所述安全芯片根據(jù)所述第一隨機數(shù)確定的散列值。
一種無CA的身份認證系統(tǒng),包括:
主站公鑰及主站公鑰簽名接收模塊,用于接收主站在接收身份認證指令后發(fā)送的主站非對稱密鑰中的主站公鑰和預(yù)存的主站公鑰的第一簽名,所述主站公鑰的第一簽名為在預(yù)設(shè)安全環(huán)境中接收所述主站發(fā)送的所述主站非對稱密鑰中主站公鑰后,利用生成的安全芯片非對稱密鑰中的安全芯片私鑰對在預(yù)設(shè)安全環(huán)境中接收的主站公鑰進行第一次簽名后得到的簽名;
主站公鑰簽名模塊,用于利用所述安全芯片私鑰對接收的所述主站在接收身份認證指令后發(fā)送的主站公鑰進行第二次簽名,得到主站公鑰的第二簽名;
隨機數(shù)生成模塊,用于當所述主站公鑰的第一簽名和所述主站公鑰的第二簽名相同時,生成第一隨機數(shù);
隨機數(shù)加密模塊,用于利用所述主站非對稱密鑰中主站公鑰對所述第一隨機數(shù)進行加密;
隨機數(shù)加密結(jié)果發(fā)送模塊,用于將所述第一隨機數(shù)的加密結(jié)果發(fā)送至所述主站;
隨機數(shù)接收模塊,用于接收所述主站發(fā)送的第二隨機數(shù),所述第二隨機數(shù)為所述主站利用所述主站非對稱密鑰中的主站私鑰對所述第一隨機數(shù)的加密結(jié)果進行解密得到的隨機數(shù);
主站認證模塊,用于當所述第一隨機數(shù)與所述第二隨機數(shù)相同時,判定所述主站身份認證通過;
主站認證結(jié)果發(fā)送模塊,用于將所述主站的身份認證通過結(jié)果發(fā)送至所述主站。
一種無CA的身份認證系統(tǒng),包括:
主站公鑰及主站公鑰簽名接收模塊,用于接收主站在接收身份認證指令后發(fā)送的主站非對稱密鑰中的主站公鑰和預(yù)存的主站公鑰的第一簽名,所述主站公鑰的第一簽名為在預(yù)設(shè)安全環(huán)境中接收所述主站發(fā)送的所述主站非對稱密鑰中主站公鑰后,利用生成的安全芯片非對稱密鑰中的安全芯片私鑰對在預(yù)設(shè)安全環(huán)境中接收的主站公鑰進行第一次簽名后得到的簽名;
主站公鑰簽名模塊,用于利用所述安全芯片私鑰對接收的所述主站在接收身份認證指令后發(fā)送的主站公鑰進行第二次簽名,得到主站公鑰的第二簽名;
隨機數(shù)生成模塊,用于當所述主站公鑰的第一簽名和所述主站公鑰的第二簽名相同時,生成第一隨機數(shù);
隨機數(shù)加密模塊,用于利用所述主站非對稱密鑰中主站公鑰對所述第一隨機數(shù)進行加密;
隨機數(shù)加密結(jié)果發(fā)送模塊,用于將所述第一隨機數(shù)的加密結(jié)果發(fā)送至所述主站;
隨機數(shù)散列值接收模塊,用于接收所述主站發(fā)送的第二隨機數(shù)的散列值,所述第二隨機數(shù)的散列值為所述主站利用所述主站非對稱密鑰中的主站私鑰對所述第一隨機數(shù)的加密結(jié)果進行解密得到第二隨機數(shù)后,根據(jù)所述第二隨機數(shù)確定的散列值;
主站認證模塊,用于當所述第一隨機數(shù)的散列值與所述第二隨機數(shù)的散列值相同時,判定所述主站身份認證通過,所述第一隨機數(shù)的散列值根據(jù)所述第一隨機數(shù)確定;
主站認證結(jié)果發(fā)送模塊,用于將所述主站的身份認證通過結(jié)果發(fā)送至所述主站。
一種無CA的身份認證系統(tǒng),包括:
主站公鑰及主站公鑰簽名發(fā)送模塊,用于在接收身份認證指令后,將生成的主站非對稱密鑰中的主站公鑰和預(yù)存的主站公鑰的第一簽名發(fā)送至安全芯片,所述主站公鑰的第一簽名為所述安全芯片在預(yù)設(shè)安全環(huán)境中接收所述主站非對稱密鑰中主站公鑰后,利用生成的安全芯片非對稱密鑰中的安全芯片私鑰對在預(yù)設(shè)安全環(huán)境中接收的主站公鑰進行第一次簽名得到的簽名;
隨機數(shù)加密結(jié)果接收模塊,用于接收所述安全芯片發(fā)送的第一隨機數(shù)的加密結(jié)果,所述第一隨機數(shù)的加密結(jié)果為當所述主站公鑰的第一簽名和主站公鑰的第二簽名相同時,所述安全芯片生成第一隨機數(shù)后,利用所述主站非對稱密鑰中主站公鑰對所述第一隨機數(shù)進行加密得到的隨機數(shù)的加密結(jié)果,所述主站公鑰的第二簽名為所述安全芯片利用所述安全芯片私鑰對在身份認證指令后接收的主站公鑰進行第二次簽名得到的簽名;
隨機數(shù)加密結(jié)果解密模塊,用于利用所述主站非對稱密鑰中的主站私鑰對所述第一隨機數(shù)的加密結(jié)果進行解密,得到第二隨機數(shù);
隨機數(shù)發(fā)送模塊,用于將所述第二隨機數(shù)發(fā)送至所述安全芯片;
認證結(jié)果接收模塊,用于接收所述安全芯片發(fā)送的身份認證通過結(jié)果,所述身份認證通過結(jié)果為當所述第一隨機數(shù)與所述第二隨機數(shù)相同時,所述安全芯片判定身份認證通過的結(jié)果。
一種無CA的身份認證系統(tǒng),包括:
主站公鑰及主站公鑰簽名發(fā)送模塊,用于在接收身份認證指令后,將生成的主站非對稱密鑰中的主站公鑰和預(yù)存的主站公鑰的第一簽名發(fā)送至安全芯片,所述主站公鑰的第一簽名為所述安全芯片在預(yù)設(shè)安全環(huán)境中接收所述主站非對稱密鑰中主站公鑰后,利用生成的安全芯片非對稱密鑰中的安全芯片私鑰對在預(yù)設(shè)安全環(huán)境中接收的主站公鑰進行第一次簽名得到的簽名;
隨機數(shù)加密結(jié)果接收模塊,用于接收所述安全芯片發(fā)送的第一隨機數(shù)的加密結(jié)果,所述第一隨機數(shù)的加密結(jié)果為當所述主站公鑰的第一簽名和主站公鑰的第二簽名相同時,所述安全芯片生成第一隨機數(shù)后,利用所述主站非對稱密鑰中主站公鑰對所述第一隨機數(shù)進行加密得到的隨機數(shù)的加密結(jié)果,所述主站公鑰的第二簽名為所述安全芯片利用所述安全芯片私鑰對在身份認證指令后接收的主站公鑰進行第二次簽名得到的簽名;
隨機數(shù)加密結(jié)果解密模塊,用于利用所述主站非對稱密鑰中的主站私鑰對所述第一隨機數(shù)的加密結(jié)果進行解密,得到第二隨機數(shù),根據(jù)所述第二隨機數(shù)確定所述隨機數(shù)的散列值;
隨機數(shù)散列值發(fā)送模塊,用于將所述第二隨機數(shù)的散列值發(fā)送至所述安全芯片;
認證結(jié)果接收模塊,用于接收所述安全芯片發(fā)送的身份認證通過結(jié)果,所述身份認證通過結(jié)果為當所述第一隨機數(shù)的散列值與所述第二隨機數(shù)的散列值相同時,所述安全芯片判定身份認證通過的結(jié)果,所述第一隨機數(shù)的散列值為所述安全芯片根據(jù)所述第一隨機數(shù)確定的散列值。
與現(xiàn)有技術(shù)相比,本發(fā)明的有益效果為:本發(fā)明無CA的身份認證方法和系統(tǒng),首先接收主站在接收身份認證指令后發(fā)送的主站非對稱密鑰中的主站公鑰和預(yù)存的主站公鑰的第一簽名;然后利用安全芯片私鑰對接收的主站在接收身份認證指令后發(fā)送的主站公鑰進行第二次簽名,得到主站公鑰的第二簽名;當所述主站公鑰的第一簽名和所述主站公鑰的第二簽名相同時,生成第一隨機數(shù);利用主站非對稱密鑰中主站公鑰對所述第一隨機數(shù)進行加密,并將所述第一隨機數(shù)的加密結(jié)果發(fā)送至所述主站;接收所述主站發(fā)送的第二隨機數(shù);當所述第一隨機數(shù)與所述第二隨機數(shù)相同時,判定所述主站身份認證通過,并將所述主站的身份認證通過結(jié)果發(fā)送至所述主站。本發(fā)明對主站進行非對稱密鑰的認證,認證過程中無需在線CA的參與,減少了通信流量,消除了第三方CA的角色,降低了交互的復(fù)雜度,更加適用于工業(yè)控制等嵌入式應(yīng)用場景。
附圖說明
圖1為一個實施例中無CA的身份認證方法流程圖一;
圖2為一個實施例中無CA的身份認證方法流程圖二;
圖3為一個實施例中無CA的身份認證方法流程圖三;
圖4為一個實施例中無CA的身份認證方法流程圖四;
圖5為基于圖2、4所示方法一個具體示例中無CA的身份認證方法中主站公鑰簽名流程圖;
圖6為基于圖2、4所示方法一個具體示例中無CA的身份認證方法中公鑰驗證流程圖;
圖7為基于圖2、4所示方法一個具體示例中無CA的身份認證方法中挑戰(zhàn)/應(yīng)答流程圖;
圖8為一個實施例中無CA的身份認證系統(tǒng)結(jié)構(gòu)示意圖一;
圖9為一個實施例中無CA的身份認證系統(tǒng)結(jié)構(gòu)示意圖二;
圖10為一個實施例中無CA的身份認證系統(tǒng)結(jié)構(gòu)示意圖三;
圖11為一個實施例中無CA的身份認證系統(tǒng)結(jié)構(gòu)示意圖四。
具體實施方式
為使本發(fā)明的目的、技術(shù)方案及優(yōu)點更加清楚明白,以下結(jié)合附圖及實施例,對本發(fā)明進行進一步的詳細說明。應(yīng)當理解,此處所描述的具體實施方式僅僅用以解釋本發(fā)明,并不限定本發(fā)明的保護范圍。
圖1中示出一個實施例中本發(fā)明無CA(證書管理機構(gòu))的身份認證方法流程圖一,在該實施例中,是以安全芯片(TPM,Trusted Platform Module)的處理過程為例進行說明,這里安全芯片就是可信任平臺模塊,是一個可獨立進行密鑰生成、加解密的裝置,安全芯片安裝在終端設(shè)備中。
如圖1所示,在該實施例中,安全芯片的處理過程可以包括以下步驟:
步驟S101:接收主站在接收身份認證指令后發(fā)送的主站非對稱密鑰中的主站公鑰和預(yù)存的主站公鑰的第一簽名,所述主站公鑰的第一簽名為在預(yù)設(shè)安全環(huán)境中接收所述主站發(fā)送的所述主站非對稱密鑰中主站公鑰后,利用生成的安全芯片非對稱密鑰中的安全芯片私鑰對在預(yù)設(shè)安全環(huán)境中接收的主站公鑰進行第一次簽名后得到的簽名;
這里,身份認證指令為需要認證后才能進行相應(yīng)操作的指令,例如電表拉閘指令。主站為后臺服務(wù)器或機房等。
具體地,預(yù)設(shè)安全環(huán)境指值密鑰注入、產(chǎn)品檢測等環(huán)節(jié),這些環(huán)節(jié)由主站自身管理,通常在特殊的場所開展工作,如在機房、裝有監(jiān)控安全等級較高的車間等,這些場所通常不聯(lián)網(wǎng)、工作人員可靠。在安全環(huán)境下,可以認為一些安全風險無法產(chǎn)生威脅。
主站非對稱密鑰、安全芯片非對稱密鑰通常使用隨機數(shù)發(fā)生器隨機生成。
非對稱密鑰包括公鑰和私鑰,非對稱密鑰的公鑰和私鑰配對使用,公鑰可以公開,私鑰由密鑰持有人保管,公鑰加密的數(shù)據(jù)只有私鑰能夠解密,私鑰加密的數(shù)據(jù)(稱為簽名)只有公鑰可以解密。
步驟S102:利用所述安全芯片私鑰對接收的所述主站在接收身份認證指令后發(fā)送的主站公鑰進行第二次簽名,得到主站公鑰的第二簽名;
這里,簽名指用私鑰對數(shù)據(jù)進行加密,實際應(yīng)用中,通常使用私鑰對數(shù)據(jù)的哈希值進行加密,簽名的作用是:可以驗證數(shù)據(jù)的授權(quán)(私鑰簽名)和完整性(哈希函數(shù))。
步驟S103:當所述主站公鑰的第一簽名和所述主站公鑰的第二簽名相同時,生成第一隨機數(shù);
具體地,主站公鑰的第一簽名和所述主站公鑰的第二簽名相同說明數(shù)據(jù)與簽名是一致的,數(shù)據(jù)是經(jīng)過授權(quán)的,是正確的,是未被篡改的。若不一致,說明數(shù)據(jù)是偽造的,或經(jīng)過了篡改。
這里,使用基于硬件的隨機數(shù)發(fā)生器產(chǎn)生隨機數(shù)。
步驟S104:利用所述主站非對稱密鑰中主站公鑰對所述第一隨機數(shù)進行加密,并將所述第一隨機數(shù)的加密結(jié)果發(fā)送至所述主站;
步驟S105:接收所述主站發(fā)送的第二隨機數(shù),所述第二隨機數(shù)為所述主站利用所述主站非對稱密鑰中的主站私鑰對所述第一隨機數(shù)的加密結(jié)果進行解密得到的隨機數(shù);
步驟S106:當所述第一隨機數(shù)與所述第二隨機數(shù)相同時,判定所述主站身份認證通過,并將所述主站的身份認證通過結(jié)果發(fā)送至所述主站。
這里,若一致,則認證通過,否則返回失敗,私鑰代表了持有人,私鑰的操作就是持有人意思的表達;而公鑰則可以公開,每個人都可以拿到。上述即為如果證明A是私鑰的持有人,方法如下:B生成一個隨機數(shù),用公鑰加密,如果A能夠正確解密,告訴B隨機數(shù)的值,則說明A是私鑰的持有人。
從以上描述可知,本發(fā)明無CA的身份認證方法,對主站進行非對稱密鑰的認證,認證過程中無需在線CA的參與,減少了通信流量,消除了第三方CA的角色,降低了交互的復(fù)雜度,更加適用于工業(yè)控制等嵌入式應(yīng)用場景。
此外,在一個具體示例中,所述主站公鑰的第一簽名為在預(yù)設(shè)安全環(huán)境中接收所述主站發(fā)送的所述主站非對稱密鑰中主站公鑰后,獲得在預(yù)設(shè)安全環(huán)境中接收的主站公鑰的散列值,利用所述安全芯片私鑰對所述主站公鑰的散列值進行加密得到的簽名。
這里,簽名指用私鑰對數(shù)據(jù)進行加密,實際應(yīng)用中,通常使用私鑰對數(shù)據(jù)的哈希值進行加密,簽名的作用是:可以驗證數(shù)據(jù)的授權(quán)(私鑰簽名)和完整性(哈希函數(shù))。
圖2中示出一個實施例中本發(fā)明無CA的身份認證方法流程圖二,在該實施例中,是以安全芯片的處理過程為例進行說明。
如圖2所示,在該實施例中,安全芯片的處理過程可以包括以下步驟:
步驟S201:接收主站在接收身份認證指令后發(fā)送的主站非對稱密鑰中的主站公鑰和預(yù)存的主站公鑰的第一簽名,所述主站公鑰的第一簽名為在預(yù)設(shè)安全環(huán)境中接收所述主站發(fā)送的所述主站非對稱密鑰中主站公鑰后,利用生成的安全芯片非對稱密鑰中的安全芯片私鑰對在預(yù)設(shè)安全環(huán)境中接收的主站公鑰進行第一次簽名后得到的簽名;
具體地,所述主站公鑰的第一簽名為在預(yù)設(shè)安全環(huán)境中接收所述主站發(fā)送的所述主站非對稱密鑰中主站公鑰后,獲得在預(yù)設(shè)安全環(huán)境中接收的主站公鑰的散列值,利用所述安全芯片私鑰對所述主站公鑰的散列值進行加密得到的簽名。
步驟S202:利用所述安全芯片私鑰對接收的所述主站在接收身份認證指令后發(fā)送的主站公鑰進行第二次簽名,得到主站公鑰的第二簽名;
步驟S203:當所述主站公鑰的第一簽名和所述主站公鑰的第二簽名相同時,生成第一隨機數(shù);
步驟S204:利用所述主站非對稱密鑰中主站公鑰對所述第一隨機數(shù)進行加密,并將所述第一隨機數(shù)的加密結(jié)果發(fā)送至所述主站;
步驟S205:接收所述主站發(fā)送的第二隨機數(shù)的散列值,所述第二隨機數(shù)的散列值為所述主站利用所述主站非對稱密鑰中的主站私鑰對所述第一隨機數(shù)的加密結(jié)果進行解密得到第二隨機數(shù)后,根據(jù)所述第二隨機數(shù)確定的散列值;
步驟S206:當所述第一隨機數(shù)的散列值與所述第二隨機數(shù)的散列值相同時,判定所述主站身份認證通過,并將所述主站的身份認證通過結(jié)果發(fā)送至所述主站,所述第一隨機數(shù)的散列值根據(jù)所述第一隨機數(shù)確定。
這里,散列值又稱哈希值,哈希函數(shù)用于計算數(shù)據(jù)的“指紋”,數(shù)據(jù)有微小的改變,其哈希值會有明顯不同。因此,這里的一致說明數(shù)據(jù)與簽名是一致的,數(shù)據(jù)是經(jīng)過授權(quán)的,是正確的,是未被篡改的。若不一致,說明數(shù)據(jù)是偽造的,或經(jīng)過了篡改。
從以上描述可知,本發(fā)明無CA的身份認證方法,對主站進行非對稱密鑰的認證,認證過程中無需在線CA的參與,減少了通信流量,消除了第三方CA的角色,降低了交互的復(fù)雜度,更加適用于工業(yè)控制等嵌入式應(yīng)用場景。
圖3中示出一個實施例中本發(fā)明無CA的身份認證方法流程圖三,在該實施例中,是以主站的處理過程為例進行說明。
如圖3所示,在該實施例中,主站的處理過程可以包括以下步驟:
步驟S301:在接收身份認證指令后,將生成的主站非對稱密鑰中的主站公鑰和預(yù)存的主站公鑰的第一簽名發(fā)送至安全芯片,所述主站公鑰的第一簽名為所述安全芯片在預(yù)設(shè)安全環(huán)境中接收所述主站非對稱密鑰中主站公鑰后,利用生成的安全芯片非對稱密鑰中的安全芯片私鑰對在預(yù)設(shè)安全環(huán)境中接收的主站公鑰進行第一次簽名得到的簽名;
步驟S302:接收所述安全芯片發(fā)送的第一隨機數(shù)的加密結(jié)果,所述第一隨機數(shù)的加密結(jié)果為當所述主站公鑰的第一簽名和主站公鑰的第二簽名相同時,所述安全芯片生成第一隨機數(shù)后,利用所述主站非對稱密鑰中主站公鑰對所述第一隨機數(shù)進行加密得到的隨機數(shù)的加密結(jié)果,所述主站公鑰的第二簽名為所述安全芯片利用所述安全芯片私鑰對在身份認證指令后接收的主站公鑰進行第二次簽名得到的簽名;
步驟S303:利用所述主站非對稱密鑰中的主站私鑰對所述第一隨機數(shù)的加密結(jié)果進行解密,得到第二隨機數(shù),并將所述第二隨機數(shù)發(fā)送至所述安全芯片;
步驟S304:接收所述安全芯片發(fā)送的身份認證通過結(jié)果,所述身份認證通過結(jié)果為當所述第一隨機數(shù)與所述第二隨機數(shù)相同時,所述安全芯片判定所述主站身份認證通過的結(jié)果。
從以上描述可知,本發(fā)明無CA的身份認證方法,對主站進行非對稱密鑰的認證,認證過程中無需在線CA的參與,減少了通信流量,消除了第三方CA的角色,降低了交互的復(fù)雜度,更加適用于工業(yè)控制等嵌入式應(yīng)用場景。
此外,在一個具體實施例中,所述主站公鑰的第一簽名為所述安全芯片在預(yù)設(shè)安全環(huán)境中接收所述主站非對稱密鑰中主站公鑰后,獲得在預(yù)設(shè)安全環(huán)境中接收的主站公鑰的散列值,利用所述安全芯片私鑰對所述主站公鑰的散列值進行加密得到的簽名。
圖4中示出一個實施例中本發(fā)明無CA的身份認證方法流程圖四,在該實施例中,是以主站的處理過程為例進行說明。
如圖4所示,在該實施例中,主站的處理過程可以包括以下步驟:
步驟S401:在接收身份認證指令后,將生成的主站非對稱密鑰中的主站公鑰和預(yù)存的主站公鑰的第一簽名發(fā)送至安全芯片,所述主站公鑰的第一簽名為所述安全芯片在預(yù)設(shè)安全環(huán)境中接收所述主站非對稱密鑰中主站公鑰后,利用生成的安全芯片非對稱密鑰中的安全芯片私鑰對在預(yù)設(shè)安全環(huán)境中接收的主站公鑰進行第一次簽名得到的簽名;
這里,所述主站公鑰的第一簽名為所述安全芯片在預(yù)設(shè)安全環(huán)境中接收所述主站非對稱密鑰中主站公鑰后,獲得在預(yù)設(shè)安全環(huán)境中接收的主站公鑰的散列值,利用所述安全芯片私鑰對所述主站公鑰的散列值進行加密得到的簽名。
步驟S402:接收所述安全芯片發(fā)送的第一隨機數(shù)的加密結(jié)果,所述第一隨機數(shù)的加密結(jié)果為當所述主站公鑰的第一簽名和主站公鑰的第二簽名相同時,所述安全芯片生成第一隨機數(shù)后,利用所述主站非對稱密鑰中主站公鑰對所述第一隨機數(shù)進行加密得到的隨機數(shù)的加密結(jié)果,所述主站公鑰的第二簽名為所述安全芯片利用所述安全芯片私鑰對在身份認證指令后接收的主站公鑰進行第二次簽名得到的簽名;
步驟S403:利用所述主站非對稱密鑰中的主站私鑰對所述第一隨機數(shù)的加密結(jié)果進行解密,得到第二隨機數(shù),根據(jù)所述第二隨機數(shù)確定所述隨機數(shù)的散列值,并將所述第二隨機數(shù)的散列值發(fā)送至所述安全芯片;
步驟S404:接收所述安全芯片發(fā)送的身份認證通過結(jié)果,所述身份認證通過結(jié)果為當所述第一隨機數(shù)的散列值與所述第二隨機數(shù)的散列值相同時,所述安全芯片判定所述主站身份認證通過的結(jié)果,所述第一隨機數(shù)的散列值為所述安全芯片根據(jù)所述第一隨機數(shù)確定的散列值。
從以上描述可知,本發(fā)明無CA的身份認證方法,對主站進行非對稱密鑰的認證,認證過程中無需在線CA的參與,減少了通信流量,消除了第三方CA的角色,降低了交互的復(fù)雜度,更加適用于工業(yè)控制等嵌入式應(yīng)用場景。
為了更好地理解上述方法,以下詳細闡述一個本發(fā)明無CA的身份認證方法的應(yīng)用實例。
結(jié)合上述圖2、圖4中的方案,在本實施例中,是以安全芯片和主站之間的雙向交互過程為例進行說明,這種說明并不用以對本發(fā)明方案構(gòu)成限定。
本實施例主要有三個步驟,分別是主站公鑰簽名、公鑰驗證和挑戰(zhàn)/應(yīng)答。
主站公鑰簽名流程如圖5所示,TPM(Trusted Platform Module,安全芯片)生成安全芯片非對稱密鑰,主站生成主站非對稱密鑰,安全芯片非對稱密鑰包括安全芯片公鑰Ktpmpub和安全芯片私鑰Ktpmpri,主站非對稱密鑰包括主站公鑰Kuserpub和主站私鑰Kuserpri;
在安全環(huán)境中,主站將主站公鑰Kuserpub發(fā)送至TPM;
這里,安全環(huán)境指嵌入式設(shè)備生成等環(huán)節(jié)中涉及到的安全芯片密鑰注入等環(huán)節(jié),此時可以認為主站的密鑰沒有被篡改、偽造。
TPM使用安全芯片私鑰Ktpmpri對主站公鑰Kuserpub進行簽名,得到主站公鑰Kuserpub的第一簽名Ktpmpri(Hash(Kuserpub)),并將該簽名發(fā)送給主站,主站保存該簽名;
公鑰驗證流程如圖6所示,TPM在安裝在設(shè)備中開始工作后,應(yīng)用程序會需要進行認證,此時,應(yīng)用程序即為主站,主站將保存的主站公鑰Kuserpub的第一簽名Ktpmpri(Hash(Kuserpub))和主站公鑰Kuserpub一起發(fā)送個TPM;
TPM使用安全芯片私鑰Ktpmpri對上一步驟接收的主站公鑰Kuserpub進行簽名,得到主站公鑰Kuserpub的第二簽名Ktpmpri’(Hash(Kuserpub));
挑戰(zhàn)/應(yīng)答流程如圖7所示,TPM將主站公鑰Kuserpub的第一簽名Ktpmpri(Hash(Kuserpub))與主站公鑰Kuserpub的第二簽名Ktpmpri’(Hash(Kuserpub))進行比較,當上述兩個簽名相同時,生成隨機數(shù)nonce,否則返回失?。?/p>
TPM使用主站公鑰Kuserpub對隨機數(shù)nonce進行加密,得到加密結(jié)果Kuserpub(nonce),將該加密結(jié)果發(fā)送至主站;
主站使用主站私鑰Kuserpri對上述加密結(jié)果進行解密,得到隨機數(shù)nonce’,計算nonce’的散列值Hash(nonce’),并將Hash(nonce’)發(fā)送給TPM;
TPM計算隨機數(shù)nonce的散列值Hash(nonce),并與接收到的隨機數(shù)nonce’的散列值Hash(nonce’)進行比較,若一致,則身份認證通過,否則返回失敗。
從以上描述可知,本實施例包括主站公鑰簽名、公鑰驗證和挑戰(zhàn)/應(yīng)答三個步驟,主站公鑰簽名流程是:在安全的環(huán)境下,主站將主站公鑰發(fā)送給TPM,TPM對主站公鑰進行第一次簽名,并將簽名數(shù)據(jù)發(fā)送給主站進行保存;公鑰驗證流程是:安全芯片在安裝在設(shè)備中開始工作后,主站將主站公鑰和上述第一簽名一起發(fā)送個TPM,TPM對接收的主站公鑰進行第二次簽名;挑戰(zhàn)/應(yīng)答流程是:當兩次簽名相同時,TPM生成隨機數(shù)nonce,使用主站公鑰進行加密,將加密結(jié)果發(fā)送給主站,主站用主站私鑰進行解密,得到隨機數(shù)nonce’,計算該隨機數(shù)的散列值,將該散列值發(fā)送給TPM,TPM計算nonce的散列值,并與接收到的散列值進行比較,若一致,則身份認證通過。本實施例對主站進行非對稱密鑰的認證,認證過程中無需在線CA的參與,減少了通信流量,消除了第三方CA的角色,降低了交互的復(fù)雜度,更加適用于工業(yè)控制等嵌入式應(yīng)用場景。
圖8中示出一個實施例中本發(fā)明無CA的身份認證系統(tǒng)結(jié)構(gòu)示意圖一,在該實施例中,是以安全芯片這端為例進行說明。
如圖8所示,在該實施例中,無CA的身份認證系統(tǒng)可以包括:
主站公鑰及主站公鑰簽名接收模塊801,用于接收主站在接收身份認證指令后發(fā)送的主站非對稱密鑰中的主站公鑰和預(yù)存的主站公鑰的第一簽名,所述主站公鑰的第一簽名為在預(yù)設(shè)安全環(huán)境中接收所述主站發(fā)送的所述主站非對稱密鑰中主站公鑰后,利用生成的安全芯片非對稱密鑰中的安全芯片私鑰對在預(yù)設(shè)安全環(huán)境中接收的主站公鑰進行第一次簽名后得到的簽名;
主站公鑰簽名模塊802,用于利用所述安全芯片私鑰對接收的所述主站在接收身份認證指令后發(fā)送的主站公鑰進行第二次簽名,得到主站公鑰的第二簽名;
隨機數(shù)生成模塊803,用于當所述主站公鑰的第一簽名和所述主站公鑰的第二簽名相同時,生成第一隨機數(shù);
隨機數(shù)加密模塊804,用于利用所述主站非對稱密鑰中主站公鑰對所述第一隨機數(shù)進行加密;
隨機數(shù)加密結(jié)果發(fā)送模塊805,用于將所述第一隨機數(shù)的加密結(jié)果發(fā)送至所述主站;
隨機數(shù)接收模塊806,用于接收所述主站發(fā)送的第二隨機數(shù),所述第二隨機數(shù)為所述主站利用所述主站非對稱密鑰中的主站私鑰對所述第一隨機數(shù)的加密結(jié)果進行解密得到的隨機數(shù);
主站認證模塊807,用于當所述第一隨機數(shù)與所述第二隨機數(shù)相同時,判定所述主站身份認證通過;
主站認證結(jié)果發(fā)送模塊808,用于將所述主站的身份認證通過結(jié)果發(fā)送至所述主站。
圖9中示出一個實施例中本發(fā)明無CA的身份認證系統(tǒng)結(jié)構(gòu)示意圖二,在該實施例中,是以安全芯片這端為例進行說明。
如圖9所示,在該實施例中,無CA的身份認證系統(tǒng)可以包括:
主站公鑰及主站公鑰簽名接收模塊901,用于接收主站在接收身份認證指令后發(fā)送的主站非對稱密鑰中的主站公鑰和預(yù)存的主站公鑰的第一簽名,所述主站公鑰的第一簽名為在預(yù)設(shè)安全環(huán)境中接收所述主站發(fā)送的所述主站非對稱密鑰中主站公鑰后,利用生成的安全芯片非對稱密鑰中的安全芯片私鑰對在預(yù)設(shè)安全環(huán)境中接收的主站公鑰進行第一次簽名后得到的簽名;
主站公鑰簽名模塊902,用于利用所述安全芯片私鑰對接收的所述主站在接收身份認證指令后發(fā)送的主站公鑰進行第二次簽名,得到主站公鑰的第二簽名;
隨機數(shù)生成模塊903,用于當所述主站公鑰的第一簽名和所述主站公鑰的第二簽名相同時,生成第一隨機數(shù);
隨機數(shù)加密模塊904,用于利用所述主站非對稱密鑰中主站公鑰對所述第一隨機數(shù)進行加密;
隨機數(shù)加密結(jié)果發(fā)送模塊905,用于將所述第一隨機數(shù)的加密結(jié)果發(fā)送至所述主站;
隨機數(shù)散列值接收模塊906,用于接收所述主站發(fā)送的第二隨機數(shù)的散列值,所述第二隨機數(shù)的散列值為所述主站利用所述主站非對稱密鑰中的主站私鑰對所述第一隨機數(shù)的加密結(jié)果進行解密得到第二隨機數(shù)后,根據(jù)所述第二隨機數(shù)確定的散列值;
主站認證模塊907,用于當所述第一隨機數(shù)的散列值與所述第二隨機數(shù)的散列值相同時,判定所述主站身份認證通過,所述第一隨機數(shù)的散列值根據(jù)所述第一隨機數(shù)確定;
主站認證結(jié)果發(fā)送模塊908,用于將所述主站的身份認證通過結(jié)果發(fā)送至所述主站。
圖10中示出一個實施例中本發(fā)明無CA的身份認證系統(tǒng)結(jié)構(gòu)示意圖三,在該實施例中,是以主站這端為例進行說明。
如圖10所示,在該實施例中,無CA的身份認證系統(tǒng)可以包括:
主站公鑰及主站公鑰簽名發(fā)送模塊1001,用于在接收身份認證指令后,將生成的主站非對稱密鑰中的主站公鑰和預(yù)存的主站公鑰的第一簽名發(fā)送至安全芯片,所述主站公鑰的第一簽名為所述安全芯片在預(yù)設(shè)安全環(huán)境中接收所述主站非對稱密鑰中主站公鑰后,利用生成的安全芯片非對稱密鑰中的安全芯片私鑰對在預(yù)設(shè)安全環(huán)境中接收的主站公鑰進行第一次簽名得到的簽名;
隨機數(shù)加密結(jié)果接收模塊1002,用于接收所述安全芯片發(fā)送的第一隨機數(shù)的加密結(jié)果,所述第一隨機數(shù)的加密結(jié)果為當所述主站公鑰的第一簽名和主站公鑰的第二簽名相同時,所述安全芯片生成第一隨機數(shù)后,利用所述主站非對稱密鑰中主站公鑰對所述第一隨機數(shù)進行加密得到的隨機數(shù)的加密結(jié)果,所述主站公鑰的第二簽名為所述安全芯片利用所述安全芯片私鑰對在身份認證指令后接收的主站公鑰進行第二次簽名得到的簽名;
隨機數(shù)加密結(jié)果解密模塊1003,用于利用所述主站非對稱密鑰中的主站私鑰對所述第一隨機數(shù)的加密結(jié)果進行解密,得到第二隨機數(shù);
隨機數(shù)發(fā)送模塊1004,用于將所述第二隨機數(shù)發(fā)送至所述安全芯片;
認證結(jié)果接收模塊1005,用于接收所述安全芯片發(fā)送的身份認證通過結(jié)果,所述身份認證通過結(jié)果為當所述第一隨機數(shù)與所述第二隨機數(shù)相同時,所述安全芯片判定身份認證通過的結(jié)果。
圖11中示出一個實施例中本發(fā)明無CA的身份認證系統(tǒng)結(jié)構(gòu)示意圖四,在該實施例中,是以主站這端為例進行說明。
如圖11所示,在該實施例中,無CA的身份認證系統(tǒng)可以包括:
主站公鑰及主站公鑰簽名發(fā)送模塊1101,用于在接收身份認證指令后,將生成的主站非對稱密鑰中的主站公鑰和預(yù)存的主站公鑰的第一簽名發(fā)送至安全芯片,所述主站公鑰的第一簽名為所述安全芯片在預(yù)設(shè)安全環(huán)境中接收所述主站非對稱密鑰中主站公鑰后,利用生成的安全芯片非對稱密鑰中的安全芯片私鑰對在預(yù)設(shè)安全環(huán)境中接收的主站公鑰進行第一次簽名得到的簽名;
隨機數(shù)加密結(jié)果接收模塊1102,用于接收所述安全芯片發(fā)送的第一隨機數(shù)的加密結(jié)果,所述第一隨機數(shù)的加密結(jié)果為當所述主站公鑰的第一簽名和主站公鑰的第二簽名相同時,所述安全芯片生成第一隨機數(shù)后,利用所述主站非對稱密鑰中主站公鑰對所述第一隨機數(shù)進行加密得到的隨機數(shù)的加密結(jié)果,所述主站公鑰的第二簽名為所述安全芯片利用所述安全芯片私鑰對在身份認證指令后接收的主站公鑰進行第二次簽名得到的簽名;
隨機數(shù)加密結(jié)果解密模塊1103,用于利用所述主站非對稱密鑰中的主站私鑰對所述第一隨機數(shù)的加密結(jié)果進行解密,得到第二隨機數(shù),根據(jù)所述第二隨機數(shù)確定所述隨機數(shù)的散列值;
隨機數(shù)散列值發(fā)送模塊1104,用于將所述第二隨機數(shù)的散列值發(fā)送至所述安全芯片;
認證結(jié)果接收模塊1105,用于接收所述安全芯片發(fā)送的身份認證通過結(jié)果,所述身份認證通過結(jié)果為當所述第一隨機數(shù)的散列值與所述第二隨機數(shù)的散列值相同時,所述安全芯片判定身份認證通過的結(jié)果,所述第一隨機數(shù)的散列值為所述安全芯片根據(jù)所述第一隨機數(shù)確定的散列值。
從以上描述可知,本發(fā)明無CA的身份認證系統(tǒng),對主站進行非對稱密鑰的認證,認證過程中無需在線CA的參與,減少了通信流量,消除了第三方CA的角色,降低了交互的復(fù)雜度,更加適用于工業(yè)控制等嵌入式應(yīng)用場景。
以上所述實施例的各技術(shù)特征可以進行任意的組合,為使描述簡潔,未對上述實施例中的各個技術(shù)特征所有可能的組合都進行描述,然而,只要這些技術(shù)特征的組合不存在矛盾,都應(yīng)當認為是本說明書記載的范圍。
以上所述實施例僅表達了本發(fā)明的幾種實施方式,其描述較為具體和詳細,但并不能因此而理解為對發(fā)明專利范圍的限制。應(yīng)當指出的是,對于本領(lǐng)域的普通技術(shù)人員來說,在不脫離本發(fā)明構(gòu)思的前提下,還可以做出若干變形和改進,這些都屬于本發(fā)明的保護范圍。因此,本發(fā)明專利的保護范圍應(yīng)以所附權(quán)利要求為準。