版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
GB/TXXXXX—XXXXPAGE1GB/TXXXXX—XXXXPAGE4FORMTEXTXXXX-FORMTEXTXX-FORMTEXTXX發(fā)布FORMTEXTXXXX-FORMTEXTXX-FORMTEXTXX實施簽名驗簽服務(wù)器技術(shù)規(guī)范范圍本標(biāo)準(zhǔn)規(guī)定了簽名驗簽服務(wù)器的功能要求、安全要求、接口要求和消息協(xié)議語法規(guī)范等有關(guān)內(nèi)容。本標(biāo)準(zhǔn)適用于簽名驗簽服務(wù)器的研制設(shè)計、應(yīng)用開發(fā)、管理和使用,也可用于指導(dǎo)簽名驗簽服務(wù)器的檢測。規(guī)范性引用文件下列文件對于本文件的應(yīng)用是必不可少的。凡是注日期的引用文件,僅注日期的版本適用于本文件,凡是不注日期的引用文件,其最新版本(包括所有的修改單)適用于本文件。GB/T9813-2000微型計算機(jī)通用規(guī)范GB/T19713-2005信息技術(shù)安全技術(shù)公鑰基礎(chǔ)設(shè)施在線證書狀態(tài)協(xié)議GB/T20518-2006信息安全技術(shù)公鑰基礎(chǔ)設(shè)施數(shù)字證書格式GB/T25056-2010信息安全技術(shù)證書認(rèn)證系統(tǒng)密碼及其相關(guān)安全技術(shù)規(guī)范GB/T25069-2010信息安全技術(shù)術(shù)語GB/T32905-2016信息安全技術(shù)SM3密碼雜湊算法GB/T32918-2016信息安全技術(shù)SM2橢圓曲線公鑰密碼算法GB/T33560-2017信息安全技術(shù)密碼應(yīng)用標(biāo)識規(guī)范GB/TAAAA信息安全技術(shù)SM2密碼算法使用規(guī)范GB/TBBBB信息安全技術(shù)SM2密碼算法加密簽名消息語法規(guī)范GB/TCCCC信息安全技術(shù)密碼設(shè)備應(yīng)用接口規(guī)范GB/TDDDD信息安全技術(shù)智能密碼鑰匙應(yīng)用接口規(guī)范GM/T0020證書應(yīng)用綜合服務(wù)接口規(guī)范術(shù)語和定義下列術(shù)語和定義適用于本文件。安全域securitydomain在信息系統(tǒng)中,單一安全策略下運行的實體的匯集。例如,由單個或一組認(rèn)證機(jī)構(gòu)采用同一安全策略創(chuàng)建的各公鑰證書的匯集。簽名驗簽服務(wù)器signandverifyserver用于服務(wù)端的,為應(yīng)用實體提供基于PKI體系和數(shù)字證書的數(shù)字簽名、驗證簽名等運算功能的服務(wù)器,可以保證關(guān)鍵業(yè)務(wù)信息的真實性、完整性和不可否認(rèn)性。應(yīng)用實體applicationentity簽名驗簽服務(wù)器的服務(wù)對象,可以是個人、機(jī)構(gòu)或系統(tǒng),其私鑰存儲在簽名驗簽服務(wù)器的密碼設(shè)備中,能夠使用簽名驗簽服務(wù)器進(jìn)行簽名及驗簽運算。用戶user與應(yīng)用實體進(jìn)行通信或認(rèn)證的個人、機(jī)構(gòu)或系統(tǒng),其數(shù)字證書可導(dǎo)入到簽名驗簽服務(wù)器中。SM2算法SM2algorithm由GB/T32918定義的一種算法。SM3算法SM3algorithm由GB/T32905定義的一種算法。縮略語下列縮略語適用于本文件。API 應(yīng)用程序接口(ApplicationProgramInterface)CA 證書認(rèn)證機(jī)構(gòu)(CertificationAuthority)CRL 證書撤銷列表(CertificateRevocationList)LDAP 輕量級目錄訪問協(xié)議(LightweightDirectoryAccessProtocol)OCSP 在線證書狀態(tài)查詢協(xié)議(OnlineCertificateStatusProtocol)PKCS公鑰密碼標(biāo)準(zhǔn)(Public-KeyCryptographyStandard)PKI公鑰密碼基礎(chǔ)設(shè)施(PublicKeyInfrastructure)簽名驗簽服務(wù)器的功能要求初始化功能簽名驗簽服務(wù)器的初始化主要包括系統(tǒng)配置、生成管理員等,使設(shè)備處于正常工作狀態(tài)。與CA基礎(chǔ)設(shè)施的連接配置功能CRL連接配置簽名驗簽服務(wù)器應(yīng)支持CRL連接配置功能,通過配置管理界面,提供從CRL發(fā)布點獲取CRL、導(dǎo)入CRL等功能。OCSP連接配置簽名驗簽服務(wù)器可支持OCSP連接配置功能,通過配置管理界面,進(jìn)行OCSP服務(wù)的連接配置管理。OCSP連接配置應(yīng)遵循GB/T19713-2005。應(yīng)用管理功能簽名驗簽服務(wù)器的應(yīng)用管理功能主要包括應(yīng)用實體的注冊、配置密鑰、設(shè)置私鑰授權(quán)碼等,并按照安全機(jī)制對應(yīng)用實體的信息進(jìn)行安全存儲。應(yīng)用實體注冊的內(nèi)容應(yīng)包括設(shè)置應(yīng)用實體名稱、配置密鑰索引號、導(dǎo)入證書、設(shè)置IP地址(可選)等。證書管理和驗證功能應(yīng)用實體的密鑰產(chǎn)生、證書申請在簽名驗簽服務(wù)器注冊的應(yīng)用實體,應(yīng)由簽名驗簽服務(wù)器產(chǎn)生應(yīng)用實體的簽名密鑰對和證書請求,并支持通過管理界面導(dǎo)入應(yīng)用實體的簽名證書、加密證書和加密密鑰對。加密密鑰對的保護(hù)結(jié)構(gòu)應(yīng)遵循GB/TDDDD中6.4.10的要求。用戶證書導(dǎo)入和存儲簽名驗簽服務(wù)器應(yīng)支持用戶證書、根證書或證書鏈的導(dǎo)入,導(dǎo)入時應(yīng)對證書的有效性進(jìn)行驗證。應(yīng)用實體的證書更新應(yīng)用實體的證書更新時應(yīng)保存原來的證書,以防止以前的簽名不能驗證。證書驗證簽名驗簽服務(wù)器應(yīng)支持對證書的有效性的驗證,包括驗證證書有效期、驗證證書簽名有效性、驗證證書狀態(tài)。備份/恢復(fù)簽名驗簽服務(wù)器應(yīng)支持備份/恢復(fù)功能,包括密鑰、證書等數(shù)據(jù)的備份/恢復(fù)。備份操作產(chǎn)生的備份文件可存儲到簽名驗簽服務(wù)器外的存儲介質(zhì)中,應(yīng)采取措施保證備份文件的完整性。數(shù)字簽名功能簽名驗簽服務(wù)器應(yīng)支持SM2算法的數(shù)字簽名功能,提供對數(shù)據(jù)、消息、文件等多種格式的運算方式。當(dāng)簽名驗簽服務(wù)器的公鑰算法為SM2算法時,數(shù)據(jù)的結(jié)構(gòu)遵循GB/TAAAA或GB/TBBBB。日志管理功能簽名驗簽服務(wù)器應(yīng)提供日志記錄、查看、審計和導(dǎo)出功能,具備相應(yīng)的配置管理和查看界面。日志內(nèi)容分為系統(tǒng)管理日志、異常事件、系統(tǒng)服務(wù)日志等,包括登錄認(rèn)證、系統(tǒng)配置、密鑰管理等操作,認(rèn)證失敗、非法訪問等異常事件的記錄,以及與設(shè)備管理中心連接,對相應(yīng)操作進(jìn)行記錄,對應(yīng)用接口的調(diào)用進(jìn)行日志記錄。時間源同步功能簽名驗簽服務(wù)器應(yīng)能夠配置時間源服務(wù)器,自動同步時間。簽名驗簽服務(wù)器的安全要求密碼設(shè)備要求簽名驗簽服務(wù)器應(yīng)使用國家密碼管理局審批的密碼設(shè)備。調(diào)用密碼設(shè)備的接口API應(yīng)遵循GB/TCCCC。系統(tǒng)要求簽名驗簽服務(wù)器所使用的操作系統(tǒng)應(yīng)進(jìn)行安全加固,裁減一切不需要的模塊,關(guān)閉所有不需要的端口和服務(wù)。使用要求簽名驗簽服務(wù)器只接受合法的操作指令,并防止非授權(quán)用戶的使用。管理要求管理工具簽名驗簽服務(wù)器通過管理工具實現(xiàn)對該簽名驗簽服務(wù)器的管理功能。管理員身份鑒別簽名驗簽服務(wù)器的管理界面應(yīng)具備完善的身份鑒別機(jī)制,通過智能密碼鑰匙、智能IC卡等硬件介質(zhì)與口令相結(jié)合的方式實現(xiàn)管理員身份的鑒別。管理員登錄成功后,通過管理界面進(jìn)行應(yīng)用管理、證書管理、系統(tǒng)配置以及日志查詢等管理操作。設(shè)備管理設(shè)備初始化簽名驗簽服務(wù)器的初始化,除應(yīng)由廠商進(jìn)行的操作外,系統(tǒng)配置、密鑰的生成(恢復(fù))與安裝、生成管理員等均應(yīng)由用戶方設(shè)備管理人員完成。設(shè)備自檢簽名驗簽服務(wù)器應(yīng)具備自檢功能,包括自身自檢和密碼設(shè)備自檢。簽名驗簽服務(wù)器使用的密碼設(shè)備應(yīng)具備狀態(tài)和功能自檢功能,能夠進(jìn)行密碼算法正確性檢查、隨機(jī)數(shù)發(fā)生器檢查、存儲密鑰和數(shù)據(jù)的完整性檢查等。簽名驗簽服務(wù)器的自身自檢包括密碼功能檢測、存儲信息的完整性檢查等。在檢查不通過時應(yīng)報警并停止工作。設(shè)備物理安全防護(hù)簽名驗簽服務(wù)器在工藝設(shè)計、硬件配置等方面要采取相應(yīng)的保護(hù)措施,保證設(shè)備基本的物理安全防護(hù)功能。網(wǎng)絡(luò)部署要求簽名驗簽服務(wù)器應(yīng)部署在應(yīng)用系統(tǒng)的安全域內(nèi),只為安全域內(nèi)的應(yīng)用實體和用戶服務(wù),不能為安全域外的用戶使用,不能連接互聯(lián)網(wǎng)。服務(wù)接口以消息包方式提供服務(wù)的簽名驗簽服務(wù)器,其接口應(yīng)遵循附錄A的要求,響應(yīng)碼的定義應(yīng)遵循附錄D的要求。以WEB方式提供服務(wù)的簽名驗簽服務(wù)器,其接口應(yīng)遵循附錄B或附錄C的要求,響應(yīng)碼的定義應(yīng)遵循附錄D的要求。以應(yīng)用程序接口提供服務(wù)的簽名驗簽服務(wù)器,其接口應(yīng)遵循GM/T0020的要求。應(yīng)用實體可以通過內(nèi)部網(wǎng)絡(luò)、USB或者其他接口形式與簽名驗簽服務(wù)器連接。環(huán)境適應(yīng)性簽名驗簽服務(wù)器的工作環(huán)境應(yīng)遵循GB/T9813中關(guān)于“氣候環(huán)境適應(yīng)性”的要求??煽啃院灻灪灧?wù)器的平均無故障工作時間應(yīng)不低于20000小時。
附錄A(規(guī)范性附錄)消息協(xié)議語法規(guī)范A.1概述簽名驗簽服務(wù)的消息協(xié)議接口采用請求響應(yīng)模式,如圖A.1所示。協(xié)議模型由請求者、響應(yīng)者和它們之間的交互協(xié)議組成。通過本協(xié)議,請求者將數(shù)字簽名、驗證數(shù)字簽名等請求發(fā)送給響應(yīng)者,由響應(yīng)者完成簽名驗簽服務(wù)并返回結(jié)果。本規(guī)范中的接口消息協(xié)議包括導(dǎo)出證書、解析證書、驗證證書有效性、數(shù)字簽名、驗證數(shù)字簽名、消息簽名、驗證消息簽名等服務(wù)功能,每個服務(wù)都按照請求--響應(yīng)的步驟執(zhí)行。請求者可通過本協(xié)議獲得簽名驗簽功能,而不必關(guān)心下層PKI公鑰密碼基礎(chǔ)設(shè)施的實現(xiàn)細(xì)節(jié)。圖A.1簽名驗簽服務(wù)消息協(xié)議請求者組織業(yè)務(wù)服務(wù)請求,發(fā)送到響應(yīng)者,并延緩自身的事務(wù)處理過程,等待響應(yīng)者響應(yīng)返回;響應(yīng)者接收到來自請求者的業(yè)務(wù)服務(wù)請求后,檢查請求的合法性,根據(jù)請求類型處理服務(wù)請求,并將處理結(jié)果返回給請求者。下面的協(xié)議內(nèi)容將按照圖A.1所示的框架進(jìn)行。A.2協(xié)議內(nèi)容協(xié)議內(nèi)容如下:請求:也稱業(yè)務(wù)服務(wù)請求,包含請求者業(yè)務(wù)請求的類型、性質(zhì)以及特性數(shù)據(jù)等,該請求將被發(fā)送到響應(yīng)者并得到服務(wù)。服務(wù)請求包括如下數(shù)據(jù):協(xié)議版本(當(dāng)前版本為1);請求類型;請求包;請求時間。響應(yīng):指響應(yīng)者對來自請求者請求的處理響應(yīng)。響應(yīng)者的響應(yīng)包括如下數(shù)據(jù):協(xié)議版本(當(dāng)前版本為1);響應(yīng)類型;響應(yīng)包;響應(yīng)時間。異常情況:當(dāng)響應(yīng)者處理發(fā)生錯誤時,需要向請求者發(fā)送錯誤信息。錯誤可以是下列兩類:請求失?。喉憫?yīng)者驗證來自請求者業(yè)務(wù)請求數(shù)據(jù)失敗,請求者收到該響應(yīng)后應(yīng)重新組織業(yè)務(wù)請求數(shù)據(jù)進(jìn)行發(fā)送。內(nèi)部處理失?。喉憫?yīng)者處理請求者業(yè)務(wù)請求過程中發(fā)生內(nèi)部錯誤,響應(yīng)者通知請求者該請求處理失敗,請求者需重新組織業(yè)務(wù)請求數(shù)據(jù)進(jìn)行發(fā)送。本規(guī)范采用抽象語法表示法(ASN.1)來描述具體協(xié)議內(nèi)容。如果無特殊說明,默認(rèn)使用ASN.1顯式標(biāo)記。A.3請求協(xié)議A.3.1請求數(shù)據(jù)格式請求者請求數(shù)據(jù)的基本格式如下:SVSRequest::=SEQUENCE{version VersionDEFAULTv1,reqType ReqType,request Request,reqTime [0]IMPLICITGeneralizedTimeOPTIONAL,reqTimeStampToken [1]IMPLICITReqTimeStampTokenOPTIONAL,extAttributes [2]IMPLICITExtAttributesOPTIONAL}其中:Version::=INTEGER{v1(0)}ReqType::=INTEGER{exportCert (0),parseCert (1),validateCert (2),signData (3),verifySignedData (4),signDataInit (5),signDataUpdate (6),signDataFinal (7),verifySignedDataInit (8),verifySignedDataUpdate (9),verifySignedDataFinal (10),signMessage (11),verifySignedMessage (12)}Request::=OCTETSTRING{exportUserCertReq [0]IMPLICTExportUserCertReq,parseCertReq [1]IMPLICTParseCertReq,validateCertReq [2]IMPLICTValidateCertReq,signDataReq [3]IMPLICTSignDataReq,verifySignedDataReq [4]IMPLICTVerifySignedDataReq,signDataInitReq [5]IMPLICTSignDataInitReq,signDataUpdateReq [6]IMPLICTSignDataUpdateReq,signDataFinalReq [7]IMPLICTSignDataFinalReq,verifySignedDataInitReq [8]IMPLICTVerifySignedDataInitReq,verifySignedDataUpdateReq [9]IMPLICTVerifySignedDataUpdateReq,verifySignedDataFinalReq [10]IMPLICTVerifySignedDataFinalReq,signMessageReq [11]IMPLICTSignMessageReq,verifySignedMessageReq [12]IMPLICTVerifySignedMessageReq}ReqTimeStampToken::=TimeStampTokenExtAttributes::=SETOFAttributeA.3.2SVSRequest及其結(jié)構(gòu)解釋SVSRequest包含了請求語法中的重要信息,本節(jié)將對該結(jié)構(gòu)作詳細(xì)的描述和解釋。協(xié)議版本本項描述了請求語法的版本號,當(dāng)前版本為1,取整型值0。請求類型本項描述了不同業(yè)務(wù)的請求類型值,0~999為保留值,不可占用。請求包請求包與請求類型值之間的對應(yīng)關(guān)系如表A.1所示。表A.1請求包與請求類型值的對應(yīng)關(guān)系請求類型字符描述請求類型值申請包說明exportCert0導(dǎo)出證書申請包parseCert1解析證書申請包validateCert2驗證證書有效性申請包signData3單包數(shù)字簽名申請包verifySignedData4單包驗證數(shù)字簽名申請包signDataInit5多包數(shù)字簽名初始化申請包signDataUpdate6多包數(shù)字簽名更新申請包signDataFinal7多包數(shù)字簽名結(jié)束申請包verifySignedDataInit8多包驗證數(shù)字簽名初始化申請包verifySignedDataUpdate9多包驗證數(shù)字簽名更新申請包verifySignedDataFinal10多包驗證數(shù)字簽名結(jié)束申請包signMessage11單包消息簽名申請包verifySignedMessage12單包驗證消息簽名申請包請求時間本項描述請求生成時間,該時間即為請求者產(chǎn)生請求的時間,采用GeneralizedTime語法表示。請求時間戳request內(nèi)容的時間戳。如包含此項數(shù)據(jù),簽名服務(wù)器應(yīng)驗證該時間戳。擴(kuò)展數(shù)據(jù) 依據(jù)實際業(yè)務(wù)需求添加的擴(kuò)展數(shù)據(jù)。A.4響應(yīng)協(xié)議A.4.1響應(yīng)數(shù)據(jù)格式響應(yīng)者響應(yīng)的基本格式如下:SVSRespond::=SEQUENCE{version VersionDEFAULTv1,respType RespType,respond Respond,respTime [0]IMPLICITGeneralizedTimeOPTIONAL,respTimeStampToken [1]IMPLICITRespTimeStampTokenOPTIONAL,extAttributes [2]IMPLICITExtAttributesOPTIONAL}其中:Version::=INTEGER{v1(0)}RespType::=INTEGER{exportCert (0),parseCert (1),validateCert (2),signData (3),verifySignedData (4),signDataInit (5),signDataUpdate (6),signDataFinal (7),verifySignedDataInit (8),verifySignedDataUpdate (9),verifySignedDataFinal (10),signMessage (11),verifySignedMessage (12)}Respond::=OCTETSTRING{exportUserCertResp [0]IMPLICTExportUserCertResp,parseCertResp [1]IMPLICTParseCertResp,validateCertResp [2]IMPLICTValidateCertResp,signDataResp [3]IMPLICTSignDataResp,verifySignedDataResp [4]IMPLICTVerifySignedDataResp,signDataInitResp [5]IMPLICTSignDataInitResp,signDataUpdateResp [6]IMPLICTSignDataUpdateResp,signDataFinalResp [7]IMPLICTSignDataFinalResp,verifySignedDataInitResp [8]IMPLICTVerifySignedDataInitResp,verifySignedDataUpdateResp [9]IMPLICTVerifySignedDataUpdateResp,verifySignedDataFinalResp [10]IMPLICTVerifySignedDataFinalResp,signMessageResp [11]IMPLICTSignMessageResp,verifySignedMessageResp [12]IMPLICTVerifySignedMessageResp}respTimeStampToken::=TimeStampTokenExtAttributes::=SETOFAttributeA.4.2SVSRespond及其結(jié)構(gòu)解釋SVSRespond包含了響應(yīng)語法中的重要信息,本節(jié)將對該結(jié)構(gòu)作詳細(xì)的描述和解釋。協(xié)議版本本項描述了響應(yīng)語法的版本號,當(dāng)前版本為1,取整型值0。響應(yīng)類型本項描述了不同業(yè)務(wù)的響應(yīng)類型值,0~999為保留值,不可占用。響應(yīng)包響應(yīng)包與響應(yīng)類型值之間的對應(yīng)關(guān)系如表A.2所示。表A.2響應(yīng)包與相應(yīng)類型值的對應(yīng)關(guān)系應(yīng)答類型字符描述應(yīng)答類型值響應(yīng)包說明exportCert0導(dǎo)出證書響應(yīng)包parseCert1解析證書響應(yīng)包validateCert2驗證證書有效性響應(yīng)包signData3單包數(shù)字簽名響應(yīng)包verifySignedData4單包驗證數(shù)字簽名響應(yīng)包signDataInit5多包數(shù)字簽名初始化響應(yīng)包signDataUpdate6多包數(shù)字簽名更新響應(yīng)包signDataFinal7多包數(shù)字簽名結(jié)束響應(yīng)包verifySignedDataInit8多包驗證數(shù)字簽名初始化響應(yīng)包verifySignedDataUpdate9多包驗證數(shù)字簽名更新響應(yīng)包verifySignedDataFinal10多包驗證數(shù)字簽名結(jié)束響應(yīng)包signMessage11單包消息簽名響應(yīng)包verifySignedMessage12單包驗證消息簽名響應(yīng)包響應(yīng)時間本項描述響應(yīng)生成時間,該時間即為響應(yīng)者產(chǎn)生響應(yīng)的時間,采用GeneralizedTime語法表示。響應(yīng)時間戳respond內(nèi)容的時間戳。如包含此項數(shù)據(jù),客戶端應(yīng)驗證該時間戳。擴(kuò)展數(shù)據(jù) 依據(jù)實際業(yè)務(wù)需求添加的擴(kuò)展數(shù)據(jù)。A.5協(xié)議接口功能說明A.5.1導(dǎo)出證書ExportCertReq包ExportCertReq包為導(dǎo)出證書請求格式包,當(dāng)reqType取值exportCert時,請求包采用本子包,其具體格式如下:ExportCertReq::=SEQUENCE{identificationOCTETSTRING}identification表明要導(dǎo)出證書的標(biāo)識。ExportCertResp包ExportCertResp包為導(dǎo)出證書響應(yīng)格式包,當(dāng)respType取值exportCert時,響應(yīng)包采用本子包,其具體格式如下:ExportCertResp::=SEQUENCE{respValue INTEGER,cert CertificateOPTIONAL}respValue表明響應(yīng)碼,0表示成功,非0表示錯誤。cert表明導(dǎo)出的證書。A.5.2解析證書ParseCertReq包ParseCertReq包為解析證書請求格式包,當(dāng)reqType取值parseCert時,請求包采用本子包,其具體格式如下:ParseCertReq::=SEQUENCE{infoType INTEGER,cert Certificate}infoType表明要解析證書信息的類型,詳細(xì)定義見GB/T33560-2017中的6.3.4證書解析項標(biāo)識;cert表示要解析的數(shù)字證書。ParseCertResp包ParseCertResp包為解析證書響應(yīng)格式包,當(dāng)respType取值parseCert時,響應(yīng)包采用本子包,其具體格式如下:ParseCertResp::=SEQUENCE{respValue INTEGER,info OCTETSTRINGOPTIONAL}respValue表明響應(yīng)碼,0表示成功,非0表示錯誤。info表示獲取的證書信息。A.5.3驗證證書有效性ValidateCertReq包ValidateCertReq包為驗證證書有效性請求格式包,當(dāng)reqType取值validateCert時,請求包采用本子包,其具體格式如下:ValidateCertReq::=SEQUENCE{cert Certificate,ocspBOOLEANDEFAULTFALSE}cert表示要驗證證書有效性的數(shù)字證書;ocsp表示是否獲取證書OCSP狀態(tài),默認(rèn)值為FALSE。ValidateCertResp包ValidateCertResp包為驗證證書有效性響應(yīng)格式包,當(dāng)respType取值validateCert時,響應(yīng)包采用本子包,其具體格式如下:ValidateCertResp::=SEQUENCE{respValue INTEGER,state INTEGEROPTIONAL}respValue表明響應(yīng)碼,0表示成功,非0表示錯誤;state表明獲取的證書OCSP狀態(tài)標(biāo)識。A.5.4單包數(shù)字簽名SignDataReq包SignDataReq包為單包數(shù)字簽名請求格式包,當(dāng)reqType取值signData時,請求包采用本子包,其具體格式如下:SignDataReq::=SEQUENCE{signMethod INTEGER,keyIndex INTEGER,keyValue OCTETSTRING,signerIDLen [0]IMPLICTINTEGEROPTIONAL,signerID [1]IMPLICTOCTETSTRINGOPTIONAL,inDataLenINTEGER,inData OCTETSTRING}signMethod表明使用的簽名算法類型,詳細(xì)定義見GB/T33560-2017中的6.2.4簽名算法標(biāo)識;keyIndex表示簽名者私鑰的索引值,如十進(jìn)制1表示索引值為1的密鑰;keyValue表示簽名者私鑰權(quán)限標(biāo)識碼;signerIDLen表示簽名者的ID長度,當(dāng)signMethod為SGD_SM3_SM2時有效;signerID表示簽名者的ID值,當(dāng)signMethod為SGD_SM3_SM2時有效;inDataLen表示待簽名的數(shù)據(jù)原文長度;inData表示待簽名的數(shù)據(jù)原文。SignDataResp包SignDataResp包為單包數(shù)字簽名響應(yīng)格式包,當(dāng)respType取值signData時,響應(yīng)包采用本子包,其具體格式如下:SignDataResp::=SEQUENCE{respValue INTEGER,signature OCTETSTRINGOPTIONAL}respValue表明響應(yīng)碼,0表示成功,非0表示錯誤;signature表示簽名值,當(dāng)公鑰算法為RSA時,數(shù)據(jù)的結(jié)構(gòu)遵循PKCS#1;當(dāng)公鑰算法為SM2時,數(shù)據(jù)的結(jié)構(gòu)遵循GB/TAAAA。A.5.5單包驗證數(shù)字簽名VerifySignedDataReq包VerifySignedDataReq包為單包驗證數(shù)字簽名請求格式包,當(dāng)reqType取值verifySignedData時,請求包采用本子包,其具體格式如下:VerifySignedDataReq::=SEQUENCE{signMethod INTEGER,typeINTEGER,cert [0]IMPLICTCertificateOPTIONAL,certSN [1]IMPLICTOCTETSTRINGOPTIONAL,signerIDLen [2]IMPLICTINTEGEROPTIONAL,signerID [3]IMPLICTOCTETSTRINGOPTIONAL,inDataLenINTEGER,inData OCTETSTRING,signature OCTETSTRING,verifyLevelINTEGER}signMethod表明使用的簽名算法類型,詳細(xì)定義見GB/T33560-2017中的6.2.4簽名算法標(biāo)識;type表示使用驗證數(shù)字簽名時使用證書或證書序列號,1表示使用證書,2表示使用證書序列號;cert表示簽名證書,type取值1時有效;certSN表示簽名證書序列號,type取值2時有效;signerIDLen表示簽名者的ID長度,當(dāng)signMethod為SGD_SM3_SM2時有效;signerID表示簽名者的ID值,當(dāng)signMethod為SGD_SM3_SM2時有效;inDataLen表示待簽名的數(shù)據(jù)原文長度;inData表示待簽名的數(shù)據(jù)原文;signature表示簽名值,當(dāng)公鑰算法為RSA時,數(shù)據(jù)的結(jié)構(gòu)遵循PKCS#1;當(dāng)公鑰算法為SM2時,數(shù)據(jù)的結(jié)構(gòu)遵循GB/TAAAA;verifyLevel表示證書驗證級別,0:驗證時間,1:驗證時間和根證書簽名,2:驗證時間、根證書簽名和CRL。VerifySignedDataResp包VerifySignedDataResp包為單包驗證數(shù)字簽名響應(yīng)格式包,當(dāng)respType取值verifySignedData時,響應(yīng)包采用本子包,其具體格式如下:VerifySignedDataResp::=SEQUENCE{respValue INTEGER}respValue表明響應(yīng)碼,0表示成功,非0表示錯誤。A.5.6多包數(shù)字簽名初始化SignDataInitReq包SignDataInitReq包為多包數(shù)字簽名初始化請求格式包,當(dāng)reqType取值signDataInit時,請求包采用本子包,其具體格式如下:SignDataInitReq::=SEQUENCE{signMethod INTEGER,signerPublicKey [0]IMPLICTOCTETSTRINGOPTIONAL,signerIDLen [1]IMPLICTINTEGEROPTIONAL,signerID [2]IMPLICTOCTETSTRINGOPTIONAL,}signMethod表明使用的簽名算法類型,詳細(xì)定義見GB/T33560-2017中6.2.4簽名算法標(biāo)識;signerPublicKey表示簽名者公鑰,當(dāng)signMethod為SGD_SM3_SM2時有效;signerIDLen表示簽名者的ID長度,當(dāng)signMethod為SGD_SM3_SM2時有效;signerID表示簽名者的ID值,當(dāng)signMethod為SGD_SM3_SM2時有效;SignDataInitResp包SignDataInitResp包為多包數(shù)字簽名初始化響應(yīng)格式包,當(dāng)respType取值signDataInit時,響應(yīng)包采用本子包,其具體格式如下:SignDataInitResp::=SEQUENCE{respValue INTEGER,SessionID OCTETSTRINGOPTIONAL}respValue表明響應(yīng)碼,0表示成功,非0表示錯誤;SessionID表示會話標(biāo)識。A.5.7多包數(shù)字簽名更新SignDataUpdateReq包SignDataInitReq包為多包數(shù)字簽名更新請求格式包,當(dāng)reqType取值signDataUpdate時,請求包采用本子包,其具體格式如下:SignDataUpdateReq::=SEQUENCE{SessionID OCTETSTRING,inDataLen INTEGER,inData OCTETSTRING}SessionID表示會話標(biāo)識;inDataLen表示數(shù)據(jù)明文長度;inData表示數(shù)據(jù)明文。SignDataUpdateResp包SignDataUpdateResp包為多包數(shù)字簽名更新響應(yīng)格式包,當(dāng)respType取值signDataUpdate時,響應(yīng)包采用本子包,其具體格式如下:SignDataUpdateResp::=SEQUENCE{respValue INTEGER,SessionID OCTETSTRINGOPTIONAL}respValue表明響應(yīng)碼,0表示成功,非0表示錯誤;SessionID表示會話標(biāo)識。A.5.8多包數(shù)字簽名結(jié)束SignDataFinalReq包SignDataReq包為多包數(shù)字簽名結(jié)束請求格式包,當(dāng)reqType取值signDataFinal時,請求包采用本子包,其具體格式如下:SignDataFinalReq::=SEQUENCE{keyIndex INTEGER,keyValue OCTETSTRING,SessionID OCTETSTRING}keyIndex表示簽名者私鑰的索引值,如十進(jìn)制1表示索引值為1的密鑰;keyValue表示簽名者私鑰權(quán)限標(biāo)識碼;SessionID表示會話標(biāo)識。SignDataFinalResp包SignDataResp包為多包數(shù)字簽名結(jié)束響應(yīng)格式包,當(dāng)respType取值signDataFinal時,響應(yīng)包采用本子包,其具體格式如下:SignDataFinalResp::=SEQUENCE{respValue INTEGER,signature OCTETSTRINGOPTIONAL}respValue表明響應(yīng)碼,0表示成功,非0表示錯誤;signature表示簽名值,當(dāng)公鑰算法為RSA時,數(shù)據(jù)的結(jié)構(gòu)遵循PKCS#1;當(dāng)公鑰算法為SM2時,數(shù)據(jù)的結(jié)構(gòu)遵循GB/TAAAA。A.5.9多包驗證數(shù)字簽名初始化VerifySignedDataInitReq包VerifySignedDataInitReq包為多包驗證數(shù)字簽名初始化請求格式包,當(dāng)reqType取值verifySignedDataInit時,請求包采用本子包,其具體格式如下:VerifySignedDataInitReq::=SEQUENCE{signMethod INTEGER,signerPublicKey [0]IMPLICTOCTETSTRINGOPTIONAL,signerIDLen [1]IMPLICTINTEGEROPTIONAL,signerID [2]IMPLICTOCTETSTRINGOPTIONAL,}signMethod表明使用的簽名算法類型,詳細(xì)定義見GB/T33560-2017中6.2.4簽名算法標(biāo)識;signerPublicKey表示簽名者公鑰。當(dāng)signMethod為SGD_SM3_SM2時有效;signerIDLen表示簽名者的ID長度,當(dāng)signMethod為SGD_SM3_SM2時有效;signerID表示簽名者的ID值,當(dāng)signMethod為SGD_SM3_SM2時有效;VerifySignedDataInitResp包VerifySignedDataInitResp包為多包驗證數(shù)字簽名初始化響應(yīng)格式包,當(dāng)respType取值verifySignedDataInit時,響應(yīng)包采用本子包,其具體格式如下:VerifySignedDataInitResp::=SEQUENCE{respValue INTEGER,SessionID OCTETSTRINGOPTIONAL}respValue表明響應(yīng)碼,0表示成功,非0表示錯誤;SessionID表示會話標(biāo)識。A.5.10多包驗證數(shù)字簽名更新VerifySignedDataUpdateReq包VerifySignedDataUpdateReq包為多包驗證數(shù)字簽名更新請求格式包,當(dāng)reqType取值verifySignedDataUpdate時,請求包采用本子包,其具體格式如下:VerifySignedDataUpdateReq::=SEQUENCE{SessionID OCTETSTRING,inDataLen INTEGER,inData OCTETSTRING}SessionID表示會話標(biāo)識;inDataLen表示數(shù)據(jù)明文長度;inData表示數(shù)據(jù)明文。VerifySignedDataUpdateResp包VerifySignedDataUpdateResp包為多包驗證數(shù)字簽名更新響應(yīng)格式包,當(dāng)respType取值verifySignedDataUpdate時,響應(yīng)包采用本子包,其具體格式如下:VerifySignedDataUpdateResp::=SEQUENCE{respValue INTEGER,SessionID OCTETSTRINGOPTIONAL}respValue表明響應(yīng)碼,0表示成功,非0表示錯誤;SessionID表示會話標(biāo)識。A.5.11多包驗證數(shù)字簽名結(jié)束VerifySignedDataFinalReq包VerifySignedDataReq包為多包驗證數(shù)字簽名結(jié)束請求格式包,當(dāng)reqType取值verifySignedDataFinal時,請求包采用本子包,其具體格式如下:VerifySignedDataFinalReq::=SEQUENCE{type INTEGER,cert [0]IMPLICTCertificateOPTIONAL,certSN [1]IMPLICTOCTETSTRINGOPTIONAL,SessionID OCTETSTRING,signature OCTETSTRING,verifyLevelINTEGER}type表示使用驗證數(shù)字簽名時使用證書或證書序列號,1表示使用證書,2表示使用證書序列號;cert表示簽名證書,type取值1時有效;certSN表示簽名證書序列號,type取值2時有效;SessionID表示會話標(biāo)識;signature表示簽名值,當(dāng)公鑰算法為RSA時,數(shù)據(jù)的結(jié)構(gòu)遵循PKCS#1;當(dāng)公鑰算法為SM2時,數(shù)據(jù)的結(jié)構(gòu)遵循GB/TAAAA。verifyLevel表示證書驗證級別,0:驗證時間,1:驗證時間和根證書簽名,2:驗證時間、根證書簽名和CRL。VerifySignedDataFinalResp包VerifySignedDataFinalResp包為多包驗證數(shù)字簽名結(jié)束響應(yīng)格式包,當(dāng)respType取值verifySignedDataFinal時,響應(yīng)包采用本子包,其具體格式如下:VerifySignedDataFinalResp::=SEQUENCE{respValue INTEGER}respValue表明響應(yīng)碼,0表示成功,非0表示錯誤。A.5.12消息簽名SignMessageReq包SignMessageReq包為消息簽名請求格式包,當(dāng)reqType取值signMessage時,請求包采用本子包,其具體格式如下:SignMessageReq::=SEQUENCE{signMethodINTEGER,keyIndexINTEGER,keyValueOCTETSTRING,signerIDLen [0]IMPLICTINTEGEROPTIONAL,signerID [1]IMPLICTOCTETSTRINGOPTIONAL,inDataLenINTEGER,inDataOCTETSTRING,originalText [0]IMPLICTBOOLEANOPTIONAL,certificateChain[1]IMPLICTBOOLEANOPTIONAL,crl [2]IMPLICTBOOLEANOPTIONAL,}signMethod表明使用的簽名算法類型,詳細(xì)定義見GB/T33560-2017中6.2.4簽名算法標(biāo)識;keyIndex表示簽名者私鑰的索引值,如十進(jìn)制1表示索引值為1的密鑰;keyValue表示簽名者私鑰權(quán)限標(biāo)識碼;signerIDLen表示簽名者的ID長度,當(dāng)signMethod為SGD_SM3_SM2時有效;signerID表示簽名者的ID值,當(dāng)signMethod為SGD_SM3_SM2時有效;inDataLen表示待簽名的數(shù)據(jù)長度;inData表示待簽名的數(shù)據(jù);originalText表示是否附加原文選項;certificateChain表示是否附加證書鏈選項;crl表示是否附加黑名單選項。SignMessageResp包SignMessageResp包為消息簽名響應(yīng)格式包,當(dāng)respType取值signMessage時,響應(yīng)包采用本子包,其具體格式如下:SignMessageResp::=SEQUENCE{respValue INTEGER,signedMessage OCTETSTRINGOPTIONAL}respValue表明響應(yīng)碼,0表示成功,非0表示錯誤;signedMessage表示消息簽名數(shù)據(jù),當(dāng)公鑰算法為RSA時,消息的結(jié)構(gòu)遵循PKCS#7;當(dāng)公鑰算法為SM2時,消息的結(jié)構(gòu)遵循GB/TBBBB。A.5.13驗證消息簽名VerifySignedMessageReq包VerifySignedMessageReq包為驗證消息簽名請求格式包,當(dāng)reqType取值verifySignedMessage時,請求包采用本子包,其具體格式如下:VerifySignedMessageReq::=SEQUENCE{inDataLenINTEGEROPTIONAL,inData OCTETSTRINGOPTIONAL,signerIDLen [0]IMPLICTINTEGEROPTIONAL,signerID [1]IMPLICTOCTETSTRINGOPTIONAL,signedMessageOCTETSTRING}inDataLen表示數(shù)據(jù)原文長度,消息簽名不附加原文時有效;inData表示數(shù)據(jù)原文,消息簽名不附加原文時有效;signerIDLen表示簽名者的ID長度,當(dāng)消息簽名的簽名算法為SGD_SM3_SM2時有效;signerID表示簽名者的ID值,當(dāng)消息簽名的簽名算法為SGD_SM3_SM2時有效;signedMessage表示輸入的消息簽名數(shù)據(jù),當(dāng)公鑰算法為RSA時,消息的結(jié)構(gòu)遵循PKCS#7;當(dāng)公鑰算法為SM2時,消息的結(jié)構(gòu)遵循GB/TBBBB。VerifySignedMessageResp包VerifySignedMessageResp包為驗證消息簽名響應(yīng)格式包,當(dāng)respType取值verifySignedMessage時,響應(yīng)包采用本子包,其具體格式如下:VerifySignedMessageResp::=SEQUENCE{respValue INTEGER}respValue表明響應(yīng)碼,0表示成功,非0表示錯誤。
附錄B(規(guī)范性附錄)基于HTTP的簽名消息協(xié)議語法規(guī)范B.1概述 附錄A中描述的ASN.1格式是一種二進(jìn)制格式,考慮到簽名驗證服務(wù)將被廣泛用于各種WEB系統(tǒng),而WEB系統(tǒng)更善于處理文本,為此在附錄A的基礎(chǔ)上,另行設(shè)計了一套基于HTTP協(xié)議消息協(xié)議接口,便于各類WEB系統(tǒng)調(diào)用。其工作原理與附錄A中的請求響應(yīng)模式類似,不同的是將消息格式從二進(jìn)制的ASN.1格式,轉(zhuǎn)換為易于在WEB應(yīng)用和HTTP協(xié)議中傳遞的文本格式。本附錄只描述了從附錄A的消息格式到對應(yīng)HTTP格式的轉(zhuǎn)換規(guī)則,而不再復(fù)述附錄A中每個請求,響應(yīng)的業(yè)務(wù)含義。B.2ASN.1數(shù)據(jù)類型到HTTP格式的轉(zhuǎn)化規(guī)則表B.1ASN.1數(shù)據(jù)類型到HTTP格式的轉(zhuǎn)化規(guī)則ASN.1類型HTTP字段類型示例INTEGER數(shù)字的10進(jìn)制文本表示比如1將被轉(zhuǎn)換為”1”BOOLEAN文本TRUE和FALSEGeneralizedTime帶時區(qū)格式的時間字符串YYYYMMDDhhmm[ss[.s...]]{Z|+hhmm|-hhmm}20131001120000Z+0800OCTETSTRING對OCTETSTRING進(jìn)行BASE64編碼后的結(jié)果驗證證書有效性申請包Certificate對DER格式的證書進(jìn)行BASE64編碼后的結(jié)果B.3附錄A中的請求與HTTP請求的轉(zhuǎn)換規(guī)則附錄A中的請求轉(zhuǎn)換為HTTP請求時,原則如下:所有請求采用HTTP的POST模式;reqType作為URL的最終一級資源名,目錄允許自定義,如:/SignServer/SignData;HTTPHeader中的Content-Type為application/x-www-form-urlencoded;HTTPHeader中的Content-Length為附錄A中請求數(shù)據(jù)的實際長度;HTTPBody為ASN.1編碼的請求數(shù)據(jù)。一個轉(zhuǎn)換的實例如下:POST/SignServer/SignData1.1\r\nContent-Type:application/x-www-form-urlencoded\r\nContent-Length:請求數(shù)據(jù)長度\r\n\r\nASN.1數(shù)據(jù)注1:將reqType直接作為WEB路徑,而不是自定義的HTTP字段,是為了在通用的WEB負(fù)載設(shè)備上進(jìn)行負(fù)載。注2:允許自定義URL目錄目的是允許靈活部署多套服務(wù),對前端應(yīng)用加以區(qū)分。注3:Content-Type和Content-Length是HTTP協(xié)議的標(biāo)準(zhǔn)字段,此處按照其原意進(jìn)行使用。注4:HTTP協(xié)議中的其他標(biāo)準(zhǔn)字段,與本附錄無關(guān),在此不再標(biāo)出。注5:對HTTP協(xié)議中的其他標(biāo)準(zhǔn)字段的使用,簽名服務(wù)器可以做相應(yīng)處理也可以不做處理。B.4附錄A中的響應(yīng)與HTTP響應(yīng)的轉(zhuǎn)換附錄A中的響應(yīng)轉(zhuǎn)換為HTTP響應(yīng)時,原則如下:包含HTTP響應(yīng)碼,響應(yīng)碼按照原意使用,在本附錄中不再列出。HTTPHeader中的Content-Type為application/x-www-form-urlencoded。HTTPHeader中的Content-Length為附錄A中請求數(shù)據(jù)的實際長度。HTTPBody為ASN.1編碼的響應(yīng)數(shù)據(jù)。一個轉(zhuǎn)換的實例如下:HTTP200OK\r\nContent-Type:application/x-www-form-urlencoded\r\nContent-Length:請求數(shù)據(jù)長度\r\n\r\nASN.1數(shù)據(jù)注1:Content-Type和Content-Length是HTTP協(xié)議的標(biāo)準(zhǔn)字段,此處按照其原意進(jìn)行使用。注2:HTTP協(xié)議中的其他標(biāo)準(zhǔn)字段,與本附錄無關(guān),在此不再標(biāo)出。注3:對HTTP協(xié)議中的其他標(biāo)準(zhǔn)字段的使用,簽名服務(wù)器可以做相應(yīng)處理也可以不做處理。
附錄C(規(guī)范性附錄)基于HTTP的簽名消息協(xié)議語法規(guī)范C.1概述 附錄A中描述的ASN.1格式是一種二進(jìn)制格式,考慮到簽名驗證服務(wù)將被廣泛用于各種WEB系統(tǒng),而WEB系統(tǒng)更善于處理文本,為此在附錄A的基礎(chǔ)上,另行設(shè)計了一套基于HTTP協(xié)議消息協(xié)議接口,便于各類WEB系統(tǒng)調(diào)用。其工作原理與附錄A中的請求響應(yīng)模式類似,不同的是將消息格式從二進(jìn)制的ASN.1格式,轉(zhuǎn)換為易于在WEB應(yīng)用和HTTP協(xié)議中傳遞的文本格式。本附錄只描述了從附錄A的消息格式到對應(yīng)HTTP格式的轉(zhuǎn)換規(guī)則,而不
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度外派工程師專項勞動合同精要3篇
- 2025年度特許經(jīng)營權(quán)授予與行使合同3篇
- 海南外國語職業(yè)學(xué)院《交通信息系統(tǒng)》2023-2024學(xué)年第一學(xué)期期末試卷
- 二零二五年度旅游度假村合作協(xié)議范本
- 2025年度綠色蔬菜直銷合作協(xié)議范本6篇
- 二零二五年度大型超市連鎖加盟經(jīng)營合同2篇
- 二零二五年度教育機(jī)構(gòu)教師兼職工作合同2篇
- 課程設(shè)計批閱意見
- 二零二五年度季度銷售獎杯采購與市場調(diào)研與競爭分析合同3篇
- 二零二五年度ROHS認(rèn)證服務(wù)及產(chǎn)品保證合同模板2篇
- 廣東省公務(wù)員考試筆試真題及答案
- 吸入療法在呼吸康復(fù)應(yīng)用中的中國專家共識2022版
- 風(fēng)險分級管控和隱患排查治理體系培訓(xùn)考試題參考答案
- 部編版二年級下冊語文第四單元教學(xué)設(shè)計含語文園地四
- 江西省第一屆職業(yè)技能大賽分賽場項目技術(shù)文件(世賽選拔)網(wǎng)絡(luò)安全
- GB/T 18029.22-2024輪椅車第22部分:調(diào)節(jié)程序
- NB-T32042-2018光伏發(fā)電工程建設(shè)監(jiān)理規(guī)范
- 垃圾焚燒行業(yè)經(jīng)營分析報告
- 合同審查報告模板
- JBT 14589-2024 敷膠雙螺桿泵(正式版)
- 新制定《公平競爭審查條例》主題
評論
0/150
提交評論