发明名称 一种SSL服务端动态选择证书的实现方法
摘要 本发明的目的在于公开一种SSL服务端动态选择证书的实现方法,通过在客户端发起请求时SSL协议的ClientHello包中声明自身支持的算法,实现SSL服务端握手的动态选择证书,从而支持对不同客户端的兼容和两种算法的平滑过渡,实现本发明的目的。
申请公布号 CN102546572B 申请公布日期 2015.08.12
申请号 CN201010619005.4 申请日期 2010.12.31
申请人 上海格尔软件股份有限公司 发明人 掌晓愚;韩洪慧;张义民
分类号 H04L29/06(2006.01)I 主分类号 H04L29/06(2006.01)I
代理机构 上海天翔知识产权代理有限公司 31224 代理人 刘粉宝
主权项 一种SSL服务端动态选择证书的实现方法,其特征在于,它包括如下步骤:1)在SSL服务端预先配置两套站点证书,一套为ECC证书,另一套为RSA证书;2)客户端发起请求时,在SSL协议的ClientHello包中声明自身支持的算法;3)SSL服务端检查收到的ClientHello包,分析其支持的算法,如果支持ECC算法则选用ECC相关的证书进行后续的SSL握手;如果不支持ECC算法则仍选用RSA相关的证书进行后续的SSL握手;如果客户端支持ECC算法,则选择RFC 4492规范中指定的ECC相关算法组合,否则使用RFC 5246规范中在hiding的RSA相关算法组合;服务端检查客户端请求,检查收到的ClientHello包,分析其支持的算法,如果支持ECC则在返回的ServerHello中的CipherSuite字段中指定后续握手使用的算法组合;4)客户端和SSL服务端完成SSL握手的后续步骤;如果步骤3)中选择了ECC算法,则服务端在ServerCertificate包中向客户端发送自身的ECC证书,服务端发CertificateRequest,ServerHelloDone,SLL协议数据包;客户端在ClientCertificate包中提交自身的ECC证书,并且客户端在ClientCertificateVerrify包中使用ECC算法进行密钥协商;最后,服务器使用ECC算法完成密钥协商和SLL握手过程;如果步骤3)中不支持ECC算法,则服务端在ServerCertificate包中向客户端发送自身的RSA证书,服务端发CertificateRequest,ServerHelloDone,SLL协议数据包;客户端在ClientCertificate包中提交自身的RSA证书,并且客户端在ClientCertificateVerrify包中使用RSA算法进行密钥协商;最后,服务器使用RSA算法完成密钥协商和SLL握手过程;由此,该实现方法通过在客户端发起请求时SSL协议的ClientHello包中声明自身支持的算法,实现SSL服务端握手的动态选择证书,从而支持对不同客户端的兼容和两种算法的平滑过渡,整个过程中的客户端只需要遵循SSL协议相关国际规范,而服务端则在原有SSL协议处理流程的基础上设计了动态选择证书的实现,从而实现了对RSA和ECC证书的自适应,可以让一个服务端同时兼容不同算法的客户端。
地址 200070 上海市闸北区秣陵路50号