一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

使用临时密钥的传输层安全中的正向安全的制作方法

2022-06-22 20:57:52 来源:中国专利 TAG:


1.本发明总体上涉及计算机网络上的信息安全。


背景技术:

2.因为基于网络的安全威胁不断演进,所以基于安全套接层(secure sockets layer,ssl)和/或传输层安全(transport layer security,tls)的加密在网络通信中的使用现在已变得普遍存在。实际上,现在估计的是全部业务网络流量的超三分之二或更多在ssl/tls上传送。在典型的场景中,客户端应用和服务器应用彼此握手以建立安全链路。在此过程期间,端点通常使用rsa(rivest-shamir-adelman)公钥密码协议来共享秘密(s),在连接建立之后,秘密(s)将由两侧使用以加密和解密数据。
3.在上述场景中存在众所周知的问题。具体地,因为服务器的rsa密钥对本质上是静态的,所以服务器的静态rsa私钥的任何泄漏潜在地导致所有会话数据的机密性的丢失。这是因为每个会话的数据利用在服务器的静态rsa密钥下交换的秘密(s)来加密。这种类型的攻击是直截了当的。为此,攻击者简单地记录客户端和服务器之间的针对所有连接的被传输的加密流量。尽管用于每个连接的秘密是不同的,但所有秘密由服务器的私钥保护。因此,当攻击者例如通过蛮力或其他攻击途径获得对密钥的访问时,所有被记录的连接的共享秘密(s)可被解密,并且随后所有应用数据可被恢复和查看。这种情况已知为不具有完美的前向安全(perfect forward secrecy,pfs)。


技术实现要素:

4.本公开描述了一种方法、装置和计算机程序产品,其防止针对客户端和服务器之间的基于传输层安全(tls)的链路的导出的会话密钥集的泄漏,由此实现完美的前向保密性。服务器具有包括服务器公钥和相关联的服务器私钥的公钥对。
5.根据本公开的一方面,tls连接建立优选地如下操作。响应于在服务器处接收到建立新会话的请求,优选地从预先生成的包括临时公钥和相关联的临时私钥的临时(暂时)密钥对的池中检索这种密钥对。服务器通过使用服务器自己的私钥来对临时公钥签名以生成临时证书。服务器然后向客户端输出证书链,该证书链至少包括临时证书连同服务器证书,该临时证书包括临时公钥,该服务器证书包括服务器公钥。以此方式,服务器充当下级证书管理机构。tls连接的客户端侧然后尝试验证证书,并且当这样的验证时,通过生成会话密钥(共享秘密(s))和应用临时公钥(在临时证书中从服务器接收)来继续tls连接建立。此后,该服务器从该客户端接收消息,该消息是由客户端将临时公钥应用于针对新会话在客户端处导出的会话密钥而生成的。然后,服务器通过将临时私钥应用到该消息来恢复针对新会话导出的会话密钥。这完成新会话的建立,并且客户端应用和服务器应用此后使用会话密钥(共享秘密)来加密和解密tls链路上的数据。临时密钥对不被重复使用。使用此方法,获得完美的前向保密性,因为与新会话的建立相关联的密钥的泄漏不会泄漏该集中的一个或多个其他导出的会话密钥。
6.前述内容概述了所公开的主题的一些更相关的特征。这些特征应被解释为仅是说明性的。许多其他有益的结果可以通过以不同方式应用所披露的主题或通过修改如将描述的主题来获得。
附图说明
7.为了更完整地理解主题及其优点,现在参考结合附图进行的以下描述,其中:
8.图1描绘了其中可以实施说明性实施例的示例性各方面的分布式数据处理环境的示例性框图;
9.图2是其中可以实施说明性实施例的示例性各方面的数据处理系统的示例性框图;
10.图3示出了证书层次结构;
11.图4描绘了传输层安全(tls)连接建立;以及
12.图5描绘了本公开的关于针对客户端和服务器导出的会话密钥集提供完美的前向保密保证的技术。
具体实施方式
13.现在参考附图并且具体参见图1-图2,提供了其中可以实施本发明的说明性实施例的数据处理环境的示例性示图。应当理解,图1-图2仅仅是示例性的,并不旨在断言或暗示对所公开的主题的各方面或实施例可在其中实施的环境的任何限制。在不脱离本发明的范围的情况下,可以对所描绘的环境做出许多修改。
14.客户端-服务器技术
15.现在参考附图,图1描绘了其中可以实施说明性实施例的各方面的示例性分布式数据处理系统的图画表示。分布式数据处理系统100可以包括其中可以实施说明性实施例的各方面的计算机网络。分布式数据处理系统100包含至少一个网络102,网络102是用于在分布式数据处理系统100内连接在一起的不同设备和计算机之间提供通信链路的介质。网络102可以包括诸如有线、无线通信链路或光纤电缆之类的连接。
16.在所描绘的示例中,服务器104和服务器106与存储单元108一起连接到网络102。此外,客户端110、112和114也连接到网络102。这些客户端110、112和114可以是例如个人计算机、网络计算机等。在所描绘的示例中,服务器104向客户端110、112和114提供诸如引导文件、操作系统映像和应用之类的数据。在所描绘的示例中,客户端110、112和114是服务器104的客户端。分布式数据处理系统100可以包括附加的服务器、客户端和未示出的其他设备。
17.在所描绘的示例中,分布式数据处理系统100是具有网络102的互联网,网络102表示使用传输控制协议/互联网协议(tcp/ip)协议组来彼此通信的网络和网关的全球集合。互联网的核心是主节点或主计算机之间的高速数据通信线路的主干,由数千个路由数据和消息的商业、政府、教育和其他计算机系统组成。当然,分布式数据处理系统100还可被实施为包括多个不同类型的网络,诸如例如内联网、局域网(lan)、广域网(wan)等。如上所述,图1旨在作为示例,而不作为对所公开的主题的不同实施例的架构限制,并且因此,在图1中示出的特定元件不应当被认为是对其中可以实施本发明的说明性实施例的环境的限制。
18.现在参考图2,示出了其中可以实施说明性实施例的各方面的示例性数据处理系统的框图。数据处理系统200是计算机(诸如图1中的客户端110)的示例,实施针对本公开说明性实施例的过程的计算机可用代码或指令可以位于其中。
19.现在参考图2,示出了其中可以实施说明性实施例的数据处理系统的框图。数据处理系统200是计算机(诸如图1中的服务器104或客户端110)的示例,实施针对说明性实施例的过程的计算机可用程序代码或指令可以位于其中。在该说明性示例中,数据处理系统200包括通信结构202,其提供处理器单元204、存储器206、永久性存储装置208、通信单元210、输入/输出(i/o)单元212和显示器214之间的通信。
20.处理器单元204用于执行可以被加载到存储器206中的软件的指令。处理器单元204可以是一个或多个处理器的集合,或者可以是多处理器核心,这取决于特定的实施方式。进一步,处理器单元204可以使用一个或多个异构处理器系统来实施,在该异构处理器系统中,主处理器与次级处理器存在于单个芯片上。作为另一说明性实例,处理器单元204可以是包含相同类型的多个处理器的对称多处理器(symmetric multi-processor,smp)系统。
21.存储器206和永久性存储装置208是存储设备的示例。存储设备是能够基于临时地和/或永久地存储信息的任何硬件。在这些示例中,存储器206可以是例如随机存取存储器或任何其他合适的易失性或非易失性存储设备。永久性存储器208可以采取各种形式,这取决于特定的实施方式。例如,永久性存储装置208可以包含一个或多个组件或设备。例如,永久存储装置208可以是硬盘驱动器、闪存、可重写光盘、可重写磁带或上述的一些组合。由永久性存储装置208使用的介质也可以是可移动的。例如,可移动硬盘驱动器可以用于永久性存储装置208。
22.在这些示例中,通信单元210提供与其他数据处理系统或设备的通信。在这些示例中,通信单元210是网络接口卡。通信单元210可通过使用物理和无线通信链路中的任一个或两者来提供通信。
23.输入/输出单元212允许与可以连接到数据处理系统200的其他设备进行数据的输入和输出。例如,输入/输出单元212可以为通过键盘和鼠标的用户输入提供连接。此外,输入/输出单元212可以将输出发送到打印机。显示器214提供向用户显示信息的机制。
24.用于操作系统和应用或程序的指令位于永久性存储装置208上。这些指令可被加载到存储器206中以供处理器单元204执行。处理器单元204可以使用计算机实施的指令来执行不同实施例的过程,这些指令可以位于存储器(例如,存储器206)中。这些指令被称为可以由处理器单元204中的处理器读取和执行的程序代码、计算机可用程序代码或计算机可读程序代码。不同实施例中的程序代码可以在不同的物理或有形计算机可读介质上体现,诸如存储器206或永久性存储器208。
25.程序代码216以功能形式位于选择性可移除的计算机可读介质218上,并且可被加载到或转移到数据处理系统200以供处理器单元204执行。在这些示例中,程序代码216和计算机可读介质218形成计算机程序产品220。在一个示例中,计算机可读介质218可以是有形形式,诸如,插入或放置在驱动器中的光盘或磁盘或作为永久性存储器208的一部分用于转移到存储设备上的其他设备,诸如,作为永久性存储器208的一部分的硬盘驱动器。在有形形式中,计算机可读介质218还可以采取永久性存储装置的形式,诸如连接到数据处理系统
consortium,w3c)获得;关于http和xml的进一步信息可从互联网工程任务组(internet engineering task force,ietf)获得。假定熟悉这些标准。
31.公钥密码系统
32.公钥加密(public-key cryptography,pkc)是涉及使用非对称密钥算法的加密方法。与对称密钥算法不同,pkc不要求对于发送方和接收方两者的一个或多个秘密密钥的安全初始交换。非对称密钥算法用于创建数学上相关的密钥对:秘密私钥和公布的公钥。通过使用私钥来创建消息的数字签名,这些密钥的使用允许保护消息的真实性,其中该私钥可以使用公钥来验证。它还允许通过公钥加密来保护消息的机密性和完整性,其中该公钥加密是使用公钥来对消息进行加密,该消息仅可以使用私钥解密。
33.密钥生成是生成用于密码技术的密钥的过程。现代密码系统包括对称密钥算法(例如,des、aes及其他)和公共密钥算法(例如,rsa、d-h、edh及其他)。对称密钥算法使用单个共享密钥;如果单个密钥保持私有,则维持数据保密性。公钥算法使用由公钥和私钥组成的密钥对。通常通过数字证书使公钥对任何人可用。发送方用公钥对数据进行加密,只有私钥的持有者才能对该数据进行解密。通常,计算机将整数用于密钥。密钥还可使用随机数发生器(random number generator,rng)或伪随机数发生器(pseudorandom number generator,prng)来随机生成。prng是产生在分析中表现为随机的数据的算法。使用系统熵来创建种子数据(seed data)的prng通常产生更好的结果,因为这使得攻击者难以猜到prng的初始条件。在其他情况下,确定地导出密钥,例如,使用密钥导出函数(key derivation function,kdf)。kdf通常使用伪随机函数从秘密值(例如主密钥、密码或口令)导出一个或多个秘密密钥。
34.更一般地,公钥密码技术对于隐私性(通过加密)和认证(使用数字签名)是有用的。加密是在没有秘密解密密钥的情况下将数据转换成任何人无法读取的形式;加密通过保持信息的内容对期望该内容的任何人、甚至是能够看到加密数据的人隐藏来保证隐私。认证是一种过程,由此数字消息的接收者被保证发送者的身份和/或消息的完整性。作为示例(隐私和认证的示例),当发送者加密消息时,接收者的公钥被用于将原始消息内的数据转换成经加密的消息的内容。发送者使用预期的接收者的公钥来加密数据,并且接收者使用其私钥来解密经加密的消息。当认证数据时,可以通过使用签名者的私钥根据数据计算数字签名来对数据进行签名。一旦数据被数字签名,它就可以与签名者的身份一起被存储,并且签名随后证明该数据源自签名者。签名者使用其私钥对数据进行签名,而接收者使用签名者的公钥来验证签名。
35.公钥密码系统可以全部或部分地用物理认证器来实施,该物理认证器可以用于携带或保护密钥。这些物理认证器包括例如安全令牌、硬件令牌、usb认证器、密钥卡(key fob)等以携带密钥。这种设备提供基于密码的双因素认证(two-factor authentication,2fa)。双因素认证通过两个不同组件的组合来提供对用户的识别。这些组件可以是用户知道的事物、用户拥有的事物或与用户不可分离的事物。
36.ssl/tls
37.作为进一步的背景,安全套接层/传输层安全(ssl/tls)是用于保护通过诸如互联网的网络进行通信的众所周知的密码协议。诸如ssl/tls的密码协议通常基于公钥密码系统,诸如rsa(rivest、shamir和adelman)加密算法。对于传统的基于rsa的ssl/tls会话,连
接的双方同意“预主秘密”(pre-master secret,pms),其用于为会话的剩余部分生成参数。通常,双方使用rsa非对称加密来建立预主秘密,而不以明文交换实际值。在操作中,ssl/tls客户端生成预主秘密,并用ssl/tls服务器的公共可用rsa密钥对其进行加密。这生成加密的预主秘密(epms),然后该加密的预主秘密被提供给ssl/tls服务器。ssl/tls服务器具有私有的解密密钥,该私有的解密密钥然后用于解密经加密的预主秘密。此时,客户端和服务器两者都具有原始的预主秘密,并且可以使用它来生成用于实际加密和安全数据交换的对称密钥。
38.证书,信任链
39.证书是数字文档,其担保特定实体(诸如,个人、计算机系统、在该系统上运行的特定服务器等)的加密密钥的身份和所有权。证书由证书管理机构颁发。证书授权机构(certificate authority,ca)是实体,通常是交易的可信第三方,其被信任来为其他人或实体进行签名或颁发证书。通常,ca为公钥与其所有者之间的绑定的担保承担法律责任,以允许人们信任为证书签名的实体。存在许多商业证书授权机构;这些机构负责在颁发证书时验证实体的身份和密钥所有权。如果ca颁发了实体的证书,则实体必须提供关于该实体的公钥和一些信息。软件工具(例如,web浏览器)可以对该信息进行数字签名,并将其发送到证书授权机构。证书授权机构可以是提供受信第三方证书授权机构服务的商业公司。ca通过将请求实体的公钥(通常连同其他识别信息)嵌入(在证书中),并且然后利用证书授权机构的私钥对数字证书进行签名来创建数字证书。在交易或通信期间接收数字证书的任何人随后可使用证书授权机构的公钥来验证证书内的经签名的公钥。意图是证书授权机构的签名充当数字证书上的防篡改封条,由此确保证书中的数据的完整性。
40.web上的加密流量由信任链发生。每个web服务器具有其呈现给每个客户端(通常是web浏览器)的证书,以指示它们是他们所说的那些。网络服务器通常从可保证web服务器的合法性的机构(证书机构或ca)获得这些证书。服务器的证书指示从其获得证书的授权机构(“颁发人”)。web浏览器通常具有他们信任的颁发者列表。当向web浏览器呈现来自web服务器的证书时,浏览器将检查颁发者并将其与其可信列表进行匹配。如果发现匹配,则连接将继续;如果没有发现匹配,则浏览器通常将呈现警告并且可能拒绝连接。ca不一定是除了可信的事实之外的特殊实体。任何实体都可以将自己设置成信任证书或为证书签名。证书可以信任自身,其被称为自签名的证书。为了使用ssl/tls与客户端互操作,需要创建客户端将隐含地信任的证书。
41.如上所述,证书授权机构使用它们自己的私钥对它们颁发的证书进行数字签名。因此,另一方可以通过利用证书授权机构自身的公钥验证证书上的签名来验证证书中的信息,包括其扩展。另一方从颁发给证书授权机构的证书得到证书授权机构的公钥,并进行可能涉及来自又一证书的公钥的签名检查。取决于证书层级结构,验证的链可以相当长。图3是使用公钥协议的简单证书层次结构的示例。
42.如所描绘的,证书层次结构300包含若干实体,其中末端实体证书302由下级证书授权机构(ca#2)304颁布的。ca#2 304的证书303由下级证书授权机构(ca#1)306颁发。ca#1 306的证书305由根证书授权机构308颁发。根证书授权机构308的证书307是自颁发的,意味着其证书由其自己的私钥(自签名的证书)签名。签名验证链开始于终端实体证书302。具体地,ca#2的公钥用于验证末端实体证书302的签名。如果该签名有效,则ca#1 306的公钥被
用来验证ca#2证书303的签名。如果该签名有效,则根证书的公钥被用来验证ca#1证书305的签名。最后,根证书307的签名使用其自身的公钥来验证。对自己签名的根证书的签名验证简单地提供根证书未被改变的保证。不保证证书中的信息或者证书授权机构本身是可信的,因为任何人都可以创建自签名的证书并且声称其是证书授权机构。因此,必须在使用公钥协议之前建立实体自己选择的证书授权机构的集合和单个证书的信任。所选择的可信证书或ca的集合有时被称为可信根、可信签名者,或简称为可信策略。
43.服务器可以被配置为实施和强制执行信任策略。这种类型的商业服务器的一个示例是安全服务器。安全服务器是z/os的可选特征,其允许管理员控制对受保护资源的访问。ibm安全服务器包括ibm(资源访问控制设施)。对于用户,racf提供一组java安全管理api集以允许管理来自z/os racf或其他非z/os安全机制的安全储存库中的用户和组。racf通过racf密钥环支持如上所述的信任策略。类似于支持数字证书的其他安全软件,racf具有用于供应可信根证书的预定义集合的方法。为此,racf包括证书授权机构证书的基本集合,每当系统最初被加载时,证书授权机构证书被添加到racf数据库。
44.概括地,在证书链中反映证书授权机构(ca)层级。证书链跟踪证书的路径,例如从层次结构中的分支到层次结构的根。在证书链中,每个证书之后是其颁发者的证书,并且每个证书包含该证书的颁发者的专有名称(distinguished name,dn)。这与证书链中的下一个证书的主题名称相同。每个证书用其颁发者的私钥来签名。可以使用颁发者的证书中的公钥来验证签名,颁发者的证书是证书链中的下一个证书。
45.图4描绘了在不参考本公开的技术的情况下在客户端400与服务器402之间的ssl/tls握手。假设客户端400和服务器402使用在它们之间共享的秘密(s)来加密和解密数据。为了共享秘密,进一步假设rsa(rivest-shamir-adelman)公钥密码系统被使用。下面假定熟悉基于标准的tls 1.0、1.1和1.2。
46.握手在步骤(1)开始,服务器402从客户端400接收有效的tls clienthello消息401。在步骤(2),服务器402以serverhello消息403作出响应,serverhello消息403之后是服务器的证书405和链中的任何其他证书(由tls 1.0、1.1或1.2定义)。证书405包括服务器的公钥,即server-cert-key-pub。在步骤(3),客户端验证服务器的公钥证书。如所描绘的,客户端400然后生成密码地安全秘密(s)并用在服务器的公钥证书中提供的服务器公钥(server-cert-key-pub)加密该秘密。在步骤(4),客户端400在clientkeyexchange消息(如由tls 1.0、1.1或1.2定义)407中将经加密的密钥(c)发送到服务器402。在步骤(5),服务器402使用服务器私钥(即,server-cert-key-priv)从经加密的密钥(c)中解密秘密(s)。在步骤(6),服务器402响应客户端400握手过程完成。tls中的所有未来的经加密的消息(包括应用数据)然后使用秘密(s)来加密,通信的双方现在拥有秘密(s)。例如,在步骤(7),客户端400使用秘密(s)对应用数据进行加密。然后例如在步骤(8),将该应用数据从客户端400发送到服务器402。在服务器上,并且在步骤(9),服务器通过将秘密(s)应用于从客户端接收的数据来恢复应用数据。同样地,由服务器发送的应用数据首先在例如步骤(10)处用秘密(s)加密,例如在步骤(11)处被传输到客户端,例如在步骤(12)处在客户端处使用秘密(s)被解密,等等。当客户端期望关闭连接时,其例如在步骤(13)通知服务器完成会话。
47.在上述场景中存在问题。具体地,服务器的rsa密钥对(即,server-cert-key-priv
和server-cert-key-pub)本质上是静态的,并且因此服务器的静态rsa私钥的泄漏可能导致所有会话数据的机密性的丢失。这是因为每个会话的数据利用在服务器的静态rsa密钥(server-cert-key-priv)下交换的秘密(s)来加密。这种类型的攻击是直截了当的。为此,攻击者简单地记录针对所有连接的在客户端400与服务器402之间传输的加密流量。尽管用于每个连接的秘密是不同的,但所有秘密由服务器的私钥保护。因此,当攻击者例如通过蛮力或其他攻击途径获得对该密钥的访问时,所有被记录的连接的共享秘密(s)可被解密,并且随后所有应用数据可被恢复和查看。这种情况已知为不具有完美的前向安全(pfs)。
48.将临时传输证书中的临时密钥对用于前向安全
49.以上内容作为背景,现在描述本发明的技术。
50.具体地,图4中的技术通过使服务器和客户端使用临时密钥代替服务器的静态rsa私钥来增强。如在本文所使用的,密码密钥被认为是“临时的”(并且因此是“临时密钥”),因为它是针对密钥建立过程的每次执行而生成的,如将看到的。为了实现根据本文的技术的完美的前向安全(pfs),服务器使用临时的(优选地rsa)私钥和公钥来代替其静态的私钥。现在参照图5描述优选的技术。
51.具体地,图5描绘了根据本公开的客户端500与服务器502之间的ssl/tls握手。与先前实施例一样,假设客户端500和服务器502使用在它们之间共享的秘密(s)来加密和解密数据。为了共享秘密,进一步假设rsa(rivest-shamir-adelman)公钥密码系统被使用。
52.再次,握手在步骤(1)开始,服务器502从客户端500接收有效的tls clienthello消息501。代替服务器简单地用其服务器证书(和服务器公钥)如之前那样进行响应,执行以下附加处理。具体地,在步骤(2),服务器502获得rsa临时公钥对(temporary-keys)并建立临时证书(temporary-cert)。与其中密钥在颁发时通常具有到期日期集(通常在几年的范围内)或者由于泄漏而手动撤销的rsa的常规使用相比,“临时”的概念在这里指的是单个会话的寿命。该临时公钥对(包括临时公钥及其相关联的私钥)可以即时(即,在握手时)生成,但是优选方法是服务器从预生成的临时密钥对的池中检索密钥对。为了被认为是临时的,每个会话仅使用一次临时密钥(temporary-keys)。优选地,该密钥对以随机或伪随机方式生成,使得密钥值不可预测或能够根据已知数据导出。
53.在步骤(2)并且如所描绘的,服务器502使用服务器的私钥(server-cert-key-priv)对临时公钥(temporary-key-pub)进行数字签名(即,创建数字签名)以创建临时证书(temporary-cert)。在步骤(3),服务器用包括临时证书(包括临时公钥)、服务器的证书(包括服务器公钥)和链中的任何其他证书(由tls 1.0、1.1或1.2定义)的serverhello消息503来响应clienthello消息501。这些操作(服务器获得临时密钥对并用服务器私钥对临时公钥进行签名以创建临时证书,然后将临时证书包括在服务器响应中)将该流程与图4中示出的流程区分开来。然后,在步骤(4),客户端500执行验证。该验证与先前流程中的不同之处在于,除了客户端验证服务器的公钥证书之外,客户端500还尝试验证临时证书。如果(链中的)所有证书被验证,则客户端500然后生成密码地安全秘密(s),并且在此流程中,用临时公钥(temporary-cert-key-pub)而不是如在先前流程中那样使用服务器公钥对秘密进行加密。在步骤(5),客户端500在clientkeyexchange消息507中将加密密钥(c)发送到服务器502。在步骤(6),服务器502在这个流程中使用临时公钥对的临时私钥(即,temporary-cert-key-priv)而不是服务器的私钥(如图4所示)从密钥(c)中解密秘密(s)。在步骤(7),
服务器502对客户端500作出握手过程完成的响应。
54.tls中的所有未来的经加密的消息(包括应用数据)然后使用秘密(s)来加密,通信的双方现在拥有秘密(s)。例如,在步骤(8),客户端500使用秘密(s)对应用数据加密。然后例如在步骤(9),应用数据从客户端500被发送到服务器502。在服务器上,并且在步骤(10),服务器通过将秘密(s)应用于从客户端接收的数据来恢复应用数据。同样地,由服务器发送的应用数据首先在步骤(11)处用秘密(s)加密,例如在步骤(12)处被传输到客户端,例如在步骤(13)处在客户端处使用秘密(s)被解密,等等。当客户端期望关闭连接时,其例如在步骤(14)通知服务器完成会话。
55.如本领域技术人员将理解的,通过在握手期间使用临时密钥,实现了若干优点。具体地,服务器端实体证书的静态私钥仅用于颁发临时证书,但该静态私钥不再用于导线上的秘密的物理交换。上述服务器私钥的使用等同于数字签名操作,而不是加密,并且因此服务器私钥在将来的任何暴露不会揭示自身使用中的临时密钥,从而确保完美的前向保密性。因此,如果攻击者获得对服务器的私钥的访问,则消息仍然是安全的,因为临时私钥是未知的,并且攻击者无法获得秘密会话密钥(s)。换言之,这些临时密钥对优选地是随机生成的并且通过定义是短寿命的,由此即使在服务器私钥被暴露时也促进前向保密性。服务器实体的证书仅用于对短寿命密钥签名以创建临时证书,并且使得客户端(使用该服务器实体证书)能够验证临时传输证书。该方法具有进一步的优点:当需要使客户端和服务器之间的连接降级时,避免重复协商。
56.在本文的方法中,将服务器端实体证书用作下级证书授权机构。如所指出的,服务器使用用于会话的临时密钥对来创建临时证书,对该临时证书签名并且将该临时证书作为包括服务器证书的证书链的一部分发送,服务器证书继而随后在客户端处用于验证传输证书。当验证成功时,客户端使用其已经在传输证书中接收的临时公钥来加密客户端生成的共享秘密(s),该共享秘密在服务器处是完成握手所需要的。然后,秘密(s)充当对称会话密钥来加密和解密用于所建立的连接的数据。使用临时密钥来交换会话密钥提供了完美的前向保密性。实际上,服务器私钥的泄漏不具有泄漏许多tls会话密钥的效果。临时的rsa私钥泄漏仅泄漏其用于建立的会话,并且静态rsa服务器私钥的泄漏仅允许创建无效签名而不泄漏先前的tls会话。
57.虽然使用rsa作为优选的公钥密码方案描述了该方法,但这不是必需的,因为支持数字签名操作的其他非对称密码算法可以代替静态密钥对,并且支持加密/解密的其他非对称密码算法可以代替临时密钥对。概括地,本文的技术可以与使用公钥基础设施(public key infrastructure,pki)的任何协议一起使用,并且具体地,在静态数字签名密钥对(a)对用于交换(多个)共享密钥的临时不对称加密密钥对(e)进行签名的情况下。
58.虽然已经描述了优选的操作环境和使用情况,但是本文的技术可用于期望保护去往和/或来自计算系统或设备的网络流量的任何其他操作环境中。
59.如上所述,上述功能可以实施为独立的方法,例如由处理器执行的基于软件的功能,或者它可以用作服务(包括经由soap/xml接口的web服务)。本文描述的特定硬件和软件实施细节仅用于说明性目的并不旨在限制所描述的主题的范围。
60.更一般地,所公开主题的上下文中的计算设备均是包括硬件和软件的数据处理系统(诸如图2中所示),并且这些实体通过诸如互联网、内联网、外联网、专用网络或任何其他
通信介质或链路的网络彼此通信。数据处理系统上的应用提供对web和其他已知服务和协议的本机支持,包括但不限于对http、ftp、smtp、soap、xml、wsdl、uddi和wsfl等的支持。关于soap、wsdl、uddi和wsfl的信息可从负责开发和维护这些标准的万维网联盟(w3c)获得;关于http、ftp、smtp和xml的进一步信息可从互联网工程任务组(ietf)获得。假定熟悉这些已知的标准和协议。
61.本文中描述的技术可以在不同客户端侧架构(例如,防火墙、nat设备)中或结合不同客户端侧架构(例如,防火墙、nat设备)实施,以及在不同服务器侧架构(包括简单n层架构、web门户、联合系统等)中或结合不同服务器侧架构实施。本文的技术可以在松散耦合的服务器(包括基于“云”的)环境中实践。
62.更一般地,本文描述的主题可以采取完全硬件实施例、完全软件实施例或包含硬件和软件元素两者的实施例的形式。在优选实施例中,可信平台模块功能以软件实现,该软件包括但不限于固件、驻留软件、微代码等。此外,下载和删除界面和功能可以采取可从计算机可用或计算机可读介质访问的计算机程序产品的形式,该计算机可用或计算机可读介质提供用于由计算机或任何指令执行系统使用或结合计算机或任何指令执行系统使用的程序代码。为了本描述的目的,计算机可用或计算机可读介质可以是可包含或存储供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合使用的程序的任何装置。该介质可以是电子、磁性、光学、电磁、红外或半导体系统(或装置或设备)。计算机可读介质的示例包括半导体或固态存储器、磁带、可移动计算机磁盘、随机存取存储器(ram)、只读存储器(rom)、刚性磁盘和光盘。光盘的当前实例包括致密盘-只读存储器(cd-rom)、致密盘-读/写(cd-r/w)和dvd。计算机可读介质是有形的、非临时性物品。
63.计算机程序产品可以是具有用于实施所描述的功能中的一个或多个的程序指令(或程序代码)的产品。这些指令或代码可在通过网络从远程数据处理系统下载之后存储在数据处理系统中的非暂时性计算机可读存储介质中。或者,这些指令或代码可存储在服务器数据处理系统中的计算机可读存储介质中,且适于经由网络下载到远程数据处理系统以供在远程系统内的计算机可读存储介质中使用。
64.在代表性实施例中,接口和实体在专用计算平台中实施,优选地在由一个或多个处理器执行的软件中实施。软件被维护在与一个或多个处理器相关联的一个或多个数据存储或存储器中,并且软件可以被实施为一个或多个计算机程序。总的来说,该专用硬件和软件包括上述功能。
65.虽然以上描述了由本发明的某些实施例执行的操作的特定顺序,但应理解,这样的顺序是示例性的,因为替代实施例可以不同顺序执行操作、组合某些操作、重叠某些操作等。说明书中对给定实施例的引用指示所描述的实施例可以包括特定特征、结构或特性,但是每个实施例可以不必包括该特定特征、结构或特性。
66.最后,虽然已经单独地描述了系统的给定组件,但是本领域普通技术人员将理解,可以在给定指令、程序序列、代码部分等中组合或共享一些功能。
67.本文的技术总体上提供对技术或技术领域的上述改进,以及对密码安全网络通信的具体技术改进,如以上所描述的。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献