本发明涉及安全通信,并且更具体地,涉及网络上的安全通信。
背景技术:
安全套接字层(ssl)连接具有两个阶段,握手和数据传输。在握手期间使用非对称密钥加密算法来建立密码算法协定和对称加密密钥交换。在数据传送阶段期间,利用给定的密码算法、利用商定的密钥建立连接,然后可以在共享该连接的设备之间交换加密数据。
技术实现要素:
根据本发明的实施例,本文描述了一种利用多个密码建立加密链路的方法。在握手协议期间,当建立安全会话时,至少两组密码套件由客户端发送到服务器。然后,客户端可以从服务器接收用于至少两组密码套件中的每一组的选择密码套件。客户端从服务器接收的选择密码套件中选择第一选择密码套件。客户端使用第一选择密码套件来与服务器建立连接以加密该连接。
根据本发明的实施例,本文描述了一种利用多个密码建立加密链路的方法。服务器在握手期间从客户端接收至少两组密码套件。针对至少两组密码套件中的每一组来选择选择密码套件。选择密码套件被发送到客户端。使用第一选择密码套件来建立连接以加密该连接。
计算系统和计算机程序产品可以体现本公开的方法和结构。计算系统可以包括网络、被配置为存储密码套件的存储器、以及与存储器通信的处理器。计算系统可以被配置为执行该方法。
上述概要并非旨在描述本发明的每个所示实施例或每种实施方式。
附图说明
本文的附图并入说明书中并形成说明书的一部分。它们示出了本发明的实施例,并且与说明书一起用于解释本发明的原理。附图仅是本发明的某些实施例的说明,而不对本公开进行限制。
图1示出了根据本发明实施例的用于利用多个密码建立安全链路的示例系统的框图。
图2描绘了根据本发明实施例的ssl连接寿命的示例。
图3描绘了根据本发明实施例的ssl握手协议的示例。
图4a描绘了根据本发明实施例的用于客户端侧设备发起加密链路的示例过程的流程图。
图4b描绘了根据本发明实施例的用于服务器侧设备发起加密链路的示例过程的流程图。
图5示出了根据本发明的实施例的用于实现本文描述的一个或多个方法或模块以及任何相关功能或操作的示例计算机系统的高级框图。
虽然本发明的细节已经在附图中通过示例的方式示出并且将被详细描述,但是本发明可被修改为各种修改和替换形式。然而,应当理解,其目的不是将本发明限制于所描述的特定实施例。相反,本发明覆盖落入本发明范围内的所有修改、等效和替换。
具体实施方式
本发明的方面涉及安全通信,并且更具体的方面涉及网络上的安全通信。虽然本发明不必局限于这些应用,但是通过使用该上下文讨论各种示例,可以理解本发明的各个方面。
安全套接字层(ssl)协议和其它类似的通信安全协议,例如传输层安全(tls),使用对称和非对称密钥算法的组合来保护网络通信。非对称密钥加密算法可以用于建立会话和认证参与者(例如,客户端和服务器)。此外,加密的通信使用密码算法和参与者商定的相关对称加密密钥。每个会话使用单个商定的密码套件(加密算法和相关联的加密密钥组合)来建立。如果希望选择新的密码和密钥组合,则必须关闭现有会话,并且利用具有修改的配置信息的新握手来发起新会话,以帮助选择新的密码和密钥。
改变使用中的密码和密钥组合的一个原因是节省移动设备的电池寿命。虽然安全通信通常可能优选地保护数据,但是这些协议可能非常耗费电源。设备可以选择关闭安全会话,并以较低安全的密码和密钥开始新的会话,以节省电池。然而,由于建立每个会话需要加密/解密非对称密钥,因此就处理器使用和处理所需的总时间而言,针对给定操作建立多个会话是昂贵的。
用固定加密(密码和密钥组合)维持单个会话具有其自身的成本。如果使用"强"加密,则处理器使用和所需时间是相当大的。如果使用中等或弱加密,则数据可能暴露于安全威胁。
本文提供了用于提供具有多个密码套件和相关联的加密密钥的加密链路的系统、方法和计算机程序产品。通过允许设备建立具有多个密码和密钥的会话,可以通过改变使用中的密码来改变会话的加密强度,以优化功率使用而无需初始化新的会话。
本文描述了一种系统,包括存储器和处理器。存储器包含两组或更多组密码套件。处理器与存储器通信,并且可以被配置为执行安全通信,诸如通过建立安全会话。处理器用于保护通信的方法可以如下描述的。
如本文所述,用于建立安全通信链路的方法通常可在客户端与服务器之间执行。在本发明的实施例中,客户端可以通过向服务器发送"你好"消息经由握手来发起建立安全连接。客户端在握手期间向服务器发送两组或更多组不同的密码套件。每组密码套件可以表示不同的安全级别。例如,客户端可以向服务器发送两组密码套件,分别是一组吞吐量套件和一组安全套件。在本发明的实施例中,客户端还可以发送第三组套间,例如中间套间等。
然后,客户端响应于所发送的密码套件的组,从服务器接收用于至少两组密码套件中的每一组的选择密码套件。选择密码套件通常可以是每组中服务器发现最适合其自身配置的套件。例如,如上所述,如果服务器从客户端接收两组密码套件,即吞吐量组和安全组,则服务器将选择并向客户端返回两个选择套件,即选择吞吐量密码套件和选择安全密码套件。服务器根据一组预定的参数,例如服务器自己的配置文件,来对选择吞吐量密码套件和选择安全密码套件中的每一者进行选择。在实施例中,服务器可以包括在传送选择密码套件时的服务器密钥交换和/或可以提交对客户端证书的请求。
在接收到服务器的针对每个组的选择套件之后,客户端可以继续从由服务器标识的两个或更多个选择密码套件中选择第一密码套件。第一密码套件通常可根据要被传送到服务器的客户端数据的第一部分的适当安全级别来选择。例如,如果客户端希望传送的数据的第一部分是敏感数据,则客户端可以从服务器所标识的两个或更多个选择密码套件中选择最安全的密码套件作为第一密码套件。在选择了第一密码套件后,客户端可以通知服务器使用第一密码套件来使用改变密码协议对加密的链路进行加密/解密。客户端可以通过使用第一密码套件加密连接来完成与服务器的安全连接的建立。客户端可以另外在改变密码协议之前参与与服务器的密钥交换。客户端可以响应于对客户端证书的服务器请求而向服务器提交客户端证书,并且可以另外执行证书验证。在实施例中,客户端、服务器或任何传送设备可以在多个选择密码套件中选择将用于对加密链路进行加密的一个选择密码套件,并且使用改变密码协议来改变当前使用的加密。
在本发明的实施例中,可以选择第二选择密码套件。第二选择密码套件可以是未被选择作为第一选择密码套件的任何选择密码套件。例如,如果客户端发送两组密码套件,即安全组和吞吐量组,则客户端从服务器接收两个选择套件,即选择安全套件和选择吞吐量套件。如果客户端将选择安全套件选择作为适合于要传送的客户端数据的第一部分的第一选择套件,但稍后传送较不安全的数据,则客户端可以然后选择选择吞吐量套件,并使用改变密码协议来将用于加密链路的密码从选择安全套件改变到选择吞吐量套件。
在选择了第二选择密码套件后,客户端可以使用第二选择密码套件来发起与服务器的改变密码协议。作为响应,客户端从服务器接收改变密码协议完成的指示。在客户端接收到该指示后,客户端可以开始用第二选择密码套件来传送以供加密。
在本发明的实施例中,服务器或其它接收设备在握手期间从客户端接收至少两组密码套件。服务器选择针对至少两组密码套件中的每一组的选择密码套件。服务器可以根据服务器自己的配置进行选择密码套件的选择,并选择每个中最适合该配置的套件。服务器可以参考配置文件,参考文件包含最适合服务器自身配置的一个或多个密码套件。服务器将选择密码套件发送给客户端。然后,服务器使用由客户端或其它传送设备选择的第一选择密码套件来参与客户端来与客户端建立安全连接,以加密该连接。在本发明的实施例中,当与服务器建立安全连接后,服务器可以接收客户端密钥交换。第一选择密码套件可使用改变密码协议来建立。
在本发明的实施例中,服务器可以从客户端或其它传送设备接收建立第二选择密码套件的改变密码协议。作为响应,服务器或接收设备可以使用改变密码协议来初始化第二选择密码套件。服务器可以向客户端发送改变密码协议完成的指示。服务器然后可以发送和接收使用第二选择密码套件加密的数据。在实施例中,服务器还可以使用改变密码协议,以通过提交商定的密码中的一个来改变会话加密。
现在参考图1,根据本发明的实施例,描述了用于建立具有多个密码的安全链路的示例系统100的框图。应当理解,如图1中所示的系统100的两个计算机112a、112b的组织是非限制性的,其它可能的组织/配置是可能的,包括但不限于具有经由网络链路连接的三个以上移动设备的系统。
系统100描述了经由网络链路114通信的两个计算机112a和112b。计算机112a、112b中的每一个包含网络层110a、110b,其包含网络协议以启用并支持网络链路114。网络协议可以包括寻址、路由和业务控制。
计算机112a、112b中的每一个包含互联网层108a、108b,其主要涉及互联网协议(ip)和关于ip地址的数据分组的适当处理。
计算机112a、112b中的每一个包含传输层106a、106b。传输层106a、106b通常可以负责网络中的点之间的数据段的传送。这个角色可以包括分段、确认和复用。
计算机112a、112b中的每一个包含安全层104a、104b,其可主要涉及认证机制。在实施例中,本文描述的方法可以由安全层104a、104b来执行。
计算机112a、112b中的每一个包含应用层102a、102b。应用层可以包含高级应用编程接口,诸如资源共享和远程文件访问。
现在参见图2,根据本发明的实施例,描述了ssl连接寿命200的示例。连接寿命200在该示例中被示为从主机a212进行到主机b214。应当理解,在初始握手和密码协商之后,主机b214可以在相同的通信信道上从主机b214向主机a212独立地发送数据和密码改变。类似地,在本发明的实施例中,主机b214可以发起握手和密码协商。
在202,主机a212通过发起握手和多密码协商来发起连接。在202,主机a212(在该示例中为发起设备)可以通过向主机b214(在该示例中为接收设备)传送数据分组来发起握手。在本发明的实施例中,主机a212可以是浏览器,而主机b214可以是http服务器。主机a212还可以通过在握手期间向主机b214提交两组或更多组密码套件来发起多密码协商。密码套件的组可以根据所提供的安全度来组织,或者在本发明的实施例中可以被随机地分类为组。例如,主机a212可以提交两组密码套件,每组包含高安全加密。如同在此,主机a212可以具有六个高安全密码套件,并且可以将这六个高安全套件随机地组织成两组,每组三个套件。通过向主机b214提交两组密码套件,主机a212通知主机b214主机a212想要对在会话期间使用的两个高安全加密进行协商。在实施例中,主机a212可以以优先顺序提交一组密码套件。主机b214可以通过在每组中选择服务器确定其可支持的第一套件来对主机a212的偏好进行加权。
在204,主机a212使用改变密码协议来设置第一密码。在206,主机a212使用第一密码将数据传输到主机b214。
在208,主机a212通过使用改变密码协议来改变密码以设置第二密码。主机a212可以响应于检测当前加密中的安全风险而在208改变密码,或者密码可以以周期性或随机间隔而改变。如在以上示例中,如果在握手期间对多个高安全套件达成协商,则可对当前使用的加密进行轮换以增加会话的安全性。
主机a212现在可在210处使用第二密码将数据传送到主机b214。
在主机b214从主机a212接收到包含第二密码的改变密码协议分组后,主机b214可以确定后续接收到的数据将用第二密码加密。主机b214可在初始化第二密码之前,首先使用用于解密的第一密码读取其读取-等待-缓冲器中的所有数据。在实施例中,主机b214可尝试第一密码和第二密码中的每一者来对读取-待决-缓冲器中的数据进行解密。
现在参见图3,根据本发明的实施例,描述了在客户端302和服务器304之间的ssl握手协议的示例。可理解,所描述的从客户端302引导到服务器304的协议组织是非限制性的,其它可能的组织/配置也是可能的,包括但不限于服务器304发起协议或协议的一部分,例如改变密码协议。
客户端302或其它传送设备使用客户端"你好"消息306来发起握手和多密码协商。客户端"你好"消息可以包含两个或更多个密码组,其可使密码套件根据所提供的不同安全级别被分类到多个组中。对于每组,可以按照优先顺序列出套件。
服务器304或其它接收设备以服务器"你好"消息308进行响应。服务器"你好"消息308可以包含由服务器从客户端在客户端"你好"消息306中提交的每组中选择的选择密码套件,以供在发起的加密链路会话期间使用。在本发明的实施例中,服务器"你好"消息308可任选地包含对客户端证书的请求。服务器"你好"消息308可以包含针对所选择的密码套件中的每一个的服务器密钥交换。
客户端"你好"消息306和服务器"你好"消息308共同可包括握手协议的第一阶段。在该阶段期间,客户端302和服务器304中的每一个可以经由包括在它们各自的"你好"消息中的分组来彼此交换数据。它们可以交换与建立安全能力(包括协议版本)、会话id、密码套件、压缩方法和初始随机数有关的分组。
在本发明的实施例中,服务器304还可提供服务器"你好完成"消息310。
服务器"你好完成"消息310可包括握手协议的第二阶段。在实施例中,第二阶段还可以包括服务器证书消息、服务器密钥交换和对客户端证书的服务器请求。
在本发明的实施例中,例如如果由服务器请求,则客户端302可以可选地提供客户端证书消息312。
客户端302和服务器304参与一系列密钥交换,服务器所选择的每个密码套件用一个密钥交换。在协议中呈现的示例中,存在三个密钥交换,吞吐量密钥交换314、安全密钥交换316和中间密钥交换318。根据在协议的第一阶段期间由客户端302提交的密码套件的组数来确定密钥交换的次数。所交换的密钥对于服务器和客户端是共同的。
在本发明的实施例中,客户端302可以可选地提供客户端证书验证消息320。
客户端证书消息312、密钥交换314、316、318和客户端证书验证消息320可以包括协议的第三阶段。
客户端302可以使用改变密码协议消息322来选择用于加密的初始选择密码套件。初始选择密码套件可由客户端302根据要传送到服务器304的数据的第一部分的敏感度来选择。
服务器304初始化所选择的密码套件,并使用改变密码协议消息324来警告客户端302服务器304准备好接收用初始选择密码套件加密的数据。
在本发明的实施例中,改变密码协议消息322和324可以是协议的第四阶段。客户端302和服务器304中的每一个可在完成它们自己的改变密码协议部分之后另外提供"完成"消息。握手协议可在该第四阶段期间完成。
然后,客户端302和服务器304可以使用所选择的密码套件将加密的链路用于数据传输326。在实施例中,客户端302和服务器304中的每一个可以通过提交改变密码协议和握手期间商定的选择密码套件中的一个选择密码套件来改变会话的加密。
在本发明的实施例中,会话连接在建立后可以是双向的。服务器304和客户端302中的每一个都可以向彼此传送数据,并且每一个都可以同时传送和接收数据。当发送方执行动作时,每一者可以独立地执行改变密码协议,并且选择针对要传送的数据的商定的密码中的一个密码。这样,在信道上可以有两种不同的密码,一种在服务器到客户端的链路上,另一种在客户端到服务器的链路上。
在数据传输326之后,客户端302和服务器304可以参与另一个改变密码协议328,并且利用另一个选择密码协议对诸如数据传输330的进一步通信进行加密。例如,客户端302可以利用客户端"你好"消息306向服务器提交两组密码协议。客户端302可以提交具有密码套件q、r和s的组,以及具有套件x、y和z的另一组。服务器304可以根据客户端302的偏好和服务器304自己的配置来选择套件q和x作为选择密码套件。使用改变密码协议消息322,客户端302可建立套件q作为会话的当前加密算法。然后,可以使用密码套件q对数据传送326中的数据进行加密和解密。使用密码改变协议328,客户端302或服务器304然后可将当前加密算法改变为另一个商定的选择密码套件,在该示例中为套件x。然后,可以使用密码套件x来加密和解密数据传输330中的数据。在实施例中,当接收到改变密码协议消息328时,服务器304或接收设备可以在读取-等待-缓冲器中具有来自传输326的数据。服务器304可在响应于改变密码协议消息328而完成套件x的初始化之前,完成使用套件q从数据传输326读取数据。
现在参考图4a,根据本发明的实施例,描述了客户端侧设备发起加密链路的示例过程400的流程图。
在操作404,客户端或其它传送设备通过发送初始数据分组来发起握手。初始数据分组可以包含客户端"你好"消息和客户端建议在会话期间使用的两组或更多组密码套件。
在操作412,客户端从服务器或其它接收设备接收服务器数据分组。服务器数据分组可以包含服务器从客户端在操作404中提出的每组密码套件中选择的密码套件。
在操作414,例如,如果服务器请求客户端证书,则客户端可以向服务器发送证书。在操作416,客户端发送针对每个选择密码套件的客户端密钥交换。在操作418,例如,如果服务器已经请求了客户端证书,则客户端可以发送客户端证书验证。在操作420,客户端发送用于加密链路的初始密码套件和用于设置初始密码套件的改变密码协议。在操作426,客户端接收服务器已经完成密码改变协议的服务器侧的确认,并且设置初始密码套件。
现在参考图4b,根据本发明的实施例,描述了服务器侧设备发起加密链路的示例过程401的流程图。应当理解,所描述的从客户端到服务器的过程400和401的组织是非限制性的,因为其它可能的组织/配置也是可能的,包括但不限于,过程400由服务器发起,而过程401由客户端执行。
在操作406,服务器接收客户端的初始数据分组。初始数据分组可以包含许多密码套件,例如其根据每个套件提供的不同安全度而被分成组。
在操作408,服务器从在每个组中提供的密码套件中选择服务器可以支持的来自每个组中的一个密码套件。在实施例中,服务器可以参考配置文件,例如服务器自己的配置文件,以获得用于确定服务器可以支持给定组中的哪个密码套件的参数。在本发明的实施例中,所接收的组可以具有所包含的按照客户端的偏好的顺序布置的密码套件,并且服务器可以在每个组中选择其识别为可兼容的第一套件。
在本发明的实施例中,服务器可以选择比客户端提交的组更少的选择密码套件。例如,客户端可以提交两组密码套件,但是服务器可能在其中一组中找不到兼容套件。在这种情况下,服务器可能只返回一个选择密码套件。
在操作410,服务器将选择密码套件、来自服务器已选择在会话被发起期间使用的每个组中的密码套件发送到客户端或其它传送设备。在实施例中,服务器可以另外传送客户端证书请求和/或用于选择密码套件的服务器密钥交换。
在操作422,服务器从客户端接收密码改变协议以及第一密码。第一密码可以由客户端或其它传送设备根据要传送到服务器的数据的期望安全度来选择。服务器响应于密码改变协议来初始化第一密码套件。例如,如果服务器已经请求了客户端证书,则服务器可以附加地接收客户端证书,无论具有或不具有客户端证书验证以及客户端侧密钥交换。
在操作424,服务器向客户端发送密码改变协议消息,以指示服务器已经完成了其协议部分并初始化了第一密码套件。在本发明的实施例中,客户端或服务器中的任一个可以在整个会话期间发起进一步的密码改变协议,根据要传送的数据的必要或期望的安全度以及进一步根据对省电(例如电池寿命)的考虑来调整加密的安全性。
现在参考图5,示出了根据本发明的实施例的示例计算机系统(即,计算机)500的高级框图,该计算机系统可以用于实现本文描述的方法或模块中的一个或多个以及任何相关功能或操作(例如,使用计算机的一个或多个处理器电路或计算机处理器)。在本发明的一些实施例中,计算机系统500的主要组件可以包括一个或多个处理器或cpu502、存储器子系统504、终端接口512、i/o(输入/输出)设备接口514、存储接口516和网络接口518,所有这些组件可以直接或间接地通信耦合,以便经由存储器总线503、i/o总线508和i/o总线接口单元510进行组件间通信。
计算机系统500可以包含一个或多个通用可编程中央处理单元(cpu)502a、502b、502c和502d,在此一般称为cpu502。在本发明的一些实施例中,计算机系统500可以包含相对大的系统的典型的多个处理器;然而,在本发明的其它实施例中,计算机系统500可以替代地是单cpu系统。每个cpu502可以执行存储在存储器子系统504中的指令,并且可以包括一级或多级板载高速缓存。
在本发明的一些实施例中,存储器子系统504可以包括随机存取半导体存储器、存储设备或用于存储数据和程序的存储介质(易失性或非易失性)。在本发明的一些实施例中,存储器子系统504可以表示计算机系统500的整个虚拟存储器,并且还可以包括耦合到计算机系统500或经由网络连接的其它计算机系统的虚拟存储器。存储器子系统504在概念上可以是单个单片实体,但是在本发明的一些实施例中,存储器子系统504可以是更复杂的布置,例如高速缓存和其它存储器设备的层级。例如,存储器可存在于多级高速缓存中,并且这些高速缓存可进一步按功能划分,使得一个高速缓存保存指令,而另一个高速缓存保存由一个或多个处理器使用的非指令数据。存储器还可以是分布式的,并且与不同的cpu或cpu组相关联,如所公知的在各种所谓的非均匀存储器存取(numa)计算机体系结构中的任何一种。在本发明的一些实施例中,主存储器或存储器子系统504可以包含用于控制和流式执行由cpu502使用的存储器的元件。这可以包括存储器控制器505。存储器504可以包含多组密码套件。在该示例系统中,描述了一组吞吐量密码套件520a和一组安全密码套件520b。在实施例中,可以存储其它组密码套件,例如,一组中间安全的密码套件,或者根据除安全之外的其它标准而组织的密码套件。
尽管存储器总线503在图5中被示为在cpu502、存储器子系统504和i/o总线接口510之间提供直接通信路径的单总线结构,但是在本发明的一些实施例中,存储器总线503可以包括多个不同的总线或通信路径,其可以以各种形式来布置,诸如分层的点对点链路、星形或网状配置、多层级总线、并行和冗余路径、或任何其它适当类型的配置。此外,虽然i/o总线接口510和i/o总线508被示为单个相应的单元,但是在本发明的一些实施例中,计算机系统500可以包含多个i/o总线接口单元510、多个i/o总线508或两者。此外,虽然示出了i/o总线508,其将多个i/o接口单元与通向各种i/o设备的各种通信路径分开,但是在本发明的其它实施例中,一些或所有i/o设备可以直接连接到一个或多个系统i/o总线。
在本发明的一些实施例中,计算机系统500可以是多用户大型计算机系统、单用户系统、或者服务器计算机或具有很少或没有直接用户接口但从其它计算机系统(客户端)接收请求的类似设备。此外,在本发明的一些实施例中,计算机系统500可以被实现为台式计算机、便携式计算机、膝上型或笔记本计算机、平板计算机、袖珍计算机、电话、智能电话、移动设备或任何其它适当类型的电子设备。
注意,图5旨在描绘示例性计算机系统500的代表性主要组件。然而,在本发明的一些实施例中,各个组件可以具有比图5中所示的更大或更小的复杂性,可以存在不同于图5中所示的组件或除了这些组件之外的组件,并且这些组件的数量、类型和配置可以改变。
在任何可能的技术细节结合层面,本发明可以是系统、方法和/或计算机程序产品。计算机程序产品可以包括计算机可读存储介质,其上载有用于使处理器实现本发明的各个方面的计算机可读程序指令。
计算机可读存储介质可以是可以保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以是——但不限于——电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、静态随机存取存储器(sram)、便携式压缩盘只读存储器(cd-rom)、数字多功能盘(dvd)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。这里所使用的计算机可读存储介质不被解释为瞬时信号本身,诸如无线电波或者其他自由传播的电磁波、通过波导或其他传输媒介传播的电磁波(例如,通过光纤电缆的光脉冲)、或者通过电线传输的电信号。
这里所描述的计算机可读程序指令可以从计算机可读存储介质下载到各个计算/处理设备,或者通过网络、例如因特网、局域网、广域网和/或无线网下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光纤传输、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或者网络接口从网络接收计算机可读程序指令,并转发该计算机可读程序指令,以供存储在各个计算/处理设备中的计算机可读存储介质中。
用于执行本发明操作的计算机程序指令可以是汇编指令、指令集架构(isa)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、集成电路配置数据或者以一种或多种编程语言的任意组合编写的源代码或目标代码,所述编程语言包括面向对象的编程语言—诸如smalltalk、c 等,以及过程式编程语言—诸如“c”语言或类似的编程语言。计算机可读程序指令可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络—包括局域网(lan)或广域网(wan)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。在一些实施例中,通过利用计算机可读程序指令的状态信息来个性化定制电子电路,例如可编程逻辑电路、现场可编程门阵列(fpga)或可编程逻辑阵列(pla),该电子电路可以执行计算机可读程序指令,从而实现本发明的各个方面。
这里参照根据本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述了本发明的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。
这些计算机可读程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些指令在通过计算机或其它可编程数据处理装置的处理器执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置和/或其他设备以特定方式工作,从而,存储有指令的计算机可读介质则包括一个制造品,其包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各个方面的指令。
也可以把计算机可读程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机、其它可编程数据处理装置、或其它设备上执行的指令实现流程图和/或框图中的一个或多个方框中规定的功能/动作。
附图中的流程图和框图显示了根据本发明的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,所述模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
以上已经描述了本发明的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术的技术改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。
1.一种用于提供加密链路的系统,包括:
存储器,其包含两组或更多组密码套件;以及
处理器,其与所述存储器通信,其中,所述计算机系统被配置为执行方法,所述方法包括:
在握手期间,将至少两组密码套件发送到服务器;
从所述服务器接收针对所述至少两组密码套件中的每一组的选择密码套件;
选择第一选择密码套件;以及
使用所述第一选择密码套件来与所述服务器建立连接以加密所述连接。
2.根据权利要求1所述的系统,其中,所述至少两个密码套件中的每一个提供不同的数据安全度。
3.根据权利要求2所述的系统,其中,所述至少两个密码套件中的至少一个是安全密码。
4.根据权利要求1所述的系统,所述方法还包括:执行客户端密钥交换。
5.根据权利要求1所述的系统,其中,从所述服务器接收选择密码套件包括服务器密钥交换。
6.一种建立加密链路的方法,包括:
在握手期间,将至少两组密码套件发送到服务器;
从所述服务器接收针对所述至少两组密码套件中的每一组的选择密码套件;
选择第一选择密码套件;以及
使用所述第一选择密码套件来与所述服务器建立连接以加密所述连接。
7.根据权利要求6所述的方法,其中,与所述服务器建立连接包括:密钥交换和使用所述第一选择密码套件的改变密码协议。
8.根据权利要求6所述的方法,还包括:
选择第二选择密码套件;
用所述第二选择密码套件启动与所述服务器的改变密码协议;
从所述服务器接收所述改变密码协议完成的指示;以及
响应于接收到所述改变密码协议完成的所述指示,发送使用所述第二选择密码套件加密的数据。
9.根据权利要求6所述的方法,还包括:
从所述服务器接收改变密码协议和第二选择密码套件;
向所述服务器发送所述改变密码协议完成的指示;
从所述服务器接收用所述第二选择密码套件加密的数据;以及
使用所述第二选择密码套件来解密所接收的数据。
10.根据权利要求6所述的方法,其中,所述至少两组密码套件中的每一组提供不同的数据安全度。
11.根据权利要求10所述的方法,还包括:使用所述第一选择密码套件将数据传送到所述服务器,其中,所述第一选择密码套件是根据与所传送的所述数据相关联的安全度来选择的。
12.根据权利要求6所述的方法,还包括:发送客户端证书。
13.一种用于建立加密链路的方法,包括:
在握手期间,从客户端接收至少两组密码套件;
针对所述至少两组密码套件中的每一组来选择密码套件;
将所述选择密码套件发送到所述客户端;以及
使用第一选择密码套件来与所述客户端建立连接以加密所述连接。
14.根据权利要求13所述的方法,其中,与所述客户端建立连接包括:密钥改变和使用所述第一选择密码套件的改变密码协议。
15.根据权利要求13所述的方法,还包括:
使用改变密码协议从所述客户端接收第二密码套件;
初始化所述第二密码套件;
向所述客户端发送所述改变密码协议完成的指示;以及
使用所述第二选择密码套件加密所述连接。
16.根据权利要求13所述的方法,还包括:
向所述客户端发送改变密码协议和第二密码套件;
从所述客户端接收所述改变密码协议完成的指示;
使用所述第二选择密码套件来加密数据集;
向所述客户端发送用所述第二选择密码套件加密的所述数据集。
17.根据权利要求13所述的方法,其中,根据配置文件来选择所述选择密码套件中的每一个。
18.根据权利要求17所述的方法,其中,所述配置文件标识兼容的密码套件。
19.根据权利要求13所述的方法,其中,所述至少两组密码套件中的每一组提供不同的数据安全度。
20.根据权利要求19所述的方法,还包括:使用所述第一选择密码套件向所述服务器传送数据,其中,所述第一选择密码套件是根据与所传送的数据相关联的安全度来选择的。
技术总结