CN111414608B - 一种服务器接受注册的方法 - Google Patents
一种服务器接受注册的方法 Download PDFInfo
- Publication number
- CN111414608B CN111414608B CN202010160817.0A CN202010160817A CN111414608B CN 111414608 B CN111414608 B CN 111414608B CN 202010160817 A CN202010160817 A CN 202010160817A CN 111414608 B CN111414608 B CN 111414608B
- Authority
- CN
- China
- Prior art keywords
- data
- authentication
- verification
- signature
- server
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/30—Authentication, i.e. establishing the identity or authorisation of security principals
- G06F21/45—Structures or tools for the administration of authentication
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/30—Authentication, i.e. establishing the identity or authorisation of security principals
- G06F21/31—User authentication
- G06F21/33—User authentication using certificates
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/64—Protecting data integrity, e.g. using checksums, certificates or signatures
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Health & Medical Sciences (AREA)
- Bioethics (AREA)
- Health & Medical Sciences (AREA)
- Storage Device Security (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明公开了一种服务器接受注册的方法,属于信息技术领域;本发明通过服务器接收并解析客户端发送的注册响应数据,获取客户端数据和设备数据,服务器根据设备数据中的认证声明格式类型确定设备类型,按照不同的设备类型验证方式完成不同设备类型对应的验证注册,通过本发明服务器能够实现兼容多类型认证设备的验证注册。
Description
技术领域
本发明涉及信息技术领域,特别涉及一种服务器接受注册的方法。
背景技术
传统的身份认证方法,需要客户端发送口令到远程服务器的口令库中进行比对,但是存在被拦截和破解的风险,而且口令储存在同一个远程服务器上,如果超级管理员账号被盗,远程服务器中所有用户的口令均会被泄漏。针对这一技术问题现有技术公开了将认证设备参与到注册流程中的方法,这种方法提高了用户在身份认证过程中的安全性,目前,单一类型的认证设备通过服务器进行注册时,设备类型需要与服务器的验证方法一一对应,服务器无需判断设备类型就能对单一类型的设备进行验证注册,然而现在设备趋于多类型,服务器针对多类型设备的认证注册不具备兼容性,服务器如何对多类型认证设备进行验证注册成了亟待解决的问题。
发明内容
本发明提供的一种服务器接受注册的方法,该方法包括:
步骤S1、服务器接收到客户端发送的注册请求,对注册请求进行解析,生成挑战值,根据所述挑战值、注册信息生成注册数据,向所述客户端发送注册数据;
步骤S2、所述服务器接收所述客户端发送的注册响应数据,对所述注册响应数据进行解析,得到客户端数据和设备数据,验证所述客户端数据,验证成功则对所述设备数据进行解码解析,得到第一数据、第二数据和第三数据;
步骤S3、所述服务器根据所述第一数据确定认证声明格式类型,获取第三数据中的签名数据,按照确定的认证声明格式类型对应的验证方法对签名数据进行验签,验签成功则执行步骤S4;所述认证声明格式类型至少有两种;
步骤S4、所述服务器获取第二数据中的用户凭证标识,判断获取的用户凭证标识是否存在于注册用户凭证标识列表中,是则提示注册失败,结束,否则保存注册信息,向客户端返回注册完成响应。
本发明提供了一种服务器接受注册的***,该***包括:服务器、客户端和认证设备;
所述服务器包括:接收模块、解析模块、生成模块、验证模块、确定模块、获取模块、判断模块、发送模块;
所述接收模块,用于接收所述客户端发送的注册请求;还用于接收所述客户端发送的注册响应数据;
所述解析模块,用于对所述接收模块接收到的所述注册请求进行解析;还用于对所述接收模块接收到的所述注册响应数据进行解析,得到客户端数据和设备数据;
所述生成模块,用于生成挑战值,根据所述挑战值、注册信息生成注册数据;
所述验证模块,用于验证所述解析模块解析得到的所述客户端数据,验证成功则对所述设备数据进行解码解析,得到第一数据、第二数据和第三数据;还用于按照确定的认证声明格式类型对应的验证方法对签名数据进行验签;
所述确定模块,用于根据所述验证模块得到的所述第一数据确定认证声明格式类型,获取第三数据中的签名数据;
所述获取模块,用于所述验证模块对签名数据进行验签成功时,获取第二数据中的用户凭证标识;
所述判断模块,用于判断获取的用户凭证标识是否存在于注册用户凭证标识列表中,还用于判断获取的用户凭证标识存在于注册用户凭证标识列表中时提示注册失败;
所述发送模块,用于向所述客户端发送所述生成模块生成的注册数据;还用于所述判断模块判断获取的用户凭证标识不存在于注册用户凭证标识列表中时向客户端返回注册完成响应。
本发明的有益效果:本发明提供了一种服务器接受注册的方法,服务器接收并解析客户端发送的注册响应数据,获取客户端数据和设备数据,服务器根据设备数据中的认证声明格式类型确定设备类型,按照不同的设备类型验证方式完成不同设备类型对应的验证注册,通过本发明服务器能够实现兼容多类型认证设备的验证注册。
附图说明
图1为本发明实施例一提供的一种服务器接受注册的方法流程图;
图2为本发明实施例二提供的一种服务器接受注册的方法流程图;
图3为本发明实施例三提供的一种服务器接受注册的***框图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例一
本发明的实施例一提供了一种服务器接受注册的方法,该方法适用于包括服务器、客户端和认证设备的***,如图1所示,该方法包括:
步骤S1、服务器接收到客户端发送的注册请求,对注册请求进行解析,生成挑战值,根据挑战值、注册信息生成注册数据,向客户端发送注册数据;
步骤S2、服务器接收客户端发送的注册响应数据,对注册响应数据进行解析,得到客户端数据和设备数据,验证客户端数据,验证成功则对设备数据进行解码解析,得到第一数据、第二数据和第三数据;
步骤S3、服务器根据第一数据确定认证声明格式类型,获取第三数据中的签名数据,按照确定的认证声明格式类型对应的验证方法对签名数据进行验签,验签成功则执行步骤S4;其中,认证声明格式类型至少有两种;
步骤S4、服务器获取第二数据中的用户凭证标识,判断获取的用户凭证标识是否存在于注册用户凭证标识列表中,是则提示注册失败,结束,否则保存注册信息,向客户端返回注册完成响应。
可选地,在本实施例中,验证客户端数据,具体为:服务器获取客户端数据中的依赖方访问信息、摘要值、注册信息,并根据自身保存的依赖方访问信息、摘要值、注册信息进行比对,若比对一致,则验证成功,若比对不一致,则验证失败。
可选地,在本实施例中,认证声明格式类型具体包括第一认证声明格式类型;
当服务器根据第一数据确定认证声明格式类型为第一认证声明格式类型时,按照认证声明格式类型对应的验证方法对签名数据进行验签具体为:服务器按照第一认证声明格式类型对应的验证方法对签名数据进行验签。
优选地,在本实施例中,服务器按照第一认证声明格式类型对应的验证方法对签名数据进行验签具体为:服务器获取第三数据中的第一预设字段,根据第一预设字段确定认证类型,按照认证类型对签名数据进行验签,验签成功则执行步骤S4,否则结束。
进一步优选地,在本实施例中,认证类型包括第一认证类型;
当服务器根据第一预设字段确定认证类型为第一认证类型时,按照认证类型对签名数据进行验签具体为:
步骤A1、服务器获取第三数据中的认证设备证书,通过预设算法对签名数据进行验签,若验签成功则执行步骤A2,否则结束;
步骤A2、服务器获取第三数据中的设备证书链,通过服务器中保存的对应设备的根证书,验证获取的设备证书链的可信性,验证成功则执行步骤S4,否则结束。
进一步优选地,在本实施例中,认证类型包括第二认证类型;
当服务器根据第一预设字段确定认证类型为第二认证类型时,按照认证类型对签名数据进行验签具体为:
步骤B1、服务器获取第二数据中的凭证密钥对中的公钥,验证预设算法和凭证密钥对中的公钥是否匹配,若是则执行步骤B2,否则结束;
步骤B2、服务器根据凭证密钥对中的公钥通过预设算法对签名数据进行验签,验签成功则执行步骤S4,否则结束。
可选地,在本实施例中,认证声明格式类型具体包括第二认证声明格式类型;
当服务器根据第一数据确定认证声明格式类型为第二认证声明格式类型时,按照认证声明格式类型对应的验证方法对签名数据进行验签具体为:服务器按照第二认证声明格式类型对应的验证方法对签名数据进行验签。
优选地,在本实施例中,服务器按照第二认证声明格式类型对应的验证方法对签名数据进行验签,具体为:
步骤C1、服务器获取第三数据中的设备证书公钥,根据设备证书公钥和客户端数据通过预设算法对签名数据进行验签,若验签成功则执行步骤C2,否则结束;
步骤C2、服务器获取第三数据中认证类型对应的证书,验证证书的可信性,验证成功则执行步骤S4,否则结束。
可选地,在本实施例中,在步骤S3中,服务器根据第一数据确定认证声明格式类型之后还包括:服务器按照预设编码方法对第三数据进行解码解析。
实施例二
本发明的实施例二提供了一种服务器接受注册的方法,该方法适用于包括服务器、客户端和认证设备的***,如图2所示,该方法包括:
步骤101、服务器接收到客户端发送的注册请求,对注册请求进行解析,生成挑战值,根据挑战值、注册信息生成注册数据,向客户端发送注册数据;
在本实施例中,生成挑战值具体为:服务器生成一串32字节的随机数作为挑战值;
例如,服务器生成的挑战值为:"challenge":"0ZCM4Dqj_mpl48zWHiiiLLlRt66tCOLK-pydCN6MoLU";
具体地,注册信息包括:注册用户信息和注册生成策略,其中,注册生成策略包括:注册认证密钥算法、用户凭证标识列表、可选项参数等;可选项参数例如用户验证、确认方式、扩展项等;
注册用户信息包括用户名,例如user:feitian123;
注册生成策略为:
{"pubKeyCredParams":[{"type":"public-key","alg":-7}],"authenticatorSelection":{"authenticatorAttachment":"cross-platform","requireResidentKey":false,"userVerification":"preferred"},"attestation":"direct"};
根据挑战值、注册信息生成的注册数据为:
{"rp":{"id":"www.lina.com","name":"WebAuthnTest"},"user":{"name":"ftTest","displayName":"ftTest","id":"ZnRUZXN0"},"challenge":"0ZCM4Dqj_mpl48zWHiiiLLlRt66tCOLK-pydCN6MoLU","pubKeyCredParams":[{"type":"public-key","alg":-7}],"authenticatorSelection":{"authenticatorAttachment":"cross-platform","requireResidentKey":false,"userVerification":"preferred"},"attestation":"direct"};
具体地,客户端接收到注册数据之后还包括:客户端获取依赖方访问信息、挑战值、设备绑定信息,根据预设哈希算法对获取的依赖方访问信息、挑战值、设备绑定信息进行哈希运算得到摘要值,并将摘要值、依赖方访问信息、注册信息组织成客户端数据发送给认证设备;
访问信息包括:访问类型(type)、依赖方访问源(origin)等;
具体地,客户端根据预设哈希算法对获取的依赖方访问信息、挑战值、设备绑定信息进行哈希运算的算法具体为SHA256;
可选地,认证设备接收到客户端发送的客户端数据之后,还包括:
步骤a1、认证设备根据客户端数据中的注册信息按照预设方式组织得到第一数据;该第一数据中包括:认证声明格式标识及标识符;
例如,第一数据为:{"fmt":"packed"};
步骤a2、认证设备根据客户端数据中的注册信息生成凭证密钥对,生成用户信息对应的用户凭证标识,获取设备唯一标识,将生成的凭证密钥对中的公钥、生成的用户凭证标识、设备唯一标识组织得到第二数据;
例如,设备唯一标识为:"attData":{"aaguid":77010BD7212A4FC9B236D2CA5E9D4084},
凭证密钥对中的公钥:"publicKey":{"x":8802525CE55A25FC347BFD5432AC489966D3BFDB305B5E9E335834599130A5BE,"y":3E624CAC2B30C7EFC5F6B990C4A2B2F81023A838A39AD2FB4D04096FF71E376E},
用户凭证标识:"credentialId":BC965FB4D1564D33FCF6EF02DDE3B443164591AE11D6A5043249D1670353898E3E89CCFB7B4818A39C25D2BEC931D520E9B97F1505328BA4E9E5707A0C506CDCE102C74CC8B3D5D510BFDE023533E1DBAD54E80767EF5E6AC677C8CA531430EE,
第二数据为:
{"rpIdHash":8BCE4F2C0F8F2D6E493A90F1D5BAC31E2738D935CF17ADAD2C381DB622E407E2,"flags":69,"signCount":5593,"attData":{"aaguid":77010BD7212A4FC9B236D2CA5E9D4084,"credentialId":BC965FB4D1564D33FCF6EF02DDE3B443164591AE11D6A5043249D1670353898E3E89CCFB7B4818A39C25D2BEC931D520E9B97F1505328BA4E9E5707A0C506CDCE102C74CC8B3D5D510BFDE023533E1DBAD54E80767EF5E6AC677C8CA531430EE,"publicKey":{"x":8802525CE55A25FC347BFD5432AC489966D3BFDB305B5E9E335834599130A5BE,"y":3E624CAC2B30C7EFC5F6B990C4A2B2F81023A838A39AD2FB4D04096FF71E376E,"crv":1,"alg":"ES256","kty":2}}};
步骤a3、认证设备获取客户端数据中的摘要值,将摘要值和第二数据作为待签名数据,根据预设算法对待签名数据进行签名得到签名数据,获取认证设备证书、证书链、签名数据、验证签名算法组织得到第三数据;
例如,认证设备证书:"attestnCert":308201E53082018CA003020102020900D79549BD1A671761300A06082A8648CE3D04030230173115301306035504030C0C4654204649444F20303230303020170D3138303831333030303030305A180F32303333303831323233353935395A306F310B3009060355040613025553311D301B060355040A0C144665697469616E20546563686E6F6C6F6769657331223020060355040B0C1941757468656E74696361746F72204174746573746174696F6E311D301B06035504030C1446542042696F50617373204649444F32205553423059301306072A8648CE3D020106082A8648CE3D03010703420004B0673C92BCFA06A6BAF70BD8DBF6379838984C6CE4035B182447B8DBC6890D3D824596809BB889AA89FED219B103419D06859F301E01FF5AFB1EE6D26071A6B3A3673065301D0603551D0E04160414EF12B446563A31DFBBB62E31F66D678ABBDF35153013060B2B0601040182E51C0201010404030205203021060B2B0601040182E51C0101040412041077010BD7212A4FC9B236D2CA5E9D4084300C0603551D130101FF04023000300A06082A8648CE3D040302034700304402202B41A64C9FD77773884194269CC8F9B91330737F9909BB1B224E71566F74C80402203189CBA43A868AD98C4A014FDBD15A220961A4172A3D52981954D8A080E05162,"caCert":308201E53082018CA003020102020900D79549BD1A671761300A06082A8648CE3D04030230173115301306035504030C0C4654204649444F20303230303020170D3138303831333030303030305A180F32303333303831323233353935395A306F310B3009060355040613025553311D301B060355040A0C144665697469616E20546563686E6F6C6F6769657331223020060355040B0C1941757468656E74696361746F72204174746573746174696F6E311D301B06035504030C1446542042696F50617373204649444F32205553423059301306072A8648CE3D020106082A8648CE3D03010703420004B0673C92BCFA06A6BAF70BD8DBF6379838984C6CE4035B182447B8DBC6890D3D824596809BB889AA89FED219B103419D06859F301E01FF5AFB1EE6D26071A6B3A3673065301D0603551D0E04160414EF12B446563A31DFBBB62E31F66D678ABBDF35153013060B2B0601040182E51C0201010404030205203021060B2B0601040182E51C0101040412041077010BD7212A4FC9B236D2CA5E9D4084300C0603551D130101FF04023000300A06082A8648CE3D040302034700304402202B41A64C9FD77773884194269CC8F9B91330737F9909BB1B224E71566F74C80402203189CBA43A868AD98C4A014FDBD15A220961A4172A3D52981954D8A080E05162,3082017E30820125A003020102020101300A06082A8648CE3D04030230173115301306035504030C0C4654204649444F20303230303020170D3136303530313030303030305A180F32303530303530313030303030305A30173115301306035504030C0C4654204649444F20303230303059301306072A8648CE3D020106082A8648CE3D03010703420004D066AD1A953B1CED4C954DD7DBED76A70BEED2907A89769E7336FF2620BE4B199EBE7448A6D5808124CC74153AEF342D5104DE556178ED478E08310254FAA385A360305E301D0603551D0E041604144915642DD5BBC6DE333A5E0995FC872336D3BF0B301F0603551D230418301680144915642DD5BBC6DE333A5E0995FC872336D3BF0B300C0603551D13040530030101FF300E0603551D0F0101FF040403020106300A06082A8648CE3D04030203470030440220307CFAA021621407E40105A546B1D1F2D2CE51331964CE9497FF34B24D9994A50220076C09EA765133CA17FE7038DD187A489A2F3365F00821FFFFE2E2AC101B0743,
签名数据:"sig":3045022100D28D9484CDEFD44A1011C203F9AB7076B5E59342CED27B4B30B1129F71593804022068C4674F87A7ED72AC5A0EF3FAC32C92FF74C29D3EE62A769AF1981F47057AE0,
验证签名算法:"alg":"ES256",
第三数据为:{"sig":3045022100D28D9484CDEFD44A1011C203F9AB7076B5E59342CED27B4B30B1129F71593804022068C4674F87A7ED72AC5A0EF3FAC32C92FF74C29D3EE62A769AF1981F47057AE0,"attestnCert":308201E53082018CA003020102020900D79549BD1A671761300A06082A8648CE3D04030230173115301306035504030C0C4654204649444F20303230303020170D3138303831333030303030305A180F32303333303831323233353935395A306F310B3009060355040613025553311D301B060355040A0C144665697469616E20546563686E6F6C6F6769657331223020060355040B0C1941757468656E74696361746F72204174746573746174696F6E311D301B06035504030C1446542042696F50617373204649444F32205553423059301306072A8648CE3D020106082A8648CE3D03010703420004B0673C92BCFA06A6BAF70BD8DBF6379838984C6CE4035B182447B8DBC6890D3D824596809BB889AA89FED219B103419D06859F301E01FF5AFB1EE6D26071A6B3A3673065301D0603551D0E04160414EF12B446563A31DFBBB62E31F66D678ABBDF35153013060B2B0601040182E51C0201010404030205203021060B2B0601040182E51C0101040412041077010BD7212A4FC9B236D2CA5E9D4084300C0603551D130101FF04023000300A06082A8648CE3D040302034700304402202B41A64C9FD77773884194269CC8F9B91330737F9909BB1B224E71566F74C80402203189CBA43A868AD98C4A014FDBD15A220961A4172A3D52981954D8A080E05162,"caCert":308201E53082018CA003020102020900D79549BD1A671761300A06082A8648CE3D04030230173115301306035504030C0C4654204649444F20303230303020170D3138303831333030303030305A180F32303333303831323233353935395A306F310B3009060355040613025553311D301B060355040A0C144665697469616E20546563686E6F6C6F6769657331223020060355040B0C1941757468656E74696361746F72204174746573746174696F6E311D301B06035504030C1446542042696F50617373204649444F32205553423059301306072A8648CE3D020106082A8648CE3D03010703420004B0673C92BCFA06A6BAF70BD8DBF6379838984C6CE4035B182447B8DBC6890D3D824596809BB889AA89FED219B103419D06859F301E01FF5AFB1EE6D26071A6B3A3673065301D0603551D0E04160414EF12B446563A31DFBBB62E31F66D678ABBDF35153013060B2B0601040182E51C0201010404030205203021060B2B0601040182E51C0101040412041077010BD7212A4FC9B236D2CA5E9D4084300C0603551D130101FF04023000300A06082A8648CE3D040302034700304402202B41A64C9FD77773884194269CC8F9B91330737F9909BB1B224E71566F74C80402203189CBA43A868AD98C4A014FDBD15A220961A4172A3D52981954D8A080E05162,3082017E30820125A003020102020101300A06082A8648CE3D04030230173115301306035504030C0C4654204649444F20303230303020170D3136303530313030303030305A180F32303530303530313030303030305A30173115301306035504030C0C4654204649444F20303230303059301306072A8648CE3D020106082A8648CE3D03010703420004D066AD1A953B1CED4C954DD7DBED76A70BEED2907A89769E7336FF2620BE4B199EBE7448A6D5808124CC74153AEF342D5104DE556178ED478E08310254FAA385A360305E301D0603551D0E041604144915642DD5BBC6DE333A5E0995FC872336D3BF0B301F0603551D230418301680144915642DD5BBC6DE333A5E0995FC872336D3BF0B300C0603551D13040530030101FF300E0603551D0F0101FF040403020106300A06082A8648CE3D04030203470030440220307CFAA021621407E40105A546B1D1F2D2CE51331964CE9497FF34B24D9994A50220076C09EA765133CA17FE7038DD187A489A2F3365F00821FFFFE2E2AC101B0743,"alg":"ES256"};
步骤a4、认证设备按照预设编码方式对第三数据进行编码得到编码后的第三数据,按照预设编码方式对第一数据、第二数据、编码后的第三数据进行编码得到设备数据,并将设备数据发送给客户端;
可选地,认证设备接收到客户端发送的客户端数据之后,还包括:认证设备获取客户端数据中的注册信息,获取注册信息中的用户凭证标识列表,查找其自身的用户凭证标识列表,判断是否存在相同用户凭证标识,若存在则提示注册失败,结束,否则返回步骤a1;
可选地,本实施例中,签名算法为ECDSA(Elliptic Curve Digital SignatureAlgorithm,椭圆曲线数字签名算法);
例如,编码后的第三数据为:
{"map":{"alg":{"value":-7,"majorType":"NEGATIVE_INTEGER"},"x5c":{"objects":[{"bytes":[48,-126,1,-27,48,-126,1,-116,-96,3,2,1,2,2,9,0,-41,-107,73,-67,26,103,23,97,48,10,6,8,42,-122,72,-50,61,4,3,2,48,23,49,21,48,19,6,3,85,4,3,12,12,70,84,32,70,73,68,79,32,48,50,48,48,48,32,23,13,49,56,48,56,49,51,48,48,48,48,48,48,90,24,15,50,48,51,51,48,56,49,50,50,51,53,57,53,57,90,48,111,49,11,48,9,6,3,85,4,6,19,2,85,83,49,29,48,27,6,3,85,4,10,12,20,70,101,105,116,105,97,110,32,84,101,99,104,110,111,108,111,103,105,101,115,49,34,48,32,6,3,85,4,11,12,25,65,117,116,104,101,110,116,105,99,97,116,111,114,32,65,116,116,101,115,116,97,116,105,111,110,49,29,48,27,6,3,85,4,3,12,20,70,84,32,66,105,111,80,97,115,115,32,70,73,68,79,50,32,85,83,66,48,89,48,19,6,7,42,-122,72,-50,61,2,1,6,8,42,-122,72,-50,61,3,1,7,3,66,0,4,-80,103,60,-110,-68,-6,6,-90,-70,-9,11,-40,-37,-10,55,-104,56,-104,76,108,-28,3,91,24,36,71,-72,-37,-58,-119,13,61,-126,69,-106,-128,-101,-72,-119,-86,-119,-2,-46,25,-79,3,65,-99,6,-123,-97,48,30,1,-1,90,-5,30,-26,-46,96,113,-90,-77,-93,103,48,101,48,29,6,3,85,29,14,4,22,4,20,-17,18,-76,70,86,58,49,-33,-69,-74,46,49,-10,109,103,-118,-69,-33,53,21,48,19,6,11,43,6,1,4,1,-126,-27,28,2,1,1,4,4,3,2,5,32,48,33,6,11,43,6,1,4,1,-126,-27,28,1,1,4,4,18,4,16,119,1,11,-41,33,42,79,-55,-78,54,-46,-54,94,-99,64,-124,48,12,6,3,85,29,19,1,1,-1,4,2,48,0,48,10,6,8,42,-122,72,-50,61,4,3,2,3,71,0,48,68,2,32,43,65,-90,76,-97,-41,119,115,-120,65,-108,38,-100,-56,-7,-71,19,48,115,127,-103,9,-69,27,34,78,113,86,111,116,-56,4,2,32,49,-119,-53,-92,58,-122,-118,-39,-116,74,1,79,-37,-47,90,34,9,97,-92,23,42,61,82,-104,25,84,-40,-96,-128,-32,81,98],"chunked":false,"majorType":"BYTE_STRING"},{"bytes":[48,-126,1,126,48,-126,1,37,-96,3,2,1,2,2,1,1,48,10,6,8,42,-122,72,-50,61,4,3,2,48,23,49,21,48,19,6,3,85,4,3,12,12,70,84,32,70,73,68,79,32,48,50,48,48,48,32,23,13,49,54,48,53,48,49,48,48,48,48,48,48,90,24,15,50,48,53,48,48,53,48,49,48,48,48,48,48,48,90,48,23,49,21,48,19,6,3,85,4,3,12,12,70,84,32,70,73,68,79,32,48,50,48,48,48,89,48,19,6,7,42,-122,72,-50,61,2,1,6,8,42,-122,72,-50,61,3,1,7,3,66,0,4,-48,102,-83,26,-107,59,28,-19,76,-107,77,-41,-37,-19,118,-89,11,-18,-46,-112,122,-119,118,-98,115,54,-1,38,32,-66,75,25,-98,-66,116,72,-90,-43,-128,-127,36,-52,116,21,58,-17,52,45,81,4,-34,85,97,120,-19,71,-114,8,49,2,84,-6,-93,-123,-93,96,48,94,48,29,6,3,85,29,14,4,22,4,20,73,21,100,45,-43,-69,-58,-34,51,58,94,9,-107,-4,-121,35,54,-45,-65,11,48,31,6,3,85,29,35,4,24,48,22,-128,20,73,21,100,45,-43,-69,-58,-34,51,58,94,9,-107,-4,-121,35,54,-45,-65,11,48,12,6,3,85,29,19,4,5,48,3,1,1,-1,48,14,6,3,85,29,15,1,1,-1,4,4,3,2,1,6,48,10,6,8,42,-122,72,-50,61,4,3,2,3,71,0,48,68,2,32,48,124,-6,-96,33,98,20,7,-28,1,5,-91,70,-79,-47,-14,-46,-50,81,51,25,100,-50,-108,-105,-1,52,-78,77,-103,-108,-91,2,32,7,108,9,-22,118,81,51,-54,23,-2,112,56,-35,24,122,72,-102,47,51,101,-16,8,33,-1,-1,-30,-30,-84,16,27,7,67],"chunked":false,"majorType":"BYTE_STRING"}],"chunked":false,"majorType":"ARRAY"},"sig":{"bytes":[48,69,2,33,0,-46,-115,-108,-124,-51,-17,-44,74,16,17,-62,3,-7,-85,112,118,-75,-27,-109,66,-50,-46,123,75,48,-79,18,-97,113,89,56,4,2,32,104,-60,103,79,-121,-89,-19,114,-84,90,14,-13,-6,-61,44,-110,-1,116,-62,-99,62,-26,42,118,-102,-15,-104,31,71,5,122,-32],"chunked":false,"majorType":"BYTE_STRING"}},"keys":[{"string":"alg","chunked":false,"majorType":"UNICODE_STRING"},{"string":"sig","chunked":false,"majorType":"UNICODE_STRING"},{"string":"x5c","chunked":false,"majorType":"UNICODE_STRING"}],"chunked":false,"majorType":"MAP"};
按照预设编码方式对第一数据、第二数据、编码后的第三数据进行编码得到设备数据为:
{"attestationObject":"o2NmbXRmcGFja2VkZ2F0dFN0bXSjY2FsZyZjc2lnWEcwRQIhANKNlITN79RKEBHCA_mrcHa15ZNCztJ7SzCxEp9xWTgEAiBoxGdPh6ftcqxaDvP6wyyS_3TCnT7mKnaa8ZgfRwV64GN4NWOCWQHpMIIB5TCCAYygAwIBAgIJANeVSb0aZxdhMAoGCCqGSM49BAMCMBcxFTATBgNVBAMMDEZUIEZJRE8gMDIwMDAgFw0xODA4MTMwMDAwMDBaGA8yMDMzMDgxMjIzNTk1OVowbzELMAkGA1UEBhMCVVMxHTAbBgNVBAoMFEZlaXRpYW4gVGVjaG5vbG9naWVzMSIwIAYDVQQLDBlBdXRoZW50aWNhdG9yIEF0dGVzdGF0aW9uMR0wGwYDVQQDDBRGVCBCaW9QYXNzIEZJRE8yIFVTQjBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABLBnPJK8-gamuvcL2Nv2N5g4mExs5ANbGCRHuNvGiQ09gkWWgJu4iaqJ_tIZsQNBnQaFnzAeAf9a-x7m0mBxprOjZzBlMB0GA1UdDgQWBBTvErRGVjox37u2LjH2bWeKu981FTATBgsrBgEEAYLlHAIBAQQEAwIFIDAhBgsrBgEEAYLlHAEBBAQSBBB3AQvXISpPybI20spenUCEMAwGA1UdEwEB_wQCMAAwCgYIKoZIzj0EAwIDRwAwRAIgK0GmTJ_Xd3OIQZQmnMj5uRMwc3-ZCbsbIk5xVm90yAQCIDGJy6Q6horZjEoBT9vRWiIJYaQXKj1SmBlU2KCA4FFiWQGCMIIBfjCCASWgAwIBAgIBATAKBggqhkjOPQQDAjAXMRUwEwYDVQQDDAxGVCBGSURPIDAyMDAwIBcNMTYwNTAxMDAwMDAwWhgPMjA1MDA1MDEwMDAwMDBaMBcxFTATBgNVBAMMDEZUIEZJRE8gMDIwMDBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABNBmrRqVOxztTJVN19vtdqcL7tKQeol2nnM2_yYgvksZnr50SKbVgIEkzHQVOu80LVEE3lVheO1HjggxAlT6o4WjYDBeMB0GA1UdDgQWBBRJFWQt1bvG3jM6XgmV_IcjNtO_CzAfBgNVHSMEGDAWgBRJFWQt1bvG3jM6XgmV_IcjNtO_CzAMBgNVHRMEBTADAQH_MA4GA1UdDwEB_wQEAwIBBjAKBggqhkjOPQQDAgNHADBEAiAwfPqgIWIUB-QBBaVGsdHy0s5RMxlkzpSX_zSyTZmUpQIgB2wJ6nZRM8oX_nA43Rh6SJovM2XwCCH__-LirBAbB0NoYXV0aERhdGFY5IvOTywPjy1uSTqQ8dW6wx4nONk1zxetrSw4HbYi5AfiRQAAFdl3AQvXISpPybI20spenUCEAGC8ll-00VZNM_z27wLd47RDFkWRrhHWpQQySdFnA1OJjj6JzPt7SBijnCXSvskx1SDpuX8VBTKLpOnlcHoMUGzc4QLHTMiz1dUQv94CNTPh261U6Adn715qxnfIylMUMO6lAQIDJiABIVggiAJSXOVaJfw0e_1UMqxImWbTv9swW16eM1g0WZEwpb4iWCA-YkysKzDH78X2uZDEorL4ECOoOKOa0vtNBAlv9x43bg"};
可选地,客户端接收认证设备返回的设备数据,根据设备数据和客户端数据生成注册响应数据,并将注册响应数据发送给服务器。
例如,客户端数据为:
{"clientDataJSON":"eyJjaGFsbGVuZ2UiOiIwWkNNNERxal9tcGw0OHpXSGlpaUxMbFJ0NjZ0Q09MSy1weWRDTjZNb0xVIiwib3JpZ2luIjoiaHR0cHM6Ly93d3cubGluYS5jb206ODQ0MyIsInR5cGUiOiJ3ZWJhdXRobi5jcmVhdGUifQ"};
客户端根据设备数据和客户端数据生成注册响应数据为:
{"clientDataJSON":"eyJjaGFsbGVuZ2UiOiIwWkNNNERxal9tcGw0OHpXSGlpaUxMbFJ0NjZ0Q09MSy1weWRDTjZNb0xVIiwib3JpZ2luIjoiaHR0cHM6Ly93d3cubGluYS5jb206ODQ0MyIsInR5cGUiOiJ3ZWJhdXRobi5jcmVhdGUifQ","attestationObject":"o2NmbXRmcGFja2VkZ2F0dFN0bXSjY2FsZyZjc2lnWEcwRQIhANKNlITN79RKEBHCA_mrcHa15ZNCztJ7SzCxEp9xWTgEAiBoxGdPh6ftcqxaDvP6wyyS_3TCnT7mKnaa8ZgfRwV64GN4NWOCWQHpMIIB5TCCAYygAwIBAgIJANeVSb0aZxdhMAoGCCqGSM49BAMCMBcxFTATBgNVBAMMDEZUIEZJRE8gMDIwMDAgFw0xODA4MTMwMDAwMDBaGA8yMDMzMDgxMjIzNTk1OVowbzELMAkGA1UEBhMCVVMxHTAbBgNVBAoMFEZlaXRpYW4gVGVjaG5vbG9naWVzMSIwIAYDVQQLDBlBdXRoZW50aWNhdG9yIEF0dGVzdGF0aW9uMR0wGwYDVQQDDBRGVCBCaW9QYXNzIEZJRE8yIFVTQjBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABLBnPJK8-gamuvcL2Nv2N5g4mExs5ANbGCRHuNvGiQ09gkWWgJu4iaqJ_tIZsQNBnQaFnzAeAf9a-x7m0mBxprOjZzBlMB0GA1UdDgQWBBTvErRGVjox37u2LjH2bWeKu981FTATBgsrBgEEAYLlHAIBAQQEAwIFIDAhBgsrBgEEAYLlHAEBBAQSBBB3AQvXISpPybI20spenUCEMAwGA1UdEwEB_wQCMAAwCgYIKoZIzj0EAwIDRwAwRAIgK0GmTJ_Xd3OIQZQmnMj5uRMwc3-ZCbsbIk5xVm90yAQCIDGJy6Q6horZjEoBT9vRWiIJYaQXKj1SmBlU2KCA4FFiWQGCMIIBfjCCASWgAwIBAgIBATAKBggqhkjOPQQDAjAXMRUwEwYDVQQDDAxGVCBGSURPIDAyMDAwIBcNMTYwNTAxMDAwMDAwWhgPMjA1MDA1MDEwMDAwMDBaMBcxFTATBgNVBAMMDEZUIEZJRE8gMDIwMDBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABNBmrRqVOxztTJVN19vtdqcL7tKQeol2nnM2_yYgvksZnr50SKbVgIEkzHQVOu80LVEE3lVheO1HjggxAlT6o4WjYDBeMB0GA1UdDgQWBBRJFWQt1bvG3jM6XgmV_IcjNtO_CzAfBgNVHSMEGDAWgBRJFWQt1bvG3jM6XgmV_IcjNtO_CzAMBgNVHRMEBTADAQH_MA4GA1UdDwEB_wQEAwIBBjAKBggqhkjOPQQDAgNHADBEAiAwfPqgIWIUB-QBBaVGsdHy0s5RMxlkzpSX_zSyTZmUpQIgB2wJ6nZRM8oX_nA43Rh6SJovM2XwCCH__-LirBAbB0NoYXV0aERhdGFY5IvOTywPjy1uSTqQ8dW6wx4nONk1zxetrSw4HbYi5AfiRQAAFdl3AQvXISpPybI20spenUCEAGC8ll-00VZNM_z27wLd47RDFkWRrhHWpQQySdFnA1OJjj6JzPt7SBijnCXSvskx1SDpuX8VBTKLpOnlcHoMUGzc4QLHTMiz1dUQv94CNTPh261U6Adn715qxnfIylMUMO6lAQIDJiABIVggiAJSXOVaJfw0e_1UMqxImWbTv9swW16eM1g0WZEwpb4iWCA-YkysKzDH78X2uZDEorL4ECOoOKOa0vtNBAlv9x43bg"};
步骤102、服务器接收客户端发送的注册响应数据,对注册响应数据进行解析,得到客户端数据和设备数据;
步骤103:服务器对客户端数据进行验证,验证成功则执行步骤104,验证失败则提示注册失败,结束;
在本实施例中,服务器对客户端数据进行验证,具体为:服务器获取客户端数据中的依赖方访问信息、摘要值、注册信息,并进行验证,若验证成功则执行步骤104,若验证失败则提示注册失败。
步骤104、服务器通过预设编码方法对设备数据进行解码解析,得到第一数据、第二数据、第三数据;
在本实施例中,第一数据为认证声明格式,第二数据为认证器数据,第三数据为认证声明语句数据;
例如,第一数据为:{"fmt":"packed"};
第二数据为:
{"rpIdHash":8BCE4F2C0F8F2D6E493A90F1D5BAC31E2738D935CF17ADAD2C381DB622E407E2,"flags":69,"signCount":5593,"attData":{"aaguid":77010BD7212A4FC9B236D2CA5E9D4084,"credentialId":BC965FB4D1564D33FCF6EF02DDE3B443164591AE11D6A5043249D1670353898E3E89CCFB7B4818A39C25D2BEC931D520E9B97F1505328BA4E9E5707A0C506CDCE102C74CC8B3D5D510BFDE023533E1DBAD54E80767EF5E6AC677C8CA531430EE,"publicKey":{"x":8802525CE55A25FC347BFD5432AC489966D3BFDB305B5E9E335834599130A5BE,"y":3E624CAC2B30C7EFC5F6B990C4A2B2F81023A838A39AD2FB4D04096FF71E376E,"crv":1,"alg":"ES256","kty":2}}};
第三数据为:
{"sig":3045022100D28D9484CDEFD44A1011C203F9AB7076B5E59342CED27B4B30B1129F71593804022068C4674F87A7ED72AC5A0EF3FAC32C92FF74C29D3EE62A769AF1981F47057AE0,"attestnCert":308201E53082018CA003020102020900D79549BD1A671761300A06082A8648CE3D04030230173115301306035504030C0C4654204649444F20303230303020170D3138303831333030303030305A180F32303333303831323233353935395A306F310B3009060355040613025553311D301B060355040A0C144665697469616E20546563686E6F6C6F6769657331223020060355040B0C1941757468656E74696361746F72204174746573746174696F6E311D301B06035504030C1446542042696F50617373204649444F32205553423059301306072A8648CE3D020106082A8648CE3D03010703420004B0673C92BCFA06A6BAF70BD8DBF6379838984C6CE4035B182447B8DBC6890D3D824596809BB889AA89FED219B103419D06859F301E01FF5AFB1EE6D26071A6B3A3673065301D0603551D0E04160414EF12B446563A31DFBBB62E31F66D678ABBDF35153013060B2B0601040182E51C0201010404030205203021060B2B0601040182E51C0101040412041077010BD7212A4FC9B236D2CA5E9D4084300C0603551D130101FF04023000300A06082A8648CE3D040302034700304402202B41A64C9FD77773884194269CC8F9B91330737F9909BB1B224E71566F74C80402203189CBA43A868AD98C4A014FDBD15A220961A4172A3D52981954D8A080E05162,"caCert":308201E53082018CA003020102020900D79549BD1A671761300A06082A8648CE3D04030230173115301306035504030C0C4654204649444F20303230303020170D3138303831333030303030305A180F32303333303831323233353935395A306F310B3009060355040613025553311D301B060355040A0C144665697469616E20546563686E6F6C6F6769657331223020060355040B0C1941757468656E74696361746F72204174746573746174696F6E311D301B06035504030C1446542042696F50617373204649444F32205553423059301306072A8648CE3D020106082A8648CE3D03010703420004B0673C92BCFA06A6BAF70BD8DBF6379838984C6CE4035B182447B8DBC6890D3D824596809BB889AA89FED219B103419D06859F301E01FF5AFB1EE6D26071A6B3A3673065301D0603551D0E04160414EF12B446563A31DFBBB62E31F66D678ABBDF35153013060B2B0601040182E51C0201010404030205203021060B2B0601040182E51C0101040412041077010BD7212A4FC9B236D2CA5E9D4084300C0603551D130101FF04023000300A06082A8648CE3D040302034700304402202B41A64C9FD77773884194269CC8F9B91330737F9909BB1B224E71566F74C80402203189CBA43A868AD98C4A014FDBD15A220961A4172A3D52981954D8A080E05162,3082017E30820125A003020102020101300A06082A8648CE3D04030230173115301306035504030C0C4654204649444F20303230303020170D3136303530313030303030305A180F32303530303530313030303030305A30173115301306035504030C0C4654204649444F20303230303059301306072A8648CE3D020106082A8648CE3D03010703420004D066AD1A953B1CED4C954DD7DBED76A70BEED2907A89769E7336FF2620BE4B199EBE7448A6D5808124CC74153AEF342D5104DE556178ED478E08310254FAA385A360305E301D0603551D0E041604144915642DD5BBC6DE333A5E0995FC872336D3BF0B301F0603551D230418301680144915642DD5BBC6DE333A5E0995FC872336D3BF0B300C0603551D13040530030101FF300E0603551D0F0101FF040403020106300A06082A8648CE3D04030203470030440220307CFAA021621407E40105A546B1D1F2D2CE51331964CE9497FF34B24D9994A50220076C09EA765133CA17FE7038DD187A489A2F3365F00821FFFFE2E2AC101B0743,"alg":"ES256"}。
步骤105、服务器根据第一数据确定认证声明格式类型,若认证声明格式类型为第一类型时,执行步骤106,若认证声明格式类型为第二类型时,执行步骤113,若认证声明格式类型为其他类型时,执行相应的操作;
在本实施例中,服务器根据第一数据确定认证声明格式类型,具体为:服务器获取认证声明格式标识符,若认证声明格式标识符为第一字符时,确定认证声明格式类型为第一类型,若认证声明格式标识符为第二字符时,确定认证声明格式类型为第二类型;具体地,其他类型包括:tpm、android-key、android-safenet、none
例如第一字符为:packed;第二字符为:fido-u2f。
步骤106、服务器按照预设编码方法对第三数据进行解码解析,从解析后的数据中获取第一预设字段;
步骤107、服务器根据第一预设字段确定认证类型,若为第一认证类型则执行步骤108,若为第二认证类型则执行步骤111,若为其他认证类型则执行相应操作;
在本实施例中,第一预设字段具体为认证类型字段;
服务器根据第一预设字段确定认证类型具体为:服务器根据认证类型字段确定认证类型,当认证类型字段为基本认证类型则确定认证类型为第一认证类型,当认证类型字段为自认证类型则确定认证类型为第二认证类型;当认证类型字段为其他则确定认证类型为其他认证类型;
例如,认证类型字段为基本类型(Basic or AttCA)则确定认证类型为第一认证类型,包含x5c证书链;
认证类型字段为自认证类型(self attestation)则确定认证类型为第二认证类型;
认证类型字段为其他(ECDAA)则确定认证类型为其他认证类型ecdaaKeyID。
步骤108、服务器获取第三数据中的认证设备证书、预设签名算法和签名数据;
在本实施例中,服务器获取的第三数据中的认证设备证书具体为:认证设备出厂时写入的设备公钥证书;
服务器获取的第三数据中的签名数据,具体为:认证设备按照预设算法,对客户端数据的摘要值和第二数据通过认证设备私钥进行签名得到的签名数据;该认证设备的私钥具体为认证设备出厂时写入的设备私钥
步骤109、服务器根据第三数据中的认证设备证书通过预设算法对签名数据进行验签,若验签成功则执行步骤110,否则结束;
步骤110、服务器获取第三数据中的设备证书链,通过服务器中保存的对应设备的根证书,验证获取的设备证书链的可信性,若验证成功则执行步骤116,否则结束;
可选的,服务器获取第三数据中的认证设备公钥证书,对认证设备公钥证书的规范性和可信性进行验证,验证成功则执行步骤116,否则结束;
步骤111、服务器获取第二数据中的凭证密钥对中的公钥,验证预设算法和凭证密钥对中的公钥是否匹配,是则执行步骤112,否则结束;
步骤112、服务器获取第三数据中的签名数据,根据凭证密钥对中的公钥通过预设算法对签名数据进行验签,若验签成功则执行步骤116,否则结束;
步骤113、服务器按照预设编码方法对第三数据进行解码解析,获取解析后的数据中的设备证书公钥和签名数据;
步骤114、服务器根据设备证书公钥和客户端数据通过预设算法对签名数据进行验签,若验签成功则执行步骤115,否则结束;
步骤115、服务器获取第三数据中认证类型对应的证书,验证证书的可信性,验证成功则执行步骤116,否则结束;
步骤116、服务器从第二数据中获取用户凭证标识,根据注册用户凭证标识列表判断是否存在与获取的用户凭证标识相同的用户凭证标识,是则提示注册失败,结束,否则保存注册信息,向客户端返回注册完成响应。
实施例三
本发明的实施例三提供了一种服务器接受注册的***,该***包括服务器、客户端和认证设备的***。
如图3所示,该服务器包括:接收模块11、解析模块12、生成模块13、验证模块14、确定模块15、获取模块16、判断模块17、发送模块18;
接收模块11,用于接收客户端发送的注册请求;还用于接收客户端发送的注册响应数据;
解析模块12,用于对接收模块11接收到的注册请求进行解析;还用于对接收模块11接收到的注册响应数据进行解析,得到客户端数据和设备数据;
生成模块13,用于生成挑战值,根据挑战值、注册信息生成注册数据;
验证模块14,用于验证解析模块12解析得到的客户端数据,验证成功则对设备数据进行解码解析,得到第一数据、第二数据和第三数据;还用于按照确定的认证声明格式类型对应的验证方法对签名数据进行验证;
确定模块15,用于根据验证模块14得到的第一数据确定认证声明格式类型,获取第三数据中的签名数据;
获取模块16,用于验证模块14对签名数据进行验证成功时,获取第二数据中的用户凭证标识;
判断模块17,用于判断获取的用户凭证标识是否存在于注册用户凭证标识列表中,还用于判断获取的用户凭证标识存在于注册用户凭证标识列表中时提示注册失败;
发送模块18,用于向客户端发送生成模块13生成的注册数据;还用于判断模块17判断获取的用户凭证标识不存在于注册用户凭证标识列表中时向客户端返回注册完成响应。
可选地,在本实施例中,验证模块14包括第一验证单元,第一验证单元具体用于:获取客户端数据中的依赖方访问信息、摘要值、注册信息,并根据自身保存的依赖方访问信息、摘要值、注册信息进行比对,若比对一致,则验证成功,若比对不一致,则验证失败。
可选地,在本实施例中,认证声明格式类型具体包括第一认证声明格式类型;
验证模块14包括第二验证单元,第二验证单元具体用于按照第一认证声明格式类型对应的验证方法对签名数据进行验签。
优选地,在本实施例中,第二验证单元包括:获取单元、确定单元、验证单元,
获取单元用于获取第三数据中的第一预设字段;
确定单元用于根据第一预设字段确定认证类型;
验证单元用于按照确定单元确定的认证类型对签名数据进行验签,验签成功则触发获取模块16获取第二数据中的用户凭证标识,否则结束。
进一步优选地,在本实施例中,认证类型包括第一认证类型;
当确定单元根据第一预设字段确定的认证类型为第一认证类型时,验证单元包括:第一获取子单元、第一验证子单元;
第一获取子单元用于获取第三数据中的认证设备证书;还用于获取第三数据中的设备证书链;
第一验证子单元用于通过预设算法对签名数据进行验签,若验签成功则触发第一获取子单元获取第三数据中的设备证书链;还用于通过服务器中保存的对应设备的根证书,验证获取的设备证书链的可信性,验证成功则触发获取模块16获取第二数据中的用户凭证标识。
进一步优选地,在本实施例中,认证类型包括第二认证类型;
当确定单元根据第一预设字段确定的认证类型为第二认证类型时,验证单元包括:第二获取子单元、第二验证子单元、第三验证子单元;
第二获取子单元用于获取第二数据中的凭证密钥对中的公钥;
第二验证子单元用于验证预设算法和凭证密钥对中的公钥是否匹配;
第三验证子单元用于第二验证子单元验证预设算法和凭证密钥对中的公钥匹配时,根据凭证密钥对中的公钥通过预设算法对签名数据进行验签,验证成功则触发获取模块16获取第二数据中的用户凭证标识,否则结束。
可选地,在本实施例中,认证声明格式类型具体包括第二认证声明格式类型;
验证模块14包括第三验证单元,第三验证单元具体用于按照第二认证声明格式类型对应的验证方法对签名数据进行验签。
优选地,在本实施例中,第三验证单元具体包括:第三获取子单元、第四验证子单元、第四获取子单元、第五验证子单元;
第三获取子单元用于获取第三数据中的设备证书、证书公钥;
第四验证子单元用于根据设备证书公钥和客户端数据通过预设算法对签名数据进行验签;
第四获取子单元用于第四验证子单元验证成功时,获取第三数据中认证类型对应的证书;
第五验证子单元用于验证证书的可信性,验证成功则触发获取模块16获取第二数据中的用户凭证标识,否则结束。
可选地,在本实施例中,解析模块12还用于确定模块15根据第一数据确定认证声明格式类型之后,按照预设编码方法对第三数据进行解码解析。
本发明实施例提供的技术方案的有益效果是:本发明提供了一种服务器接受注册的方法,服务器接收并解析客户端发送的注册响应数据,得到客户端数据和设备数据,根据设备数据中的认证声明格式类型确定设备类型,服务器根据设备类型完成对应的验证注册,通过本发明服务器能够完成兼容多类型认证设备的验证注册,提升了用户的体验。
以上对本发明所提供的一种服务器接受注册的方法进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上,本说明书内容不应理解为对本发明的限制。
Claims (18)
1.一种服务器接受注册的方法,其特征在于,所述方法包括:
步骤S1、服务器接收到客户端发送的注册请求,对注册请求进行解析,生成挑战值,根据所述挑战值、注册信息生成注册数据,向所述客户端发送注册数据;
步骤S2、所述服务器接收所述客户端发送的注册响应数据,对所述注册响应数据进行解析,得到客户端数据和设备数据,验证所述客户端数据,验证成功则对所述设备数据进行解码解析,得到第一数据、第二数据和第三数据;
步骤S3、所述服务器根据所述第一数据确定认证声明格式类型,获取第三数据中的签名数据,按照确定的认证声明格式类型对应的验证方法对签名数据进行验签,验签成功则执行步骤S4;所述认证声明格式类型至少有两种;
步骤S4、所述服务器获取第二数据中的用户凭证标识,判断获取的用户凭证标识是否存在于注册用户凭证标识列表中,是则提示注册失败,结束,否则保存注册信息,向客户端返回注册完成响应。
2.根据权利要求1所述的方法,其特征在于,所述验证所述客户端数据,具体为:所述服务器获取客户端数据中的依赖方访问信息、摘要值、注册信息,并根据自身保存的依赖方访问信息、摘要值、注册信息进行比对,若比对一致,则验证成功,若比对不一致,则验证失败。
3.根据权利要求1所述的方法,其特征在于,所述认证声明格式类型具体包括第一认证声明格式类型;
当所述服务器根据所述第一数据确定认证声明格式类型为第一认证声明格式类型时,所述按照认证声明格式类型对应的验证方法对签名数据进行验签具体为:所述服务器按照第一认证声明格式类型对应的验证方法对签名数据进行验签。
4.根据权利要求3所述的方法,其特征在于,所述服务器按照第一认证声明格式类型对应的验证方法对签名数据进行验签具体为:所述服务器获取第三数据中的第一预设字段,根据第一预设字段确定认证类型,按照认证类型对签名数据进行验签,验签成功则执行步骤S4,否则结束。
5.根据权利要求4所述的方法,其特征在于,所述认证类型包括第一认证类型;
当所述服务器根据第一预设字段确定认证类型为所述第一认证类型时,所述按照认证类型对签名数据进行验签具体为:
步骤A1、所述服务器获取第三数据中的认证设备证书,通过预设算法对签名数据进行验签,若验签成功则执行步骤A2,否则结束;
步骤A2、所述服务器获取第三数据中的设备证书链,通过服务器中保存的对应设备的根证书,验证获取的设备证书链的可信性,验证成功则执行步骤S4,否则结束。
6.根据权利要求4所述的方法,其特征在于,所述认证类型包括第二认证类型;
当所述服务器根据第一预设字段确定认证类型为所述第二认证类型时,所述按照认证类型对签名数据进行验签具体为:
步骤B1、所述服务器获取所述第二数据中的凭证密钥对中的公钥,验证预设算法和凭证密钥对中的公钥是否匹配,若是则执行步骤B2,否则结束;
步骤B2、所述服务器根据凭证密钥对中的公钥通过预设算法对签名数据进行验签,验签成功则执行步骤S4,否则结束。
7.根据权利要求1所述的方法,其特征在于,所述认证声明格式类型具体包括第二认证声明格式类型;
当所述服务器根据所述第一数据确定认证声明格式类型为第二认证声明格式类型时,所述按照认证声明格式类型对应的验证方法对签名数据进行验签具体为:所述服务器按照第二认证声明格式类型对应的验证方法对签名数据进行验签。
8.根据权利要求7所述的方法,其特征在于,所述服务器按照第二认证声明格式类型对应的验证方法对签名数据进行验签,具体为:
步骤C1、所述服务器获取所述第三数据中的设备证书公钥,根据设备证书公钥和客户端数据通过预设算法对签名数据进行验签,若验签成功则执行步骤C2,否则结束;
步骤C2、所述服务器获取所述第三数据中认证类型对应的证书,验证证书的可信性,验证成功则执行步骤S4,否则结束。
9.根据权利要求1所述的方法,其特征在于,在所述步骤S3中,所述服务器根据所述第一数据确定认证声明格式类型之后还包括:所述服务器按照预设编码方法对第三数据进行解码解析。
10.一种服务器接受注册的***,其特征在于,所述***包括:服务器、客户端和认证设备;
所述服务器包括:接收模块、解析模块、生成模块、验证模块、确定模块、获取模块、判断模块、发送模块;
所述接收模块,用于接收所述客户端发送的注册请求;还用于接收所述客户端发送的注册响应数据;
所述解析模块,用于对所述接收模块接收到的所述注册请求进行解析;还用于对所述接收模块接收到的所述注册响应数据进行解析,得到客户端数据和设备数据;
所述生成模块,用于生成挑战值,根据所述挑战值、注册信息生成注册数据;
所述验证模块,用于验证所述解析模块解析得到的所述客户端数据,验证成功则对所述设备数据进行解码解析,得到第一数据、第二数据和第三数据;还用于按照确定的认证声明格式类型对应的验证方法对签名数据进行验签;
所述确定模块,用于根据所述验证模块得到的所述第一数据确定认证声明格式类型,获取第三数据中的签名数据;
所述获取模块,用于所述验证模块对签名数据进行验签成功时,获取第二数据中的用户凭证标识;
所述判断模块,用于判断获取的用户凭证标识是否存在于注册用户凭证标识列表中,还用于判断获取的用户凭证标识存在于注册用户凭证标识列表中时提示注册失败;
所述发送模块,用于向所述客户端发送所述生成模块生成的注册数据;还用于所述判断模块判断获取的用户凭证标识不存在于注册用户凭证标识列表中时向客户端返回注册完成响应。
11.根据权利要求10所述的***,其特征在于,所述验证模块包括第一验证单元,所述第一验证单元具体用于:获取客户端数据中的依赖方访问信息、摘要值、注册信息,并根据自身保存的依赖方访问信息、摘要值、注册信息进行比对,若比对一致,则验证成功,若比对不一致,则验证失败。
12.根据权利要求10所述的***,其特征在于,所述认证声明格式类型具体包括第一认证声明格式类型;
所述验证模块包括第二验证单元,所述第二验证单元具体用于按照第一认证声明格式类型对应的验证方法对签名数据进行验签。
13.根据权利要求12所述的***,其特征在于,所述第二验证单元包括:获取单元、确定单元、验证单元,
所述获取单元用于获取第三数据中的第一预设字段;
所述确定单元用于根据第一预设字段确定认证类型;
所述验证单元用于按照所述确定单元确定的认证类型对签名数据进行验签,验签成功则触发所述获取模块获取第二数据中的用户凭证标识,否则结束。
14.根据权利要求13所述的***,其特征在于,所述认证类型包括第一认证类型;
当所述确定单元根据第一预设字段确定的认证类型为第一认证类型时,所述验证单元包括:第一获取子单元、第一验证子单元;
所述第一获取子单元用于获取第三数据中的认证设备证书;还用于获取第三数据中的设备证书链;
所述第一验证子单元用于通过预设算法对签名数据进行验签,若验签成功则触发所述第一获取子单元获取第三数据中的设备证书链;还用于通过服务器中保存的对应设备的根证书,验证获取的设备证书链的可信性,验证成功则触发所述获取模块获取第二数据中的用户凭证标识。
15.根据权利要求13所述的***,其特征在于,所述认证类型包括第二认证类型;
当所述确定单元根据第一预设字段确定的认证类型为第二认证类型时,所述验证单元包括:第二获取子单元、第二验证子单元、第三验证子单元;
所述第二获取子单元用于获取所述第二数据中的凭证密钥对中的公钥;
所述第二验证子单元用于验证预设算法和凭证密钥对中的公钥是否匹配;
所述第三验证子单元用于所述第二验证子单元验证预设算法和凭证密钥对中的公钥匹配时,根据凭证密钥对中的公钥通过预设算法对签名数据进行验签,验签成功则触发所述获取模块获取第二数据中的用户凭证标识,否则结束。
16.根据权利要求10所述的***,其特征在于,所述认证声明格式类型具体包括第二认证声明格式类型;
所述验证模块包括第三验证单元,所述第三验证单元具体用于按照第二认证声明格式类型对应的验证方法对签名数据进行验签。
17.根据权利要求16所述的***,其特征在于,所述第三验证单元具体包括:第三获取子单元、第四验证子单元、第四获取子单元、第五验证子单元;
所述第三获取子单元用于获取所述第三数据中的设备证书、证书公钥;
所述第四验证子单元用于根据设备证书公钥和客户端数据通过预设算法对签名数据进行验签;
所述第四获取子单元用于所述第四验证子单元验签成功时,获取所述第三数据中认证类型对应的证书;
所述第五验证子单元用于验证证书的可信性,验证成功则触发所述获取模块获取第二数据中的用户凭证标识,否则结束。
18.根据权利要求10所述的***,其特征在于,所述解析模块还用于所述确定模块根据所述第一数据确定认证声明格式类型之后,按照预设编码方法对第三数据进行解码解析。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010160817.0A CN111414608B (zh) | 2020-03-10 | 2020-03-10 | 一种服务器接受注册的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010160817.0A CN111414608B (zh) | 2020-03-10 | 2020-03-10 | 一种服务器接受注册的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111414608A CN111414608A (zh) | 2020-07-14 |
CN111414608B true CN111414608B (zh) | 2023-04-18 |
Family
ID=71490995
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010160817.0A Active CN111414608B (zh) | 2020-03-10 | 2020-03-10 | 一种服务器接受注册的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111414608B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112242905B (zh) * | 2020-12-10 | 2021-03-16 | 飞天诚信科技股份有限公司 | 一种基于浏览器的注册接口实现数据通讯的方法和*** |
CN112311558B (zh) * | 2020-12-28 | 2021-04-06 | 飞天诚信科技股份有限公司 | 一种密钥设备的工作方法及密钥设备 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106686004A (zh) * | 2017-02-28 | 2017-05-17 | 飞天诚信科技股份有限公司 | 一种登录认证方法及*** |
CN108881310A (zh) * | 2018-08-15 | 2018-11-23 | 飞天诚信科技股份有限公司 | 一种注册***及其工作方法 |
CN109150541A (zh) * | 2018-08-15 | 2019-01-04 | 飞天诚信科技股份有限公司 | 一种认证***及其工作方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP3183680B1 (en) * | 2014-08-18 | 2018-03-21 | Csík, Balázs | Methods for digitally signing an electronic file, and authenticating method |
-
2020
- 2020-03-10 CN CN202010160817.0A patent/CN111414608B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106686004A (zh) * | 2017-02-28 | 2017-05-17 | 飞天诚信科技股份有限公司 | 一种登录认证方法及*** |
CN108881310A (zh) * | 2018-08-15 | 2018-11-23 | 飞天诚信科技股份有限公司 | 一种注册***及其工作方法 |
CN109150541A (zh) * | 2018-08-15 | 2019-01-04 | 飞天诚信科技股份有限公司 | 一种认证***及其工作方法 |
Non-Patent Citations (1)
Title |
---|
徐静.《中国优秀硕士学位论文全文数据库》.2019, * |
Also Published As
Publication number | Publication date |
---|---|
CN111414608A (zh) | 2020-07-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110493197B (zh) | 一种登录处理方法及相关设备 | |
WO2017059741A1 (zh) | 基于认证设备进行认证的方法和设备 | |
US8689300B2 (en) | Method and system for generating digital fingerprint | |
KR20180048793A (ko) | 신원 인증 방법 및 장치 | |
CN1172224C (zh) | 用于鉴定程序代码真实性的方法和设备 | |
RU2008141089A (ru) | Аутентификация приложения | |
KR101858653B1 (ko) | 블록체인 데이터베이스 및 이와 연동하는 머클 트리 구조를 통해 모바일 아이디를 이용하여 사용자를 인증하는 방법, 단말 및 이를 이용한 서버 | |
CN103107996A (zh) | 数字证书在线下载方法及***、数字证书发放平台 | |
CN111414608B (zh) | 一种服务器接受注册的方法 | |
KR102137122B1 (ko) | 보안 체크 방법, 장치, 단말기 및 서버 | |
WO2020035009A1 (zh) | 认证***及其工作方法 | |
CN114072796A (zh) | 具有远程验证的硬件认证令牌 | |
CN112437068B (zh) | 认证及密钥协商方法、装置和*** | |
US9679117B2 (en) | System and method for obtaining an authorization key to use a product | |
CN114257376B (zh) | 数字证书更新方法、装置、计算机设备和存储介质 | |
CN110943840B (zh) | 一种签名验证方法 | |
CN112396735A (zh) | 网联汽车数字钥匙安全认证方法及装置 | |
WO2020024852A1 (zh) | 一种认证方法及认证设备 | |
CN115514492A (zh) | Bios固件验证方法、装置、服务器、存储介质和程序产品 | |
TWI773161B (zh) | 數位簽章私鑰驗證方法 | |
CN105577606B (zh) | 一种实现认证器注册的方法和装置 | |
CN112118229A (zh) | 物联网设备和服务器安全认证方法、装置及电子设备 | |
CN113918932A (zh) | 一种安全认证方法及相关组件 | |
KR101310043B1 (ko) | 스마트폰에서 음성정보를 이용한 일회용 패스워드 기반 사용자 인증 방법 | |
CN113839917B (zh) | 语音信息处理方法、数据处理平台和设备云端服务器 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |