标准解读
《GM/T 0067-2019 基于数字证书的身份鉴别接口规范》是中国国家密码管理局发布的国家标准之一,该标准主要定义了基于数字证书进行身份鉴别的技术要求及其实现方法。它适用于需要通过数字证书来验证用户或系统身份的应用场景,如电子政务、电子商务等领域。
在本标准中,首先明确了数字证书的基本概念及其在身份鉴别过程中的作用。数字证书是由权威第三方机构(CA, Certificate Authority)签发的一种电子文件,用来证明某个实体(个人、组织等)的身份以及其公钥信息的真实性。利用这种机制,通信双方可以在不安全的网络环境中相互确认对方的真实身份,并建立安全连接。
接着,《GM/T 0067-2019》详细规定了使用数字证书进行身份鉴别的具体流程和技术细节。这包括但不限于:如何生成和管理密钥对;如何申请并获得数字证书;如何利用持有的数字证书向服务提供者发起认证请求;以及服务端如何验证客户端提供的证书的有效性等步骤。此外,还特别强调了整个过程中应遵循的安全原则,比如确保私钥的安全存储与传输、定期更新证书等措施以提高系统的整体安全性。
同时,该标准也指出了实施此类身份鉴别方案时可能遇到的一些挑战,比如跨域互认问题、不同平台之间的兼容性问题等,并给出了相应的解决方案建议。
如需获取更多详尽信息,请直接参考下方经官方授权发布的权威标准文档。
....
查看全部
- 现行
- 正在执行有效
- 2019-07-12 颁布
- 2019-07-12 实施
文档简介
犐犆犛35.040
犔80
?????????????
犌犕/犜0067—2019
???????????????
犐狀狋犲狉犳犪犮犲狊狆犲犮犻犳犻犮犪狋犻狅狀狊狅犳犪狌狋犺犲狀狋犻犮犪狋犻狅狀犫犪狊犲犱狅狀犱犻犵犻狋犪犾犮犲狉狋犻犳犻犮犪狋犲
20190712??20190712??
?????????
??
??Ⅱ…………………………
1??
1………………………
2???????
1…………………………
3?????
1………………
4???
2……………………
5????
2…………………
5.1??2
…………………
5.2????????2
…………………
5.3????3
……………
6?????????
4……………………
6.1??????4
………………………
6.2?????????6
………………
7???????
6…………………………
7.1???????????????????????????6
………………
7.2??????????7
……………
7.3????7
……………
7.4??????11
………………………
??A(?????)?????????15……………
??B(?????)??????????16…………
????18……………………
Ⅰ
犌犕/犜0067—2019
??
????GB/T15843.3—2016《?????????????3??:????????
???》???,????????????????????。
?????????????????。????????????????????。
?????????????????????。
????????????????????????????????。
?????????:??????????、???????????????、??????
???????、????????????、???????????????、????????
??????、??????????、????????????????。
????????:??、???、??、???、???、??、???、???、???。
Ⅱ
犌犕/犜0067—2019
???????????????
1??
??????????????????????????????????。
??????????????????????????????、???????????
?????????,????????????????????????。
2???????
??????????????????。??????????,????????????
?,???????????,?????(????????)??????。
GB/T15843.1—2017?????????????1??:??
GB/T15843.3—2016?????????????3??:???????????
3?????
?????????????。
3.1
??????犮犲狉狋犻犳犻犮犪狋犲犪狌狋犺犲狀狋犻犮犪狋犻狅狀狊狔狊狋犲犿
????????、??、??、???????????????????。
3.2
??????犮犲狉狋犻犳犻犮犪狋犲狉犲狏狅犮犪狋犻狅狀犾犻狊狋;犆犚犔
?????????????????????。
3.3
????犮犲狉狋犻犳犻犮犪狋犲狏犪犾犻犱犪狋犻狅狀
????????????????????。
3.4
????犱犻犵犻狋犪犾犮犲狉狋犻犳犻犮犪狋犲
??????,???????(CA)??????????????、????、?????、?
???????????????。??????????、?????????,????????
???????。
3.5
????犻犱犲狀狋犻狋狔狋狅犽犲狀
???????????????,?????????????????????,?????
??????????。
3.6
????犿狌狋狌犪犾狏犲狉犻犳狔
??????????????????。
1
犌犕/犜0067—2019
3.7
??????狆狌犫犾犻犮犽犲狔犻狀犳狉犪狊狋狉狌犮狋狌狉犲;犘犓犐
?????????????????????,????????、???、????????
?????。
3.8
犛犕2??犛犕2犪犾犵狅狉犻狋犺犿
????????????,??????256??。
3.9
犛犕3??犛犕3犪犾犵狅狉犻狋犺犿
????????,????256??。
4???
???????????。
CA??????(certificateauthority)
CN???(commonname)
CRL??????(certificaterevocationlist)
DN????(distinguishedname)
LDAP
?????????(lightweightdirectoryaccessprotocol)
OID?????(objectidentifier)
PKI????????(publickeyinfrastructure)
5????
5.1??
???????????????????????,????T???B????????,
?????????????????GB/T15843.3—2016。
5.2????????
??????,?????????T???A???????,?????????????
B,????????????????,???????????。
???????A?????????T???,?????,??A???????????
???T??????,?????????????????????(?GB/T15843.1—2017?
??B)????。
????????????????1??。
?1?????????????
2
犌犕/犜0067—2019
a)??A?????TokenAT(TokenAT???A?????????T
????,???
??GB/T15843.3—2016??5.2.2)?????????T;
b)????????T??????TokenAT????,??????:
1)??A??????,?????、????????、????,?????????
??;
2)??TokenAT。
c)????????T??????A????????B。
????????????????????2??。
?2?????????????
a)??A?????TokenAT(TokenAT?????GB/T15843.3??5.2.2)?????
????T;
b)????????T??????TokenAT????,??????:
1)??A??????,?????,????????、????,????????
??;
2)??TokenAT。
c)????????T?A??T????TokenTA(TokenTA?????GB15843.3—
2016??5.3.2);
d)??????TokenTA????,??A??????:
1)??T??????,?????,????????,???????,??????
????;
2)??TokenTA。
e)????????T??????A????????B。
5.3????
????????????,?????????????????????????????
??????,??????,??????????。
?????,??B??????????A????,??????????RB(?
GB/T15843.1—2017???B)???????????????。??????3??:
3
犌犕/犜0067—2019
?3????????????
a)??B?A?????RB,????????????Text;
b)A?B??A????TokenAB(TokenAB?????GB/T15843.3—2016?5.3.2);
c)???A????TokenAB?,??B????????T??A???????。
6?????????
6.1??????
6.1.1??????
???????????1??。
?1??????
??????????
SGD_HANDLE
????(????)typedefvoidSGD_HANDLE
SGD_CHAR8???typedefcharSGD_CHAR
SGD_BYTE8??????typedefunsignedcharSGD_BYTE
SGD_INT3232???????typedefintSGD_INT32
SGD_UINT3232???????typedefunsignedintSGD_UINT32
6.1.2????
?????????2??。
4
犌犕/犜0067—2019
?2????
?????????
#defineSGD_TRUE0x00000001
?????
#defineSGD_FALSE0x00000000
?????
6.1.3??????
???????????3??。
?3??????
???????
?????????
#defineSGD_SM2_10x00020200
SM2????
#defineSGD_SM2_20x00020400
SM2??????
#defineSGD_SM2_30x00020800
SM2????
#defineSGD_ECC_n
0x00080000
?0x80000000
??????????
??????
?????????
#defineSGD_SM30x00000001
SM3??????
??????
?????????
#defineSGD_GET_CERT_VERSION0x00000001
????
#defineSGD_GET_CERT_SERIAL0x00000002
?????
#defineSGD_GET_CERT_ISSUER0x00000005
???????
#defineSGD_GET_CERT_ISSUER_CN0x00000021
?????CN
#defineSGD_GET_CERT_ISSUER_O0x00000022
?????O
#defineSGD_GET_CERT_ISSUER_OU0x00000023
?????OU
#defineSGD_GET_CERT_VALID_TIME0x00000006
?????
#defineSGD_GET_CERT_SUBJECT0x00000007
???????
#defineSGD_GET_CERT_SUBJECT_CN0x00000031
???????CN
#defineSGD_GET_CERT_SUBJECT_O0x00000032
???????O
#defineSGD_GET_CERT_SUBJECT_OU0x00000033
???????OU
#defineSGD_GET_CERT_SUBJECT_EMAIL0x00000034
???????EMAIL
#defineSGD_GET_CERT_DER_EXTENSIONS0x00000009
???????
??????
?????????
#defineSGD_CRL_VERIFY0x00000001
CRL????
#defineSGD_OCSP_VERIFY0x00000002
OCSP????
5
犌犕/犜0067—2019
6.2?????????
?????????????4??。
?4????????
????????(??)??
result4
????
signTime4
??????,???????
???
resultSign256
????
????????:
typedefstructSIF_ITOKEN_VERIFYED_{
SGD_INT32result;
SGD_INT32signTime;
SGD_BYTEresultSign[256];
}SIF_ITOKEN_VERIFYED;
7???????
7.1???????????????????????????
????????????????????????????????????。?????
??????????????????????4??。
?4?????????????????????????
6
犌犕/犜0067—2019
7.2??????????
7.2.1??
?????????????5??。
?5??????????
???????????????????????????????????,??????
????????????。??????????????????????????????
??。
???????????????,???:???????????。
7.2.2????
?????????????????,?????????????????????、??,
?????????????????????????,??????。???????????
?????????,?????????????、??????????。
??????????????,????????????(SIF_Initialize)????????
???????,??????????????????。?????????,????????
?(SIF_Finalize),????????????,????????????,???????????
?????。
7.2.3??????
????????????????????????(?????????????????
??)。????????????????????????????。
7.3????
7.3.1??????
???????????????,??XML???:
7
犌犕/犜0067—2019
〈?xmlversion="1.0"encoding="UTF8"?〉
〈msg〉
〈msg_head〉
……
〈/msg_head〉
〈msg_body〉
……
〈/msg_body〉
〈/msg〉
????msg_head?????????,msg_body?????????。
7.3.2???????
?????????:
〈msg_head〉
〈msg_type〉0〈/msg_type〉
〈msg_id〉0100〈/msg_id〉
〈version〉1〈/version〉
〈/msg_head〉
??????????5??:
?5?????????
???????????
msg_type
?????
0———????
1———??????
2———??????
msg_id
??ID
0001———???
0100———????????
1000———????????
1001———????????
Version
?????
7.3.3??????????
a)????????
〈?xmlversion="1.0"encoding="UTF8"?〉
〈msg〉
〈msg_head〉
〈msg_type〉0〈/msg_type〉
〈msg_id〉0100〈/msg_id〉
〈version〉1〈/version〉
〈/msg_head〉
〈msg_body〉
8
犌犕/犜0067—2019
〈connectid〉????〈/connectid〉
〈/msg_body〉
〈/msg〉
b)????????
〈?xmlversion="1.0"encoding="UTF8"?〉
〈msg〉
〈msg_head〉
〈msg_type〉1or2〈/msg_type〉
〈msg_id〉0100〈/msg_id〉
〈version〉1〈/version〉
〈/msg_head〉
〈msg_body〉
〈connectid〉????〈/connectid〉
〈userinfo〉????〈/userinfo〉
〈error_no〉????〈/error_no〉
〈/msg_body〉
〈/msg〉
7.3.4????????
a)?????
〈?xmlversion="1.0"encoding="UTF8"?〉
〈msg〉
〈msg_head〉
〈msg_type〉0〈/msg_type〉
〈msg_id〉0001〈/msg_id〉
〈version〉1〈/version〉
〈/msg_head〉
〈msg_body/〉
〈/msg_body〉
〈/msg〉
b)?????
〈?xmlversion="1.0"encoding="UTF8"?〉
〈msg〉
〈msg_head〉
〈msg_type〉1or2〈/msg_type〉
〈msg_id〉0001〈/msg_id〉
〈version〉1〈/version〉
〈/msg_head〉
〈msg_body〉
〈error_no〉????〈/error_no〉
〈/msg_body〉
〈/msg〉
c)????????
9
犌犕/犜0067—2019
〈?xmlversion="1.0"encoding="UTF8"?〉
〈msg〉
〈msg_head〉
〈msg_type〉0〈/msg_type〉
〈msg_id〉1000〈/msg_id〉
〈version〉1〈/version〉
〈/msg_head〉
〈msg_body〉
〈userseed〉????(Base64??)〈/userseed〉
〈cert〉??????????(Base64??)〈/cert〉
〈/msg_body〉
〈/msg〉
d)????????
〈?xmlversion="1.0"encoding="UTF8"?〉
〈msg〉
〈msg_head〉
〈msg_type〉1or2〈/msg_type〉
〈msg_id〉1000〈/msg_id〉
〈version〉1〈/version〉
〈/msg_head〉
〈msg_body〉
〈usertoken〉???????(Base64??)〈/usertoken〉
〈error_no〉????〈/error_no〉
〈/msg_body〉
〈/msg〉
7.3.5????????
a)????????
〈?xmlversion="1.0"encoding="UTF8"?〉
〈msg〉
〈msg_head〉
〈msg_type〉0〈/msg_type〉
〈msg_id〉1001〈/msg_id〉
〈version〉1〈/version〉
〈/msg_head〉
〈msg_body〉
〈usertoken〉???????(Base64??)〈/usertoken〉
〈randmess〉?????????????(Base64??)〈/randmess〉
〈cert〉??????????(Base64??)〈/cert〉
〈/msg_body〉
〈/msg〉
b)????????
〈?xmlversion="1.0"encoding="UTF8"?〉
01
犌犕/犜0067—2019
〈msg〉
〈msg_head〉
〈msg_type〉1or2〈/msg_type〉
〈msg_id〉1001〈/msg_id〉
〈version〉1〈/version〉
〈/msg_head〉
〈msg_body〉
〈result〉????〈/result〉
〈resultsign〉???????“????+????”???(Base64??)〈/resultsign〉
〈error_no〉????〈/error_no〉
〈/msg_body〉
〈/msg〉
7.4??????
7.4.1??
????????????,??????????A??????:
a)???:SIF_Initialize
b)??:SIF_Finalize
c)??????:SIF_GetVersion
d)?????????????:SIF_GenRandom
e)??????:SIF_GenUserToken
f)??????:SIF_VerifyUserToken
g)??????????:SIF_VerifyResult
h)??????:SIF_GetUserInfo
7.4.2?????
??:SGD_
INT32SIF_Initialize(SGD_CHARpucIpAddr,
SGD_INTiPort,SGD_VOIDphHandle);
??:?????????,??????????
??:pucIpAddr[in]?????????,???NULL,??????
???
iPort[in]
?????????
phHandle[out]???????????,???NULL
???:0??
?0??,??????
?:?????????????。
????????????????,??????????????????。
7.4.3????
??:SGD_INT32SIF_Finalize(SGD_HANDLEhHandle);
??:
????????,????????
??:hHandle[in]
??????????
???:0??
?0??,??????
11
犌犕/犜0067—2019
?:???????????。
7.4.4????????
??:
SGD_INT32SIF_GetVersion(SGD_HANDLEhHandle,
SGD_UINT32puiVersion,
SGD_UINT32puiProvider);
??:
????????
??:hHandle[in]
??????????
pVersion[out]?????
pProvider[out]????????
???:0??
?0??,??????
7.4.5?????????????
??:
SGD_INT32SIF_GenRandom(SGD_HANDLEhHandle,
SGD_INT32uiRandLen,
SGD_BYTEpbRand);
??:
???????????,???????????
??:hHandle[in]
??????????
uiRandLen[in]?????
pbRand[out]????
???:0??
?0??,??????
?:???????????????,?????????16~64??。
7.4.6??????
??:
SGD_INT32SIF_GenUserToken(SGD_HANDLEhHandle,
SGD_BYTEpbRandMess,
SGD_INT32uiRandMessLen,
SGD_BYTEpbCertificate,
SGD_INT32uiCertificateLen,
SGD_BYTEpbIdentityToken,
SGD_INT32puiIdentityTokenlen);
??:
??????????????????????????
??:hHandle[in]
??????????
pbRandMess[in]????。??????SIF_GenRandom??,?
???????????????????
uiRandMessLen[in]
???????
pbCertificate[in]Base64?????
uiCertificateLen[in]Base64???????
pbIdentityToken[out]???????,???Base64??
puiIdentityTokenlen[in,out]???????????????????,???
???????????
???:0??
?0??,??????
21
犌犕/犜0067—2019
7.4.7??????
??:
SGD_INT32SIF_VerifyUserToken(SGD_HANDLEhHandle,
SGD_BYTEpbRandMess,
SGD_INT32uiRandMessLen,
SGD_BYTEpbIdentityToken,
SGD_INT32uiIdentityTokenlen,
SGD_BYTEpbCertificate,
SGD_INT32uiCertificateLen,
SGD_INT32iVerifymode,
SIF_ITOKEN_VERIFYEDpstResult);
??:
??????????,??????????????
??:hHandle[in]
??????????
pbRandMess[in]????
uiRandMessLen[in]
???????
pbIdentityToken[in]???????,???Base64??
uiIdentityTokenlen[in]Base64?????????????
pbCertificate[in]Base64?????
uiCertificateLen[in]Base64???????
iVerifymode[in]????,?????????????????
??
pstResult[out]??????
???:0??
?0??,??????
7.4.8??????????
??:
SGD_INT32SIF_VerifyResult(SGD_HANDLEhHandle,
SIF_ITOKEN_VERIFYEDpstResult,
SGD_BYTEpbCertificate,
SGD_INT32uiCertificateLen);
??:
???????,?????????????
??:hHandle[in]
??????????
pstResult[in]??????
pbCertificate[in]Base64?????
uiCertificateLen[in]Base64???????
???:0??
?0??,??????
7.4.9??????
??:
SGD_INT32SIF_GetUserInfo(SGD_CHARpcIpAddr,
SGD_INT32iPort,
SGD_INT32iConnect,
SGD_CHARpbUserInfo,
SGD_INT32puiUserInfoLen);
31
犌犕/犜0067—2019
??:
???????
??:pcIpAddr[in]
?????????
iPort[in]
?????????
iConnect[in]???????
pbUserInfo[out]?????????????DN???
puiUserInfoLen[in,out]????????????DN????????
?,???????????DN???
???:0??
?0??,??????
?:????????????。
41
犌犕/犜0067—2019
??犃
(?????)
?????????
???????????A.1??。
?犃.1?????????
??????
?????????
#defineSIR_OK0X00000000
??
#defineSIR_UnknownErr0X05000001
????
#defineSIR_NotInitialize0X05000002
????
#defineSIR_NotConnection0X05000003
???????
#defineSIR_MemoryErr0X05000004
?????????
#defineSIR_TimeoutErr0X05000005
????
#defineSIR_VersionErr0X05000006
????
#defineSIR_NotSupport0X05000007
?????
#defineSIR_TrustCertNotFound0X05000100
???????
#defineSIR_CRLNotFound0X05000101
????CRL
#defineSIR_OCSPConnectErr0X05000002
??
温馨提示
- 1. 本站所提供的标准文本仅供个人学习、研究之用,未经授权,严禁复制、发行、汇编、翻译或网络传播等,侵权必究。
- 2. 本站所提供的标准均为PDF格式电子版文本(可阅读打印),因数字商品的特殊性,一经售出,不提供退换货服务。
- 3. 标准文档要求电子版与印刷版保持一致,所以下载的文档中可能包含空白页,非文档质量问题。
最新文档
- 植物蛋白食品加工厂项目投资计划书
- 生鲜超市开业策划方案
- 公共艺术课程评审规范
- 滑坡隐患治理工程临时防护施工方案
- 2026年背景墙行业技术革新分析报告
- 社团实践课程考核办法
- 2026年大数据行业应用与市场前景报告001
- 高端蛋糕定制品牌营销策划方案
- 初二【英语(师大版)】U4 Lesson 11 Health Advice 2 教学设计
- 2026意大利时尚设计行业市场深度调研及发展趋势与投资价值评估研究报告
- 2026中国睡眠健康研究白皮书(官方完整版中国睡眠研究会×华为运动健康)
- 2026年党纪学习教育应知应会知识测试题(含答案解析)
- 炼油化工企业开工准备手册
- 换热站(板式换热器、换热机组)安装方案
- 2026年上海数据交易所数据要素流通生态合作伙伴指南
- 2025年高校辅导员招聘面试题库及参考答案
- 2026秋人教版小学美术二年级上册第一单元 身边的自然第1课 树叶的血管教学课件
- 人教版五年级上册语文单元同步测试题(附答案)
- 江西财经大学《Java》2025-2026学年期末试卷
- 产品质量检验与追溯系统操作手册
- 2026年辽宁生态工程职业学院单招综合素质笔试备考试题附答案详解
评论
0/150
提交评论