GB_T43578-2023信息安全技术通用密码服务接口规范.docx
《GB_T43578-2023信息安全技术通用密码服务接口规范.docx》由会员分享,可在线阅读,更多相关《GB_T43578-2023信息安全技术通用密码服务接口规范.docx(105页珍藏版)》请在课桌文档上搜索。
1、ICS35.030CCS1.80中华人民共和家标准GB/T435782023信息安全技术通用密码服务接口规范InformationsecuritytechnologyUniversalcryptographyserviceinterfacespecification2023-12-28发布2024-07-01实施国家市场监督管理总局总希国家标准化管理委员会发布目次前言III1范围12规范性引用文件13术语和定义14缩略语15通用密码服务接口描述25.1 通用密码服务接口在公钥密码应用技术体系框架中的位置25.2 通用密码服务接口组成和功能说明26通用密码服务接口函数定义36.1 算法标识和数据
2、结构36.2 环境类函数56.3 证书类函数86.4 密码运算类函数186.5 消息类函数447验证方法567.1 验证环境567.2 密码服务环境操作验证567.3 证书类函数功能验证577.4 签名验签验证607.5 摘要计算验证637.6 非对称加解密验证647.7 对称加解密验证657.8 生成密钥对验证677.9 PKCS#7运算验证687.10 SM2消息类运算验证687.11 Base64编码验证69附录A(资料性)通用密码服务接口函数汇总71附录B(规范性)SM9密码算法数据结构和接口函数74附录C(规范性)通用密码服务接口错误代码定义87参考文献89本文件按照GB/T1.12
3、020标准化工作导则第1部分:标准化文件的结构和起草规则的规定起草。请注意本文件的某些内容可能涉及专利。本文件的发布机构不承担识别专利的责任。本文件由全国信息安全标准化技术委员会(SAC“C260)提出并归口。本文件起草单位:北京数字认证股份有限公司、无锡江南信息安全工程技术中心、中国电力科学研究院、中国电子技术标准化研究院、博雅中科(北京)信息技术有限公司、山东得安信息技术有限公司、上海市数字证书认证中心有限公司、北京信安世纪科技股份有限公司、智巡密码(上海)检测技术有限公司、格尔软件股份有限公司、中科信息安全共性技术国家工程研究中心有限公司、数安时代科技股份有限公司、阿里云计算有限公司、郑
4、州信大捷安信息技术股份有限公司、中电科网络安全科技股份有限公司、中移(杭州)信息技术有限公司、浙江九州量子信息技术股份有限公司、航天信息股份有限公司、OP-Po广东移动通信有限公司、深圳市不动产登记中心。本文件主要起草人:赵松、王银平、程磊、夏鲁宁、侯鹏亮、李述胜、刘平、李智虎、黄晶晶、程科伟、浦雨三、马洪富、袁中林、许涛、王玉林、焦靖伟、韩玮、谭武征、高振鹏、杜志强、肖淑婷、梁松涛、刘为华、王中武、王晨光、张文科、凝亮、李根、路晓明、杨倩媚、频龙。信息安全技术通用密码服务接口规范1范围本文件规定了通用密码服务接口的数据结构、接口描述、函数定义要求,描述了相应验证方法。本文件适用于公开密钥应用
5、技术体系下密码应用服务的开发,密码应用支撑平台的研制及检测,密码设备的应用系统的开发。2规范性引用文件下列文件中的内容通过文中的规范性引用而构成本文件必不可少的条款。其中,注日期的引用文件,仅该日期对应的版本适用于本文件;不注日期的引用文件,其最新版本(包括所有的修改单)适用于本文件。GB/T20518信息安全技术公钥基础设施数字证书格式GB/T25069信息安全技术术语GBT32918.1信息安全技术SM2椭圆曲线公钥密码算法第1部分:总则GB/T33560信息安全技术密码应用标识规范GB/T35275信息安全技术SM2密码算法加密签名消息语法规范GB/T35276信息安全技术SM2密码算法
6、使用规范GB/T35291信息安全技术智能密码钥匙应用接口规范GB/T36322信息安全技术密码设备应用接口规范GBT41389信息安全技术SM9密码算法使用规范GM/T00942020公钥密码应用技术体系框架规范GM/Z4001密码术语PKCS#1RSA密码编译标准(RSACryptographyStandard)PKCS#7密码消息语法标准(CryPtOgraPhiCMessageSyntaxStandard)3术语和定义GB/T25069、GWZ4001界定的以及下列术语和定义适用于本文件。3.1密钥容器keycontainer密码设备中用于保存密钥唯一性存储空间。4缩略语下列缩略语适用
7、于本文件。CA:证书认证机构(CertifiCationAuthority)CR1.:证书撤销列表(CenifiCaIeRevocation1.ist)CSP:加密服务提供者(CryPtOgraPhiCServiceProvider)DER:可区分编码规则(DiStingUiShedEncodingRules)ECB:电子密码本(EleCtrOniCCodeBook)IV:初始化向量(initializationvector)1.DAP:轻量级目录访问协议(1.ighIWeighlDirectoryAccessProtocol)MAC:消息鉴别码(MeSSageAuthenticationCo
8、de)OCSP:在线证书状态协议(OnlineCertificateStatusProtocol)OID:对象标识符(ObjeelIdentifier)RSA:非对称加密算法(RiVeSt-Shamir-AdlemanAlgorithm)5通用密码服务接口描述5.1 通用密码服务接口在公钥密码应用技术体系框架中的位置公钥密码应用技术体系框架由应用层、典型密码应用支撑层、通用密码应用支撑层、基础设施安全支撑平台、密码设备服务层组成。通用密码服务接口属于通用密码应用支撑层中通用密码服务,向典型密码服务层和应用层提供证书解析、证书认证、信息的机密性、完整性和不可否认性通用密码服务,将上层应用的密码服
9、务请求转化为具体的基础密码操作请求,通过统一的密码设备应用接口调用相应的密码设备实现具体的密码运算和密钥操作,通用密码服务在公钥密码应用技术框架内的位置应遵循GM/T00942020的第4章。5.2 通用密码服务接口组成和功能说明5.2.1 殿通用密码服务接口由以下部分组成:a)环境类函数;b)证书类函数;c)密码运算类函数;d)消息类函数。通用密码服务接口函数汇总信息详见附录A。本文件中的相关接口,均采用C语言形式定义,作为参考。5.22环境类函数环境类函数负责创建和管理程序空间中所需的各种资源、信号,并确保程序空间在应用程序运行期间不会被非法访问,造成信息泄露。环境类函数负责完成与密码设备
10、的安全连接,确保后续的操作是在安全的程序空间中进行。环境类函数还负责在用户与密码设备之间创建和管理应用接口句柄。可创建两种类型的应用接口句柄,一类是普通用户,该类型的应用接口句柄标识该用户是普通用户,只能访问密码设备中属于自己的信息和数据;另一类是管理员,该类型的应用接口句柄标识该用户是管理员,管理员可管理普通用户的应用接口句柄。应用程序在使用通用密码服务接口时,首先要调用初始化环境函数(SAFJnilialize)创建和初始化安全的程序空间,完成与密码设备连接和初始化工作。应用程序在调用任何密码服务函数前应确保运行环境安全,可采用白名单机制或对接入设备进行认证的方式,进行任何私钥运算之前应首
11、先调用用户登录函数(SAF_1.ogin),创建应用接口句柄。当不再调用密码服务函数时,应调用注销登录函数(SAF_1.ogoUt)注销安全访问令牌,防止密码设备被非法访问。在终止应用程序之前,应调用清除环境函数(SAF-Finalize),中止与密码设备的连接,销毁所创建的安全的程序空间,防止由于内存残留所带来的安全风险。1.1.1 书类函数证书类函数负责将各类数字证书设置到应用接口会话环境中,实现证书获取、CR1.获取、CA根证书设置、用户证书验证和用户证书信息获取功能。应用程序通过调用证书类函数,实现基于数字证书的身份认证、授权管理、访问控制安全机制。本文件中涉及的数字证书格式应符合GB
12、/T20518的规定。5.2.4 密码运算类函数密码运算类函数负责与密码设备交互并实现密码运算,并将密码运算后的结果返回给应用程序,是应用程序实现数据机密性、完整性和不可否认性等安全机制的基础。密码运算类函数提供包括Base64编解码、随机数生成、密码杂凑以及各种对称和非对称密码运算等。密码运算函数支持定长数据和不定长数据的密码运算,对于定长数据可直接调用相关函数进行处理;对于不定长数据,需要先创建相应的密码运算对象,然后调用相应的函数对数据进行持续处理。当数据处理完时,要调用相应的函数表示数据处理完,最后要调用相应函数销毁相应的密码运算对象。5.2.5 消息类函数消息类函数的功能是将数据按照
13、数字信封格式进行封装,实现应用系统互联互通和信息共享,使用RSA算法时遵循PKCS#7,使用国密算法时遵循GB/T35275。消息类函数提供了数据编解码、签名数据编解码和数字信封编解码,能够非常方便应用程序实现真实性、机密性、完整性和不可否认性等安全措施。6通用密码服务接口函数定义6.1 算法标识和数据结构6.1.1 算法标识与常量定义本文件所使用常量定义、各类算法标识和证书解析标识的具体定义符合GB/T33560。6.1.2 通用密码服务接口数据结构定义和说明6.1.2.1 常量定义数据常量标识定义了常量的取值。数据常量标识的定义符合表1的规定。表1常义常量名取值描述SGD_WX_COUNT
14、64枚举出的对象数量最大值SGD_MAX_NAME_SIZE256证书某项信息的字符串长度最大值6.1.22用户证书列表用户证书列表定义了用户证书传递结构。用户证书列表定义符合表2的规定。2用户证书列表字段名称含义cerlCount证书总数CertificateDER编码的数字证书Certificate1.en数字证书的长度ContainerName密钥容器名称ContainerName1.en密钥容器名称的长度keyUsage密钥用途C语言的数据结构定义:typedefstructSGD_USR_CERT_ENUM1.IST_(unsignedintcertCount;unsignedcha
15、r*certificateSGD_MAX_COUNT;unsignedintcertificate1.enSGD_MAX_COUNTJ;unsignedchar*containerNameSGD_MAX_COUNT;unsignedintcontainerName1.enSGD_MAX_COUNTJ;unsignedintkeyUsageSGD_MAX_COUNT;SGD_USR_CERT_ENUM1.IST;6.1.2.3密钥容器信息列表密钥容器信息列表定义了密钥容器信息。密钥容器信息列表定义符合表3的规定。表3密钥容器信息列表字段名称含义kcyPairCount密钥容器信息总数Contai
16、nerName密钥容器名称ContainerName1.en密钥容器名称的长度keyUsage密钥用途,1:加密:2:签名:3:密钥交换keyType密钥类型,1:SM2:2:RS1024(存在安全风险):3:RS2048:4:RS3072:5:RS4096:6:SM9(SM9密码算法定义应符合附录B的规定)C语言的数据结构定义:typedefstructSGD_KEYCONTAINERINFO_ENUM1.IST_(unsignedintkeyPairCount;unsignedchar*containerNameSGD_MAX_COUNT;unsignedntcontainerName1.
17、enSGD_MAX_COUNT;unsignedjn(keyUsageSGD_MAX_COUNTJ;unsignedintkeyTypeSGD_MAX_COUNT;)SGD_KEYCONTAINER1NFO_ENUM1.IST;6.2环境类函数6.21献环境类函数负责创建和管理程序空间中所需的各种资源、信号,并确保程序空间在应用程序运行期间不会被非法访问,造成信息泄露。6.2.2初始化环境初始化环境函数定义应符合表4的规定。表4初始化环境函数定义原型intSAF_Initialize(void*phAppHandle,unsignedchar*pucCfgFiIePath)描述初始化密码服务程
18、序空间参数PhAppHandletin,OUt(输入并返回应用接口句柄)PUCCfgFilePathin(配置文件全路径名,配置信息自定义,宜包括:密码设备类型、密码设备动态库名称、设备的配置文件、应用策略等)返回值0(成功)非0(失败,返回附录C中表C.1定义的错误代码,应符合附录C的规定)6.2.3清除环境清除环境函数定义应符合表5的规定。表5清除环境函数定义原型intSAF_FinaIize(void*hAppHandle)描述清除应用程序空间参数hAppHandlcin(应用接口句柄)返回值0(成功)非0(失败,返回表C.1定义的错误代码,应符合附录C的规定)6.2.4获取接口版本信息
19、获取接口版本信息函数定义应符合表6的规定。6获取接口版本信息函数定义原型intSAF_GetVersion(UnSignedint*puiVersion)描述取接口对应标准的版本号参数PUiVerSiOnout(版本号)返回值0(成功)非0(失败,返回表C1定义的错误代码,应符合附录C的规定)备注版本号的格式为OXAABBCCeC,其中AA为主版本号,BB为次版本号,CCCC为修改号6.2.5用户登录用户登录函数定义应符合表7的规定。表7用户登录函数定义原型intSAF_1.ogin(void*hAppHandle,unsignedintUiUsrType,unsignedchar*pucCo
20、ntainerName,unsignedintUiContainerName1.en,unsignedchar*pucPin,unsignedintUiPin1.en,unsignedint*puiRemainCount)描述用户登录密码设备,建立安全令牌参数hAppHandlein(应用接口句柄)UiUSrTyPein(用户类型,当为0时表示管理员登录,为1时表示用户登录)PUCContainerNamein密钥容器名(或多个参数的拼接值,多个参数时用即#拼接)或密钥检索号UiContainerName1.enin(密钥容器名或密钥检索号的长度)PUCPinin(设备口令)UiPEin(设备
21、口令长度)PuiRemainCountout(令剩余重试次数)返回值0(成功)非0(失败,返回表c.1定义的错误代码,应符合附录C的规定)规则在服务器端使用加密机或加密卡时,加密机或加密卡应遵循GB/T36322或GB/T35291,对遵循GB/T35291的设备,PUCCOntainerName用于标识指定的密钥容器名或多个参数的拼接值,对遵循GB/T36322的设备,PucContainerName用于标识密码设备内部的密钥位置6.2.6修改口令修改口令函数定义应符合表8的规定。8修改口令函数定义原型intSAF_ChangePin(void*hAppHandle,unsignedintU
22、iUsrType,unsignedchar*pucContainerName,unsignedintUiContainerName1.en,unsignedchar*puc01dPin,unsignedintUiOldPin1.en,unsignedchar*pucNewPin,unsignedintUiNewPin1.en,unsignedint*puiRemainCount)描述修改设备口令,本函数仅适用于遵循GBT35291的客户端密码设备参数HAppHandlein(应用接口句柄)UiUSrTyPein(用户类型,当为0时表示管理员登录,为1时表示用户登录)PUCConIainerNa
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- GB_T43578 2023 信息 安全技术 通用 密码 服务 接口 规范

链接地址:https://www.desk33.com/p-1412653.html