本發明專利技術提出的一種數據包的生成方法,屬于安全認證技術領域;包括:創建一個待填充的數據包,根據讀取的硬件設備中的公鑰信息生成臨時密鑰對,根據讀取的硬件設備內部信息和接收到的外部參數信息設置所述待填充的數據包的數據;從所述數據包中獲取待簽名數據,并根據預設簽名算法和臨時密鑰對的私鑰對待簽名數據進行簽名得到第一簽名值并將其設置在數據包的數據中;將所述待簽名數據發送給所述硬件設備并獲取第二簽名值;將所述第二簽名值的類型轉換成預設簽名值結構類型,并用轉換后的第二簽名值替換所述數據包中的第一簽名值,將當前數據包轉換成預設編碼類型的數據包。該方法不破壞原有基于開源密碼算法庫的應用的框架,在使用中具有實際意義。
【技術實現步驟摘要】
本專利技術屬于安全認證
,具體涉及。
技術介紹
現有技術中,在基于開源密碼算法庫的應用中使用硬件設備存在以下問題:開源密碼算法庫的版本不同,實現硬件設備的自定義接口也有所改變,不利于代碼維護。例如,以開源密碼算法庫OpenSSL為例,傳統情況下,在SSL (安全套接層協議,Secure SocketLayer的縮寫)中使用高強度算法的硬件設備,需要做大量的接口修改工作,并要求開發者熟悉硬件的內部結構和相應的開發接口。OpenSSL的引擎機制通過提供通用的加密接口解決了這個難題。OpenSSL中的引擎技術雖便于對算法庫進行算法擴展,但在實現時發現,隨著OpenSSL版本的升級,引擎接口定義也有所不同。且在應用時,實現一個引擎不是一件很容易的事情。所以,現有技術有以下缺陷:版本不同,引擎實現接口有所變化,不利于代碼維護;實現引擎難度較大,對在開源密碼算法庫的應用中嵌入使用硬件設備的開發帶來困難。
技術實現思路
為解決現有技術中存在的問題,本專利技術提出了結合開源密碼算法庫和硬件設備的。本專利技術采用的技術方案如下:,包括:步驟S1:數據包生成器創建一個待填充的數據包;步驟S2:所述數據包生成器根據讀取的硬件設備中的公鑰信息生成臨時密鑰對;步驟S3:所述數據包生成器根據讀取的硬件設備內部信息和接收到的外部參數信息設置所述待填充的數據包的數據;步驟S4:所述數據包生成器從所述數據包中獲取待簽名數據,并根據預設簽名算法,使用所述臨時密鑰對的私鑰對所述待簽名數據進行簽名得到第一簽名值,并將所述第一簽名值設置在所述數據包的數據中;步驟S5:所述數據包生成器將所述待簽名數據發送給所述硬件設備,并接收所述硬件設備返回的第二簽名值;步驟S6:所述數據包生成器將所述第二簽名值的類型轉換成預設簽名值結構類型,并用轉換后的第二簽名值替換所述數據包中的第一簽名值;步驟S7:所述數據包生成器驗證當前數據包,正確則執行下一步,否則報錯;步驟S8:所述數據包生成器將當前數據包轉換成預設編碼類型的數據包。其中,所述步驟SI具體為創建一個待填充的證書請求數據包并設置所述證書請求數據包的版本。步驟S2中所述硬件設備中的公鑰信息是指硬件設備根據接收到的外部輸入參數生成的預設密鑰對中的公鑰的類型信息。步驟S3所述硬件設備內部信息是指硬件設備根據接收到的外部輸入參數生成的預設密鑰對中的公鑰,所述外部參數信息是指外部傳入的主題字符串和摘要算法。所述步驟S3具體為,根據所述公鑰、所述主題字符串和所述摘要算法設置所述證書請求數據包的用戶公鑰、主題項和摘要算法,進一步具體為,I)將外部傳入的所述主題字符串轉換成第一預設類型,根據轉換后的主題字符串設置所述證書請求數據包的主題項;2)根據外部傳入的所述摘要算法設置所述證書請求數據包的摘要算法;3)將所述公鑰轉換成第二預設類型,根據轉換后的公鑰設置所述證書請求數據包中的用戶公鑰。步驟S4所述待簽名數據包括所述證書請求數據包中的用戶公鑰和主題項。或者:所述步驟SI具體為創建一個待填充的加密消息數據包并設置所述加密消息數據包的類型。步驟S2中所述硬件設備中的公鑰信息是指根據外部輸入參數選取的導入證書中的公鑰的類型信息。步驟S3所述硬件設備內部信息是指根據外部輸入參數從硬件設備中選取的導入證書的公鑰,所述外部參數信息為外部傳入的摘要算法和原文數據。步驟S3具體為,根據所述導入證書在所述加密消息數據包中設置用戶證書,根據所述外部傳入的摘要算法和所述臨時密鑰對在所述加密消息數據包中設置簽名值結構,根據外部傳入的原文數據在所述加密消息數據包中設置待簽名數據。上述步驟S2具體為:所述數據包生成器根據讀取的硬件設備中的公鑰的位長生成預設長度的隨機數作為臨時密鑰對。上述預設簽名算法為MD5RSA或SHA1RSA。步驟S7所述驗證當前數據包具體為:對當前數據包中的待簽名數據進行摘要得到第一摘要值,對當前數據包中的第二簽名值做公鑰解密得到第二摘要值,比對這兩個摘要值,如果完全一致則驗證成功,否則驗證失敗。步驟S8所述預設編碼類型為DER編碼類型。采用本專利技術達到的有益效果是:該方法不破壞原有基于開源密碼算法庫的應用的框架,在使用中具有實際意義。附圖說明圖1是實施例1提出的流程圖;圖2是實施例2提供的一種證書請求數據包的生成方法流程圖;圖3是實施例3提供的一種加密消息數據包的生成方法流程圖。具體實施例方式為使本專利技術的目的、技術方案和優點更加清楚,下面將結合附圖對本專利技術實施方式作進一步地詳細描述。實施例1結合開源密碼算法庫和硬件設備,本實施例提出了,所述開源密碼算法庫采用普遍使用的OpenSSL,所述硬件設備為硬件加密設備;如圖1所示,所述方法包括:步驟1:數據包生成器創建一個待填充的數據包;例如,通過調用X509_REQ_new O來創建一個待填充的證書請求數據包(X509_REQ);或是通過調用PKCS7_new()來創建一個待填充的加密消息數據包(PKCS7)。所述數據包生成器用于根據開源算法庫和硬件加密設備生成特定的數據包。步驟2:數據包生成器根據讀取的硬件設備中的公鑰信息生成臨時密鑰對;具體地,當硬件設備中存在導入證書時,所述公鑰信息為根據外部輸入參數選取的導入證書中的公鑰的類型信息;當硬件設備中不存在導入證書時,硬件設備根據接收到的外部輸入參數生成預設密鑰對,所述公鑰信息為根據預設密鑰對的公鑰句柄導出的公鑰的類型信息。本實施例中,本步驟具體為:根據讀取的硬件設備中的公鑰的位長生成預設長度的隨機數作為臨時密鑰對。步驟3:數據包生成器根據讀取的硬件設備內部信息和接收到的外部參數信息設置所述待填充的數據包的數據;具體地,當所述待填充的數據包為X509_REQ時,所述讀取的硬件設備內部信息為根據硬件設備中預設密鑰對的公鑰句柄導出的公鑰,所述外部參數信息為外部傳入的DN字符串、摘要算法;設置X509_REQ中的數據具體包括根據所述導出的公鑰、外部傳入的DN字符串和摘要算法設置X509_REQ的用戶公鑰、主題(即DN項)、摘要算法;當所述待填充的數據包為PKCS7時,所述讀取的硬件設備內部信息為硬件設備中存儲的導入證書,所述外部參數信息為外部傳入的摘要算法;設置PKCS7中的數據具體包括根據導入證書在PKCS7中設置用戶證書,根據摘要算法和所述臨時密鑰對在PKCS7設置簽名值結構,根據外部傳入的原文數據在PKCS7中設置待簽名數據。步驟4:數據包生成器從所述數據包中獲取待簽名數據,并根據預設簽名算法,使用臨時密鑰對的私鑰對待簽名數據進行簽名得到第一簽名值,并將該第一簽名值設置在數據包的數據中;具體地,當所述待填充的數據包為X509_REQ時,待簽名數據為X509_REQ中的用戶公鑰、DN項和摘要算法;當所述待填充的數據包為PKCS7時,待簽名數據為外部傳入的原文數據,例如外部傳入的證書請求數據等。所述預設算法可以為MD5RSA或SHA1RSA。步驟5:數據包生成器將所述待簽名數據發送給硬件設備,并接收硬件設備返回的第二簽名值;具體地:硬件設備根據設備中存儲的私鑰的句柄訪問私鑰,并根據預設簽名算法對接收到的待簽名數據進行簽名,生成第二簽名值,并將所述第二簽名值返回給數據包生成器;本實施例中具體地,數據包生成器調用標準接口訪問硬件設備本文檔來自技高網...
【技術保護點】
一種數據包的生成方法,其特征在于,包括:步驟S1:數據包生成器創建一個待填充的數據包;步驟S2:所述數據包生成器根據讀取的硬件設備中的公鑰信息生成臨時密鑰對;步驟S3:所述數據包生成器根據讀取的硬件設備內部信息和接收到的外部參數信息設置所述待填充的數據包的數據;步驟S4:所述數據包生成器從所述數據包中獲取待簽名數據,并根據預設簽名算法,使用所述臨時密鑰對的私鑰對所述待簽名數據進行簽名得到第一簽名值,并將所述第一簽名值設置在所述數據包的數據中;步驟S5:所述數據包生成器將所述待簽名數據發送給所述硬件設備,并接收所述硬件設備返回的第二簽名值;步驟S6:所述數據包生成器將所述第二簽名值的類型轉換成預設簽名值結構類型,并用轉換后的第二簽名值替換所述數據包中的第一簽名值;步驟S7:所述數據包生成器驗證當前數據包,如正確則執行下一步,否則報錯;步驟S8:所述數據包生成器將當前數據包轉換成預設編碼類型的數據包。
【技術特征摘要】
1.一種數據包的生成方法,其特征在于,包括: 步驟S1:數據包生成器創建一個待填充的數據包; 步驟S2:所述數據包生成器根據讀取的硬件設備中的公鑰信息生成臨時密鑰對; 步驟S3:所述數據包生成器根據讀取的硬件設備內部信息和接收到的外部參數信息設置所述待填充的數據包的數據; 步驟S4:所述數據包生成器從所述數據包中獲取待簽名數據,并根據預設簽名算法,使用所述臨時密鑰對的私鑰對所述待簽名數據進行簽名得到第一簽名值,并將所述第一簽名值設置在所述數據包的數據中; 步驟S5:所述數據包生成器將所述待簽名數據發送給所述硬件設備,并接收所述硬件設備返回的第二簽名值; 步驟S6:所述數據包生成器將所述第二簽名值的類型轉換成預設簽名值結構類型,并用轉換后的第二簽名值替換所述數據包中的第一簽名值; 步驟S7:所述數據包生成器驗證當前數據包,如正確則執行下一步,否則報錯; 步驟S8:所述數據包生成器將當前數據包轉換成預設編碼類型的數據包。2.如權利要求1所述的方法,其特征在于,所述步驟SI具體為創建一個待填充的證書請求數據包并設置所述證書請求數據包的版本。3.如權利要求2所述的方法,其特征在于,步驟S2中所述硬件設備中的公鑰信息是指硬件設備根據接收到的外部輸入參數生成的預設密鑰對中的公鑰的類型信息。4.如權利要求1所述的方法,其特征在于,步驟S2具體為:所述數據包生成器根據讀取的硬件設備中的公鑰的位長生成預設長度的隨機數作為臨時密鑰對。5.如權利要求2所述的方法,其特征在于,步驟S3所述硬件設備內部信息是指硬件設備根據接收到的外部輸入參數生成的預設密鑰對中的公鑰,所述外部參數信息是指外部傳入的主題字符串和摘要算法。6.如權利要求5所述的方法,其特征在于,所述步驟S3具體為,根據所述公鑰、所述主題字符串和所述摘要算法設置所述證書請求數據包的用戶公鑰、主題項和...
【專利技術屬性】
技術研發人員:陸舟,于華章,
申請(專利權)人:飛天誠信科技股份有限公司,
類型:發明
國別省市:
還沒有人留言評論。發表了對其他瀏覽者有用的留言會獲得科技券。