在第一计算机单元和第二计算机单 元之间管理加密密码的方法 在多个通信用户之间通信时,在许多技术领域需要用户通信通过加密方法防止别人越权使用。其中,用于整个通信的加密保护的开销取决于每一种应用。因此,例如在私人会话时采用所有可能的加密安全措施也许并不具有很大的意义。然而,在进行具有非常机密内容的通信时,一种非常严格的通信安全具有极大的意义。
对为安全通信而使用的安全服务、安全机构、安全算法和安全参数的选择作为安全策略表示,它们在通信期间由通信伙伴遵守。
然而,因为安全需求以及与之联系的安全策略随每次通信对话和每一应用不同,以及因为并非所有通信用户事实上能使用所有加密方法,因此,在为严重差异而频繁变换通信伙伴的场合,可以找到需要或者可能的安全策略,这些安全策略由这些通信伙伴的每一计算机单元支持,并从而可以得到保证。
需要在每次通信对话中在参加通信对话的一组内为各次通信确定一个一致的安全策略。
在大量不同的应用协议中,例如在文献[1]中所叙述的CMAP、CDAP等,会出现这样地问题,即同样或不同的计算机单元的不同应用协议需要不同的安全策略。也可能需要特有的、为各应用协议专门的加密密码逻辑连接两个计算机单元之间的各应用协议。因为不同应用协议可以在一个计算机单元上实现,因此在一些情况下必须在两个计算机单元之间交换多个加密密码。因此,也可能需要在两个计算机单元之间议定多种不同的安全策略。
一种安全的密码交换或者一种安全策略的可靠的议定基于在该议定或者在密码交换中涉及的计算机单元在真正交换密码或者议定安全策略之前的相互鉴别。
通常在每次议定安全策略前或者在每次密码交换前经历一个鉴别阶段,在此期间,计算机单元相互鉴别。
在一个安全策略的多次议定或者在多次密码交换过程下将导致执行多次鉴别,这意味着增加通信开销和提高对运算能力的需求。
在不仅两个计算机单元,而是属于不同安全域的多个计算机单元彼此通信时这一问题变得更为严重。此处,安全域理解为遵守一个共同安全策略的一批计算机单元。
在这种情况下,鉴别通常根据安全域执行。
对可以用于该方法的普通可用加密方法的概述例如可以在文献[2]中找到。
已经公知,在两个通信伙伴之间必须议定一种安全策略,然而在该文件中说明的这一议定仅限于少数事先确定的参数[3]。
因此,本发明是根据下述问题提出的,即给出在两个计算机单元之间管理密码的方法,其中所需要的通信开销和为执行本发明需要的计算能力比公知的方法少。
该问题通过权利要求1的方法解决。
在本方法中,在两个计算机单元之间执行一种鉴别,在其范围内在两个计算机单元之间交换鉴别参考。通过鉴别参考,在计算机单元之间交换一个秘密信息,根据该秘密信息,可以进行计算机单元的鉴别。通过使用该鉴别参考实现随后的安全策略的议定和/或随后在计算机单元之间的密码交换。
通过该方法可以实现,避免在计算机单元之间为每次新的密码交换和/或每次新的安全策略的议定的显式鉴别阶段。这例如意味着,在大量使用的应用协议中大大减少需要的议定阶段,因为在计算机单元之间只需要执行一次议定,而对于其它步骤,计算机单元的议定根据传输的鉴别参考隐式执行。
这样,极大减少在计算机单元以及所需要的计算需求之间为密码管理所需要的通信开销。
本发明有利的改进来自从属权利要求。
通过将多个计算机单元组成安全域和根据各计算机单元所属安全域执行计算机单元的鉴别,还可以节省所需要的通信开销和所需要的计算能力。这通过本方法的模块化结构实现,因为,对一个安全域的每一计算机单元只需执行一次显式鉴别。如果在已经执行鉴别的相应安全域的其它计算机单元之间还要议定另外的安全策略或者另外的密码交换的话,那么被交换的鉴别参考在另外的议定和/或另外的密码交换时可以隐式用于其它计算机单元的鉴别。
另外,本方法的一个改进方案的优点是,使用一个基于对称加密算法的散列函数,因为使用这样的散列函数构造散列值可以很快执行。以此极大加快本方法的执行。
通过在本方法中使用数字签名能够可靠地、不可拒绝地执行本方法。
另外的优点是,执行一个连接拆除阶段,在这一阶段清除分开的秘密信息,例如被交换的密码或者鉴别参考。这样进一步提高本方法的安全性,因为不存在其它计算机单元在后来越权使用任何交换的秘密信息的可能。该连接拆除阶段另外还用于同步参加通信的计算机单元。
本方法的另一个改进方案的优点是逐渐清除秘密信息,以便能够在另外交换密码时分等级重新使用秘密的、先前交换的信息。这例如意味着,在连接拆除阶段的开始,清除还存储在已经议定的安全策略的应用协议之间为建立逻辑连接交换的对话密码。然后在计算机单元应用协议之间随后建立新的逻辑连接时只需要在这些计算机单元之间交换一个新的密码。先前交换的秘密信息,例如鉴别参考或者议定的安全策略还可以在新的逻辑连接中再次使用。
附图表示本发明的一个实施例,其在后面详细叙述。
图1是一个流程图,表示本方法的单个运行步骤;
图2是一个消息格式的示意图,可以以该消息格式有利传输本方法中交换的消息。
在本发明的范围内必须以这样理解加密方法的概念,即用于数据包D P完整性检验的无论所有加密方法,还是非加密方法,例如循环冗余码检验都用加密方法的概念表示。
图1表示说明本发明的方法的一个例子。后面将会说明,决不能把该实施例理解为本发明唯一的实施可能。专业人员知道在单个流程步骤中的该实施例的各种变体,并将在另外的说明范围内解释。
本方法开始时在一个第一计算机单元C1和一个第二计算机单元C2之间执行一种鉴别。该鉴别在一个鉴别阶段A执行。
该鉴别例如可以按照在X.509标准中说明的方法执行强鉴别。此时,该鉴别例如以下述方式执行。
从第一计算机单元C1向第二计算机单元C2传输证书CertA,它包含第一计算机单元的一个可靠的、由一个可靠的第三事件,即出证单元证实的公开密码。
另外,在第一证书CertA之外第一计算机单元C1还建立一个第一签名消息S1,它通过关于一个第一消息N1的一个电子签名使用第一计算机单元C1的一个秘密密码SK-A建立。
第一消息N1例如包括一个第一时间标记TA、一个第一随机数RA(它在本方法的范围内是唯一的)、第二计算机单元C2的一个身份参数IB(在使用X.509鉴别机构时例如是第二计算机单元C2的唯一的身份参数,在后面说明的议定时是一个要使用的安全策略,它在一个完整的安全域上延伸)、第二计算机单元C2所属安全域的一个域参数SDID、以及一个用第二计算机单元C2的一个公开密码PK-B加密的第一计算机单元C1的鉴别参考ARA,它相应于第一计算机单元C1的一个伪密码。
第一证书CertA以及第一签名消息S1向第二计算机单元C2传输。
在分析(验证)第一签名消息S1之后,在第二计算机单元C2中建立一个第二签名消息S2,并向第一计算机单元C1传输。第一签名消息S1用于防止不同技术的加密攻击。
第二签名消息S2例如包括下列元素:
-第二时间标记TB,
-第二、唯一随机数RB,
-第一计算机单元C1的一个身份参数IA,
-第一随机数RA,
-用第一计算机单元C1的一个公开密码PK-A加密的第二计算机单元C2的鉴别参考ARB。
上述元素建立一个第二消息N2,它通过使用第二计算机单元C2的一个秘密密码SK-B建立一个数字签名而被确定。
第一计算机单元C1的鉴别参考ARA和第二计算机单元C2的鉴别参考ARB的功能中的秘密伪码在后面的协议流程中用于:把后继协议阶段和协议消息向鉴别阶段加密复制。在使用X.509标准时,第一计算机单元C1的鉴别参考ARA向为一个“秘密位串”提供的字段传输。
在第一计算机单元C1接收和分析亦即检验第二签名消息S2后,由第一计算机单元C1建立一个第三签名消息S3并向第二计算机单元C2传输。
第三签名消息S3在使用第一计算机单元C1的秘密密码SK-A之下建立,用它加密一个第三消息N3。第三消息N3至少包括第二计算机单元C2的身份参数IB以及第二随机数RB。
然而这一鉴别也可以通过在第一计算机单元C1和第二计算机单元C2之间的其它各种鉴别实现,例如通过使用指数密码交换原则,诸如通过使用所谓的Diffie-Hellmann方法。在使用Diffie-Hellmann密码交换方法时被交换的密码直接作为在其它方法中使用的鉴别参考ARA、ARB使用。
在鉴别阶段A只需要在第一计算机单元C1和第二计算机单元C2之间以可靠方式交换鉴别参考ARA、ARB。这意味着,只需要在鉴别阶段A之后在两个计算机单元C1、C2中一个为各计算机单元C1、C2特定的秘密信息存在于各计算机单元C1、C2的另一个之中。
在成功鉴别后,在第一计算机单元C1和第二计算机单元C2之间议定一个为后来的通信阶段使用的安全策略,和/或交换一个加密密码。
下面详细解释安全策略的议定阶段SP以及密码交换阶段SA。然而在本方法的变体中规定,只执行安全策略的议定阶段SP或者密码交换阶段SA。在该实施例中一起表示这两个阶段SP、SA仅为了清楚说明本发明。
安全策略的议定阶段SP可以例如通过下述流程步骤表征。
通过这一模块构造的协议,可以把第一计算机单元C1和第二计算机单元C2的一次相互鉴别用于第一计算机单元C1和第二计算机单元C2之间的安全策略的其它议定,而不必重新执行鉴别阶段A。这可以通过在安全策略的议定阶段SP使用鉴别参考ARA、ARB隐式鉴别计算机C1、C2实现。
在一个改进方案中安全策略可以例如在整个安全域S1、S2上延伸,以此表示一个计算机组,它们属于一个公共的安全策略。
然而安全策略也可以仅在第一计算机单元C1和第二计算机单元C2之间实际要建立的连接上延伸。
在第一计算机单元C1中建立一个安全策略建议SPA,它包括要使用的、由第一计算机单元C1建议的安全策略。
安全策略建议SPA使用第二计算机单元C2的公开密码PK-B加密,以此防止未授权的监听者窃听这一敏感的安全策略建议。
此外,至少对安全策略建议SPA、第二计算机单元C2的身份参数IB以及第二计算机单元C2的鉴别参考ARB使用一个散列函数h(.),用它建立一个第一散列值h(SPA,IB,ARB)。
通过该第一散列值h(SPA,IB,ARB)保证第一计算机单元C1对第二计算机单元C2的鉴别以及安全策略建议SPA。
此处能够使用非对称数字签名,由此实现各数字信号化消息的肯定接收(Nichtabsteitbarkeit)。
基于对称加密方法的散列值的建立具有下述优点,即通过对称加密方法获得散列值要比建立数字签名执行快得多。
在本方法的范围内可以使用任意散列函数,例如MD4方法、MD5方法、或者散列算法ISO10118。当用硬件实现对称的、所谓的DES加密方法(数据加密标准)时,使用散列方法ISO10118特别具有优点。
加密的安全策略建议SPA以及第一散列值h(SPA,IB,ARB)向第二计算机单元C2传输并在哪里检验。
作为回答,向第一计算机单元C1传输一个安全策略确认,它用第一计算机单元C1的公开密码PK-A加密。另外在第二计算机单元C2中建立一个第二散列值h(SPAB,IA,ARA),并向第一计算机单元C1传输,这里,第二散列值h(SPAB,IA,ARA)至少通过安全策略确认SPAB、第一计算机单元C1的身份参数IA以及第一计算机单元C1的鉴别参考ARA建立。
安全策略确认SPAB例如包括对由第一计算机单元C1发送的安全策略建议SPA接收的确认,或者一个特有的、由第二计算机单元C2建立的安全策略建议。如果由第二计算机单元C2建立的安全策略建议偏离第一计算机单元C1的安全策略建议SPA的话,那么第一计算机单元C1必须以相应方式处理、验证、检验另外的安全策略建议,并向第二计算机单元C2发送一个另外的安全策略确认。
消息的内容相应于上述方法。安全策略的议定阶段SP可以反复执行,直到第一计算机单元C1和第二计算机单元C2对一个统一的、由两个计算机单元C1、C2支持的安全策略取得一致。
密码交换阶段SA例如可以通过下述流程步骤实现。
从第一计算机单元C1向第二计算机单元C2传输一个第一密码交换消息SA1。
第一密码交换消息SA1例如包含下列元素:
-一个要使用的连接的一个参数P,用它表示多个不同的同时活动的连接中的一个,
-第一计算机单元C1的一个用于密码分配和/或一个连接中断消息的计数值CAB,
-一个用第二计算机单元C2的公开密码PK-B加密的、在后来的方法中要使用的对话密码k,这里,该对话密码最好是在连接P的范围内使用的一个对称对话密码。
-一个第三散列值h(k,P,CAB,IB,ARB),其至少通过对话密码k、连接P、计数值CAB、第二计算机单元C2的身份参数IB以及第二计算机单元C2的鉴别参考ARB建立。
在本方法的一个改进方案中也提供,对话密码k是一个非对称密码对。
第一计算机单元C1和第二计算机单元C2之间的计数值CAB用于在不同的协议执行之间为同样的连接区分第一计算机单元C1和第二计算机单元C2。通过每次接收的计数值CAB必须总大于最后存储的计数值CA B,可以重演攻击,亦即通过重演监听的数据发现攻击。
第一密码消息SA1由第二计算机单元C2根据第三散列值h(k,P,CAB,IB,ARB)验证,对话密码k通过使用第二计算机单元C2的秘密密码SK-B解密,并建立一个第二密码交换消息SA2,用它确认为第一计算机单元C1的连接P的对话密码k的接收和继续使用。
第二密码交换消息SA2例如包括下述元素:
-连接P,
-一个第四散列值h(P,k,CA,IA),它至少通过连接P、对话密码k、第一计数值CA、以及第一计算机单元C1的身份参数IA建立。
通过这种方式,能够以简单的方式快速、可靠地在第一计算机单元C1和第二计算机单元C2之间交换在本方法中使用的对话密码,而不必重复相互鉴别和安全策略SP的议定。
这一点只是根据上述方法的模块化结构才可能,因为模块化结构能够去掉或者以任意方式彼此结合单个阶段。
另外在一个改进方案中设计,还使用一种加密方式保证连接建立的安全。这一点例如可以通过下述方法实现,由第一计算机单元C1建立一个连接中断消息VAN并向第二计算机单元C2发送。
连接中断消息VAN例如包括下列元素:
-连接P,
-识别连接中断消息VAN的一个参数,
-计数值CAB,
-一个第五散列值h(P,DR,CAB,IB,ARB),它例如至少通过连接P、连接中断消息VAN的参数DR、计数值CAB,第二计算机单元C2的身份参数IB、以及第二计算机单元C2的鉴别参考ARB建立。
连接中断消息VAN由第二计算机单元C2验证,该连接被中断,在第二计算机单元C2中建立一个例如连接中断确认消息VACKN,并向第一计算机单元C1传输。
连接中断确认消息VACKN例如包括下列元素:
-连接P,
-识别连接中断确认消息VACKN的一个参数DA,
-一个第六散列值h(P,DA,CAB,IA,ARA),它例如至少通过连接P、连接中断确认消息VACKN的识别参数DA、计数值CAB,第一计算机单元C1的身份参数IA、以及第一计算机单元C1的鉴别参考ARA建立。
通过连接中断消息VAN或者连接中断确认消息VACKN的识别参数DR、DA能够避免在将来扩展上述方法时为其它目的越权使用散列值。连接中断消息VAN和/或连接中断确认消息VACKN另外还包括关于所用连接P的参数。
上述在图1中表示的本方法的鉴别阶段A、安全策略建议的议定阶段SP、密码交换阶段SA、以及中断连接阶段可以彼此任意结合执行。
在本方法的一个改进方案中设计,在连接中断阶段并非立即清除所有秘密交换的信息,而首先只消除各交换的对话密码k,存储保存例如议定的安全策略和/或在计算机单元C1、C2中的鉴别参考ARA、ARB。
另外在一个改进方案中设计,逐渐清除分开的秘密信息,亦即在清除对话密码k之后,首先清除每次交换的安全策略,接着清除鉴别参考ARA、ARB。
本方法可以在连接建立阶段执行在第一计算机单元C1和第二计算机单元C2之间的连接。
在本方法的一个改进方案中设计,以一种消息格式传输单个消息,其结构示于图2。
在这一消息格式中,每一要传输的消息前面放一个头字段KF。
下面叙述的消息格式决不对上述方法限制,而可以用于所有加密协议中。
头字段KF优选具有下列元素:
-一个至少一字节长的安全标记SF,
-连接P,
-阶段A、SP、SA的一个阶段参数PT,用它表示该消息的各个信息,
-计数器字段Z,用它明确识别每次在各阶段A、SP、SA中的消息,
-一个参数D,例如接收该消息的计算机单元C1、C2的一个地址,和/或各计算机单元C1、C2所属安全域S1、S2的一个参数。
另外,在一个改进方案的头字段KF中还可以例如在标识各阶段A、SP、SA的字段PT中另外至少包括关于在阶段A、SP、SA中使用的算法,例如RSA、MD5、MD4、DES、椭圆曲线算法和/或在这些算法中使用的参数。
通过长度至少为1位的安全标记SF,接收机在分析头字段KF时可以以非常简单、迅速从而节省计算能力的方式知道,接收的各消息是否以某种方式加密处理。
为此,在安全标记SF中的参数对加密处理的消息带一个第一逻辑值,而对一个未加密处理的消息带一个第二逻辑值,这样即可以实现。
由于这个原因,在一个改进方案中设计,安全标记SF确切只是1位长。
计数器字段Z的优点在于,在一个阶段A、SP、SA内原则上可以交换任意多个消息,并可以通过该计数器字段Z唯一标识在阶段A、SP、SA内的各消息。
头字段K F中阶段A、SP、SA的阶段参数PT的一个优点是:以非常简单的全方法可扩展性识别新阶段,为此只需在阶段参数PT中接收一个新标识。使用阶段参数PT同样可能简单地替代和/或取消已经提供的阶段。
消息自身在一个字段VL中变长存储。
本说明书引证下列文献:
[1]MMC-概述
[2]S.Muftic,Sicherheitsmechanismen fuer Rechnernetze,KarlHansa Verlag Muenchen,ISBN 3-446-16272-O,S.34 bis 70,1992(S.Muftic所著“用于计算机网络的安全机构”,Karl Hansa出版社,幕尼黑ISBN 3-446-16272-0 34到70页,1992年)
[3]E.Kipp et al,The SSL Protocol,Internet Draft,(E.Kipp等人所著“SSL协议,因特网草案”),可从1995年6月因特网下述地址得到:
gopher://ds.internic.net:70/00/internet-drafts/
draft-hickman-netscape-ssl-01.txt*