CN103716280B - 数据传输方法、服务器及系统 - Google Patents
数据传输方法、服务器及系统 Download PDFInfo
- Publication number
- CN103716280B CN103716280B CN201210370352.7A CN201210370352A CN103716280B CN 103716280 B CN103716280 B CN 103716280B CN 201210370352 A CN201210370352 A CN 201210370352A CN 103716280 B CN103716280 B CN 103716280B
- Authority
- CN
- China
- Prior art keywords
- certificate
- client
- application server
- servers
- sent
- 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
Landscapes
- Computer And Data Communications (AREA)
Abstract
本发明公开了一种数据传输方法、客户端、应用服务器和系统,属于通信领域。包括:客户端向CA服务器发送用户信息,并接收CA服务器发送的根据用户信息生成的客户端证书,或者,客户端向CA服务器发送用户信息,并接收CA服务器转发的轻量目录访问协议LDAP数据服务器中存储的客户端证书;根据客户端证书与应用服务器的应用服务器证书进行相互认证,认证通过时生成会话密钥;与应用服务器进行数据传输时,根据会话密钥对待传输数据进行加密和传输。客户端包括:接收模块、生成模块和传输模块,应用服务器包括:配置模块、生成模块、获取模块和传输模块。系统包括客户端和应用服务器。本发明可以减少开发成本,降低生成证书的复杂性。
Description
技术领域
本发明涉及通信领域,特别涉及一种数据传输方法、服务器及系统。
背景技术
开放平台是软件系统通过公开其API(Application Programming Interface,应用程序编程接口)或函数来使外部的应用程序可以增加该软件系统的功能或使用该软件系统的资源。开发者通过账号登录开放平台即可进行资料上传、资源申请、业务接入、查看保密业务数据、状态变更等操作。由于目前的开放平台基于广域互联网,因此,数据通过互联网HTTP(HyperText Transfer Protocol,超文本传输协议)协议进行传输。HTTP协议未采用加密措施,使得数据包在网络上以明文形式传送,入侵者可以在数据包经过的网关或路由器上截获传送的数据,并通过多次窃取和分析找到数据的规律和格式,得到传输数据的内容,造成网上传输数据泄密,甚至进一步利用获取到的数据假冒账户、篡改数据、甚至恶意破坏系统等,使开放平台存在严重的安全隐患。
现有技术中,可以通过CA(Certificate Authority,证书授权)认证系统颁发的数字证书对用户和开发者管理系统进行身份认证,当认证通过时对待传输数据进行数据加密和传输,以保证数据传输的安全性。
在实现本发明的过程中,发明人发现现有技术至少存在以下问题:
当用户向CA中心申请数字证书时,CA中心的CA认证系统根据用户证书的目的为用户颁发证书,这个过程中CA中心需要收取一定的费用,增加了开发成本;而且各级证书的生成均由CA中心操作,且CA中心与用户的合作过程繁琐,提高了生成证书的复杂性。
发明内容
本发明实施例提供了一种数据传输方法、服务器和系统,以减少开发成本,降低生成证书的复杂性。所述技术方案如下:
一方面,提供了一种数据传输方法,所述方法包括:
客户端向证书授权CA服务器发送用户信息,并接收所述CA服务器发送的根据所述用户信息生成的客户端证书,或者,所述客户端向所述CA服务器发送所述用户信息,并接收所述CA服务器转发的轻量目录访问协议LDAP数据服务器中存储的所述客户端证书;
根据所述客户端证书与应用服务器的应用服务器证书进行相互认证,认证通过时生成会话密钥;
当与所述应用服务器进行数据传输时,根据所述会话密钥对待传输数据进行加密和传输。
其中,所述应用服务器证书和所述客户端证书的生成基于密码术包BouncyCastle和Java基础证书授权工具Jabacats。
其中,客户端向证书授权CA服务器发送用户信息之后,还包括:
所述CA服务器根据所述用户信息生成所述客户端证书,并将所述用户信息和所述客户端证书发送给所述LDAP服务器,使所述LDAP服务器对所述用户信息和所述客户端证书进行存储。
其中,根据所述客户端证书与应用服务器的应用服务器证书进行相互认证,认证通过时生成会话密钥,包括:
对接收到的所述应用服务器证书进行认证;
当认证通过时,根据所述应用服务器证书对自身生成的密钥信息进行加密;
将加密信息和所述客户端证书发送给所述应用服务器,使得当所述应用服务器对所述客户端证书的认证通过时,根据所述应用服务器证书对所述加密信息进行解密且根据解密后的所述密钥信息生成会话密钥。
另一方面,提供了一种数据传输方法,所述方法包括:
应用服务器获取证书授权CA服务器生成的应用服务器证书,并根据所述应用服务器证书对自身进行配置;
根据所述应用服务器证书与客户端的客户端证书进行相互认证,认证通过时生成会话密钥;
根据所述客户端证书中的用户标识获取用户权限,并向所述客户端展示所述用户权限,使所述客户端根据所述用户权限发起数据传输;
当与所述客户端进行数据传输时,根据所述会话密钥对待传输数据进行加密和传输。
其中,所述应用服务器证书和所述客户端证书的生成基于密码术包BouncyCastle和Java基础证书授权工具Jabacats。
其中,根据所述应用服务器证书对自身进行配置,包括:
将所述应用服务器证书导入信任库,并对所述应用服务器的文件中的注释进行修改。
其中,根据所述应用服务器证书与客户端的客户端证书进行相互认证,认证通过时生成会话密钥,包括:
向客户端发送应用服务器证书,使当所述客户端对所述应用服务器证书的认证通过时根据所述应用服务器证书对所述客户端生成的密钥信息进行加密;
接收所述客户端发送的加密信息和所述客户端证书;
当对所述客户端证书的认证通过时,根据所述应用服务器证书对所述加密信息进行解密,并根据解密后的所述密钥信息生成会话密钥。
其中,根据所述客户端证书中的用户标识获取用户权限,包括:
获取所述客户端证书中的用户标识;
在轻量目录访问协议LDAP数据服务器中查找与所述用户标识匹配的用户信息;
获取所述用户信息中的用户权限。
又一方面,提供了一种客户端,所述客户端包括:
接收模块,用于向证书授权CA服务器发送用户信息,并接收所述CA服务器发送的根据所述用户信息生成的客户端证书,或者,向所述CA服务器发送所述用户信息,并接收所述CA服务器转发的轻量目录访问协议LDAP数据服务器中存储的所述客户端证书;
生成模块,用于根据所述客户端证书与应用服务器的应用服务器证书进行相互认证,认证通过时生成会话密钥;
传输模块,用于当与所述应用服务器进行数据传输时,根据所述会话密钥对待传输数据进行加密和传输。
其中,所述应用服务器证书和所述客户端证书的生成基于密码术包BouncyCastle和Java基础证书授权工具Jabacats。
其中,所述生成模块包括:
认证单元,用于对接收到的所述应用服务器证书进行认证;
加密单元,用于当认证通过时,根据所述应用服务器证书对自身生成的密钥信息进行加密;
发送单元,用于将加密信息和所述客户端证书发送给所述应用服务器,使得当所述应用服务器对所述客户端证书的认证通过时,根据所述应用服务器证书对所述加密信息进行解密且根据解密后的所述密钥信息生成会话密钥。
再一方面,提供了一种应用服务器,所述应用服务器包括:
配置模块,用于获取证书授权CA服务器生成的应用服务器证书,并根据所述应用服务器证书对自身进行配置;
生成模块,用于根据所述应用服务器证书与客户端的客户端证书进行相互认证,认证通过时生成会话密钥;
获取模块,用于根据所述客户端证书中的用户标识获取用户权限,并向所述客户端展示所述用户权限,使所述客户端根据所述用户权限发起数据传输;
传输模块,用于当与所述客户端进行数据传输时,根据所述会话密钥对待传输数据进行加密和传输。
其中,所述应用服务器证书和所述客户端证书的生成基于密码术包BouncyCastle和Java基础证书授权工具Jabacats。
其中,所述配置模块,用于将所述应用服务器证书导入信任库,并对所述应用服务器的文件中的注释进行修改。
其中,所述生成模块,包括:
发送单元,用于向客户端发送应用服务器证书,使当所述客户端对所述应用服务器证书的认证通过时根据所述应用服务器证书对所述客户端生成的密钥信息进行加密;
接收单元,用于接收所述客户端发送的加密信息和所述客户端证书;
生成单元,用于当对所述客户端证书的认证通过时,根据所述应用服务器证书对所述加密信息进行解密,并根据解密后的所述密钥信息生成会话密钥。
所述获取模块包括:
第一获取单元,用于获取所述客户端证书中的用户标识;
查找单元,用于在轻量目录访问协议LDAP数据服务器中查找与所述用户标识匹配的用户信息;
第二获取单元,用于获取所述用户信息中的用户权限。
再一方面,提供了一种数据传输系统,所述系统包括如上所述的客户端和如上所述的应用服务器。
其中,所述系统还包括:证书授权CA服务器和轻量目录访问协议LDAP数据服务器;
所述CA服务器,用于接收所述客户端发送的用户信息,并向所述客户端发送根据所述用户信息生成的客户端证书;或者,接收所述客户端发送的用户信息,并向所述客户端转发所述LDAP数据服务器中存储的所述客户端证书;
所述LDAP数据服务器,用于向所述CA服务器发送所述客户端证书。
本发明实施例提供的技术方案带来的有益效果是:
通过向证书授权CA服务器发送用户信息,并接收所述CA服务器发送的根据所述用户信息生成的客户端证书,或者,所述客户端向所述CA服务器发送所述用户信息,并接收所述CA服务器转发的轻量目录访问协议LDAP数据服务器中存储的所述客户端证书;根据所述客户端证书与应用服务器的应用服务器证书进行相互认证,认证通过时生成会话密钥;当与所述应用服务器进行数据传输时,根据所述会话密钥对待传输数据进行加密和传输,可以减少开发成本,也降低了生成应用服务器证书和客户端证书的复杂性。
另外,所述应用服务器证书和所述客户端证书的生成基于密码术包BouncyCastle和Java基础证书授权工具Jabacats,使CA服务器可以简单快捷地生成应用服务器证书和客户端证书,进一步降低了生成应用服务器证书和客户端证书的复杂性。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例一提供的数据传输方法的一种方法流程图;
图2是本发明实施例一提供的数据传输方法的另一种方法流程图;
图3是本发明实施例二提供的数据传输方法流程图;
图4是本发明实施例三提供的客户端的一种结构示意图;
图5是本发明实施例三提供的客户端的另一种结构示意图;
图6是本发明实施例四提供的应用服务器的一种结构示意图;
图7是本发明实施例四提供的应用服务器的另一种结构示意图;
图8是本发明实施例五提供的数据传输系统的一种结构示意图;
图9是本发明实施例五提供的数据传输系统的另一种结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
实施例一
参见图1,本实施例提供了一种数据传输方法,方法流程包括:
101:客户端向CA服务器发送用户信息,并接收CA服务器发送的根据用户信息生成的客户端证书,或者,客户端向CA服务器发送用户信息,并接收CA服务器转发的LDAP(Lightweight Directory Access Protocol,轻量目录访问协议)数据服务器中存储的客户端证书。
102:根据客户端证书与应用服务器的应用服务器证书进行相互认证,认证通过时生成会话密钥。
103:当与应用服务器进行数据传输时,根据会话密钥对待传输数据进行加密和传输。
其中,应用服务器证书和客户端证书的生成基于密码术包BouncyCastle和Jabacats(Java Basic Certificate Authority Tools,Java基础证书授权工具)。
其中,客户端向CA服务器发送用户信息之后,还包括:
CA服务器根据用户信息生成客户端证书,并将用户信息和客户端证书发送给LDAP服务器,使LDAP服务器对用户信息和客户端证书进行存储。
其中,根据客户端证书与应用服务器的应用服务器证书进行相互认证,认证通过时生成会话密钥,包括:
对接收到的应用服务器证书进行认证;
当认证通过时,根据应用服务器证书对自身生成的密钥信息进行加密;
将加密信息和客户端证书发送给应用服务器,使得当应用服务器对客户端证书的认证通过时,根据应用服务器证书对加密信息进行解密且根据解密后的密钥信息生成会话密钥。
参见图2,本实施例还提供了一种数据传输方法,方法流程包括:
201:应用服务器获取CA服务器生成的应用服务器证书,并根据应用服务器证书对自身进行配置。
202:根据应用服务器证书与客户端的客户端证书进行相互认证,认证通过时生成会话密钥。
203:根据客户端证书中的用户标识获取用户权限,并向客户端展示用户权限,使客户端根据用户权限发起数据传输。
204:当与客户端进行数据传输时,根据会话密钥对待传输数据进行加密和传输。
其中,应用服务器证书和客户端证书的生成基于BouncyCastle和Jabacats。
其中,根据应用服务器证书对自身进行配置,包括:
将应用服务器证书导入信任库,并对应用服务器的文件中的注释进行修改。
其中,根据应用服务器证书与客户端的客户端证书进行相互认证,认证通过时生成会话密钥,包括:
向客户端发送应用服务器证书,使当客户端对应用服务器证书的认证通过时根据应用服务器证书对客户端生成的密钥信息进行加密;
接收客户端发送的加密信息和客户端证书;
当对客户端证书的认证通过时,根据应用服务器证书对加密信息进行解密,并根据解密后的密钥信息生成会话密钥。
其中,根据客户端证书中的用户标识获取用户权限,包括:
获取客户端证书中的用户标识;
在LDAP数据服务器中查找与该用户标识匹配的用户信息;
获取用户信息中的用户权限。
本实施例提供的上述方法,通过向证书授权CA服务器发送用户信息,并接收所述CA服务器发送的根据所述用户信息生成的客户端证书,或者,所述客户端向所述CA服务器发送所述用户信息,并接收所述CA服务器转发的轻量目录访问协议LDAP数据服务器中存储的所述客户端证书;根据所述客户端证书与应用服务器的应用服务器证书进行相互认证,认证通过时生成会话密钥;当与所述应用服务器进行数据传输时,根据所述会话密钥对待传输数据进行加密和传输,可以减少开发成本,也降低了生成应用服务器证书和客户端证书的操作复杂性。
另外,所述应用服务器证书和所述客户端证书的生成基于密码术包BouncyCastle和Java基础证书授权工具Jabacats,使CA服务器可以简单快捷地生成应用服务器证书和客户端证书,进一步降低了生成应用服务器证书和客户端证书的复杂性。
实施例二
参见图3,本实施例提供了一种数据传输方法,方法流程包括:
301:应用服务器获取CA服务器生成的应用服务器证书,并根据应用服务器证书对应用服务器进行配置。
本实施例中,开放平台可以包括应用服务器和CA服务器。其中,CA服务器为应用服务器颁发证书,以提高数据传输的安全性;应用服务器用来与客户端进行数据交互,例如,接收客户端发送的数据请求,或者,向客户端发送数据等等。
具体地,CA服务器生成根证书,根据根证书和应用服务器的申请信息生成应用服务器证书,并根据应用服务器证书对应用服务器进行配置,以提高应用服务器的安全性。
本实施例中,应用服务器证书的生成基于BouncyCastle和Jabacats。具体地,CA服务器通过BouncyCastle和Jabacats结合的方式开发证书。其中,所述BouncyCastle在CA证书开发过程中作为辅助开发包,用来规范密钥算法;Jabacats则提供全套CA证书生成方法,通过传入相应证书参数生成所需的证书,需要BouncyCastle开发包与之配合。通过BouncyCastle和Jabacats可以简单快捷地开发出安全的证书,既提高了开发证书的效率,也提高了证书的安全性。
进一步地,根据应用服务器证书对自身进行配置,可以包括:
将应用服务器证书导入信任库,并对应用服务器的文件中的注释进行修改。
其中,根据应用服务器证书对应用服务器进行配置的过程为现有技术,此处不赘述。
302:客户端向CA服务器发送用户信息,并接收CA服务器发送的根据用户信息生成的客户端证书,或者,客户端向CA服务器发送用户信息,并接收CA服务器转发的LDAP数据服务器中存储的客户端证书。
为了建立安全通道,客户端需要根据客户端证书对应用服务器证书进行认证,因此,客户端需要向CA服务器申请客户端证书。其中,客户端证书的生成基于BouncyCastle和Jabacats。
本实施例中,客户端向CA服务器发送用户信息之后,还可以包括:
CA服务器根据用户信息生成客户端证书,并将用户信息和客户端证书发送给LDAP服务器,使LDAP服务器对用户信息和客户端证书进行存储。
其中,开放平台还可以包括LDAP数据服务器,用来存储开放平台的用户信息和证书,所述用户信息可以包括但不限于用户账号和用户权限等等。所述LDAP数据服务器可以是iPlanet目录服务器,所述iPlanet目录服务器采用分布式结构,将用户信息和证书分布地存储在多个iPlanet目录服务器中,避免了将所有用户信息和证书集中存储在一个iPlanet目录服务器中造成的数据读取效率低下的问题。
获取客户端证书时,如果该客户端证书只能使用一次,则CA服务器根据根证书和填写的用户信息生成客户端证书,并向客户端发送该客户端证书;或者,如果该客户端证书可以使用多次,则CA服务器还可以将生成的客户端证书发送给LDAP数据服务器进行保存,在接收到LDAP数据服务器发送的添加成功响应时向客户端发送客户端证书,则下次需要获取该客户端证书时,CA服务器接收LDAP数据服务器发送的客户端证书,并将该客户端证书转发给客户端。
为了避免开放平台与客户端之间采用HTTP协议传输数据导致的数据传输不安全问题,本实施例中,开放平台与客户端之间采用SSL(Secure Sockets Layer安全套接层)协议进行数据传输,所述SSL协议可以嵌入客户端和服务器,使客户端和服务器支持SSL功能,实现会话双方之间数据的安全传递。
303:客户端根据客户端证书与应用服务器的应用服务器证书进行相互认证,认证通过时生成会话密钥。
本实施例中,应用服务器向客户端发送应用服务器证书;客户端对接收到的应用服务器证书进行认证,当认证通过时,客户端根据应用服务器证书对自身生成的密钥信息进行加密,并将加密信息和客户端证书发送给应用服务器;应用服务器接收客户端发送的加密信息和客户端证书,当对客户端证书的认证通过时,应用服务器根据应用服务器证书对加密信息进行解密,并根据解密后的密钥信息生成会话密钥。
具体地,客户端接收应用服务器发送的应用服务器证书,根据客户端证书的密码对应用服务器证书进行认证,由于客户端证书和应用服务器证书均是CA服务器根据根证书生成的,因此,如果客户端证书与应用服务器证书的密码相同,则认证通过,获取应用服务器证书的公钥,通过公钥对密钥信息进行加密;否则,流程结束。其中,所述公钥用来对信息进行加密,应用服务器端的私钥用来对公钥加密的信息进行解密,且所述私钥与所述公钥一一对应。
应用服务器根据应用服务器证书的密码对客户端证书进行认证,如果密码相同,则认证通过,应用服务器根据应用服务器证书的私钥对加密信息进行解密,并对该密钥信息进行运算后生成会话密钥,以便在数据传输过程中可以使用该会话密钥对待传输数据进行加密,以提高数据在网络上传输的安全性,此时,应用服务器与客户端之间的数据传输通道建立完成。
304:应用服务器根据客户端证书中的用户标识获取用户权限。
本实施例中,开放平台还对用户设置了访问权限,以进一步提高数据的安全性。所述访问权限预先存储在LDAP目录服务器的用户信息中,而用户信息是通过用户标识来唯一标识的,例如,所述用户标识可以是用户账号、或者用户ID(Identity,身份标识)等等,因此,需要根据用户标识来获取用户权限。
进一步地,应用服务器可以单独向客户端请求用户标识,使客户端发送该用户标识,或者,优选地,客户端可以将用户标识添加在客户端证书中发送给应用服务器,以节省后续获取用户标识所占用的网络资源。
具体地,根据客户端证书中的用户标识获取用户权限,可以包括:
获取客户端证书中的用户标识;
在LDAP数据服务器中查找与所述用户标识匹配的用户信息;
获取用户信息中的用户权限。
305:应用服务器向客户端展示该用户权限,使客户端根据该用户权限发起数据传输。
应用服务器向客户端展示从LDAP数据服务器中获取的用户权限,例如,开放平台包括上传和下载业务,如果某一用户权限为具有下载权限且不具有上传权限,则应用服务器仅向客户端展示下载业务,用户只能针对下载业务发起数据传输。
306:当客户端与应用服务器进行数据传输时,根据会话密钥对待传输数据进行加密和传输。
应用服务器与客户端可以通过支持SSL功能的HTTPS(Hypertext TransferProtocol Secure,安全超文本传输协议)协议进行数据传输,具体地,根据会话密钥对待传输数据进行加密,并对加密后的数据进行传输。
为了便于理解,本实施例以开放平台应用于网上银行系统为例进行说明。网站(应用服务器)首先向CA服务器申请网站证书(应用服务器证书),并根据该网站证书对自身进行配置,其中,该网站仅需配置一次。
在登录网站之前,用户需要向CA服务器申请客户端证书。具体地,用户向CA服务器发送用户信息,CA服务器根据接收的用户信息查找网上银行系统的数据库(LDAP数据服务器),如果该数据库中有客户端证书,则CA服务器获取该客户端证书,并将该客户端证书转发给用户;如果该数据库中没有客户端证书,则CA服务器根据用户信息生成客户端证书,并将该客户端证书发送给用户。
用户登录网站时接收网站的网站证书,在对网站证书的认证通过后,将客户端证书发送给网站。网站对客户端证书进行认证,如果认证通过,则获取客户端证书中的用户标识,并从数据库中获取该用户标识对应的用户信息中的用户权限,向用户展示该用户权限。其中,用户权限是指用户有操作权限的业务,例如,查询、转账等业务。用户根据网站展示的用户权限进行业务处理,且业务处理过程中产生的数据在传输时均根据会话密钥进行加密处理,以提高数据传输的安全性。
本实施例提供的上述方法,通过向证书授权CA服务器发送用户信息,并接收所述CA服务器发送的根据所述用户信息生成的客户端证书,或者,所述客户端向所述CA服务器发送所述用户信息,并接收所述CA服务器转发的轻量目录访问协议LDAP数据服务器中存储的所述客户端证书;根据所述客户端证书与应用服务器的应用服务器证书进行相互认证,认证通过时生成会话密钥;当与所述应用服务器进行数据传输时,根据所述会话密钥对待传输数据进行加密和传输,可以减少开发成本,也降低了生成应用服务器证书和客户端证书的操作复杂性。
另外,所述应用服务器证书和所述客户端证书的生成基于密码术包BouncyCastle和Java基础证书授权工具Jabacats,使CA服务器可以简单快捷地生成应用服务器证书和客户端证书,进一步降低了生成应用服务器证书和客户端证书的复杂性。
实施例三
参见图4,本发明实施例提供了一种客户端,该客户端包括:
接收模块401,用于向CA服务器发送用户信息,并接收所述CA服务器发送的根据所述用户信息生成的客户端证书,或者,向所述CA服务器发送所述用户信息,并接收所述CA服务器转发的LDAP数据服务器中存储的所述客户端证书;
生成模块402,用于根据所述客户端证书与应用服务器的应用服务器证书进行相互认证,认证通过时生成会话密钥;
传输模块403,用于当与应用服务器进行数据传输时,根据会话密钥对待传输数据进行加密和传输;
其中,应用服务器证书和客户端证书的生成基于BouncyCastle和Jabacats。
参见图5,本实施例中,生成模块402包括:
认证单元402A,用于对接收到的应用服务器证书进行认证;
加密单元402B,用于当认证通过时,根据应用服务器证书对自身生成的密钥信息进行加密;
发送单元402C,用于将加密信息和客户端证书发送给应用服务器,使得当应用服务器对客户端证书的认证通过时,根据应用服务器证书对加密信息进行解密且根据解密后的密钥信息生成会话密钥。
本实施例提供的上述客户端,通过向证书授权CA服务器发送用户信息,并接收所述CA服务器发送的根据所述用户信息生成的客户端证书,或者,所述客户端向所述CA服务器发送所述用户信息,并接收所述CA服务器转发的轻量目录访问协议LDAP数据服务器中存储的所述客户端证书;根据所述客户端证书与应用服务器的应用服务器证书进行相互认证,认证通过时生成会话密钥;当与所述应用服务器进行数据传输时,根据所述会话密钥对待传输数据进行加密和传输,可以减少开发成本,也降低了生成应用服务器证书和客户端证书的复杂性。
另外,所述应用服务器证书和所述客户端证书的生成基于密码术包BouncyCastle和Java基础证书授权工具Jabacats,使CA服务器可以简单快捷地生成应用服务器证书和客户端证书,进一步降低了生成应用服务器证书和客户端证书的复杂性。
实施例四
参见图6,本实施例提供了一种应用服务器,该应用服务器包括:
配置模块601,用于获取CA服务器生成的应用服务器证书,并根据应用服务器证书对应用服务器进行配置;
生成模块602,用于根据应用服务器证书与客户端的客户端证书进行相互认证,认证通过时生成会话密钥;
获取模块603,用于根据客户端证书中的用户标识获取用户权限,并向客户端展示用户权限,使客户端根据用户权限发起数据传输;
传输模块604,用于当与客户端进行数据传输时,根据会话密钥对待传输数据进行加密和传输。
其中,应用服务器证书和客户端证书的生成基于BouncyCastle和Jabacats。
本实施例中,配置模块601,用于将应用服务器证书导入信任库,并对应用服务器的文件中的注释进行修改。
参见图7,本实施例中,生成模块602,包括:
发送单元602A,用于向客户端发送应用服务器证书,使当客户端对应用服务器证书的认证通过时根据应用服务器证书对客户端生成的密钥信息进行加密;
接收单元602B,用于接收客户端发送的加密信息和客户端证书;
生成单元602C,用于当对客户端证书的认证通过时,根据应用服务器证书对加密信息进行解密,并根据解密后的密钥信息生成会话密钥。
参见图7,本实施例中,获取模块603包括:
第一获取单元603A,用于获取客户端证书中的用户标识;
查找单元603B,用于在LDAP数据服务器中查找与该用户标识匹配的用户信息;
第二获取单元603C,用于获取用户信息中的用户权限。
本实施例提供的上述应用服务器,通过获取证书授权CA服务器生成的应用服务器证书,并根据所述应用服务器证书对自身进行配置;根据所述应用服务器证书与客户端的客户端证书进行相互认证,认证通过时生成会话密钥;根据所述客户端证书中的用户标识获取用户权限,并向所述客户端展示所述用户权限,使所述客户端根据所述用户权限发起数据传输;当与所述客户端进行数据传输时,根据所述会话密钥对待传输数据进行加密和传输,可以减少开发成本,也降低了生成应用服务器证书和客户端证书的操作复杂性。
另外,所述应用服务器证书和所述客户端证书的生成基于密码术包BouncyCastle和Java基础证书授权工具Jabacats,使CA服务器可以简单快捷地生成应用服务器证书和客户端证书,进一步降低了生成应用服务器证书和客户端证书的复杂性。
实施例五
参见图8,本实施例提供了一中数据传输系统,所述系统包括客户端801和应用服务器802。
其中,客户端801可以是实施例三提供的客户端,应用服务器802可以是实施例四提供的应用服务器。
参见图9,本实施例中,所述系统还包括:CA服务器803和LDAP数据服务器804;
CA服务器803,用于接收客户端801发送的用户信息,并向客户端801发送根据用户信息生成的客户端证书;或者,接收客户端801发送的用户信息,并向客户端801转发LDAP数据服务器804中存储的客户端证书;
LDAP数据服务器804,用于向CA服务器803发送客户端证书。
本实施例提供的上述数据传输系统,通过向证书授权CA服务器发送用户信息,并接收所述CA服务器发送的根据所述用户信息生成的客户端证书,或者,所述客户端向所述CA服务器发送所述用户信息,并接收所述CA服务器转发的轻量目录访问协议LDAP数据服务器中存储的所述客户端证书;根据所述客户端证书与应用服务器的应用服务器证书进行相互认证,认证通过时生成会话密钥;当与所述应用服务器进行数据传输时,根据所述会话密钥对待传输数据进行加密和传输,可以减少开发成本,也降低了生成应用服务器证书和客户端证书的操作复杂性。
另外,所述应用服务器证书和所述客户端证书的生成基于密码术包BouncyCastle和Java基础证书授权工具Jabacats,使CA服务器可以简单快捷地生成应用服务器证书和客户端证书,进一步降低了生成应用服务器证书和客户端证书的复杂性。
需要说明的是:上述实施例提供的客户端、应用服务器和数据传输系统在传输数据时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将客户端、应用服务器和数据传输系统的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的客户端、应用服务器和数据传输系统与数据传输方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (15)
1.一种数据传输方法,其特征在于,所述方法包括:
客户端向证书授权CA服务器发送用户信息,以使得当客户端证书只能使用一次时,所述CA服务器根据根证书和填写的用户信息生成客户端证书,并向客户端发送该客户端证书,所述客户端证书的密码由所述根证书决定;或,当客户端证书能够使用多次时,所述CA服务器将生成的客户端证书发送给轻量目录访问协议LDAP数据服务器进行保存,并在接收到LDAP数据服务器发送的添加成功响应时向客户端发送客户端证书,以使得下次需要获取该客户端证书时,所述CA服务器接收LDAP数据服务器发送的客户端证书,并将该客户端证书转发给客户端;所述LDAP数据服务器是iPlanet目录服务器,所述iPlanet目录服务器采用分布式结构,将用户信息和证书分布地存储在多个iPlanet目录服务器中;
客户端接收所述CA服务器生成并发送的,或转发自LDAP数据服务器的客户端证书;
根据所述客户端证书与应用服务器的应用服务器证书进行相互认证,所述应用服务器证书由CA服务器根据根证书和应用服务器的申请信息生成;所述应用服务器证书的密码由所述根证书决定;认证通过时生成会话密钥:若客户端证书与应用服务器证书的密码相同,则认证通过,获取应用服务器证书的公钥,通过公钥对密钥信息进行加密以使得应用服务器根据应用服务器证书的密码对客户端证书进行认证,如果密码相同,则认证通过,根据应用服务器证书的私钥对加密信息进行解密,并对该密钥信息进行运算后生成会话密钥;
当与所述应用服务器进行数据传输时,根据所述会话密钥对待传输数据进行加密和传输。
2.根据权利要求1所述的方法,其特征在于,所述应用服务器证书和所述客户端证书的生成基于密码术包BouncyCastle和Java基础证书授权工具Jabacats。
3.根据权利要求1所述的方法,其特征在于,客户端向证书授权CA服务器发送用户信息之后,还包括:
所述CA服务器将所述用户信息和生成的客户端证书发送给所述LDAP服务器,使所述LDAP服务器对所述用户信息和所述客户端证书进行存储。
4.一种数据传输方法,其特征在于,所述方法包括:
应用服务器获取证书授权CA服务器根据根证书和应用服务器的申请信息生成的应用服务器证书,所述应用服务器证书的密码由所述根证书决定;并根据所述应用服务器证书对自身进行配置;
根据所述应用服务器证书与客户端的客户端证书进行相互认证,认证通过时生成会话密钥:若客户端证书与应用服务器证书的密码相同,则认证通过,所述客户端用于获取应用服务器证书的公钥,通过公钥对密钥信息进行加密;应用服务器根据应用服务器证书的密码对客户端证书进行认证,如果密码相同,则认证通过,根据应用服务器证书的私钥对加密信息进行解密,并对该密钥信息进行运算后生成会话密钥;
所述客户端还用于向证书授权CA服务器发送用户信息,以使得当客户端证书只能使用一次时,所述CA服务器根据根证书和填写的用户信息生成客户端证书,并向客户端发送该客户端证书,所述客户端证书的密码由所述根证书决定;或,当客户端证书能够使用多次时,所述CA服务器将生成的客户端证书发送给轻量目录访问协议LDAP数据服务器进行保存,并在接收到LDAP数据服务器发送的添加成功响应时向客户端发送客户端证书,以使得下次需要获取该客户端证书时,所述CA服务器接收LDAP数据服务器发送的客户端证书,并将该客户端证书转发给客户端;所述LDAP数据服务器是iPlanet目录服务器,所述iPlanet目录服务器采用分布式结构,将用户信息和证书分布地存储在多个iPlanet目录服务器中;
所述客户端还用于接收所述CA服务器生成并发送的,或转发自LDAP数据服务器的客户端证书;
根据所述客户端证书中的用户标识获取用户权限,并向所述客户端展示所述用户权限,使所述客户端根据所述用户权限发起数据传输;
当与所述客户端进行数据传输时,根据所述会话密钥对待传输数据进行加密和传输。
5.根据权利要求4所述的方法,其特征在于,所述应用服务器证书和所述客户端证书的生成基于密码术包BouncyCastle和Java基础证书授权工具Jabacats。
6.根据权利要求4所述的方法,其特征在于,根据所述应用服务器证书对自身进行配置,包括:
将所述应用服务器证书导入信任库,并对所述应用服务器的文件中的注释进行修改。
7.根据权利要求4所述的方法,其特征在于,根据所述客户端证书中的用户标识获取用户权限,包括:
获取所述客户端证书中的用户标识;
在轻量目录访问协议LDAP数据服务器中查找与所述用户标识匹配的用户信息;
获取所述用户信息中的用户权限。
8.一种客户端,其特征在于,所述客户端包括:
接收模块,用于向证书授权CA服务器发送用户信息,以使得当客户端证书只能使用一次时,所述CA服务器根据根证书和填写的用户信息生成客户端证书,并向客户端发送该客户端证书,所述客户端证书的密码由所述根证书决定;或,当客户端证书能够使用多次时,所述CA服务器将生成的客户端证书发送给轻量目录访问协议LDAP数据服务器进行保存,并在接收到LDAP数据服务器发送的添加成功响应时向客户端发送客户端证书,以使得下次需要获取该客户端证书时,所述CA服务器接收LDAP数据服务器发送的客户端证书,并将该客户端证书转发给客户端;所述LDAP数据服务器是iPlanet目录服务器,所述iPlanet目录服务器采用分布式结构,将用户信息和证书分布地存储在多个iPlanet目录服务器中;
所述接收模块还用于接收所述CA服务器生成并发送的,或转发自LDAP数据服务器的客户端证书;
生成模块,用于根据所述客户端证书与应用服务器的应用服务器证书进行相互认证,所述应用服务器证书由CA服务器根据根证书和应用服务器的申请信息生成;所述应用服务器证书的密码由所述根证书决定;认证通过时生成会话密钥:若客户端证书与应用服务器证书的密码相同,则认证通过,获取应用服务器证书的公钥,通过公钥对密钥信息进行加密以使得应用服务器根据应用服务器证书的密码对客户端证书进行认证,如果密码相同,则认证通过,根据应用服务器证书的私钥对加密信息进行解密,并对该密钥信息进行运算后生成会话密钥;
传输模块,用于当与所述应用服务器进行数据传输时,根据所述会话密钥对待传输数据进行加密和传输。
9.根据权利要求8所述的客户端,其特征在于,所述应用服务器证书和所述客户端证书的生成基于密码术包BouncyCastle和Java基础证书授权工具Jabacats。
10.一种应用服务器,其特征在于,所述应用服务器包括:
配置模块,用于获取证书授权CA服务器根据根证书和应用服务器的申请信息生成的应用服务器证书,所述应用服务器证书的密码由所述根证书决定;并根据所述应用服务器证书对自身进行配置;
生成模块,用于根据所述应用服务器证书与客户端的客户端证书进行相互认证,认证通过时生成会话密钥:若客户端证书与应用服务器证书的密码相同,则认证通过,所述客户端用于获取应用服务器证书的公钥,通过公钥对密钥信息进行加密;应用服务器根据应用服务器证书的密码对客户端证书进行认证,如果密码相同,则认证通过,根据应用服务器证书的私钥对加密信息进行解密,并对该密钥信息进行运算后生成会话密钥;其中,所述客户端还用于向证书授权CA服务器发送用户信息,以使得当客户端证书只能使用一次时,所述CA服务器根据根证书和填写的用户信息生成客户端证书,并向客户端发送该客户端证书,所述客户端证书的密码由所述根证书决定;或,当客户端证书能够使用多次时,所述CA服务器将生成的客户端证书发送给轻量目录访问协议LDAP数据服务器进行保存,并在接收到LDAP数据服务器发送的添加成功响应时向客户端发送客户端证书,以使得下次需要获取该客户端证书时,所述CA服务器接收LDAP数据服务器发送的客户端证书,并将该客户端证书转发给客户端;所述LDAP数据服务器是iPlanet目录服务器,所述iPlanet目录服务器采用分布式结构,将用户信息和证书分布地存储在多个iPlanet目录服务器中;所述客户端还用于接收所述CA服务器生成并发送的,或转发自LDAP数据服务器的客户端证书;
获取模块,用于根据所述客户端证书中的用户标识获取用户权限,并向所述客户端展示所述用户权限,使所述客户端根据所述用户权限发起数据传输;
传输模块,用于当与所述客户端进行数据传输时,根据所述会话密钥对待传输数据进行加密和传输。
11.根据权利要求10所述的应用服务器,其特征在于,所述应用服务器证书和所述客户端证书的生成基于密码术包BouncyCastle和Java基础证书授权工具Jabacats。
12.根据权利要求10所述的应用服务器,其特征在于,所述配置模块,用于将所述应用服务器证书导入信任库,并对所述应用服务器的文件中的注释进行修改。
13.根据权利要求10所述的应用服务器,其特征在于,所述获取模块包括:
第一获取单元,用于获取所述客户端证书中的用户标识;
查找单元,用于在轻量目录访问协议LDAP数据服务器中查找与所述用户标识匹配的用户信息;
第二获取单元,用于获取所述用户信息中的用户权限。
14.一种数据传输系统,其特征在于,所述系统包括如权利要求8或9所述的客户端和如权利要求10-13中任一项所述的应用服务器。
15.根据权利要求14所述的系统,其特征在于,所述系统还包括:证书授权CA服务器和轻量目录访问协议LDAP数据服务器;
所述CA服务器,用于接收所述客户端发送的用户信息,并向所述客户端发送根据所述用户信息生成的客户端证书;或者,接收所述客户端发送的所述用户信息,并向所述客户端转发所述LDAP数据服务器中存储的所述客户端证书;
所述LDAP数据服务器,用于向所述CA服务器发送所述客户端证书。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210370352.7A CN103716280B (zh) | 2012-09-28 | 2012-09-28 | 数据传输方法、服务器及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210370352.7A CN103716280B (zh) | 2012-09-28 | 2012-09-28 | 数据传输方法、服务器及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103716280A CN103716280A (zh) | 2014-04-09 |
CN103716280B true CN103716280B (zh) | 2018-09-04 |
Family
ID=50408869
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210370352.7A Active CN103716280B (zh) | 2012-09-28 | 2012-09-28 | 数据传输方法、服务器及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103716280B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105007254B (zh) * | 2014-04-17 | 2019-04-12 | 腾讯科技(深圳)有限公司 | 数据传输方法和系统、终端 |
CN105991578A (zh) * | 2015-02-12 | 2016-10-05 | 中兴通讯股份有限公司 | 一种实现终端登录的方法和装置 |
US10764059B2 (en) * | 2016-05-31 | 2020-09-01 | Intel Corporation | Communications security systems and methods |
JP6627043B2 (ja) * | 2016-08-08 | 2020-01-08 | 株式会社 エヌティーアイ | Ssl通信システム、クライアント、サーバ、ssl通信方法、コンピュータプログラム |
CN113422684A (zh) * | 2021-06-15 | 2021-09-21 | 芜湖雄狮汽车科技有限公司 | 安全认证的证书生成方法、装置、电子设备及存储介质 |
CN114928503B (zh) * | 2022-07-21 | 2022-11-15 | 北京安盟信息技术股份有限公司 | 一种安全通道的实现方法及数据传输方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101127604A (zh) * | 2007-09-25 | 2008-02-20 | 中兴通讯股份有限公司 | 信息安全传输方法和系统 |
CN101388771A (zh) * | 2007-09-10 | 2009-03-18 | 捷德(中国)信息科技有限公司 | 一种下载数字证书的方法和系统 |
CN101587639B (zh) * | 2009-06-23 | 2010-09-01 | 华中科技大学 | 一种基于网格的城市公交信息管理与调度决策支持系统 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7984479B2 (en) * | 2006-04-17 | 2011-07-19 | International Business Machines Corporation | Policy-based security certificate filtering |
-
2012
- 2012-09-28 CN CN201210370352.7A patent/CN103716280B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101388771A (zh) * | 2007-09-10 | 2009-03-18 | 捷德(中国)信息科技有限公司 | 一种下载数字证书的方法和系统 |
CN101127604A (zh) * | 2007-09-25 | 2008-02-20 | 中兴通讯股份有限公司 | 信息安全传输方法和系统 |
CN101587639B (zh) * | 2009-06-23 | 2010-09-01 | 华中科技大学 | 一种基于网格的城市公交信息管理与调度决策支持系统 |
Non-Patent Citations (1)
Title |
---|
《企业轻量级认证中心CA的研究及应用》;胡杭琴;《中国优秀博硕士学位论文全文数据库 (硕士)信息科技辑》;20070415(第4期);第2-3章 * |
Also Published As
Publication number | Publication date |
---|---|
CN103716280A (zh) | 2014-04-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11038682B2 (en) | Communication method, apparatus and system, electronic device, and computer readable storage medium | |
Hameed et al. | A scalable key and trust management solution for IoT sensors using SDN and blockchain technology | |
CN105027493B (zh) | 安全移动应用连接总线 | |
JP5021215B2 (ja) | Webサービス用の信頼できる第三者認証 | |
US9021552B2 (en) | User authentication for intermediate representational state transfer (REST) client via certificate authority | |
CN103427998B (zh) | 一种面向互联网数据分发的身份验证和数据加密方法 | |
US20170201382A1 (en) | Secure Endpoint Devices | |
CN103716280B (zh) | 数据传输方法、服务器及系统 | |
WO2019178942A1 (zh) | 一种进行ssl握手的方法和系统 | |
CN104967590B (zh) | 一种传输通信消息的方法、装置和系统 | |
CN103237305B (zh) | 面向移动终端上的智能卡密码保护方法 | |
CN105429962B (zh) | 一种通用的面向加密数据的中间网络服务构建方法与体系 | |
CN105577377A (zh) | 带密钥协商的基于身份的认证方法和系统 | |
SE540133C2 (en) | Improved system for establishing a secure communication channel | |
SE1451211A1 (en) | Mutual authentication | |
Rizzardi et al. | Analysis on functionalities and security features of Internet of Things related protocols | |
CN102811225A (zh) | 一种ssl中间代理访问web资源的方法及交换机 | |
Faisal et al. | A secure architecture for TCP/UDP-based cloud communications | |
SE542460C2 (en) | Improved security through authenticaton tokens | |
Huszti et al. | Scalable, password-based and threshold authentication for smart homes | |
WO2016112580A1 (zh) | 业务处理方法及装置 | |
Stoianov et al. | Integrated security infrastructures for law enforcement agencies | |
JP2021533599A (ja) | コンピューティング環境でオンプレミスの秘密を複製する安全な方法 | |
KR102321934B1 (ko) | 보안성 향상을 위한 ssl 기반의 프록시 서버 | |
Reimair et al. | In Certificates We Trust--Revisited |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right |
Effective date of registration: 20210924 Address after: 518057 Tencent Building, No. 1 High-tech Zone, Nanshan District, Shenzhen City, Guangdong Province, 35 floors Patentee after: TENCENT TECHNOLOGY (SHENZHEN) Co.,Ltd. Patentee after: TENCENT CLOUD COMPUTING (BEIJING) Co.,Ltd. Address before: 2 East 403 room, SEG science and technology garden, Futian District, Guangdong, Shenzhen 518000, China Patentee before: TENCENT TECHNOLOGY (SHENZHEN) Co.,Ltd. |
|
TR01 | Transfer of patent right |