CN114928456B - 一种基于用户端本地证书实现数据流通的方法及系统 - Google Patents
一种基于用户端本地证书实现数据流通的方法及系统 Download PDFInfo
- Publication number
- CN114928456B CN114928456B CN202210855748.4A CN202210855748A CN114928456B CN 114928456 B CN114928456 B CN 114928456B CN 202210855748 A CN202210855748 A CN 202210855748A CN 114928456 B CN114928456 B CN 114928456B
- Authority
- CN
- China
- Prior art keywords
- data
- user
- signature
- key
- service
- 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3263—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements
- H04L9/3268—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements using certificate validation, registration, distribution or revocation, e.g. certificate revocation list [CRL]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/04—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
- H04L63/0428—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/22—Parsing or analysis of headers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3247—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Storage Device Security (AREA)
Abstract
本申请公开了一种基于用户端本地证书实现数据流通的方法及系统。平台端从调用端发送的数据流通业务报文中获取业务数据及用户密钥注册信息,组装数据流通签名请求报文并发送给用户端进行签名处理;从用户端返回的数据流通签名响应报文中获取业务数据与签名结果数据,组装数据流通请求报文并发送至数据流通网关进行数据流通业务处理;从数据流通网关返回的数据流通处理响应报文中获取处理响应签名数据、业务处理数据生成待验签数据,组装数据流通验签请求报文发送给用户端进行验签处理;从用户端返回的数据流通验签响应报文中获取验签结果数据,组装加密数据生成数据流通响应结果报文并返回给调用端完成数据流通处理。所述方法安全且使用成本低。
Description
技术领域
本申请涉及信息安全技术领域,尤其涉及一种基于用户端本地证书实现数据流通的方法及系统。
背景技术
数字证书是用户在网络上进行数据流通等业务的身份证明。
当前,使用数字证书有以下两种方式:一是用户端借助现有的平台,通过将数字证书托管至该平台从而实现数据流通等业务;二是数字证书保存在用户端,用户通过自研或者委托开发等方式来实现数据流通等业务。前一种使用方法实施于平台端与用户端之间,将证书完全托管至平台会导致用户失去对数字证书的控制权,安全问题显著;后一种使用方法仅涉及用户端,虽然可以避免数字证书因托管带来的安全问题,但用户需要投入较高的成本。
发明内容
本申请实施例提供了一种基于用户端本地证书实现数据流通的方法及系统。所述技术方案如下:
第一方面,本申请实施例提供了一种基于用户端本地证书实现数据流通的方法,所述方法应用于包括调用端、平台端、用户端以及数据流通网关的系统中,包括:
步骤S1:所述平台端接收所述调用端发送的数据流通业务报文,并对所述数据流通业务报文进行验证,若验证通过,则对所述数据流通业务报文进行解析,获取业务数据,再根据所述业务数据从内部存储中获取对应的用户密钥注册信息,执行步骤S2,否则,向所述调用端返回错误信息;
步骤S2:所述平台端对获取到的所述业务数据以及所述用户密钥注册信息进行组装,生成待签名数据,并利用所述用户密钥注册信息中的用户会话密钥对所述待签名数据进行加密,获得待签名密文数据,再对所述业务数据、所述用户密钥注册信息以及所述待签名密文数据进行组装,利用内部存储的通讯密钥对组装后的结果进行加密,生成数据流通签名请求报文,将所述数据流通签名请求报文发送给所述用户端进行签名处理;
步骤S3:所述平台端接收所述用户端返回的数据流通签名响应报文,并利用所述通讯密钥对所述数据流通签名响应报文进行解密,若解密成功则获取所述业务数据、所述用户密钥注册信息以及签名结果密文数据,执行步骤S4,否则,向所述用户端返回错误信息;
步骤S4:所述平台端根据解密出的所述用户密钥注册信息从内部存储中获取对应的用户会话密钥,并利用所述用户会话密钥对所述签名结果密文数据进行解密,若解密成功则获得签名结果明文数据,再对所述业务数据以及所述签名结果明文数据进行组装,生成数据流通请求报文,将所述数据流通请求报文发送至所述数据流通网关进行数据流通业务处理,执行步骤S5,否则,向所述用户端返回错误信息;
步骤S5:所述平台端接收所述数据流通网关返回的数据流通处理响应报文,并对所述数据流通处理响应报文进行解析,获取处理响应签名数据以及业务处理数据,根据所述业务处理数据从内部存储中获取对应的用户密钥注册信息;
步骤S6:所述平台端对所述处理响应签名数据以及所述业务处理数据进行组装,生成待验签数据,并利用所述用户密钥注册信息中的用户会话密钥对所述待验签数据进行加密,获得待验签密文数据,再对所述业务处理数据、所述用户密钥注册信息以及所述待验签密文数据进行组装,利用所述通讯密钥对组装后的结果进行加密,生成数据流通验签请求报文,将所述数据流通验签请求报文发送给所述用户端进行验签处理;
步骤S7:所述平台端接收所述用户端返回的数据流通验签响应报文,并利用所述通讯密钥对所述数据流通验签响应报文进行解密,若解密成功则获取所述业务处理数据、所述用户密钥注册信息以及验签结果密文数据,执行步骤S8,否则,向所述用户端返回错误信息;
步骤S8:所述平台端根据解密出的所述业务处理数据从内部存储中获取对应的用户密钥注册信息中的用户会话密钥,并利用所述用户会话密钥对所述验签结果密文数据进行解密,获得验签结果明文数据,再对所述业务处理数据以及所述验签结果明文数据进行组装,利用内部存储的平台接入密钥对组装后的结果进行加密,生成数据流通响应结果报文,将所述数据流通响应结果报文返回给所述调用端用于完成对数据流通业务的处理。
第二方面,本申请实施例提供了一种基于用户端本地证书实现数据流通的系统,所述系统由调用端、平台端、用户端以及数据流通网关构成,包括:
业务报文接收模块,用于接收所述调用端发送的数据流通业务报文,并对所述数据流通业务报文进行验证,若验证通过,则对所述数据流通业务报文进行解析,获取业务数据,再根据所述业务数据从内部存储中获取对应的用户密钥注册信息,触发签名请求报文生成模块,否则,向所述调用端返回错误信息;
所述签名请求报文生成模块,用于对获取到的所述业务数据以及所述用户密钥注册信息进行组装,生成待签名数据,并利用所述用户密钥注册信息中的用户会话密钥对所述待签名数据进行加密,获得待签名密文数据,再对所述业务数据、所述用户密钥注册信息以及所述待签名密文数据进行组装,利用内部存储的通讯密钥对组装后的结果进行加密,生成数据流通签名请求报文,将所述数据流通签名请求报文发送给所述用户端进行签名处理;
签名结果密文获取模块,用于接收所述用户端返回的数据流通签名响应报文,并利用所述通讯密钥对所述数据流通签名响应报文进行解密,若解密成功则获取所述业务数据、所述用户密钥注册信息以及所述签名结果密文数据,触发数据流通请求生成模块,否则,向所述用户端返回错误信息;
所述数据流通请求生成模块,用于根据解密出的所述用户密钥注册信息从内部存储中获取对应的用户会话密钥,并利用所述用户会话密钥对所述签名结果密文数据进行解密,若解密成功则获得签名结果明文数据,再对所述业务数据以及所述签名结果明文数据进行组装,生成数据流通请求报文,将所述数据流通请求报文发送至所述数据流通网关进行数据流通业务处理,触发数据流通响应接收模块,否则,向所述用户端返回错误信息;
所述数据流通响应接收模块,用于接收所述数据流通网关返回的数据流通处理响应报文,并对所述数据流通处理响应报文进行解析,获取处理响应签名数据以及业务处理数据,根据所述业务处理数据从内部存储中获取对应的用户密钥注册信息;
验签请求报文生成模块,用于对所述处理响应签名数据以及所述业务处理数据进行组装,生成待验签数据,并利用所述用户密钥注册信息中的用户会话密钥对所述待验签数据进行加密,获得待验签密文数据,再对所述业务处理数据、所述用户密钥注册信息以及所述待验签密文数据进行组装,利用所述通讯密钥对组装后的结果进行加密,生成数据流通验签请求报文,将所述数据流通验签请求报文发送给所述用户端进行验签处理;
验签响应报文接收模块,用于接收所述用户端返回的数据流通验签响应报文,并利用所述通讯密钥对所述数据流通验签响应报文进行解密,若解密成功则获取所述业务处理数据、所述用户密钥注册信息以及所述验签结果密文数据,触发响应结果报文生成模块,否则,向所述用户端返回错误信息;
所述响应结果报文生成模块,用于根据解密出的所述业务处理数据从内部存储中获取对应的用户密钥注册信息中的用户会话密钥,并利用所述用户会话密钥对所述验签结果密文数据进行解密,获得验签结果明文数据,再对所述业务处理数据以及所述验签结果明文数据进行组装,利用内部存储的平台接入密钥对组装后的结果进行加密,生成数据流通响应结果报文,将所述数据流通响应结果报文返回给所述调用端用于完成对数据流通业务的处理。
第三方面,本申请实施例提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述任一项方法的步骤。
第四方面,本申请实施例提供了一种服务器,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现上述任一项方法的步骤。
本申请一些实施例提供的技术方案带来的有益效果至少包括:
本申请提供的基于用户端本地证书实现数据流通的方法实现了在无需将证书托管至平台的情况下,利用本地证书密钥对数据进行签名后,借助平台端与调用端来完成数据流通业务。所述方法一方面可以避免证书托管至平台带来的安全问题,二是可以保证用户对证书的控制权,三是能够避免用户自研技术带来的高成本投入问题,四是在借助平台完成数据流通业务的同时,用户依然可以在所持终端上使用证书。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的一种平台端对用户端的认证操作流程示意图;
图2是本申请实施例提供的一种平台端对用户端的注册操作流程示意图;
图3至图5是本申请实施例提供的一种基于用户端本地证书实现数据流通的方法的流程示意图;
图6是本申请实施例提供的一种基于用户端本地证书实现数据流通的系统结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施例方式作进一步地详细描述。
下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
在本申请的描述中,需要理解的是,术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本申请中的具体含义。此外,在本申请的描述中,除非另有说明,“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。
下面将结合附图1至附图5,对本申请实施例提供的基于用户端本地证书实现数据流通的方法进行详细介绍。
请参见图1至图5,为本申请实施例提供的一种基于用户端本地证书实现数据流通的方法的流程示意图。
本申请提供的基于用户端本地证书实现数据流通的方法应用于由调用端、平台端、用户端以及数据流通网关构成的系统中,实施该方法前,调用端与用户端之间存在初始化操作,具体如下:
调用端生成调用端标识并线下提供给用户端。
调用端标识例如为:CFT000000001。
以及,在处理数据流通业务之前,平台端与用户端之间还可能存在初始化操作、认证操作以及注册操作,其中,平台端与用户端之间的初始化操作具体如下:
用户端线下提供用户信息给平台端,平台端进行录入,其中,用户信息包括但不限于用户名称、用户端标识等;平台端生成通讯密钥以及用户标识并对应保存,将所生成的通讯密钥以及用户标识线下提供给用户端。
用户端在初始化阶段植入的数据包括:调用端标识、用户标识数据(即用户信息+用户标识)、通讯密钥以及用户证书。
用户名称例如为:XXX。
用户端标识例如为:TERM0000001。
用户标识例如为:MCHT00000000001。
用户证书例如为:30820a21020103308209e706092a864886f70d010701a08209d8048209d4308209d03082048706092a864886f70d010706a0820478308204740201003082046d06092a864886f70d010701301c060a2a864886f70d010c0106300e0408b459bdb0c46351230202080080820440568d2b0d29981fad599264074a6732ac1e27418adb690d6433e4ac6908eaddfa0b776493485294bcdaa2e7d6d6046435d149d99a2eb91bff7f5ee911b87feac306e382d82c6b093823119941c33977ad91ee25ed3ea836c3624dda1f5a74ec778b5997127f8c55fae1009b63951f77f4b4f631a465ef5253a22c3204c0b431a14cb9d88b104003fa1044144d9a4fcf99f64cfcae74210a9649ab3819a23c447ce63d2334c5101267c9a884434609ea062b5fe61ef98c788c877c2d56bbdc665cb0d3c153b1aa60022fde0cadf5ba084ec9488308feb8ef6bf83d0a577ab05181d1d9dca7de9aaf78d01208315ac6a4d8df2106bcb52cc8fb0d05d3b8421ca1ca436f365a537221dc0f47bcde2413fa2b022e2c6a0ea7042979d777ede0ec9f7d43e0fafec366fa7c3e5c0d4b422f5d179936b839380bd65e05d317c34ed94c06dc67ad16cb9437814d5bf60f46b48195ffd8e58aed12f51c45d05e3edc86da0be670b552eece4ad294302fc03821f45fd180e5f7cef5ceebb0579c072972948ab6df4fe943acd1355da7ef8ae7314d740e098d4eebdd4ed45b2619d903e740a8190dea4133862af701aea7586940039ce49804d329c0361aef322490c971ebb7eaf6b6234e7d3ac2e2016d1b20fe5503e287e4c7068e16b360cefb009927d5ddf8ae14a66d9818d973b2c3ea6a24872f7eb26d43e905cdebc84b766e7544e53a68e02fee678bc7f1b7982761d9fe077d5a3646a6dc71fd55218a2a02147d3f6f5009b4dd0b43bf76927d8941886541407abed0553d33700f3772739e1cf07e7887595bf962c3d544589a8eb6b7c852c292fd1b52365b1d3f3e4cc7ec1f67a5db8f1e4d3d0aec82f70c966e2e2987b6459644681e717be26dd5a3d7f4a7513f1fc3f8ccfe1986e5e5af20b5b5a9c77dae4d56bd23d5ad5b12cd4343baf14f7368395c5bcd05f04f4261f3f307c81e531d63f73e8b54d0276420a77a2dd005a44e21cbc83bd8e12ac0cb81d91b530b9f15314fbd99d9fb5f3b1717ac9e74460c1a4de35dea287dbda49eedd3efa5d4b350b36ee4f26bf11c847233025d784bfc87dfc981b738075a773054263eab77c8d3ad758d50a5b441ec15186f336a494ac8b94efc98a404d7ffe66f9c2b332a612ada90b27847431062a55eebe9bc944a2c00a1608afbee54d5f822539998d85bc485461b73a9519109742e29ef0c2a0d9afc4b00d52c68b2e129fc6b0f3a18c920761bed0ed578586588fd8b71b8e776f290fd7298f6a460da85038d86c9dcb70f3fdaa23e5e93ae8064f588c4c8d5f2682368a2332c6b9d0bec112eb4aa982664c2bfe0ccf7a098606e6cadaf6f22ea56ca5a1f5e9e432178d1f70761ef6e7458c815d27ea13733f4f3ecc3478ccf870c6412bd5da8922658e232e1398d6dc29e7d1519ad45892772b5c1129111bb272f9f95c140728ab35aad5faa90c6854525bbd106fb4367254227a2b649378e44085adacae3b42c4af2b9c6eae75d77538608bebe9d053a0704463d305b873b5e253082054106092a864886f70d010701a08205320482052e3082052a30820526060b2a864886f70d010c0a0102a08204ee308204ea301c060a2a864886f70d010c0103300e04086a31a0f77c51539c02020800048204c81746cd5ef4131b20e9bdfbe49ebf2808dc945fdab3487414792689ce7d3d200784359c5c053ba98a087a64af4aeb14500592787a0fd0486c772a3d845bd57e9e6166a87deeb19b019ee139485992a393ee401895ecbfc4e47be0271cbef27402a3d1a63920de1879bd196af5415c804971c9d11fe2dba76aed7f9276d8b6b7e7346ca118bc68889aa812036d2d3894f1f299d901915f02fd8282a6b4ddf2b9f215b1542424470edd122e320ca1207ce7d3242877c30740eba43c8504832d024d61ad7258fbdc7712e43904f62ea2680a26a1fdfe7d2357b0e08e6373aeb0fdbe13755ae7d65a2622614e370e15e517d3866923143e71a9855084fae2becfc49e8f0633984c9ba61cc45c3473266811d24875bb8776393cd9d34d256ac99e87f1dd5f9b2dd2980ef0f7e25fea33a8a6e02a9e30bab8570da77c16016315bcc14400e5e039656f6d7d051c7956ed37c901ac7e98ceb86d697c0ca5660cb16a0aa7bd3e4ffb11288bdbb33138969a71a029157a4960f15dd6537505ae4a2905c1c9cf1a99634ef9b4c936f714b2751c4b438e1ab96a77e0ad75ba548f58583bb625b6775d47590fb3da2d5caa278d241be9f2448147b4c5dc04415cd33354874507b0f005bcefe26f04330e4e2c68e3d7f409c41dcc01d8ec7ceb42fded0bfadba4cd36cf84df58823a569caf3a874c167886898863fe7cd71559a69d770151d85d9505eee506e3f4134751dbc569e1c896b9650ddebb525321758f12742fb8085845505d06ee0b2cd0de6e0342ca120759577483a770cf18145e1904f977ff5a03c86c987bb5409b8fe7961e0a3c8ae1c5fbed85b1bd86821fb6997e9a8aa7595168e64c1c1df7ba7983f9eb32bbefebf62d2f2ac41dfa5fa91ba824b90ad82fa03946622e25f41ed5331e5c26b4f50154b655afcdf8d50d0d4515ac709ea43cb50a797d99d7d9480803c1d55e83232ecf91c9cd12fc6a79b17f9560c1560499abd4a9876977fb5ff16e0d57c308531c022227a96b99cd987f17c87899bc7b52c315f4af5f4e349999272618cb669971ce0082a58c36864d16343405d52366fc335b800fe2df97ed52d0f54c36df7feb5e893035f974a98a57fc2d4ea31176d912ff87299b2f41a0d8cf8ecee7025336a0acebb757d6467ba3235f97e8b8047e06f560da470c1372725ab3f1f8929273f65017c7337231a1a7a5a9412c26ddfed62bfb5d8a5993b3f9161b22d9fea55341250b5809bb36c3a9a170cb706be320ab287c6cb2a2723ab22918b67e5e6cdf755315a00f18cb1ac2067d0e844799b75078f2025cbe6a16d3b280e5074a9c63fd7f16a0e42fe9202ad5618b64fe93d0733e88c96fd4345b1ed34699d2684fd8e8ffd075abeb1c8173bbc7f9754189643911ae645f2e878fba0786818c42ee100a035c673f86c6692de0d00cdfd0b552fd451d726cb8655f293d91f661ae890150a9c6ea46418781da5cfa7c53d98c4210156e327f5853c737f029a9a31c88a56b1253322b70fc36bfdd026144778cb42f592730f86c78e3e28d0a11637e48f7848705b7fbcb58a2edf1f17c1a9ceee0a90f462d747a6a8a89393e79a36ca05883cfa1c481dce2bf93868555530d1861dd322a449c01e3b2b4506e3c4d7e37bdde6d4131f879b58f20fba4e75e786d8dc9d8c6cc5e235d095be6c9cbaecb5249ef1bc8cf485459aa15ad228ec310195034808a8ff5a9902d263125302306092a864886f70d0109153116041488543e8d50b497d45e67037debfe3a6272d4fdf130313021300906052b0e03021a050004145f1711c4f1c68386ba560a0be2b9acc731cdb18c04088cd43c1163cb890902020800。
如图1所示,平台端对用户端的认证操作具体包括以下步骤:
步骤S1-1’:用户端生成用户会话密钥并保存,从内部存储中获取通讯密钥、以及用户标识数据,利用通讯密钥的公钥对用户会话密钥进行加密,获得会话密钥密文,再利用通讯密钥的私钥对用户标识数据以及会话密钥密文进行签名,生成认证数据签名结果,对用户标识数据、会话密钥密文以及认证数据签名结果进行组装,生成认证请求报文,将认证请求报文发送给平台端。
用户端生成的用户会话密钥例如为:
bc5b153bf12c58975b20df52853ef83de5ef3154f716e910。
用户端从内部存储中获取的通讯密钥例如为:
通讯密钥的公钥例如为:
30820122300d06092a864886f70d01010105000382010f003082010a028201010080d4405e301497d8f421ec9ae0223622969e47147a39d697db58250033b6fc7dff2bc4e79555619e32dd74fda6ec2c23e2cf9789da8e0b1b88e8dbf4cb16fca4d1485ebd227b576408e3a455cce79f56da304a8f5d6ce09769ed64cd66045aea7a474bbc7d1739394e61beba3082de592edc1cbbba9d2cc943d51c3d475057d65e7fe385aa0af42b45d1ebc2c02b87f01d5c91d37192355883139f24503e02a0f71da2660c9f99dee101bae45ebd314676c3b2776b557cc880e0bfa17329bd4dd5bd711bf1e1d4b23736cd818c10608fe2aefcc4e0a02e1007c9a168a516051f3286830e2abe37874a06c11743b91dc9343b76ff67d9fa83d1bb207569d7cfb50203010001。
通讯密钥的私钥例如为:
308204bd020100300d06092a864886f70d0101010500048204a7308204a30201000282010100baa1959755f47e2b91ce3994f591f9c91dd0f3f5e5badf070e627feec28207263b76f542a16c54e689e7c929133ad169e762dbd5154dde5a5f0f8cd5cac72bf485a0bb5d9ff8ae86ffd9b9bd65d8b016f28d4627291c203282719453675dfb3e6991291e3c28b5e291a29b8ba4b15af257e51414bb915f5203926de5e89b87fab5c3cebc8b0d3724ddb4e16421104408e813463322e81d094069067c118430ed425853fe5e911fe49ca537de43b33569277054a7081e516067073d99479da19e1959a3280629b00397f190113872a6675ffdc9d37e687beb85a3e769ebb9d52747e61b1f065e64ae3c402c92cbcd4c56224adb9f587ac543c94b61b7ee6a63610203010001028201003552d7afeeb2359e73416df85e95bfbdb3d430f0301c4d7ef1a0391759e1d6f318886b99071031cdd0d736059365f9d17d782481645de44b03e028882930f12123510257c4ce43e774909bde3e8c43fbba7f9cecb17544c9c9b57400c486f8b3236c83480d3e4081a4c4c616870ed9826694a041303a5ff6c9e87b97f5f70249a593f5ab0b95cd1ee764075b448e0e2e23a0e30f03e6d5a9a6be4cbcb13e847e89a52306076cdf03992ac35d1d3238372c95895e9c840e6dc3488180305060db07035f72f6cd6c25083638a8e179f36a9e619822b9ca6061bee64176c516df17189823fa69c422349976e74f385f63b83d56b5721501ce6626d83ce2aeb3456502818100ea20be36f4e032ca5bed3849bfc8fa80cf1a2d15d033cf16a601301dd3d3b658e933c3963c73e03da711df2527ec00285b10c8b0fdc14ac98d10ea563d0488f69b48d17be89aba4abdc06e0b5c6d4b61070e8ecdd5cc4543be28297f8748d43eb6d1acc91f88f0f015eded32abced22ec446bead40844c13a10d60677563776302818100cc10f08441cc0c737dd7eb6474278ba507791bf5a613576a58c8649eef6033f711939f6a770799bdc9ced6844d20c0499b05d92611fba4da8e92d399dbbce2d9e33ad34eed3963e89daa19c38ceee8880661f80a6e573274e04c176c473e6e138a6ea44da5c6eb6d61f323395b557ed2234fa34209e8f2589826fc64c7db9f6b02818066c5b8b9a704434750d2f0c26ecd6a28e0c03cca367a878d0991bbed5beeb33c942184d98defcf9f409737bcb7a980e836114807695c4fd7e9746369379fa5ff9a6a7c8a47b0a3d5eb356d18cf99aa5d0d1bf6d3a3e5e701b5972ba02f6268c89eb7ab811db69f0cc4938c6b91bf57c3efa49e4eaee36401b9d08560e4c6a4c10281805111d9bb71385329feb0acff7775ce707d8b8ba4079a5f7c0c51704803e9403bc36bd645418c6f738a9cf574120014e4290625c28e1a5edfc50c67ac1433f21b85be74fc421a2eaad71820ac236d364bf3dd2fe154fca73aef70cb4d64f05462c6f835a5f35a1765992832b232aac07b5333ec33ec23f343670ef5ee43c7e88902818100e94bdcd40b6b46b28a9835fb5532a61bb6c5de8fdf71334c709983dcc98be2168017d589856b62e58e7e01ed6106fcfe4ed27c28512ab1581bd35d399e0d66b6807ac335336eb359c907763f9ed6d0af29db2ced39e08e725a781ffd78b371a527dd993219307134516a183b85a78038e54163a14a9e8a25277a42bd06613796。
基于上述实例,通过通讯密钥的公钥对用户会话密钥进行加密后,获得的会话密钥密文例如为:
4c866bfe4382ebeb360e82bf6dad37e58233ae9a8eea52d444e302007efd6163c5c87366dd7069774e001125826cf13f3b1a0786023894465faf53900c299b9bc014a906cb474a0088c526f75479671429414a2e408af9f358a7271bc551b40b3f8e0cee1f61ec665f674d5caa20af26891469e753c6dba26b0cae05c1892775ce8c3879f69fe7c01735c85767f6f0f1ac9df12269abaca2629c8d44a2484588b7c76049be52ef5ac05dd03fc6147721e40bfa8ec8a6ede0b37d2afe3daece51b6860111b63f17ea613bc143feea0b9f6c4757fba5d0c134fdbf94c5cff53dc427028cfc4f75e66ac5e15a2c1612fadd961dfb3081bd56a72f5e46223623ed4e。
基于上述实例,通过通讯密钥的私钥对用户标识数据以及会话密钥密文进行签名,生成的认证数据签名结果例如为:
1215f3012c79b51c6fc61409a5aa1ce311331cd14be81a2085eda8d41a0ce63c5dbd35e065111ebb05e881ae13d9b6e38935b71f89ceea33ad14810cabf9259ede83a23fd22a6c02697b6b988e8c5ac9345d7066d7b18aacd50c76a4dd19436907fbb877061d9597fd6166a9096b7c43732be488d7cc52fb9197edfc0c4cf896f1ec917a06805259e8e58d2e614438b27d7e40c06a7bf7179a63b69854d74e2c9be5c6133d2396997932a334d6dc767d501fd88f38cfb63507ab20d1f2a3e6162145e0438873811c9ecd3b3b441f0e695c8886ac07fe1000b4ddffdd83d3381505453d3e94879f7b46cdc069f15addaa63e496881cc7a50516f3338c72df81e2。
详尽地,本实施例中用户端按照认证报文组装方式对用户标识数据、会话密钥密文以及认证数据签名结果进行组装,生成认证请求报文。
认证请求报文例如为:
{"mchtCode":"MCHT00000000001","termCode":"TERM0000001","sessionKey":"4c866bfe4382ebeb360e82bf6dad37e58233ae9a8eea52d444e302007efd6163c5c87366dd7069774e001125826cf13f3b1a0786023894465faf53900c299b9bc014a906cb474a0088c526f75479671429414a2e408af9f358a7271bc551b40b3f8e0cee1f61ec665f674d5caa20af26891469e753c6dba26b0cae05c1892775ce8c3879f69fe7c01735c85767f6f0f1ac9df12269abaca2629c8d44a2484588b7c76049be52ef5ac05dd03fc6147721e40bfa8ec8a6ede0b37d2afe3daece51b6860111b63f17ea613bc143feea0b9f6c4757fba5d0c134fdbf94c5cff53dc427028cfc4f75e66ac5e15a2c1612fadd961dfb3081bd56a72f5e46223623ed4e","sign":"1215f3012c79b51c6fc61409a5aa1ce311331cd14be81a2085eda8d41a0ce63c5dbd35e065111ebb05e881ae13d9b6e38935b71f89ceea33ad14810cabf9259ede83a23fd22a6c02697b6b988e8c5ac9345d7066d7b18aacd50c76a4dd19436907fbb877061d9597fd6166a9096b7c43732be488d7cc52fb9197edfc0c4cf896f1ec917a06805259e8e58d2e614438b27d7e40c06a7bf7179a63b69854d74e2c9be5c6133d2396997932a334d6dc767d501fd88f38cfb63507ab20d1f2a3e6162145e0438873811c9ecd3b3b441f0e695c8886ac07fe1000b4ddffdd83d3381505453d3e94879f7b46cdc069f15addaa63e496881cc7a50516f3338c72df81e2"}。
步骤S1-2’:平台端接收用户端发送的认证请求报文,并根据认证请求报文中的用户标识数据从内部存储中获取对应的通讯密钥,利用通讯密钥的公钥对认证请求报文中的认证数据签名结果进行验签,若验签成功,执行步骤S1-3’,若验签失败,则向用户端返回认证失败响应。
具体的,平台端根据用户标识数据中的用户标识从内部存储中获取对应的通讯密钥。
对认证请求报文中的认证数据签名结果的验签过程具体如下:
步骤S1-21’:平台端根据获取到的通讯密钥的公钥对认证请求报文中的认证数据签名结果进行解密,获得第一哈希值;
步骤S1-22’:平台端对认证请求报文中的用户标识数据以及会话密钥密文进行哈希运算,获得第二哈希值;
步骤S1-23’:平台端判断第一哈希值与第二哈希值是否相同,若相同,则验签成功,执行步骤S1-3’,若不相同,则验签失败,向用户端返回认证失败响应。
步骤S1-3’:平台端利用通讯密钥的私钥对认证请求报文中的会话密钥密文进行解密,若解密成功则获得用户会话密钥,执行步骤S1-4’,否则,向用户端返回错误信息。
步骤S1-4’:平台端对用户标识数据与用户会话密钥建立对应关系并保存,完成认证。
即建立用户名称、用户端标识、用户标识等多个数据与用户会话密钥的对应关系。
进一步地,在认证完成后,平台端还可向用户端返回认证成功响应。
如图2所示,平台端对用户端的注册操作具体包括以下步骤:
步骤S1-1:用户端从内部存储中获取用户标识数据、注册数据以及用户会话密钥,利用用户会话密钥对注册数据进行加密,获得注册数据密文,再对用户标识数据以及注册数据密文进行组装,生成注册请求报文,将注册请求报文发送给平台端。
用户端内部存储的注册数据例如为:
{"termCode":"TERM0000001","sid":"sid20220426100000",time":"20220426101010"}。
具体的,用户端使用3DES算法及用户会话密钥对注册数据进行加密,获得注册数据密文。
注册数据密文例如为:
953FA168F295C3B227D837C85FA2B0273D11F4CCDEAAEBD9E2C86CC044821620E8491BCC549806C2E1F9F1BFCB34280F538EEC97200B070115629928664A04CE0935863A60CA7BEAA6B5C156BF1220C7。
详尽地,本实施例中用户端按照注册报文组装方式对用户标识数据以及注册数据密文进行组装,生成注册请求报文。
注册请求报文例如为:
{"mchtCode":"MCHT00000000001","data":"953FA168F295C3B227D837C85FA2B0273D11F4CCDEAAEBD9E2C86CC044821620E8491BCC549806C2E1F9F1BFCB34280F538EEC97200B070115629928664A04CE0935863A60CA7BEAA6B5C156BF1220C7"}。
步骤S1-2:平台端接收用户端发送的注册请求报文,并根据注册请求报文中的用户标识数据从内部存储中获取对应的用户会话密钥,利用用户会话密钥对注册请求报文中的注册数据密文进行解密,若解密成功则获取注册数据,执行步骤S1-3,否则,向用户端返回错误信息。
具体的,平台端根据用户标识数据中的用户端标识从内部存储中获取对应的用户会话密钥。
平台端使用3DES算法及用户会话密钥对注册数据密文进行解密,获得注册数据。
此外,当解密失败时,平台端向用户端返回注册失败响应。
步骤S1-3:平台端对用户标识数据与注册数据建立对应关系并保存,完成注册。
如图3至图5所示,本申请提供的基于用户端本地证书实现数据流通的方法具体包括以下步骤:
步骤S1:平台端接收调用端发送的数据流通业务报文,并对数据流通业务报文进行验证,若验证成功,则从数据流通业务报文中获取业务数据,再根据业务数据从内部存储中获取对应的用户密钥注册信息,执行步骤S2,否则,向调用端返回错误信息。
本申请实施例中,调用端发起的数据流通业务包括但不限于数据流通、查询、通知等等。
较详尽地,在步骤S1之前,还包括:
步骤S1-A1:调用端生成业务数据;
调用端生成的业务数据至少由调用端标识、用户标识、数据流通类型、数据流通业务值等内容组成。
业务数据例如为:
{"shopCode":"SHOP000000","termCode":"CFT000000001","orderAmount":"0.01","orderName":"线上商品","orderNo":"BFT1651030169015","orderNote":"orderRemark"}。
步骤S1-A2:调用端利用内部存储的平台接入密钥对业务数据进行签名处理,获得业务签名结果,基于业务数据以及业务签名结果生成数据流通业务报文,将数据流通业务报文发送给平台端。
本申请中,调用端利用与平台端线下协商的平台接入密钥(私钥)对业务数据进行签名处理,平台接入密钥(私钥)例如为:
308204be020100300d06092a864886f70d0101010500048204a8308204a40201000282010100a48908fd16566c6141966ff372c855c92a0a264a6a9a86678aff06a467759b728b651ba781809cbe9cc6b8372d8cf88b335d2655c277673e90a338679ba80e717d98d332247579bbb8b53fcdb256c95138ceb51ca9138c2a0c7b0cc86e043ac21d1c9522c068d2d518b8fa89a841734ecaad97902dcb5ac69250cc202967069d3278192952803b06e78bdf37f9a26e055802ac5441b86427110148c1b962a0ee8a4c2e8eb4fa9d75b74274784e8550698a286f81432a88aee8e8d3d64568ff473a4ceccfb6b87ec35e8e718ed170cf531e90941fda609fc573095b1fa8c0719e88d11afb7549e2e09391d7da5d0d4a269b3c4c528167731283003c0eb891be49020301000102820100084cc9614b012d1272e68ddb300d1f16b8c22e504eb460d75451ad1a1a05fac37a78ad3e73eff2f8429c5baa9ce7a19a140b3ce5d29b875fc698153e54c1d388b2174580200ab50b5d33f775feeb15d8bd0ee06003bf72b0a45488be8b9e370097cb5b529776323c81b4c31eb2982aa2ece278e4d30a9117b745d0264730654af004742ec5603e8427c72156c798ac76fd2dadd657e19113aa092bf671710e5649d4276be5c1545548c87e4a00a8ead353fe19535f15de7d81b34d154739c78033e37c646a45b12c14b3e5c59ac09f1274b046e9a2787dd9bb4960518fe47ab11e89871eb58953b4b441d61e159561ba315ac4fdd78b155f1ce0e79f9dc96ca902818100d9ef3f894411a4d6f2ae55297516d845584e14045523877b7c15d6c4748ab7287d8483856c27977e73d3bc4952e5e50153f51a719fd0ce6410b9b201bb71df9b5e98bdf6939276519ccb772741ac06f473df58f956381a5be832810cd2c62356a7d8b86f3a4c1a4234c2eb699518c3ac3e7fd9a796f52b0ca077f9e59df3ae5302818100c14615edfd78f8a756a4c5395823d13f0512fcaa8b7c29dae2c12a78207cdde64001f50f635def4eadb0c411f2e0f82a334d6738cd39648af223c416cca1e3954b63a0feb820093c7dc680dec5561074ad44b2b785b27c41f663597578be2bc69f415af0d8561e42616633d77ba549070e247e63f1a754b505ff013ace07f57302818100a005f70759be02e5fa485c2c16d7f171e9c75b175b54bd54c4e65c4ee0ac42952ea530d5b576d4dc7b3c4c132315bfb3dbec2bc0a6f2f1b9b4364628d374681673bd802f2068f90c302f8e8c7ac250510b0c430ec26a6ba074bd30d933a35dab718fc6cd9566f0191118d7372dcd8350648c084bf0a2913bb250a6641e39221502818100b3ec5ce9eaf7bcf37b3374ef076080a11c462ab55198cb161bd61b852d295121d22080544cfadb96f11707d075bc7d0a3c2c2895b6676174002acf9731f4db7ad66def28719c513ce111f4526e7eca5ef4166a1173034fadd083787a6567143599782c02de427d74ea5b4c93a365a17051f823394373b4e5b8a94629ca379a8502818050877a0f8d861d7516e0ce531961ba75be89d3cfd8f0e29aa2693a386509d4d215ae7cd1ea1564448fd8b13ab287e833f93156119f8b690dcb758795a38d340216a0b93b286c1fcfdb6a6b71357cbfc65d9abf1a6349cbdc137c9c4feb3df6685ef3deaa441fa564bc3d56c3e5130b5d83085d0ac9f720430c2d0f7f3ea08c04。
生成的数据流通业务报文例如为:
{"mchtCode":"MCHT00000000001","bizType":"1","bizData":"业务数据","sign":"签名结果"}。
平台端在接收到调用端发送的数据流通业务报文后,利用内部存储的平台接入密钥(公钥)对数据流通业务报文中的业务签名结果进行签名合法性验证。
其中,平台接入密钥(公钥)例如为:
30820122300d06092a864886f70d01010105000382010f003082010a0282010100cd4fdfd0062f5ad152747e36cbe9813acac21ab227aa5bf508e9b1d555825ecd19c152ac85172c86b9e2cef8052a03d1ca7bce582f8805306918c8a87dc77f426922da24bd164a7c07af31685c8da105fc5ef6cfca5543faea94cd8829502600ec95d17d18f7cdba21ee337170f6432660a90325f1086d0b9e0b4a070d450c0cd8cd2d508c5a9114b10d74f6baf30a5ab2d5f42ecd8353545333e90594e9b4f029a4861dd03fe7306fce4276ec849dde83dffbb131f51b36b102e69ff90d440d37b85fb6f606497903f01d9fbb33c1644d7d6ac5539530c6e05051c9b6a743f56b8d0031501a2804ba612cad3340fc0c0280200819ae00a6267ef6685c8828510203010001。
验证签名合法后,平台端则根据业务数据中的用户标识从内部存储中获取对应的用户密钥注册信息。
用户密钥注册信息由认证阶段与注册阶段平台端保存的数据构成,包括但不限于用户标识、用户端标识、用户会话密钥以及注册数据等等。
其他实施例中,平台端根据业务数据从内部存储中获取对应的用户密钥注册信息,具体包括:
平台端判断内部存储中是否存在与所述业务数据对应的用户密钥注册信息;
若存在,则获取用户密钥注册信息,并执行步骤S2;
若不存在,则向调用端返回业务处理失败响应。
步骤S2:平台端对获取到的业务数据以及用户密钥注册信息进行组装,生成待签名数据,并利用用户密钥注册信息中的用户会话密钥对待签名数据进行加密,获得待签名密文数据,再对业务数据、用户密钥注册信息以及待签名密文数据进行组装,利用内部存储的通讯密钥对组装后的结果进行加密,生成数据流通签名请求报文,将数据流通签名请求报文发送给用户端。
待签名数据例如为:
{"orderNo":"ORD202204260000001","amount":"0.01","time":"20220426101010"}。
利用用户会话密钥对待签名数据进行加密,获得的待签名密文数据例如为:
814CF3D5E8741064B49ABE627E95E6D97AFE2608A8A22E13F609C6149083349CD7CC01E24579E22A305221342ED8D2B1F453FE146D0F53A4D69D7095D0F88854DAEB721D723C586FB7E86120E34ACC3F。
详尽地,本实施例中平台端按照签名报文组装方式对业务数据、用户密钥注册信息以及待签名密文数据进行组装,对组装后的结果进行加密,生成数据流通签名请求报文。
数据流通签名请求报文例如为:
{"mchtCode":"MCHT00000000001","termCode":"TERM0000001","data":"814CF3D5E8741064B49ABE627E95E6D97AFE2608A8A22E13F609C6149083349CD7CC01E24579E22A305221342ED8D2B1F453FE146D0F53A4D69D7095D0F88854DAEB721D723C586FB7E86120E34ACC3F"}。
步骤S3:用户端接收平台端发送的数据流通签名请求报文,并利用内部存储的通讯密钥对数据流通签名请求报文进行解密,若解密成功则获取业务数据、用户密钥注册信息以及待签名密文数据,执行步骤S4,否则,向平台端返回错误信息。
步骤S4:用户端根据解密出的用户密钥注册信息从内部存储中获取用户会话密钥,并利用用户会话密钥对待签名密文数据进行解密,若解密成功则获得待签名数据明文,以及,根据业务数据从内部存储中获取用户证书密钥,利用用户证书密钥对待签名数据明文进行签名,获得数据流通签名结果,执行步骤S5,否则,向平台端返回错误信息。
具体的,用户端根据用户密钥注册信息中的用户端标识从内部存储中获取对应的用户会话密钥;用户端根据用户密钥注册信息中的用户标识从内部存储中获取对应的用户证书密钥。
用户证书密钥(私钥)例如为:
2d2d2d2d2d424547494e205253412050524956415445204b45592d2d2d2d2d0a50726f632d547970653a20342c454e435259505445440a44454b2d496e666f3a204445532d454445332d4342432c423938353443323541354435383035360a0a58334f424b33676d6d77376c453231504c472f4a74507349534e76376c374c673332334453656a36446f3965644b43437548655a6372554a4457795372372f320a4e376d57664a6f4b4a50444f6a723457744e694b58666a777463356e334862395145775266424d6e45796255645551385074336848654e504354526f304f63740a435169746e61776a62346e6c764a73557151414d635a63354476417551326e586d69497a4874686335635733736d717676706b4445486e714a716470554369460a34344e78795463334556745078477a2f6b794264663071566a7a6d4f394262456d373057486e4a674f41467054666d34524273433842354f325a354f733972310a44674b35436e5366686f67386c456652716748506e2b7539357574317a675531433334363574315673454272324739434239572b76414758527a5745684935760a4b5a757355307a493550764c43706a32694a43795850456937773253485433573753552b506542654b5755654b634f373535675575555068725a766831794c320a363557786a4a3346506f32744f34446e76654a362f704669754f3538524472424862707365754b755666626a344845474e367878667a756c2b746739567839500a36385a377369746b4f5333544859334b396a69764e492f414633584c4850476234615762386442324d713366595246784e4465464f7435553349456f345974310a50717046684f74393446507548686441533434625865615345704148772b2b4f446769484637625170786c436e4e52304f5261583377417342427131493268540a456441617a4b555459696779486357666744753436357a4b346b4e5678677074614a4e66526f34555736632f7041482b6874366e494d63444d3465494e7373630a463838325168504478636f6b626d5a6676524d5a6e787353697454352b36306458615863676f424f6353494a6549625475327a7256636263413265506e7656470a46664a4d4243776c66386e4b694b467566305149344b716731537a724d7165344b334366534a6d44376f644841577a517567496f6753537465614677516752640a71686d2f2b477963534749555065706a37494d2f6d387265432f61542f4533455865535955466f664458483259385274327344364e76734161444b796e766c760a376b54306e6c656446515250497330776c623937307431364c4352612f786e53725143684838456a73434a4d4c58544c376836756544646372416364723448490a714f7937323036646156563369486e76524a77326776514e472f744178724f593475322f486c4869783446654f6945774a2b567355416775766c324b466958730a3137654c6873476b352f57687a4b667a695859352b706549465976774d6266574757644855354f6f37654b5541352b75786a71304b38536d414343766141746b0a773134393150726a7574304677416362434f725835717648572f4739753231557966552b4d3030566b456c3349416b514e524f794333454a4f71366f57724f680a376e7979616e6c4858412f657a79584141674771735633662f56596f4d44326d4a677647584249447068693957715133555875374134717061514474766377700a2f773841515335513352784b583658376b6b446166484c384e456378592b326e4e4c6c7a61504b703248586e636e49672b556f4d39436a725a71516a32786b6a0a676747567078365476396e41583850686a6c41727477523049326d545430336f6f617158634e77486f4273616830302f55705431706e42354e6b526f4f7236570a3644726a39472b2b6f507655567964787636496d4d53583955566459666453452f397837327a644664314a395a37705744316e64426572534435627547796d390a7a6749376c306d5276684c436c6950375574715a73556a4c473158346e774f4d5349495065386543516749644c2b354131503276396d6f496c4f6e746779674a0a4943443671595059503063596d5a4b74754e41612f673862516553656879686f686e6d564c774930396a7a3346793843655563452f7835565159774e2f304a370a64786678612f45327a575334376a614478797137523332727939646e35316d574544313635304875384177467a3451464232326b46677135584c496f334a76700a78767544773742546e306152774167586b454c34636c7a44774f7a4a634e76725976686476564458727a395a6b47364e567271434965676f61333877373065750a2d2d2d2d2d454e44205253412050524956415445204b45592d2d2d2d2d0a。
利用用户证书密钥对待签名数据明文进行签名,获得的数据流通签名结果例如为:
{"orderNo":"ORD202204260000001","amount":"0.01","time":"20220426101010","sign":"kfSKvkP/wo89xifx8SYEiZ0Nu/8VeQZWhY+TyhkEO1nPv2ecxPKdYd/173JT2as15hMaNTnhfCrgKtHn+G98cmAruERTWarZFO0YVfMUq4eAuET/QkgdueLKg8okPU/2xE9k1Qcp6aKqywjGUdDmquUJ+rdgk3AO03G9faA3BfzGbOc/yoQSY4jQnMv1eAkIR5J9AQKV7qXcDjtng/1c5sCj+N8NJ1mn6n9n+0c2M/AKJeB9jKuJ3kmEeGdzuK1774sa+U4la/y1zsb7hmHe40RxjfC1flwJzhIwDs6+YzNQWVXbJxt0FmXRnAKghNspFD7GQYVGUnCZT6Yt8St5Yw=="}。
进一步地,用户端根据业务数据从内部存储中获取用户证书密钥,并利用用户证书密钥对待签名数据明文进行签名,具体包括:
用户端从业务数据中提取出调用端标识;
用户端利用内部存储的调用端标识对提取出的调用端标识进行校验,若校验成功,则根据业务数据从内部存储中获取用户证书密钥,并利用用户证书密钥对待签名数据明文进行签名,否则,向平台端返回错误信息。
用户端在进行签名前,通过校验业务数据中的调用端标识,可以有效控制证书的使用,防止证书被滥用:当用户端内部存储有业务数据中所携带的调用端标识时,调用端执行签名操作,当用户端内部未存储有业务数据中所携带的调用端标识时,调用端拒绝签名。
步骤S5:用户端利用用户会话密钥对数据流通签名结果进行加密,获得签名结果密文数据,并对业务数据、用户密钥注册信息以及签名结果密文数据进行组装,利用内部存储的通讯密钥对组装后的结果进行加密,生成数据流通签名响应报文,将数据流通签名响应报文返回给平台端。
签名结果密文数据例如为:
814CF3D5E8741064B49ABE627E95E6D97AFE2608A8A22E13F609C6149083349CD7CC01E24579E22A305221342ED8D2B1F453FE146D0F53A4D69D7095D0F888543EBEEAA2D232130F61E80674547673AFD8BECD532381E1BF117ECBD95309ACDE50455302E6392AFE06B02C73E8974D9E46CFA8BA16EC4B3EAD886504340235FDA66E9F6172E9897380D56BA6079FF8B15305723BC90AB21077250B19E22F9E40B40CA8C71EFB6CD59936CB5BDC6F6D2DD7A1DEB5AB5C941C66A3E16740B95CF53C2BE0C2C5862F84588C1BE385C2A75430686A8AE6384E7AC75B9DE115C6336FB97C0A8AB3717EEFEC728507F651A954693F12B7F30B47CE0D881F9DB5EDA3D4578BA8B4412F42668884A0DF4ADA7A51A8FBD3A2EAA9DA32A56B66CD99FA98F7E20C6454E743B2B81218FC28DEAAF1EC834506D0BF277D6F4E73A881C852F343DC808D82A10B592104FAEE6E87783257068756D26CAD26A3683C9E97C05723703716AC9C9E8A6FE2395540148FC674FC642DA3B38640FD11C003D2200D34F7C1B4834E35B719BDB3C48331EBA066F944426DF4DBC02126A3F44264EEF23DD451234011B8B386BDD4D3D79BC99800CAE0。
详尽地,本实施例中用户端按照签名报文组装方式对业务数据、用户密钥注册信息以及签名结果密文数据进行组装,对组装后的结果进行加密,生成数据流通签名响应报文。
数据流通签名响应报文例如为:
{"mchtCode":"MCHT00000000001","termCode":"TERM0000001","data":"814CF3D5E8741064B49ABE627E95E6D97AFE2608A8A22E13F609C6149083349CD7CC01E24579E22A305221342ED8D2B1F453FE146D0F53A4D69D7095D0F888543EBEEAA2D232130F61E80674547673AFD8BECD532381E1BF117ECBD95309ACDE50455302E6392AFE06B02C73E8974D9E46CFA8BA16EC4B3EAD886504340235FDA66E9F6172E9897380D56BA6079FF8B15305723BC90AB21077250B19E22F9E40B40CA8C71EFB6CD59936CB5BDC6F6D2DD7A1DEB5AB5C941C66A3E16740B95CF53C2BE0C2C5862F84588C1BE385C2A75430686A8AE6384E7AC75B9DE115C6336FB97C0A8AB3717EEFEC728507F651A954693F12B7F30B47CE0D881F9DB5EDA3D4578BA8B4412F42668884A0DF4ADA7A51A8FBD3A2EAA9DA32A56B66CD99FA98F7E20C6454E743B2B81218FC28DEAAF1EC834506D0BF277D6F4E73A881C852F343DC808D82A10B592104FAEE6E87783257068756D26CAD26A3683C9E97C05723703716AC9C9E8A6FE2395540148FC674FC642DA3B38640FD11C003D2200D34F7C1B4834E35B719BDB3C48331EBA066F944426DF4DBC02126A3F44264EEF23DD451234011B8B386BDD4D3D79BC99800CAE0"}。
步骤S6:平台端接收用户端发送的数据流通签名响应报文,并利用内部存储的通讯密钥对数据流通签名响应报文进行解密,若解密成功则获取业务数据、用户密钥注册信息以及签名结果密文数据,执行步骤S7,否则,向用户端返回错误信息。
步骤S7:平台端根据解密出的用户密钥注册信息从内部存储中获取对应的用户会话密钥,并利用用户会话密钥对签名结果密文数据进行解密,若解密成功则获得签名结果明文数据,再对业务数据以及签名结果明文数据进行组装,生成数据流通请求报文,将数据流通请求报文发送至数据流通网关进行数据流通业务处理,否则,向用户端返回错误信息。
具体的,平台端根据用户密钥注册信息中的用户端标识从内部存储中获取对应的用户会话密钥。
详尽地,本实施例中平台端按照数据流通网关定义的组装方式对业务数据以及签名结果明文数据进行组装。
生成的数据流通请求报文例如为:
{"MchtCode":"130000000000001","Message":{"orderNo":"ORD202204260000001","amount":"0.01","time":"20220426101010"},"Signature-Algorithm":"SHA1withRSA","Signature":"kfSKvkP/wo89xifx8SYEiZ0Nu/8VeQZWhY+TyhkEO1nPv2ecxPKdYd/173JT2as15hMaNTnhfCrgKtHn+G98cmAruERTWarZFO0YVfMUq4eAuET/QkgdueLKg8okPU/2xE9k1Qcp6aKqywjGUdDmquUJ+rdgk3AO03G9faA3BfzGbOc/yoQSY4jQnMv1eAkIR5J9AQKV7qXcDjtng/1c5sCj+N8NJ1mn6n9n+0c2M/AKJeB9jKuJ3kmEeGdzuK1774sa+U4la/y1zsb7hmHe40RxjfC1flwJzhIwDs6+YzNQWVXbJxt0FmXRnAKghNspFD7GQYVGUnCZT6Yt8St5Yw=="}。
步骤S8:平台端接收数据流通网关返回的数据流通处理响应报文,并对数据流通处理响应报文进行解析,获取处理响应签名数据以及业务处理数据,根据业务处理数据从内部存储中获取对应的用户会话密钥。
业务处理数据至少包括用户标识、数据流通类型、业务处理结果等内容。
其中,平台端根据业务处理数据从内部存储中获取对应的用户会话密钥,具体包括:
平台端从业务处理数据中提取出用户端标识;
平台端根据提取出的用户端标识从内部存储中获取对应的用户会话密钥。
数据流通网关返回的数据流通处理响应报文例如为:
{"MchtCode":"130000000000001","MSG":{"ReturnCode":"0000","ErrorMessage":"数据流通成功","OrderNo":"ORD202204260000001","qrcode":"https://xxxxxxxTOKEN=16191436933260701703","amount":"0.01"},"Signature-Algorithm":"SHA1withRSA","Signature":"bR2k48ITMsBXIt9yP4gky1Fe6EOVM/zhhnq3Mrv+vFqTXYLDHIZ6n+lAeksE1K51Mc9Hn2QeQ1/gTBY6b5L2ub32d+6wov9LeJnIaw8F43C0/+XPJdOVgnbiCMFJlbWBJk9bGznnAkaMXeoqbHjareICvMJNdlYI4ow/pmm8UeX98/6Vq754UL/qKcGXAwouB6+jPyTM2qVhaW0+ND3qvh40blORbSemJ+8e1jbsIn9Hh9bSl061QZtpuVf4SERl/Xee0Ta4rayjzy0uodHACcAaaZFkP97MvvErjVJPUl0kDWtMH3JnptKcym54pl7VK23mS4IMZvkjgBpnKAZKyA=="}。
步骤S9:平台端对处理响应签名数据以及业务处理数据进行组装,生成待验签数据,并利用用户会话密钥对待验签数据进行加密,获得待验签密文数据,再对业务处理数据、用户密钥注册信息以及待验签密文数据进行组装,利用内部存储的通讯密钥对组装后的结果进行加密,生成数据流通验签请求报文,将数据流通验签请求报文发送给用户端。
详尽地,本实施例中平台端按照数据流通网关定义的组装方式对处理响应签名数据以及业务处理数据进行组装。
生成的待验签数据例如为:
{"orderNo":"ORD202204260000001","amount":"0.01","qrcode":"https://xxxxxxxTOKEN=16191436933260701703","sign":"bR2k48ITMsBXIt9yP4gky1Fe6EOVM/zhhnq3Mrv+vFqTXYLDHIZ6n+lAeksE1K51Mc9Hn2QeQ1/gTBY6b5L2ub32d+6wov9LeJnIaw8F43C0/+XPJdOVgnbiCMFJlbWBJk9bGznnAkaMXeoqbHjareICvMJNdlYI4ow/pmm8UeX98/6Vq754UL/qKcGXAwouB6+jPyTM2qVhaW0+ND3qvh40blORbSemJ+8e1jbsIn9Hh9bSl061QZtpuVf4SERl/Xee0Ta4rayjzy0uodHACcAaaZFkP97MvvErjVJPUl0kDWtMH3JnptKcym54pl7VK23mS4IMZvkjgBpnKAZKyA=="}。
待验签密文数据例如为:
814CF3D5E8741064B49ABE627E95E6D97AFE2608A8A22E13F609C6149083349CD7CC01E24579E22A305221342ED8D2B1582747604140C8CB60F8D4754650ECB61FAA8BAB80FAB13FC52F69C87F35F9EEBBBB9751C089B026CE5C8E11C623596816110176384413C22CBB6FBF33E0E4FBE0EF42F0D847BD55114B70455444C1C059E5758E31178CEAB8DFF9A64B98A460CB47914BD2BE96E3EE8B7A38A38954DC019F58930951274FE312879399751EA427472A3ED68E076FC4254714935F41870DF6A6E7C4778A93F42AE3464EAA0B301E5DFAFBB293BC9F329FBD9A2CCF6EB8E1F634C15809D273A3F13D4F3A0C31ABDB3BD2842C8645F8AC8A38D1A62D50FA3DC77E5579301AB2042389DCC095D0E41EFF9871C693383930381293A4CF928B3AC771BEB6EF331BD0BF86BE297EC8004A3DB7BE346218BB84AB71EAB601D2883E2BDFC6D67040FBB515653AA3044648F58C8B6583139DA2A9D0C026CD9CD4AF551FEB57B01A2395C9245AB91FCD48F30B5382EE45492D85EFBC0D142410FA8BDC7FA193AAE76E727A5C53080C5F994A6DF290BE5ECECCFDA5F4B194482EF1F36CC5891FD6C896E234AC2F7B618B92D035B47B0E8D1575028141B8A071544B65DE4665FE00F26E32B7E86120E34ACC3F。
详尽地,本实施例中平台端按照验签报文组装方式对业务处理数据、用户密钥注册信息以及待验签密文数据进行组装。
生成的数据流通验签请求报文例如为:
{"mchtCode":"MCHT00000000001","termCode":"TERM0000001","data":"814CF3D5E8741064B49ABE627E95E6D97AFE2608A8A22E13F609C6149083349CD7CC01E24579E22A305221342ED8D2B1582747604140C8CB60F8D4754650ECB61FAA8BAB80FAB13FC52F69C87F35F9EEBBBB9751C089B026CE5C8E11C623596816110176384413C22CBB6FBF33E0E4FBE0EF42F0D847BD55114B70455444C1C059E5758E31178CEAB8DFF9A64B98A460CB47914BD2BE96E3EE8B7A38A38954DC019F58930951274FE312879399751EA427472A3ED68E076FC4254714935F41870DF6A6E7C4778A93F42AE3464EAA0B301E5DFAFBB293BC9F329FBD9A2CCF6EB8E1F634C15809D273A3F13D4F3A0C31ABDB3BD2842C8645F8AC8A38D1A62D50FA3DC77E5579301AB2042389DCC095D0E41EFF9871C693383930381293A4CF928B3AC771BEB6EF331BD0BF86BE297EC8004A3DB7BE346218BB84AB71EAB601D2883E2BDFC6D67040FBB515653AA3044648F58C8B6583139DA2A9D0C026CD9CD4AF551FEB57B01A2395C9245AB91FCD48F30B5382EE45492D85EFBC0D142410FA8BDC7FA193AAE76E727A5C53080C5F994A6DF290BE5ECECCFDA5F4B194482EF1F36CC5891FD6C896E234AC2F7B618B92D035B47B0E8D1575028141B8A071544B65DE4665FE00F26E32B7E86120E34ACC3F"}。
步骤S10:用户端接收平台端发送的数据流通验签请求报文,并利用内部存储的通讯密钥对数据流通验签请求报文进行解密,若解密成功则获取业务处理数据、用户密钥注册信息以及待验签密文数据,执行步骤S11,否则,向平台端返回错误信息。
步骤S11:用户端根据解密出的用户密钥注册信息从内部存储中获取用户会话密钥,并利用用户会话密钥对待验签密文数据进行解密,若解密成功则获得待验签数据明文,以及,根据解密出的业务处理数据从内部存储中获取用户证书密钥,利用用户证书密钥对待验签数据明文进行验签,获得数据流通验签结果,执行步骤S12,否则,向平台端返回错误信息。
用户证书密钥(公钥)例如为:
2d2d2d2d2d424547494e2043455254494649434154452d2d2d2d2d0a4d494944337a4343417365674177494241674955657444424b7a6a62614773746a4476776339683537656b59397577774451594a4b6f5a496876634e4151454c0a42514177667a454c4d416b474131554542684d43513034784544414f42674e564241674d42304a6c61557070626d63784544414f42674e564241634d42304a6c0a61557070626d63784454414c42674e5642416f4d424868335a5851784454414c42674e564241734d424868335a5851784554415042674e5642414d4d434868330a5a585175593239744d5273774751594a4b6f5a496876634e41516b424667783464325630514445324d79356a623230774868634e4d6a49774e4449324d4459770a4d4445355768634e4d7a49774e44497a4d4459774d444535576a422f4d517377435159445651514745774a44546a45514d4134474131554543417748516d56700a536d6c755a7a45514d4134474131554542777748516d5670536d6c755a7a454e4d41734741315545436777456548646c6444454e4d41734741315545437777450a6548646c644445524d41384741315545417777496548646c6443356a62323078477a415a42676b71686b69473977304243514557444868335a5852414d54597a0a4c6d4e7662544343415349774451594a4b6f5a496876634e4151454242514144676745504144434341516f4367674542414b6d62473358776f6c324750745a540a704a43766c7842523777466475423733774e6168312f67546e456350634278354b477050313544334f6f3456757a4969464d36544d2b626a6352494e4d6158450a6a34537269437668667067682f524462426b6458734f73624d43666f4b7035496a5575786b65534738556572366a4c466b6942313348336a5a79444f733451430a536434576471696c6a714b6f697365616b4c4c2b4b5259585442474233677956586e344a37352b4d7164544933734565554e536369392f6f63516b796c6842340a2b6930556e3265324d7046754a634c4e3055714d724b6a50704748523663516669367134483052564b637367664a786e6d2b503857337153613570625861484c0a53306232596e32374462326c584f43787561417849486238467263686e5678503738635750524831737446443834612b654c364f433448504b383678635139430a416c7a55503563434177454141614e544d464577485159445652304f42425945464648587563484c524449583469694c43424e5956383468684a56464d4238470a41315564497751594d426141464648587563484c524449583469694c43424e5956383468684a56464d41384741315564457745422f7751464d414d42416638770a4451594a4b6f5a496876634e4151454c42514144676745424146786976664a30554c32474254686a376f39593472464370494f2b4444415a545969372b572f6c0a61347650524c50484f314d6e6d6c35374947464e4254534d73747362306f5661547773656164507a7a72723533717a796f324b505170656c47586b634e66662b0a6a35326f684c58387837324a6d646967796b5761346762745731474c6530536170353550314c654d7544437254716b5446524b6a7954736f43365071724a566c0a626743566b4273354766696538556132537648716e49646b43763258446b6b3873794b7934484a69573450787666416f6c4345376638524e4d4966764f74437a0a757a7a517a45766b68556d357254556c33705032535977627a5279643865416f5a775876354261636f7065364d70464a35754730784948652b513274414b6b2b0a78302b49476654766c4a33696d636a476f726f6c62315361416c3073536c6f784d436c485667414375776b385134453d0a2d2d2d2d2d454e442043455254494649434154452d2d2d2d2d0a。
数据流通验签结果例如为:
{"orderNo":"ORD202204260000001","amount":"0.01","qrcode":"https://xxxxxxxTOKEN=16191436933260701703","sign":"bR2k48ITMsBXIt9yP4gky1Fe6EOVM/zhhnq3Mrv+vFqTXYLDHIZ6n+lAeksE1K51Mc9Hn2QeQ1/gTBY6b5L2ub32d+6wov9LeJnIaw8F43C0/+XPJdOVgnbiCMFJlbWBJk9bGznnAkaMXeoqbHjareICvMJNdlYI4ow/pmm8UeX98/6Vq754UL/qKcGXAwouB6+jPyTM2qVhaW0+ND3qvh40blORbSemJ+8e1jbsIn9Hh9bSl061QZtpuVf4SERl/Xee0Ta4rayjzy0uodHACcAaaZFkP97MvvErjVJPUl0kDWtMH3JnptKcym54pl7VK23mS4IMZvkjgBpnKAZKyA==","checkSign":"true"}。
进一步地,用户端根据解密出的业务处理数据从内部存储中获取用户证书密钥,利用用户证书密钥对待验签数据明文进行验签,具体包括:
用户端从解密出的业务处理数据中提取出调用端标识;
用户端利用内部存储的调用端标识对提取出的调用端标识进行校验,若校验成功,则根据解密出的业务处理数据从内部存储中获取用户证书密钥,利用用户证书密钥对待验签数据明文进行验签,否则,向平台端返回错误信息。
步骤S12:用户端利用用户会话密钥对数据流通验签结果进行加密,获得验签结果密文数据,并对业务处理数据、用户密钥注册信息以及验签结果密文数据进行组装,利用内部存储的通讯密钥对组装后的结果进行加密,生成数据流通验签响应报文,将数据流通验签响应报文返回给平台端。
验签结果密文数据例如为:
814CF3D5E8741064B49ABE627E95E6D97AFE2608A8A22E13F609C6149083349CD7CC01E24579E22A305221342ED8D2B1582747604140C8CB60F8D4754650ECB61FAA8BAB80FAB13FC52F69C87F35F9EEBBBB9751C089B026CE5C8E11C623596816110176384413C22CBB6FBF33E0E4FBE0EF42F0D847BD55114B70455444C1C059E5758E31178CEAB8DFF9A64B98A460CB47914BD2BE96E3EE8B7A38A38954DC019F58930951274FE312879399751EA427472A3ED68E076FC4254714935F41870DF6A6E7C4778A93F42AE3464EAA0B301E5DFAFBB293BC9F329FBD9A2CCF6EB8E1F634C15809D273A3F13D4F3A0C31ABDB3BD2842C8645F8AC8A38D1A62D50FA3DC77E5579301AB2042389DCC095D0E41EFF9871C693383930381293A4CF928B3AC771BEB6EF331BD0BF86BE297EC8004A3DB7BE346218BB84AB71EAB601D2883E2BDFC6D67040FBB515653AA3044648F58C8B6583139DA2A9D0C026CD9CD4AF551FEB57B01A2395C9245AB91FCD48F30B5382EE45492D85EFBC0D142410FA8BDC7FA193AAE76E727A5C53080C5F994A6DF290BE5ECECCFDA5F4B194482EF1F36CC5891FD6C896E234AC2F7B618B92D035B47B0E8D1575028141B8A071544B659CE22FD970C30D1175668D5FD4A9FF1F0D171FB0526C978FA0509EBC00FE96B1。
详尽地,本实施例中用户端按照验签报文组装方式对业务处理数据、用户密钥注册信息以及验签结果密文数据进行组装。
生成的数据流通验签响应报文例如为:
{"mchtCode":"MCHT00000000001","termCode":"TERM0000001","data":"814CF3D5E8741064B49ABE627E95E6D97AFE2608A8A22E13F609C6149083349CD7CC01E24579E22A305221342ED8D2B1582747604140C8CB60F8D4754650ECB61FAA8BAB80FAB13FC52F69C87F35F9EEBBBB9751C089B026CE5C8E11C623596816110176384413C22CBB6FBF33E0E4FBE0EF42F0D847BD55114B70455444C1C059E5758E31178CEAB8DFF9A64B98A460CB47914BD2BE96E3EE8B7A38A38954DC019F58930951274FE312879399751EA427472A3ED68E076FC4254714935F41870DF6A6E7C4778A93F42AE3464EAA0B301E5DFAFBB293BC9F329FBD9A2CCF6EB8E1F634C15809D273A3F13D4F3A0C31ABDB3BD2842C8645F8AC8A38D1A62D50FA3DC77E5579301AB2042389DCC095D0E41EFF9871C693383930381293A4CF928B3AC771BEB6EF331BD0BF86BE297EC8004A3DB7BE346218BB84AB71EAB601D2883E2BDFC6D67040FBB515653AA3044648F58C8B6583139DA2A9D0C026CD9CD4AF551FEB57B01A2395C9245AB91FCD48F30B5382EE45492D85EFBC0D142410FA8BDC7FA193AAE76E727A5C53080C5F994A6DF290BE5ECECCFDA5F4B194482EF1F36CC5891FD6C896E234AC2F7B618B92D035B47B0E8D1575028141B8A071544B659CE22FD970C30D1175668D5FD4A9FF1F0D171FB0526C978FA0509EBC00FE96B1"}。
步骤S13:平台端接收用户端发送的数据流通验签响应报文,并利用内部存储的通讯密钥对数据流通验签响应报文进行解密,若解密成功则获取业务处理数据、用户密钥注册信息以及验签结果密文数据,执行步骤S14,否则,向用户端返回错误信息。
步骤S14:平台端根据解密出的业务处理数据从内部存储中获取对应的用户会话密钥,并利用用户会话密钥对验签结果密文数据进行解密,获得验签结果明文数据,再对业务处理数据以及验签结果明文数据进行组装,利用内部存储的平台接入密钥对组装后的结果进行加密,生成数据流通响应结果报文,将数据流通响应结果报文返回给调用端用于完成对数据流通业务的处理。
详尽地,本实施例中平台端按照响应报文组装方式对业务处理数据以及验签结果明文数据进行组装,并利用内部存储的平台接入密钥(公钥)对组装后的结果进行加密,生成数据流通响应结果报文。
生成的数据流通响应结果报文例如为:
7533b91e0242127fcd2ddbb5bb74cf4d14af50f5054a01e36f5620ba67dbeaba5c6c3de5f7b6a756ba4c3fb80dc339e2235303663b8a6915ff23e3bd88ed6533711c29cf4d1a25645a4120a5b69088c1d0188febfd9dbf1261229e2e5f2449ccb23624f24c5f5b17b89dcef5ffd853137ac1c16f025f97005e5a6ec481576a6b7f5d3d35a6c5db6a09e2ba4f46ad3683057ce557bb506ff1073170f86322cf779c6d7aeaeb2da7097b9fc8b0ace6f91f3e98c840dd7e8deb83d0fd5c821cad15e7ab28d5afa34f78503a4e21d4ff107130b0381249d00494881cb0eefc4334052955a0f5bd8c9f58d55287d84454927045bbf20fa676e826b843be2662bb7706b1d82861953a2cdfdb507b646ea2db909b2b9976e0934d773ac45fffc7f5a2fa0591d8039c5fe080465669cb076724cb37a6603bd5a637fee24237c7be60beab27d641b569fe9520f4883c6c146cba895188397b482b2910453fe6fad463df1ea424d91b18d70192cd01d45631e6e01b77fab44944d838b9182c25611ec1f9e8f96fff85144507cf5ef7ff3ee08270edb9e38e5947061186a0562f2588e726fe9736f23ebc92c46f79d4f0aa96611d2c298ecc906a96ca50c56eae0dbd9166913f019b4c6737b156b012d62008434254eeb5471adf7bb3913cc13a8aaaacb3e82cb5d11d463cb36558f8a54526bc1560d519bf1f9a97d096065aafdcb4d0b903。
进一步地,调用端在接收到平台端返回的数据流通响应结果报文后,对数据流通响应结果报文进行解密,若解密成功则获取业务处理数据,并根据业务处理数据完成对数据流通业务的处理,否则,向平台端返回错误信息。
本申请提供的基于用户端本地证书实现数据流通的方法实现了在无需将证书托管至平台的情况下,利用本地证书密钥对数据进行签名后,借助平台端与调用端来完成数据流通业务。所述方法一方面可以避免证书托管至平台带来的安全问题,二是可以保证用户对证书的控制权,三是能够避免用户自研技术带来的高成本投入问题,四是在借助平台完成数据流通业务的同时,用户依然可以在所持终端上使用证书。
下述为本申请系统实施例,可以用于执行本申请方法实施例。对于本申请装置实施例中未披露的细节,请参照本申请方法实施例。
请参见图6,为本申请一个示例性实施例提供的基于用户端本地证书实现数据流通的系统结构示意图。本申请实施例中的系统由调用端、平台端、用户端以及数据流通网关构成,所述系统包括:
业务报文接收模块,用于接收所述调用端发送的数据流通业务报文,并对所述数据流通业务报文进行验证,若验证通过,则对所述数据流通业务报文进行解析,获取业务数据,再根据所述业务数据从内部存储中获取对应的用户密钥注册信息,触发签名请求报文生成模块,否则,向所述调用端返回错误信息;
所述签名请求报文生成模块,用于对获取到的所述业务数据以及所述用户密钥注册信息进行组装,生成待签名数据,并利用所述用户密钥注册信息中的用户会话密钥对所述待签名数据进行加密,获得待签名密文数据,再对所述业务数据、所述用户密钥注册信息以及所述待签名密文数据进行组装,利用内部存储的通讯密钥对组装后的结果进行加密,生成数据流通签名请求报文,将所述数据流通签名请求报文发送给所述用户端进行签名处理;
签名结果密文获取模块,用于接收所述用户端返回的数据流通签名响应报文,并利用所述通讯密钥对所述数据流通签名响应报文进行解密,若解密成功则获取所述业务数据、所述用户密钥注册信息以及所述签名结果密文数据,触发数据流通请求生成模块,否则,向所述用户端返回错误信息;
所述数据流通请求生成模块,用于根据解密出的所述用户密钥注册信息从内部存储中获取对应的用户会话密钥,并利用所述用户会话密钥对所述签名结果密文数据进行解密,若解密成功则获得签名结果明文数据,再对所述业务数据以及所述签名结果明文数据进行组装,生成数据流通请求报文,将所述数据流通请求报文发送至所述数据流通网关进行数据流通业务处理,触发数据流通响应接收模块,否则,向所述用户端返回错误信息;
所述数据流通响应接收模块,用于接收所述数据流通网关返回的数据流通处理响应报文,并对所述数据流通处理响应报文进行解析,获取处理响应签名数据以及业务处理数据,根据所述业务处理数据从内部存储中获取对应的用户密钥注册信息;
验签请求报文生成模块,用于对所述处理响应签名数据以及所述业务处理数据进行组装,生成待验签数据,并利用所述用户密钥注册信息中的用户会话密钥对所述待验签数据进行加密,获得待验签密文数据,再对所述业务处理数据、所述用户密钥注册信息以及所述待验签密文数据进行组装,利用所述通讯密钥对组装后的结果进行加密,生成数据流通验签请求报文,将所述数据流通验签请求报文发送给所述用户端进行验签处理;
验签响应报文接收模块,用于接收所述用户端返回的数据流通验签响应报文,并利用所述通讯密钥对所述数据流通验签响应报文进行解密,若解密成功则获取所述业务处理数据、所述用户密钥注册信息以及所述验签结果密文数据,触发响应结果报文生成模块,否则,向所述用户端返回错误信息;
所述响应结果报文生成模块,用于根据解密出的所述业务处理数据从内部存储中获取对应的用户会话密钥,并利用所述用户密钥注册信息中的用户会话密钥对所述验签结果密文数据进行解密,获得验签结果明文数据,再对所述业务处理数据以及所述验签结果明文数据进行组装,利用内部存储的平台接入密钥对组装后的结果进行加密,生成数据流通响应结果报文,将所述数据流通响应结果报文返回给所述调用端用于完成对数据流通业务的处理。
可选实施例中,所述系统还包括:
签名请求报文解密模块,用于接收所述平台端发送的数据流通签名请求报文,并利用内部存储的通讯密钥对所述数据流通签名请求报文进行解密,若解密成功则获取所述业务数据、所述用户密钥注册信息以及所述待签名密文数据,触发签名结果生成模块,否则,向所述平台端返回错误信息;
签名结果生成模块,用于根据解密出的所述用户密钥注册信息从内部存储中获取用户会话密钥,并利用所述用户会话密钥对所述待签名密文数据进行解密,若解密成功则获得待签名数据明文,以及,根据所述业务数据从内部存储中获取用户证书密钥,利用所述用户证书密钥对所述待签名数据明文进行签名,获得数据流通签名结果,触发签名响应报文生成模块,否则,向所述平台端返回错误信息;
签名响应报文生成模块,用于利用所述用户会话密钥对所述数据流通签名结果进行加密,获得签名结果密文数据,并对所述业务数据、所述用户密钥注册信息以及所述签名结果密文数据进行组装,利用所述通讯密钥对组装后的结果进行加密,生成数据流通签名响应报文,将所述数据流通签名响应报文返回给所述平台端;
验签请求报文解密模块,用于接收所述平台端发送的数据流通验签请求报文,并利用所述通讯密钥对所述数据流通验签请求报文进行解密,若解密成功则获取所述业务处理数据、所述用户密钥注册信息以及所述待验签密文数据,触发验签结果生成模块,否则,向所述平台端返回错误信息;
验签结果生成模块,用于根据解密出的所述用户密钥注册信息从内部存储中获取用户会话密钥,并利用所述用户会话密钥对所述待验签密文数据进行解密,若解密成功则获得待验签数据明文,以及,根据所述业务处理数据从内部存储中获取用户证书密钥,利用所述用户证书密钥对所述待验签数据明文进行签名,获得数据流通验签结果,触发验签响应报文生成模块,否则,向所述平台端返回错误信息;
验签响应报文生成模块,用于利用所述用户会话密钥对所述数据流通验签结果进行加密,获得验签结果密文数据,并对所述业务处理数据、所述用户密钥注册信息以及所述验签结果密文数据进行组装,利用所述通讯密钥对组装后的结果进行加密,生成数据流通验签响应报文,将所述数据流通验签响应报文返回给所述平台端。
可选实施例中,所述根据所述业务数据从内部存储中获取用户证书密钥,利用所述用户证书密钥对所述待签名数据明文进行签名,包括:
所述用户端从所述业务数据中提取出调用端标识;
所述用户端利用内部存储的调用端标识对提取出的调用端标识进行校验,若校验成功,则根据所述业务数据从内部存储中获取用户证书密钥,利用所述用户证书密钥对所述待签名数据明文进行签名,否则,向所述平台端返回错误信息;以及
所述根据所述业务处理数据从内部存储中获取用户证书密钥,利用所述用户证书密钥对所述待验签数据明文进行签名,包括:
所述用户端从所述业务处理数据中提取出调用端标识;
所述用户端利用内部存储的调用端标识对提取出的调用端标识进行校验,若校验成功,则根据所述业务处理数据从内部存储中获取用户证书密钥,利用用户证书密钥对待验签数据明文进行验签,否则,向所述平台端返回错误信息。
可选实施例中,所述系统还包括:
业务数据生成模块,用于生成业务数据;
业务报文生成模块,用于从内部存储中获取平台接入密钥,并利用所述平台接入密钥对所述业务数据进行签名,获得业务签名结果,基于所述业务数据以及所述业务签名结果生成数据流通业务报文,将所述数据流通业务报文发送给所述平台端。
可选实施例中,所述系统还包括:
注册数据获取模块,用于接收所述用户端发送的注册请求报文,并根据所述注册请求报文中的用户标识数据从内部存储中获取对应的用户会话密钥,利用所述用户会话密钥对所述注册请求报文中的注册数据密文进行解密,若解密成功则获取所述注册数据,触发注册模块,否则,向所述用户端返回错误信息;
注册模块,用于对所述用户标识数据与所述注册数据建立对应关系并保存,完成注册。
可选实施例中,所述系统还包括:
注册请求报文接收模块,用于接收所述用户端发送的认证请求报文,并根据所述认证请求报文中的用户标识数据从内部存储中获取对应的通讯密钥,利用所述通讯密钥的公钥对所述认证请求报文中的认证数据签名结果进行验签,若验签成功,触发会话密钥密文解密模块,若验签失败,则向所述用户端返回认证失败响应;
会话密钥密文解密模块,用于利用所述通讯密钥的私钥对所述认证请求报文中的会话密钥密文进行解密,若解密成功则获得用户会话密钥,触发认证模块,否则,向所述用户端返回错误信息;
认证模块,用于对所述用户标识数据与所述用户会话密钥建立对应关系并保存,完成认证。
可选实施例中,所述利用所述通讯密钥的公钥对所述认证请求报文中的认证数据签名结果进行验签,具体包括:
根据所述的通讯密钥的公钥对所述认证请求报文中的认证数据签名结果进行解密,获得第一哈希值;
对所述认证请求报文中的用户标识数据以及会话密钥密文进行哈希运算,获得第二哈希值;
判断所述第一哈希值与所述第二哈希值是否相同,若相同,则验签成功,触发会话密钥密文解密模块,若不相同,则验签失败,向用户端返回认证失败响应。
可选实施例中,所述系统还包括数据保存模块,具体用于:
录入用户信息,并生成通讯密钥以及用户标识,对所述通讯密钥以及用户标识进行对应保存;以及
对用户证书、线下获取的所述通讯密钥以及所述用户标识数据进行保存,所述用户标识数据包括所述用户信息以及所述用户标识。
可选实施例中,所述根据所述业务数据从内部存储中获取对应的用户密钥注册信息,包括:
判断内部存储中是否存在与所述业务数据对应的用户密钥注册信息;
若存在,获取所述用户密钥注册信息,并执行步骤S2;
若不存在,则向所述调用端返回业务处理失败响应。
需要说明的是,上述实施例提供的基于用户端本地证书实现数据流通的系统在执行基于用户端本地证书实现数据流通的方法时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的基于用户端本地证书实现数据流通的系统与基于用户端本地证书实现数据流通的方法实施例属于同一构思,其体现实现过程详见方法实施例,这里不再赘述。
上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。
本申请提供的基于用户端本地证书实现数据流通的系统实现了在无需将证书托管至平台的情况下,利用本地证书密钥对数据进行签名后,借助平台端与调用端来完成数据流通业务。所述方法一方面可以避免证书托管至平台带来的安全问题,二是可以保证用户对证书的控制权,三是能够避免用户自研技术带来的高成本投入问题,四是在借助平台完成数据流通业务的同时,用户依然可以在所持终端上使用证书。
本申请实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现前述任一实施例方法的步骤。其中,计算机可读存储介质可以包括但不限于任何类型的盘,包括软盘、光盘、DVD、CD-ROM、微型驱动器以及磁光盘、ROM、RAM、EPROM、EEPROM、DRAM、VRAM、闪速存储器设备、磁卡或光卡、纳米系统(包括分子存储器IC),或适合于存储指令和/或数据的任何类型的媒介或设备。
本申请实施例还提供了一种服务器,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行程序时实现上述任一实施例方法的步骤。
本申请实施例提供了一种服务器包括:处理器和存储器。
本申请实施例中,处理器为计算机系统的控制中心,可以是实体机的处理器,也可以是虚拟机的处理器。处理器可以包括一个或多个处理核心,比如4核心处理器、8核心处理器等。处理器可以采用DSP(Digital Signal Processing,数字信号处理)、FPGA(Field-Programmable Gate Array,现场可编程门阵列)、PLA(Programmable Logic Array,可编程逻辑阵列)中的至少一种硬件形式来实现。处理器也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称CPU(Central Processing Unit,中央处理器);协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。
存储器可以包括一个或多个计算机可读存储介质,该计算机可读存储介质可以是非暂态的。存储器还可包括高速随机存取存储器,以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。在本申请的一些实施例中,存储器中的非暂态的计算机可读存储介质用于存储至少一个指令,该至少一个指令用于被处理器所执行以实现本申请实施例中的方法。
一些实施例中,服务器还包括有:外围设备接口和至少一个外围设备。处理器、存储器和外围设备接口之间可以通过总线或信号线相连。各个外围设备可以通过总线、信号线或电路板与外围设备接口相连。具体地,外围设备包括:显示屏、摄像头和音频电路中的至少一种。
外围设备接口可被用于将I/O(Input/Output,输入/输出)相关的至少一个外围设备连接到处理器和存储器。在本申请的一些实施例中,处理器、存储器和外围设备接口被集成在同一芯片或电路板上;在本申请的一些其他实施例中,处理器、存储器和外围设备接口中的任意一个或两个可以在单独的芯片或电路板上实现。本申请实施例对此不作具体限定。
显示屏用于显示UI(User Interface,用户界面)。该UI可以包括图形、文本、图标、视频及其它们的任意组合。当显示屏是触摸显示屏时,显示屏还具有采集在显示屏的表面或表面上方的触摸信号的能力。该触摸信号可以作为控制信号输入至处理器进行处理。此时,显示屏还可以用于提供虚拟按钮和/或虚拟键盘,也称软按钮和/或软键盘。在本申请的一些实施例中,显示屏可以为一个,设置于服务器的前面板;在本申请的另一些实施例中,显示屏可以为至少两个,分别设置在服务器的不同表面或呈折叠设计;在本申请的再一些实施例中,显示屏可以是柔性显示屏,设置在服务器的弯曲表面上或折叠面上。甚至,显示屏还可以设置成非矩形的不规则图形,也即异形屏。显示屏可以采用LCD(Liquid CrystalDisplay,液晶显示屏)、OLED(Organic Light-Emitting Diode,有机发光二极管)等材质制备。
摄像头用于采集图像或视频。可选地,摄像头包括前置摄像头和后置摄像头。通常,前置摄像头设置在客户端的前面板,后置摄像头设置在客户端的背面。在一些实施例中,后置摄像头为至少两个,分别为主摄像头、景深摄像头、广角摄像头、长焦摄像头中的任意一种,以实现主摄像头和景深摄像头融合实现背景虚化功能、主摄像头和广角摄像头融合实现全景拍摄以及VR(Virtual Reality,虚拟现实)拍摄功能或者其它融合拍摄功能。在本申请的一些实施例中,摄像头还可以包括闪光灯。闪光灯可以是单色温闪光灯,也可以是双色温闪光灯。双色温闪光灯是指暖光闪光灯和冷光闪光灯的组合,可以用于不同色温下的光线补偿。
音频电路可以包括麦克风和扬声器。麦克风用于采集用户及环境的声波,并将声波转换为电信号输入至处理器进行处理。出于立体声采集或降噪的目的,麦克风可以为多个,分别设置在服务器的不同部位。麦克风还可以是阵列麦克风或全向采集型麦克风。
电源用于为服务器中的各个组件进行供电。电源可以是交流电、直流电、一次性电池或可充电电池。当电源包括可充电电池时,该可充电电池可以是有线充电电池或无线充电电池。有线充电电池是通过有线线路充电的电池,无线充电电池是通过无线线圈充电的电池。该可充电电池还可以用于支持快充技术。
本申请实施例中示出的客户端结构框图并不构成对服务器的限定,服务器可以包括比图示更多或更少的组件,或者组合某些组件,或者采用不同的组件布置。
在本申请中,术语“第一”、“第二”等仅用于描述的目的,而不能理解为指示或暗示相对重要性或顺序;术语“多个”则指两个或两个以上,除非另有明确的限定。术语“安装”、“相连”、“连接”、“固定”等术语均应做广义理解,例如,“连接”可以是固定连接,也可以是可拆卸连接,或一体地连接;“相连”可以是直接相连,也可以通过中间媒介间接相连。对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在本申请中的具体含义。
本申请的描述中,需要理解的是,术语“上”、“下”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本申请和简化描述,而不是指示或暗示所指的装置或单元必须具有特定的方向、以特定的方位构造和操作,因此,不能理解为对本申请的限制。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,依本申请权利要求所作的等同变化,仍属本申请所涵盖的范围。
Claims (12)
1.一种基于用户端本地证书实现数据流通的方法,其特征在于,所述方法应用于包括调用端、平台端、用户端以及数据流通网关的系统中,包括:
步骤S1:所述平台端接收所述调用端发送的数据流通业务报文,并对所述数据流通业务报文进行验证,若验证通过,则对所述数据流通业务报文进行解析,获取业务数据,再根据所述业务数据从内部存储中获取对应的用户密钥注册信息,执行步骤S2,否则,向所述调用端返回错误信息;
步骤S2:所述平台端对获取到的所述业务数据以及所述用户密钥注册信息进行组装,生成待签名数据,并利用所述用户密钥注册信息中的用户会话密钥对所述待签名数据进行加密,获得待签名密文数据,再对所述业务数据、所述用户密钥注册信息以及所述待签名密文数据进行组装,利用内部存储的通讯密钥对组装后的结果进行加密,生成数据流通签名请求报文,将所述数据流通签名请求报文发送给所述用户端进行签名处理;
步骤S3:所述平台端接收所述用户端返回的数据流通签名响应报文,并利用所述通讯密钥对所述数据流通签名响应报文进行解密,若解密成功则获取所述业务数据、所述用户密钥注册信息以及签名结果密文数据,执行步骤S4,否则,向所述用户端返回错误信息;
步骤S4:所述平台端根据解密出的所述用户密钥注册信息从内部存储中获取对应的用户会话密钥,并利用所述用户会话密钥对所述签名结果密文数据进行解密,若解密成功则获得签名结果明文数据,再对所述业务数据以及所述签名结果明文数据进行组装,生成数据流通请求报文,将所述数据流通请求报文发送至所述数据流通网关进行数据流通业务处理,执行步骤S5,否则,向所述用户端返回错误信息;
步骤S5:所述平台端接收所述数据流通网关返回的数据流通处理响应报文,并对所述数据流通处理响应报文进行解析,获取处理响应签名数据以及业务处理数据,根据所述业务处理数据从内部存储中获取对应的用户密钥注册信息;
步骤S6:所述平台端对所述处理响应签名数据以及所述业务处理数据进行组装,生成待验签数据,并利用所述用户密钥注册信息中的用户会话密钥对所述待验签数据进行加密,获得待验签密文数据,再对所述业务处理数据、所述用户密钥注册信息以及所述待验签密文数据进行组装,利用所述通讯密钥对组装后的结果进行加密,生成数据流通验签请求报文,将所述数据流通验签请求报文发送给所述用户端进行验签处理;
步骤S7:所述平台端接收所述用户端返回的数据流通验签响应报文,并利用所述通讯密钥对所述数据流通验签响应报文进行解密,若解密成功则获取所述业务处理数据、所述用户密钥注册信息以及验签结果密文数据,执行步骤S8,否则,向所述用户端返回错误信息;
步骤S8:所述平台端根据解密出的所述业务处理数据从内部存储中获取对应的用户密钥注册信息中的用户会话密钥,并利用所述用户会话密钥对所述验签结果密文数据进行解密,获得验签结果明文数据,再对所述业务处理数据以及所述验签结果明文数据进行组装,利用内部存储的平台接入密钥对组装后的结果进行加密,生成数据流通响应结果报文,将所述数据流通响应结果报文返回给所述调用端用于完成对数据流通业务的处理。
2.根据权利要求1所述的方法,其特征在于,所述将所述数据流通签名请求报文发送给所述用户端进行签名处理之后,还包括:
步骤S2-1:所述用户端接收所述平台端发送的数据流通签名请求报文,并利用内部存储的通讯密钥对所述数据流通签名请求报文进行解密,若解密成功则获取所述业务数据、所述用户密钥注册信息以及所述待签名密文数据,执行步骤S2-2,否则,向所述平台端返回错误信息;
步骤S2-2:所述用户端根据解密出的所述用户密钥注册信息从内部存储中获取用户会话密钥,并利用所述用户会话密钥对所述待签名密文数据进行解密,若解密成功则获得待签名数据明文,以及,根据所述业务数据从内部存储中获取用户证书密钥,利用所述用户证书密钥对所述待签名数据明文进行签名,获得数据流通签名结果,执行步骤S2-3,否则,向所述平台端返回错误信息;
步骤S2-3:所述用户端利用所述用户会话密钥对所述数据流通签名结果进行加密,获得签名结果密文数据,并对所述业务数据、所述用户密钥注册信息以及所述签名结果密文数据进行组装,利用所述通讯密钥对组装后的结果进行加密,生成数据流通签名响应报文,将所述数据流通签名响应报文返回给所述平台端;
所述将所述数据流通验签请求报文发送给所述用户端进行验签处理之后,还包括:
步骤S6-1:所述用户端接收所述平台端发送的数据流通验签请求报文,并利用所述通讯密钥对所述数据流通验签请求报文进行解密,若解密成功则获取所述业务处理数据、所述用户密钥注册信息以及所述待验签密文数据,执行步骤S6-2,否则,向所述平台端返回错误信息;
步骤S6-2:所述用户端根据解密出的所述用户密钥注册信息从内部存储中获取用户会话密钥,并利用所述用户会话密钥对所述待验签密文数据进行解密,若解密成功则获得待验签数据明文,以及,根据所述业务处理数据从内部存储中获取用户证书密钥,利用所述用户证书密钥对所述待验签数据明文进行签名,获得数据流通验签结果,执行步骤S6-3,否则,向所述平台端返回错误信息;
步骤S6-3:所述用户端利用所述用户会话密钥对所述数据流通验签结果进行加密,获得验签结果密文数据,并对所述业务处理数据、所述用户密钥注册信息以及所述验签结果密文数据进行组装,利用所述通讯密钥对组装后的结果进行加密,生成数据流通验签响应报文,将所述数据流通验签响应报文返回给所述平台端。
3.根据权利要求2所述的方法,其特征在于,所述根据所述业务数据从内部存储中获取用户证书密钥,利用所述用户证书密钥对所述待签名数据明文进行签名,包括:
所述用户端从所述业务数据中提取出调用端标识;
所述用户端利用内部存储的调用端标识对提取出的调用端标识进行校验,若校验成功,则根据所述业务数据从内部存储中获取用户证书密钥,利用所述用户证书密钥对所述待签名数据明文进行签名,否则,向所述平台端返回错误信息;以及
所述根据所述业务处理数据从内部存储中获取用户证书密钥,利用所述用户证书密钥对所述待验签数据明文进行签名,包括:
所述用户端从所述业务处理数据中提取出调用端标识;
所述用户端利用内部存储的调用端标识对提取出的调用端标识进行校验,若校验成功,则根据所述业务处理数据从内部存储中获取用户证书密钥,利用用户证书密钥对待验签数据明文进行验签,否则,向所述平台端返回错误信息。
4.根据权利要求1所述的方法,其特征在于,所述步骤S1之前,还包括:
步骤S1-A1:所述调用端生成业务数据;
步骤S1-A2:所述调用端从内部存储中获取平台接入密钥,并利用所述平台接入密钥对所述业务数据进行签名,获得业务签名结果,基于所述业务数据以及所述业务签名结果生成数据流通业务报文,将所述数据流通业务报文发送给所述平台端。
5.根据权利要求1所述的方法,其特征在于,所述步骤S1之前,还包括:
步骤S1-1:所述平台端接收所述用户端发送的注册请求报文,并根据所述注册请求报文中的用户标识数据从内部存储中获取对应的用户会话密钥,利用所述用户会话密钥对所述注册请求报文中的注册数据密文进行解密,若解密成功则获取所述注册数据,执行步骤S1-2,否则,向所述用户端返回错误信息;
步骤S1-2:所述平台端对所述用户标识数据与所述注册数据建立对应关系并保存,完成注册。
6.根据权利要求5所述的方法,其特征在于,步骤S1-1之前,还包括:
步骤S1-1’:所述平台端接收所述用户端发送的认证请求报文,并根据所述认证请求报文中的用户标识数据从内部存储中获取对应的通讯密钥,利用所述通讯密钥的公钥对所述认证请求报文中的认证数据签名结果进行验签,若验签成功,执行步骤S1-2’,若验签失败,则向所述用户端返回认证失败响应;
步骤S1-2’:所述平台端利用所述通讯密钥的私钥对所述认证请求报文中的会话密钥密文进行解密,若解密成功则获得用户会话密钥,执行步骤S1-3’,否则,向所述用户端返回错误信息;
步骤S1-3’:所述平台端对所述用户标识数据与所述用户会话密钥建立对应关系并保存,完成认证。
7.根据权利要求6所述的方法,其特征在于,所述利用所述通讯密钥的公钥对所述认证请求报文中的认证数据签名结果进行验签,包括:
步骤S1-11’:所述平台端根据所述的通讯密钥的公钥对所述认证请求报文中的认证数据签名结果进行解密,获得第一哈希值;
步骤S1-12’:所述平台端对所述认证请求报文中的用户标识数据以及会话密钥密文进行哈希运算,获得第二哈希值;
步骤S1-13’:所述平台端判断所述第一哈希值与所述第二哈希值是否相同,若相同,则验签成功,执行步骤S1-2’,若不相同,则验签失败,向用户端返回认证失败响应。
8.根据权利要求6所述的方法,其特征在于,所述步骤S1-1’之前,还包括:
所述平台端录入用户信息,并生成通讯密钥以及用户标识,对所述通讯密钥以及用户标识进行对应保存;以及
所述用户端对用户证书、线下获取的所述通讯密钥以及所述用户标识数据进行保存,所述用户标识数据包括所述用户信息以及所述用户标识。
9.根据权利要求1所述的方法,其特征在于,所述根据所述业务数据从内部存储中获取对应的用户密钥注册信息,包括:
判断内部存储中是否存在与所述业务数据对应的用户密钥注册信息;
若存在,获取所述用户密钥注册信息,并执行步骤S2;
若不存在,则向所述调用端返回业务处理失败响应。
10.一种基于用户端本地证书实现数据流通的系统,其特征在于,包括:
业务报文接收模块,用于接收调用端发送的数据流通业务报文,并对所述数据流通业务报文进行验证,若验证通过,则对所述数据流通业务报文进行解析,获取业务数据,再根据所述业务数据从内部存储中获取对应的用户密钥注册信息,触发签名请求报文生成模块,否则,向所述调用端返回错误信息;
所述签名请求报文生成模块,用于对获取到的所述业务数据以及所述用户密钥注册信息进行组装,生成待签名数据,并利用所述用户密钥注册信息中的用户会话密钥对所述待签名数据进行加密,获得待签名密文数据,再对所述业务数据、所述用户密钥注册信息以及所述待签名密文数据进行组装,利用内部存储的通讯密钥对组装后的结果进行加密,生成数据流通签名请求报文,将所述数据流通签名请求报文发送给所述用户端进行签名处理;
签名结果密文获取模块,用于接收所述用户端返回的数据流通签名响应报文,并利用所述通讯密钥对所述数据流通签名响应报文进行解密,若解密成功则获取所述业务数据、所述用户密钥注册信息以及签名结果密文数据,触发数据流通请求生成模块,否则,向所述用户端返回错误信息;
所述数据流通请求生成模块,用于根据解密出的所述用户密钥注册信息从内部存储中获取对应的用户会话密钥,并利用所述用户会话密钥对所述签名结果密文数据进行解密,若解密成功则获得签名结果明文数据,再对所述业务数据以及所述签名结果明文数据进行组装,生成数据流通请求报文,将所述数据流通请求报文发送至所述数据流通网关进行数据流通业务处理,触发数据流通响应接收模块,否则,向所述用户端返回错误信息;
所述数据流通响应接收模块,用于接收所述数据流通网关返回的数据流通处理响应报文,并对所述数据流通处理响应报文进行解析,获取处理响应签名数据以及业务处理数据,根据所述业务处理数据从内部存储中获取对应的用户密钥注册信息;
验签请求报文生成模块,用于对所述处理响应签名数据以及所述业务处理数据进行组装,生成待验签数据,并利用所述用户密钥注册信息中的用户会话密钥对所述待验签数据进行加密,获得待验签密文数据,再对所述业务处理数据、所述用户密钥注册信息以及所述待验签密文数据进行组装,利用所述通讯密钥对组装后的结果进行加密,生成数据流通验签请求报文,将所述数据流通验签请求报文发送给所述用户端进行验签处理;
验签响应报文接收模块,用于接收所述用户端返回的数据流通验签响应报文,并利用所述通讯密钥对所述数据流通验签响应报文进行解密,若解密成功则获取所述业务处理数据、所述用户密钥注册信息以及验签结果密文数据,触发响应结果报文生成模块,否则,向所述用户端返回错误信息;
所述响应结果报文生成模块,用于根据解密出的所述业务处理数据从内部存储中获取对应的用户密钥注册信息中的用户会话密钥,并利用所述用户会话密钥对所述验签结果密文数据进行解密,获得验签结果明文数据,再对所述业务处理数据以及所述验签结果明文数据进行组装,利用内部存储的平台接入密钥对组装后的结果进行加密,生成数据流通响应结果报文,将所述数据流通响应结果报文返回给所述调用端用于完成对数据流通业务的处理。
11.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现所述权利要求1-9中任一项所述方法的步骤。
12.一种服务器,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现所述权利要求1-9中任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210855748.4A CN114928456B (zh) | 2022-07-21 | 2022-07-21 | 一种基于用户端本地证书实现数据流通的方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210855748.4A CN114928456B (zh) | 2022-07-21 | 2022-07-21 | 一种基于用户端本地证书实现数据流通的方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114928456A CN114928456A (zh) | 2022-08-19 |
CN114928456B true CN114928456B (zh) | 2022-10-04 |
Family
ID=82815969
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210855748.4A Active CN114928456B (zh) | 2022-07-21 | 2022-07-21 | 一种基于用户端本地证书实现数据流通的方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114928456B (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1162781A2 (en) * | 2000-06-09 | 2001-12-12 | TRW Inc. | System and method for generation of a signature certificate in a public key infrastructure |
CN110290102A (zh) * | 2019-04-26 | 2019-09-27 | 武汉众邦银行股份有限公司 | 基于应用的业务安全系统及方法 |
CN114448649A (zh) * | 2022-04-08 | 2022-05-06 | 飞天诚信科技股份有限公司 | 一种数据流通方法、系统、存储介质及电子设备 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
ATE254773T1 (de) * | 2002-03-18 | 2003-12-15 | Ubs Ag | Sichere benutzerauthenifizierung über ein kommunikationsnetzwerk |
US20060047951A1 (en) * | 2004-08-27 | 2006-03-02 | Michael Reilly | Continuing public key infrastructure operation while regenerating a new certification authority keypair and certificate |
US9363258B2 (en) * | 2007-12-17 | 2016-06-07 | International Business Machines Corporation | Secure digital signature system |
CN105162785B (zh) * | 2015-09-07 | 2019-01-04 | 飞天诚信科技股份有限公司 | 一种基于认证设备进行注册的方法和设备 |
-
2022
- 2022-07-21 CN CN202210855748.4A patent/CN114928456B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1162781A2 (en) * | 2000-06-09 | 2001-12-12 | TRW Inc. | System and method for generation of a signature certificate in a public key infrastructure |
CN110290102A (zh) * | 2019-04-26 | 2019-09-27 | 武汉众邦银行股份有限公司 | 基于应用的业务安全系统及方法 |
CN114448649A (zh) * | 2022-04-08 | 2022-05-06 | 飞天诚信科技股份有限公司 | 一种数据流通方法、系统、存储介质及电子设备 |
Non-Patent Citations (1)
Title |
---|
数字签名在网上公文流转系统中的应用;陈红军;《信阳师范学院学报(自然科学版)》;20080415;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN114928456A (zh) | 2022-08-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109547471B (zh) | 网络通信方法和装置 | |
CN110602089B (zh) | 基于区块链的医疗数据存储方法、装置、设备及存储介质 | |
CN110245144B (zh) | 协议数据管理方法、装置、存储介质及系统 | |
US10601795B2 (en) | Service processing method and electronic device | |
CN111245745B (zh) | 消息发送方法、装置、节点设备及存储介质 | |
CN109615515B (zh) | 债权凭证转移方法、装置、电子设备及存储介质 | |
CN104618116B (zh) | 一种协同数字签名系统及其方法 | |
CN111160915B (zh) | 一种乘车码验证方法、装置、交通扫码设备及终端设备 | |
JP6552714B2 (ja) | データ処理方法およびシステム、ならびにウェアラブル電子デバイス | |
CN112417425A (zh) | 设备认证方法、装置、系统、终端设备及存储介质 | |
CN113242224B (zh) | 授权方法及装置、电子设备和存储介质 | |
CN112073421B (zh) | 通信处理方法、装置、终端及存储介质 | |
CN111935166B (zh) | 通信认证方法、系统、电子设备、服务器及存储介质 | |
CN111080443A (zh) | 基于区块链的业务处理方法、装置、设备及存储介质 | |
CN111212074A (zh) | 基于区块链的资格认定方法、装置、设备及存储介质 | |
CN114928456B (zh) | 一种基于用户端本地证书实现数据流通的方法及系统 | |
CN114448649B (zh) | 一种数据流通方法、系统、存储介质及电子设备 | |
CN115623087B (zh) | 一种解析pb格式流通数据的方法及系统 | |
CN115706993A (zh) | 认证方法、可读介质和电子设备 | |
CN111327427B (zh) | 提交备选区块的方法、装置、节点设备、系统及存储介质 | |
CN111447132B (zh) | 数据传输方法、装置、系统以及计算机存储介质 | |
CN113630405A (zh) | 入网认证方法、装置、电子设备及存储介质 | |
CN113904830A (zh) | 一种spa认证的方法、装置、电子设备和可读存储介质 | |
CN108683684B (zh) | 登录目标即时通讯应用的方法、装置和系统 | |
CN113836082A (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 |