本发明涉及一种信息系统间以restful方式安全传输数据的方法。
背景技术:
1、基于json(javascript object notation)的restful(representational statetransfer,表示性状态转移)是被广泛用于信息系统间通讯的web服务方案。restful较为简单、轻量、易于理解、学习成本低,但在安全传输方面,restful主要依赖于传输层安全协议如ssl、tls等,只能提供点到点(peer-to-peer)的安全性。restful消息在经过中间节点时,消息内容对中间节点可见,存在安全漏洞。
2、目前针对基于xml(extensible markup language)格式的soap(simple objectaccess protocol)协议,已经有较为成熟的ws-security标准处理。ws-security标准包含签名、验签、加密、解密等一系列标准。ws-security由多个子标准组成,整体较为复杂。
3、针对json格式的网络通讯,2015年5月ietf(the internet engineering taskforce,国际互联网工程任务组)发布了用于签名验签的jws(json web signature)标准(rfc7515),和用于加密解密的jwe(json web encryption)标准(rfc7516),目前rfc7515和rfc7516均处于草案阶段。
技术实现思路
1、为克服现有技术的不足,本发明的目的是提供一种信息系统间以restful方式安全传输数据的方法,该方法不再依赖传输层安全机制,以基于标准http协议的restful方式安全传输数据的方法,原始数据通过配置的jwe(json web encryption)和jws(json websignature)标准进行加密和签名,基于json格式实现应用系统间安全通讯。
2、为实现上述目的,本发明通过以下技术方案实现:
3、一种信息系统间以restful方式安全传输数据的方法,直接在json中嵌入安全信息,并对需要保密的数据进行加密,json到达目标节点后,由服务提供者直接验证这些安全信息的真伪并解密相关数据,所述的方法包括以下步骤:
4、s1、基于jwe标准,采用接收方公钥对json格式报文以jwe json序列化格式进行加密;
5、s2、对生成的json字符串进行转义;
6、s3、将转义后的字符串以jws json格式进行签名。
7、步骤s1中的加密方法包括以下步骤:
8、s10、采用基于非对称算法的rsa_oaep的密钥管理模式计算内容加密密钥;
9、s11、将内容加密密钥采用base64url方式进行编码;
10、s12、生成随机加密初始化向量,并采用base64url方式进行编码;
11、s13、将密钥管理模式和内容加密算法以json格式表示;
12、s14、将步骤s13生成的json用base64url方式进行编码;
13、s15、将步骤s14生成的字符串用asiic方式进行编码;
14、s16、采用步骤s11、s12、s15的结果,采用a128gcm算法进行加密,加密结果会产生密文和认证标签两个值。
15、步骤s2中的转义方法为在每一个双引号前增加反斜杠。
16、步骤s3中,签名方法包括以下步骤:
17、s30、将签名算法用json格式表示;
18、s31、将步骤s30结果用base64url方式进行编码;
19、s32、将步骤s31的字符串用base64url方式进行编码;
20、s33、将步骤s31、s32的结果用“.”号连接,并用asiic方式进行编码;
21、s34、将步骤s33的结果用rs256算法进行签名;
22、s35、对步骤s34的结果用base64url方式进行编码。
23、步骤s16中,密文采用base64url方式进行编码,认证标签采用base64url方式进行编码。
24、与现有技术相比,本发明的有益效果是:
25、1.通过基于jws的签名算法对消息进行数字签名,保证消息在经过中间节点时不被篡改,服务提供者也可以通过签名确认消息由合法的服务请求者产生;
26、2.通过基于jwe的加密算法对消息进行加密,保证消息在经过不安全的中间节点时,即使被监听,监听者也无法提取出有效信息;
27、3.消息在进行加密、签名前后均为json格式,在接收方可对消息进行验签、解密,应用层收到的是经过验签和解密后的json格式数据,因此,验签和解密过程对业务层是无侵入的,降低了开发成本。
1.一种信息系统间以restful方式安全传输数据的方法,其特征在于,直接在json中嵌入安全信息,并对需要保密的数据进行加密,json到达目标节点后,由服务提供者直接验证这些安全信息的真伪并解密相关数据,所述的方法包括以下步骤:
2.根据权利要求1所述的一种信息系统间以restful方式安全传输数据的方法,其特征在于,所述的步骤s1中的加密方法包括以下步骤:
3.根据权利要求1所述的一种信息系统间以restful方式安全传输数据的方法,其特征在于,所述的步骤s2中的转义方法为在每一个双引号前增加反斜杠。
4.根据权利要求1所述的一种信息系统间以restful方式安全传输数据的方法,其特征在于,步骤s3中,所述的签名方法包括以下步骤:
5.根据权利要求2所述的一种信息系统间以restful方式安全传输数据的方法,其特征在于,步骤s16中,所述的密文采用base64url方式进行编码,所述的认证标签采用base64url方式进行编码。