专利名称:建立传输层安全连接的方法、系统及装置的制作方法
技术领域:
本发明涉及通信技术领域,尤其涉及建立传输层安全连接的方法、系统及 装置。
背景技术:
DNS (域名系统,Domain Name System)实际上是一个大型的分布式数据 库系统,它所执行的基本功能是网络资源(从最早的简单网络上的每个主机名 到后来的域名、邮件地址等)与IP地址之间的翻译。由于DNS是一个被广泛 应用的网络基础设施,所以目前的DNS被赋予了许多新的功能,例如,用它来 进行分发IPsec(Internet协议安全)的公钥信息或SSH(安全外壳,Secure Shell) 的公钥指紋等。DNSSEC是DNS的安全扩展(DNS Security Extension ),它通过区签名的 方式来对资源记录进行数据源认证及完整性保护,所谓区签名,就是利用每个 区所对应的私钥对区内的每一个资源记录集作签名,形成与资源记录集对应的 签名记录。通过获取一个区所对应的公钥,域名解析器可以通过签名验证来判断获得 的资源记录的真实性和完整性。DNSSEC通过建立信任链来保证域名解析器所 获得的公钥的可靠性,作为信任链的开端,每个域名解析器都必须预先配置一 个或多个Trust Anchor (信任锚点),Trust Anchor为某个区的公钥或公钥的消息 摘要。TLS (传输层安全,Transport Layer Security)协议是一个能为Internet上的 通讯双方提供安全可靠的通讯服务的协议,它允许客户端/服务器应用之间进行 防窃听、防消息墓改及防消息伪造的安全通讯。该协议包含两个层次上层的握手协议和下层的记录层协议,这样做的原因是为了保证应用协议的独立性, 使得低级协议对于高级协议保持透明。握手协议的主要功能有1. 负责双方的身份验证,主要有相互认证、服务器认证、无认证三种可选 方式;2. 协商各种算法,比如pre-master-secret (预共享秘密)的协商算法、数 据的加密算法及压缩算法、数据的完整性保护算法,以及连接的版本号等信息;3. 协商pre-master-secret,并据此生成各种数据保护算法所需的密钥。 记录层协议位于某一可靠的传输协议之上,例如TCP协议(传输控制协议,Transmission Control Protocol),它利用握手协议所协商好的各种算法和密钥, 对数据进行分段、压缩、附上MAC (Message Authentication Code,消息认证代 码)、加密,然后将处理过的数据发送出去,接收端则进行相反的处理。为了验证通信双方的身份,同时保证pre-master-secret协商的安全性及机密 性,目前应用最广泛的方法是利用证书来分发服务器公钥并进行身份验证。在这种方案中,需要有证书机构的支持,而这样会直接导致通信代价的增 加,并且,目前还没有任何证书机构能得到所有潜在用户的信赖;在目前所存 在着的诸多证书机构中,不同的证书机构可能使用不同的结构、不同的安全策 略和密钥算法体系,这样会导致使用不同证书的双方无法进行通信;而且,目前不存在一个有效的办法来保证客户能快速、安全的获得众多证 书才几构的7>钥。实体的命名也没有一个统一的标准,比方说,如果A拥有一个由CAl签 发的名为Alice的证书,而B则完全可以拥有一个由CA2签发的同样名为Alice 的证书,这样的话,客户端C就将无法辨别同为Alice的A、 B的身份。发明内容有鉴于此,本发明实施例的主要目的在于提供一种不使用证书机构而建立 传输层安全连接的方法、系统及装置。为达到上述目的,本发明实施例的技术方案是这样实现的本发明实施例公开了一种建立传输层安全连接的方法,包括客户端向域名设备查询获取传输层安全TLS服务器的安全信息,根据所述安全信息与所述TLS服务器进行连接。本发明实施例还公开了 一种建立传输层安全连接的系统,包括客户端和TLS月良务器,还包括域名设备,其中TLS服务器,用于将其安全信息存储到域名设备中;客户端,用于向域名设备查询获取所述安全信息,根据所述安全信息与所述TLS服务器建立连接;域名设备,用于保存所述TLS服务器的所述安全信息,所述域名设备为DNS服务器或者DNS的安全扩展服务器。另外,本发明实施例还公开了一种域名装置,包括记录模块,用于以资源记录的形式存储TLS服务器的安全信息;输出模块,用于根据客户端的请求,向所述客户端输出所述记录模块中的相应资源记录。另外,本发明实施例还公开了 一种包括上述域名装置的DNS服务器和DNS 的安全扩展服务器。在本发明的实施例中,由于采用诸如DNS服务器或者DNS的安全扩展 服务器的域名设备存储TLS服务器的安全信息,只要有Internet的地方就有 DNS,这样TLS协议的应用就可以摆脱证书机构的束縛,增加TLS的应用场景;而且DNS具备全球统一的规范化命名方式,每个用户都有一个明确且唯一的名字的情况;用户可以及时在线获得通信对端的7>钥及用以— 险证对应签名记录的区7> 钥,不会出现因为用户没有证书机构的公钥而无法验证证书的情况。
图1为本发明一实施例的流程示意图;图2为本发明另一实施例的TLS握手协议的消息流示意图;图3为本发明所提供的系统的一个实施例的组成示意图;图4为本发明域名装置实施例一组成示意图;图5为本发明域名装置实施例二组成示意图。
具体实施方式
在本发明的实施例中,将TLS服务器的安全信息存放在域名设备的资源记 录中,方便客户端获取,从而简化交互过程,并提高了安全性能。为使本发明的目的、技术方案和优点更加清楚明白,以下举实施例,并参 照附图,对本发明进一步详细说明。在如图1所示的本发明实施例流程图中步骤101:客户端向域名系统域名设备查询获取传输层安全TLS服务器 的安全信息;在本发明的实施例中,域名设备可以是DNS或者DNSSEC权威服务器, 在支持DNSSEC的网络环境下,究竟采用DNS还是DNSSEC来存储安全信息 取决于服务器所支持的业务对通信安全及效率的权衡。步骤102:客户端根据所述安全信息与TLS服务器进行连接。pre-master-secret是用来生成加密算法、消息摘要算法的密钥,客户端在获 取所述TLS服务器的安全信息后,根据其中的相关信息进行pre-master-secret 协商,协商完成后建立连接。在本发明的实施例中,域名设备可以主动存储TLS服务器自身的安全信息, 或者是接收TLS服务器发送来的自身的安全信息并加以保存,这些安全信息包 括公钥的算法、公钥各个部分的长度及内容,当然,安全信息中还可以包括TLS 服务器所支持TLS协议的最高版本,它们以特定的资源记录格式存入域名设备 中。资源记录是DNS中的数据格式,所有DNS中的数据都可以以资源记录的 形式存储,资源记录有很多种,其格式如下资源记录名网络类别资源记录类型生存时间 数据其中对于资源记录类型代表不同种类资源记录的外在表现,而数据则标识 不同种类的资源记录不同的数据格式。而且,在支持DNSSEC的情况下,设备需要利用TLS服务器所在区域的 私钥对此资源记录签名,生成签名记录。如果同一个网址下的TLS服务器针对 不同的业务采用不同的安全保护方式,那么在资源记录中还可以加入用以辨别 业务的字段,或者修改资源记录的命名格式,在资源记录名前加上业务名的前 缀。在如图2所示的TLS握手协议的消息流示意图中在建立TLS连接时,客户端通过查询域名设备获得特定业务所对应的安全 信息。如果安全信息中包括TLS服务器所支持TLS协议的最高版本,客户端可 以在获知TLS服务器所支持的最高版本号后,将之与自身支持的最高版本号比 较,取其中较低的一个作为本次连接所采用协议的版本号,并将该版本号写入 ClientHello消息中发送至TLS服务器,在收到TLS服务器返回的ServerHello 消息后,将ServerHello中的版本信息与ClientHello中的版本信息比较,如果两 个不一致,则可能出现了传输错误或受到了攻击,此时客户端可以选择中断连 接或发出警告消息。在客户端接收到HelloDone报文后,如果没有ServerKeyExchange报文, 则客户端可以根据资源记录中所存储的密钥格式获知密钥协商算法如果资源记录中存储有服务器的RSA公钥,客户端在获取该公钥后,选择 一个pre-master-secret,利用TLS月1务器的乂>钥,对pre-master-secret进4亍力口密, 用ClientKeyExchange消息将它发给TLS服务器,TLS服务器利用对应的私钥 解密4寻出pre-master-secret,这才羊可以^f呆i正双方一、口道i亥pre-master-secret;如果TLS服务器将进行Diffie-Hellman交换所需的公钥中的p、 g及server 的交换参数存储在资源记录中,客户端根据p、 g产生自己的交换参数,根据两个交换参数即可生成pre-master-secret;产生pre-master-secret的过程可以是客户端获知g、 p后,随机选取x, 则客户端生成自己的交换参数:gAx mod p,而TLS服务器的交换参数为gAy mod p,由于只有客户端知道x,只有TLS服务器知道y,因此客户端可以根据TLS 服务器的交换参数和x计算(gAy modp) Ax=gAxy mod p, TLS服务器计算(g、 mod p)Ay=gAxy mod p,从而双方得到同样的pre-master-secret,他人即4吏知道了 双方的交换参数,如果不知道x、 y的话还是无法计算出gAxymodp的。如果客户端收到ServerKeyExchange报文,则协商算法为DHE, TLS服务 器存储在资源记录中的公钥则是用来验证签名的,而非用来进行直接密钥交换 的。DHE密钥交换算法和DH交换的区别在于TLS服务器和客户端利用DH 算法来协商密钥时,每次协商所用的g、 p是固定的,而DHE算法中所采用的 g、 p是可变的。在DHE算法中,对于每次协商TLS服务器都将产生一个新的 p、 g组合,并以此产生自身的交换参数,TLS服务器通过ServerKeyExchange 消息来通知客户端此次密钥协商的p、 g以及TLS服务器的交换参数,为了保 证serverkeyexchange消息中的内容的源认证及数据完整性,TLS服务器需要对 p、 g及交换参数等内容进行签名,而资源记录中的公钥的作用就是由客户端用 来验证签名。如图3所示的建立传输层安全连接的系统实施例中,包括客户端203、域名设备201和TLS服务器202,其中TLS服务器202,用于将其安全信息存储到域名设备201中; 客户端203,用于向域名设备201查询获取所述安全信息,根据所述安全信息与TLS月良务器202进行pre-master-secret协商;域名设备201,用于保存所述TLS服务器202的所述安全信息,在所述客户端203查询时,将所述安全信息发送给所述客户端203;一般而言,域名设备可以是DNS服务器或者DNS的安全扩展服务器。 在如图4所示的域名装置实施例中,包括记录模块2011和输出模块2012,其中记录模块20U,用于以资源记录的形式存储TLS服务器的安全信息; 输出模块2012,用于根据客户端的请求,向所述客户端输出所述记录模块中的相应资源记录。一般情况下,这样的域名装置可以包含在DNS服务器或DNS的安全扩展服务器中。当然,在域名装置包含在DNS的安全扩展服务器中时,还可以如图5所示, 包括一个签名模块2013,用于根据所述TLS服务器所在区域的私钥对所述记录 模块存储的资源记录签名。可以理解的是,本发明实施例还可以计算机可读介质的形式独立存在,而 这样的计算机可读介质可以是包含、存储、传达、传播或者传输计算机程序的 介质,所迷计算机程序为使用指令以运行本发明实施例所提供的系统装置、系 统或者设备的程序,或者是与该指令有关的程序。该计算机可读介质可以是电 子、磁、电磁、光学、红外或者半导体的系统、装置、设备、传播介质或者计 算机存储器。可以看出,由于采用诸如DNS服务器或DNS的安全扩展服务器的域名设 备存储TLS服务器的安全信息,只要有Internet的地方就有,这样TLS协议的 应用就可以摆脱证书机构的束绰,增加TLS的应用场景;而且DNS具备全球统一的规范化命名方式,每个用户都有一个明确且唯一的名字的情况;用户可以及时在线获得通信对端的公钥及用以验证对应签名记录的区公 钥,不会出现因为用户没有证书机构的公钥而无法验证证书的情况。以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通 技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰, 这些改进和润饰也应视为本发明的保护范围。
权利要求
1. 一种建立传输层安全连接的方法,其特征在于,所述方法包括客户端向域名设备查询获取传输层安全TLS服务器的安全信息,根据所述安全信息与所述TLS服务器进行连接。
2、 如权利要求l所述的方法,其特征在于,所述客户端向域名设备查询 获取传输层安全TLS服务器的安全信息,具体为客户端向域名设备查询获取传输层安全TLS服务器存储到所述域名设 备中的安全信息。
3、 如权利要求l所述的方法,其特征在于,所述客户端向域名设备查询 获取传输层安全TLS服务器的安全信息,具体为客户端向域名设备查询获取传输层安全TLS服务器的公钥的算法、内容 及长度。
4、 如权利要求3所述的方法,其特征在于,当所述域名设备为域名系统 DNS的安全扩展服务器时,还包括所述TLS服务器将所述公钥的算法、内容及长度,以资源记录的形式存 储到所述域名设备中;所述域名设备利用所述TLS服务器所在区域的私钥对所述资源记录签名。
5、 如权利要求4所述的方法,其特征在于,所述资源记录中还包括标识 业务的字段。
6、 如权利要求4所述的方法,其特征在于,在所述资源记录的命名格式 中,服务器的DNS域名前包括业务名的字段。
7、 如权利要求1至6任一所述的方法,其特征在于,所述安全信息还包 括所述TLS服务器支持的TLS协议的最高版本号;在所述客户端向域名设备查询获取安全信息后,还进一步包括 所述客户端将荻取的所述最高版本号与自身所支持的最高版本号中间 的较低者发送给所述TLS服务器,根据所述TLS服务器返回的包含版本号的消息,如果返回的所述版本号与发送给所述TLS服务器的版本号不同,则中 断连接或发警告消息。
8、 如权利要求1至6任一所述的方法,其特征在于,所述客户端向域名 设备查询获取传输层安全TLS服务器的安全信息,具体为客户端向DNS服务器或者DNS的安全扩展服务器查询获取传输层安全 TLS服务器的安全信息。
9、 一种建立传输层安全连接的系统,包括客户端和TLS服务器,其特 征在于,还包括域名设备,其中所述TLS服务器,用于将其安全信息存储到域名设备中;所述客户端,用于向域名设备查询获取所述安全信息,根据所述安全信息与所述TLS服务器建立连接;所述域名设备,用于保存所述TLS服务器的所述安全信息,所述域名设备为DNS服务器或者DNS的安全扩展服务器。
10、 一种域名装置,其特征在于,包括记录模块,用于以资源记录的形式存储TLS服务器的安全信息; 输出模块,用于根据客户端的请求,向所述客户端输出所述记录模块中 的相应资源记录。
11、 如权利要求10所述的装置,其特征在于,还包括签名模块,用于根 据所述TLS服务器所在区域的私钥对所述记录模块存储的资源记录签名。
12、 一种域名系统服务器,其特征在于,包括如权利要求10所述的域名 装置。
13、 一种域名系统的安全扩展服务器,其特征在于,包括如权利要求IO 所述的域名装置。
全文摘要
本发明涉及建立传输层安全连接的方法、系统及装置,客户端向域名设备查询获取传输层安全TLS服务器的安全信息,根据所述安全信息与所述TLS服务器进行连接。由于采用诸如DNS服务器或者DNS的安全扩展服务器的域名设备存储TLS服务器的安全信息,只要有Internet的地方就有,这样TLS协议的应用就可以摆脱证书机构的束缚,增加了TLS的应用场景。
文档编号H04L9/08GK101242426SQ20071007323
公开日2008年8月13日 申请日期2007年2月6日 优先权日2007年2月6日
发明者潘云波 申请人:华为技术有限公司