专利名称:建立安全对等通信的方法和装置的制作方法
技术领域:
本发明涉及对等通信。具体地说,本发明涉及建立安全对等通信的方法和装置。
背景技术:
对等系统——即分散、分布式结构的特征属性是它具有最弱的链路。除了与先前已知的和信任的伙伴之间使用外,安全问题仍然是采用对等系统的主要障碍,因为许多对等应用要求对等体(peer)之间的安全通信。
对等体之间安全通信的关键问题是对等体的鉴别。另一个问题是通过使用“新鲜的”(fresh)保密会话密钥来建立安全的会话。“新鲜”这一概念对避免重放攻击来说是很重要的。重放攻击包括通信的拦截以及随后通过重新传送拦截到的通信来冒充发送人。通过使用“新鲜的”或新的会话密钥,可以避免通过重新发送进行的冒充。
安全的对等通信可使用一些技术来实现,如被设计用于服务器和客户端之间的通信的安全套接字层(SSL)技术。安全套接字层技术可应用于对等通信,但并不是打算用于或特别适合对等体间的安全通信。
因此,这就无疑地要求一种改进的实现安全的对等通信的方法。
发明内容
基于现有的密码技术(即对称与非对称密钥的使用)和加密算法(如Rivest-Shamir-Adleman或RSA算法)建立一种用于安全的对等通信的协议。这里描述的协议为对等通信提供鉴别与会话安全,但不是基于通常的客户端-服务器范例,而是被设计为通过减轻对等体在管理安全性方面的大量负担来用于对等通信。
这些对等体和用作安全代理的中央服务器要经历相互鉴别的过程。新产生的消息编号用于鉴别,且随机的会话密钥用于会话。(这种消息编号在这里可称为“临时值”(nonce))。这些对等体可安全地进行通信,即使它们是第一次通信且彼此没有对方的信息。
由于在相互鉴别之后所有的对等体都在安全代理处注册,所有的对等体都知道该安全代理。安全代理执行为通信对等体产生独特的会话密钥的任务。由于服务器独立地鉴别请求对等体和被请求对等体,所以安全代理消除了请求对等体和被请求(响应)对等体之间的相互鉴别的负担。该安全代理把会话密钥发送给请求对等体和被请求对等体。
该方法解除了对等体产生会话密钥和管理对等体的大量公开密钥的负担。该负担转移到了中央安全代理,该代理更可能具有自由地处理执行这些任务的足够的资源(如中央处理能力、以及随机存储器)。
该方法的另一个好处是不要求对等体从认证中心(CertificateAuthority)获取数字认证。相反,每个对等体都具有中央安全代理的公开密钥,且中央安全代理有每个对等体的公开密钥。协议使用公开/私秘密钥来提供相互鉴别,并使用对称密钥提供会话安全,这相对于使用非对称密钥的数据加密来说有更少的网络通信量。
图1是这里描述的对等通信协议中所包含的实体的示意图。
图2A和2B共同形成了对等网络中安全通信的建立所包含的步骤的流程图。
图3是典型地适用于对等网络的计算机系统的示意图。
具体实施例方式
图1示意性地表示了根据这里描述的协议的对等网络100中所包含的实体。安全代理S 110具有与对等体A 120、对等体B 130、以及对等体C 140的通信链路。网络110可包括更多的对等体,虽然三个对等体已足够阐明所描述的安全协议的操作。
在请求对等体120和被请求对等体130与140之间的初始通信期间,安全代理S 100与对等体120、130、140相互鉴别。
实体、假设和符号考虑下面的在描述对等通信装置中使用的实体。
对等体A 120想要使用被请求的对等体B 130与C 140的资源或服务的客户端。
对等体B 130与C 140请求对等体A 120与之进行通信的被请求对等体B130与C 140。
安全代理S 100利于请求和被请求对等体之间的安全通信的代理或一组“胖”客户端或服务器。
如下编号的假设也适用。
1、对等体A 120使用任何适当的对等体发现技术确定想要与哪个或哪些被请求对等体(该情况下是对等体B 130和对等体C 140)进行通信。
2、所有的对等体向安全代理S 110注册,随后获得安全代理S110的公开密钥,反之亦然。
3、所有的对等体和安全代理110具有它们各自的公开/私秘密钥对。假定用如RSA或类似的鲁棒算法产生公开/私秘密钥对。
这里使用的关于对等体A 120、B 130与C140以及安全代理S 110的符号如下所示。
A、B、C→对等体{A、B、C}S→安全代理PA、PB、PC、PS→脚标的对等体A、B、C或安全代理S的公开密钥
PA()→使用对等体A的公开密钥对括号内的数据加密n{a,b,c,s1,s2,s3}→临时值,即在特定处理时间间隔内可与其它消息编号区分的消息编号。(在一种实施例中该临时值是随机产生的独特的消息编号。)KB,KC→如KB的秘密会话密钥和对称密钥是在对等体A和对等体B之间使用的对称密钥通信协议对等体A 120要与对等体B 130与C 140安全地通信。下面的列表1略述了启动对等体A 120和对等体B 130与C 140之间的安全通信所包含的一系列步骤。
表1步骤 交互作用发送的消息步骤1A→SPS(na)步骤2S→APA(na,ns1)步骤3A→SPS(ns1,Peers{B,C})步骤4S→BPB(ns2)S→CPC(ns3)步骤5B→SPS(ns2,nb)C→SPS(ns3,nc)步骤6S→BPB(nb,KB)S→CPC(nc,KC)步骤7S→APA(na,({peer,key}→({B,KB},{C,KC}))步骤8A→BKB(数据)A→CKC(数据)步骤1至3包含请求对等体、对等体A 120和安全代理S 110的相互鉴别。
步骤4至6包含与被请求对等体B 130、C 140以及安全代理S 110的相互鉴别有关的事件。步骤6还包含对应的保密对称密钥的分发。
步骤7包含对等体A在和对等体B 130与C 140通信时使用的保密会话密钥的分发。例如,对等体120使用KB,KC分别与对等体B 130和对等体C 140进行通信。
步骤8包含请求对等体A 120启动与被请求对等体B 130与C 140的安全通信。
图2A与2B更具体地按流程图解了这些步骤。请求对等体A 120产生一个临时值并在步骤202把它发送到安全代理S 110。该临时值使用安全代理S 110的公开密钥加密。安全代理S 110在步骤204使用安全代理S 110的私秘密钥解译传送的临时值。在该步骤中,安全代理S 110产生自身的临时值,然后使用对等体A 120的公开密钥对产生的临时值进行加密(并解译来自对等体A 120的临时值)。被加密的临时值返回到对等体A 120。
在步骤206,对等体A 120判定安全代理S 110在步骤204中发送的消息是否对先前从对等体A 120发送到安全代理S 110的临时值进行了加密。通过使用对等体A 120的私秘密钥对从安全代理S 110接收的消息进行解密来实施该判定。如果对等体A 120未接收到自身的临时值作为答复,那么安全代理S 110在步骤208就被判定为伪造的安全代理。否则,如果对等体A 120接收到自身的临时值,那么安全代理S 110就被认为是合法的,然后程序进行到步骤210。
对等体A 120在步骤210提取安全代理S 110发送的临时值,然后创建一个新的请求,该请求指定对等体A 120想与之进行通信的对等体B 130和C 140。该请求包括提取的安全代理S 110的临时值,对等体A 120使用安全代理S 110的公开密钥对新请求进行加密,然后把加密后的请求发送到安全代理S 110。
安全代理S 110在步骤212接收来自对等体A 120的加密后的请求,据此判定安全代理S 110是否已经接收到安全代理S 110在步骤204发送给对等体A 120的临时值。如果安全代理S 110未从对等体A120接收到自身的临时值作为答复,那么对等体A 120在步骤214就被判定为伪造的请求对等体。否则,如果安全代理S 110从对等体A120接收到自身的临时值作为答复,那么对等体A 120就被认为是合法的请求对等体,然后程序进行到步骤216。
安全代理S 110在步骤216为对等体A 120希望与之通信的每个被请求的对等体(在该情况下,为对等体B 130、C 140)产生独特的临时值。安全代理S 110产生的这些临时值中的每个临时值都被使用相应被请求对等体的公开密钥进行加密,然后传送到由请求对等体A120指定的被请求对等体。对等体B 130和C 140中的每个被请求对等体在步骤218产生它们自身的临时值,并提取安全代理S 110在步骤216中发送的临时值。这些临时值形成发送到安全代理S 110的回复,并被使用安全代理S 110的公开密钥进行加密。
在步骤220判定安全代理S 110是否在步骤218中发送到安全代理S 110的消息中接收到自身的临时值作为答复。如果安全代理S 110未从被请求对等体接收到自身的临时值作为答复,那么该被请求对等体在步骤222就被判定为伪造的被请求对等体。如果每个被请求对等体都用安全代理S 110在步骤216发送的临时值对安全代理S 110作出响应,那么每个被请求对等体就被认为是合法的。在这种情况下,安全代理S 110与请求对等体、以及与被请求对等体相互鉴别。安全代理S 110为每个被请求对等体B 140和C 130产生会话密钥。然后程序中的步骤224和232并行进行。
在步骤232,安全代理S 110把包含对等体的临时值和会话密钥(KB或KC)的消息发送到每个被请求对等体,其中的临时值和会话密钥使用被请求对等体的公开密钥进行加密。被请求对等体使用该会话密钥与请求对等体A 120进行通信。
安全代理S 110在步骤224还把产生的会话密钥(KB或KC)发送到请求对等体A 120。安全代理S 110发送会话密钥以及由请求对等体A 120的公开密钥加密的请求对等体的临时值。
在步骤226判定对等体A 120是否从安全代理S 110接收到自身的临时值。如果对等体A 120未接收到自身的临时值,那么安全代理S 110在步骤228被认为是伪造的安全代理。否则,安全代理S 110被认为是合法的,然后程序进行到步骤230。在步骤230,对等体A 120用分别用于对等体A 120和对等体B 140以及对等体A 120和对等体C 130之间的通信的会话密钥加密它的请求(如文件下载,或任务执行),然后对等体A 120把请求发送到对应的被请求对等体。在步骤238中,在请求对等体A 120和被请求对等体B 140以及对等体A 120和被请求对等体C 130之间建立安全的通信。
在步骤234判定被请求对等体130、140是否从安全代理S 110接收到自身的临时值作为回复。如果被请求对等体未接收到自身的临时值,那么安全代理S 110在步骤228就被判定为伪造的安全代理。否则,安全代理S 110就被认为是合法的,在步骤238中,在由步骤230启动的对等体之间建立安全通信。
计算机硬件图3是典型地适于用作图1的对等网络中的对等体120、130或140或安全代理S 110的计算机系统300的示意图。计算机软件在安装在计算机系统300上的合适的操作系统下运行,且可认为包含用于实现特定步骤的多种软件代码装置。安全代理S 110可被实现以迎合单个服务器或一组服务器中的预期负荷。一组“胖”客户端也能够用于迎合预期负荷。
计算机系统300的组件包括计算机320、键盘310和鼠标315、以及视频显示器390。计算机320包括处理器340、存储器350、输入/输出(I/O)接口360、365、视频接口345、以及存储设备355。
处理器340是执行操作系统和在操作系统下运行的计算机软件的中央处理单元(CPU)。存储器350包括随机存储器(RAM)和只读存储器(ROM),且在处理器340的指令下使用。
视频接口345连接到视频显示器390并为视频显示器390上的显示提供视频信号。操作计算机320的用户输入从键盘310和鼠标315提供。存储设备355可包括盘驱动器或任何其它合适的存储介质。
计算机320的每个组件都连接到包括数据、地址、以及控制总线的内部总线330,以允许计算机320的组件通过总线330彼此进行通信。
计算机系统300可使用通向表示为因特网380的网络的通信信道385经由输入/输出(I/O)接口365连接到一个或多个其它的类似的计算机。
计算机软件可以记录在便携式存储介质上,在这种情况下,计算机系统300从存储设备355访问计算机软件程序。可供选择地,可由计算机320从因特网380直接访问该计算机软件。在任何情况下,用户都能使用键盘310和鼠标315与计算机系统300相互作用,以操作运行在计算机320上的程序化的计算机软件。
其它配置或类型的计算机系统可同样地适用于执行辅助实现这里所描述的技术的计算机软件。对相关技术领域的技术人员来说显而易见的是,可以对这里所描述的技术和装置进行多种变化和修改。
权利要求
1.一种用于建立安全对等通信的方法,包括以下步骤使用安全代理鉴别请求对等体;使用安全代理鉴别该请求对等体请求与之通信的被请求对等体;把加密的会话密钥从安全代理分发到请求对等体和被请求对等体;以及使用会话密钥加密请求对等体和被请求对等体之间的通信。
2.如权利要求1中所述的方法,还包括在请求对等体产生消息编号的步骤。
3.如权利要求1中所述的方法,还包括在被请求对等体产生消息编号的步骤。
4.如权利要求1中所述的方法,还包括在安全代理处为请求对等体和被请求对等体产生消息编号的步骤。
5.如权利要求1中所述的方法,其中请求对等体请求与多个被请求对等体进行通信,并且加密的会话密钥被分发到所有被请求对等体。
6.如权利要求1中所述的方法,其中鉴别步骤包括交换使用公开与私秘密钥对加密的消息编号。
7.如权利要求1中所述的方法,还包括用请求对等体鉴别安全代理的步骤。
8.如权利要求1中所述的方法,还包括用被请求对等体鉴别安全代理的步骤。
9.如权利要求1中所述的方法,其中请求对等体请求与多个被请求对等体进行通信,并且不同的加密会话密钥被分发到相应的被请求对等体。
10.建立安全对等通信的一种计算机程序产品,包括记录在计算机可读介质上的计算机软件,用于执行以下步骤使用安全代理鉴别请求对等体;使用安全代理鉴别该请求对等体请求与之通信的被请求对等体;把秘密的会话密钥从安全代理分发到请求对等体和被请求对等体;以及使用秘密的会话密钥加密请求对等体和被请求对等体之间的通信。
11.如权利要求10中所述的计算机程序产品,其中记录在计算机可读介质上的计算机软件用于执行在请求对等体产生消息编号的步骤。
12.如权利要求10中所述的计算机程序产品,其中记录在计算机可读介质上的计算机软件用于执行在被请求对等体产生消息编号的步骤。
13.如权利要求10中所述的计算机程序产品,其中记录在计算机可读介质上的计算机软件用于执行在安全代理处为请求对等体和被请求对等体产生消息编号的步骤。
14.如权利要求10中所述的计算机程序产品,其中请求对等体请求与多个被请求对等体进行通信,并且加密的会话密钥被分发到所有被请求对等体。
15.如权利要求10中所述的计算机程序产品,其中鉴别步骤包括交换使用公开与私秘密钥对加密的消息编号。
16.如权利要求10中所述的计算机程序产品,其中记录在计算机可读介质上的计算机软件用于执行用请求对等体鉴别安全代理的步骤。
17.如权利要求10中所述的计算机程序产品,其中记录在计算机可读介质上的计算机软件用于执行用被请求对等体鉴别安全代理的步骤。
18.如权利要求10中所述的计算机程序产品,其中请求对等体请求与多个被请求对等体进行通信,并且不同的加密会话密钥被分发到相应的被请求对等体。
19.一种使得能够实现安全的对等通信的装置,该装置包括第一安全代理计算机系统和第二请求对等体计算机系统,第一计算机程序具有第一处理器和第一存储器,其中第一存储器包括第一计算机程序,第一处理器与第一程序共同工作来执行以下步骤鉴别请求对等体;鉴别该请求对等体请求与之通信的至少一个被请求对等体;把加密的会话密钥分发到请求对等体和被请求对等体;其中第二计算机系统具有第二处理器和第二存储器,该第二存储器包括第二计算机程序,第二处理器与第二程序共同工作来执行使用会话密钥加密被请求对等体的通信的步骤。
20.权利要求19的装置,其中第二处理器与第二程序共同工作来执行产生消息编号的步骤。
21.权利要求19的装置,其中第一处理器与第一程序共同工作来执行产生消息编号的步骤。
22.权利要求19的装置,其中请求对等体请求与多个被请求对等体进行通信,并且加密的会话密钥被分发到所有被请求对等体。
23.权利要求19的装置,其中鉴别步骤包括交换使用公开与私秘密钥对加密的消息编号。
24.权利要求19的装置,其中第二处理器与第二程序共同工作来执行鉴别安全代理的步骤。
25.权利要求19的步骤,其中请求对等体请求与多个被请求对等体进行通信,并且分发加密会话密钥的步骤包括把不同的加密会话密钥分发到相应的被请求对等体。
全文摘要
一种用于安全的对等通信的协议,它的建立是基于现有的密码技术和加密算法。对等体(120、130、140)和中央安全代理(110)要经历相互鉴别的过程。新产生的临时值用于鉴别,且随机的会话密钥用于会话。安全代理(110)为对等体(120、130、140)之间的通信产生独特的会话密钥。由于安全代理(110)独立地鉴别请求对等体(120)和被请求对等体(130、140),所以安全代理(110)消除了被请求对等体(130、140)和请求对等体(120)之间的相互鉴别的负担。安全代理(110)把会话密钥发送给被请求对等体(130、140)和请求对等体(120)。
文档编号H04L9/32GK1747381SQ200510068429
公开日2006年3月15日 申请日期2005年4月29日 优先权日2004年9月9日
发明者阿布西什克·辛格 申请人:国际商业机器公司