安全数据传输链接的制作方法

文档序号:7847345阅读:216来源:国知局
专利名称:安全数据传输链接的制作方法
技术领域
本发明一般涉及用于数据传输的安全通信链接,更具体地说,涉及使用非对称密码技术以建立使用对称密码技术的安全链接的数据通信链接。
背景技术
在移动电话网中,数据传输变得越来越重要,特别是对于如在由第三代合作伙伴项目(Third Generation Partnership Project)(3GPP,3GPP2)所设计的标准和技术规范(其可在www.3gpp.org上查到并且被以参考的方式包含在这里)中描述的所谓2.5G和3G(第三代)网络来说,这变得尤为重要。
安全数据传输对于m-商务来说是重要的,但除此之外,对于多媒体娱乐、远程医疗(telle-medicine)、可编程移动终端的升级、不同无线标准的升级等来说,将软件安全下载和安装到移动终端上也是很重要的。可重新配置的移动终端能够为终端用户提供更强的灵活性,通过下载和安装所需的应用程序,例如为了支持不同类型的无线电系统和允许集成不同系统,终端用户能够定制其终端以满足其需要。然而,需要这样一些技术来保护移动终端以防止黑客恶意用其软件来替代从手机生产商或对可信第三方的网络操作员获得的软件。
一般来说,目前两种基本的密码技术,即对称和非对称密码技术被使用以提供例如用于软件下载的安全数据传输。对称密码技术(cryptography)按传统的思路利用公用密钥进行加密和解密。通过限制对该密钥的访问和密钥管理技术,例如对每一数据传输或用于一小组数据传输使用不同密钥,数据被保护。一个公知的对称密码技术的示例为美国数据加密标准(DES)算法(美国国家标准局的FIPS-46、FIPS-47-1、FIPS-74、FIPS-81)。其一个变型为其中连续地使用3个密钥以提供附加安全的三倍DES(3DES)。对称密码算法的其它示例为来自RSA数据安全股份有限公司和来自国际数据加密算法(IDEA)的RC4。
非对称或所谓的公开密钥密码技术使用一对“私有”和“公开”的密钥(尽管在实践中公开密钥的分发也经常是受限制的)。用公开密钥(public key)加密的消息仅可用私有密钥(private key)进行解密,反之亦然。因此,个人可以使用私有密钥对数据加密,而由任何具有相对应的公开密钥的人对其进行解密;同样地,基于仅私有密钥可被用于解密数据这一知识,通过使用公开密钥对数据加密,任何具有公开密钥的人都可安全地将数据发送给个人。
在提供密钥管理功能的被称做公开密钥基础设施(infrastructure)(PKI)的基础设施内,非对称密码系统被广泛地使用。通过使用私有密钥对消息或消息摘要(digest)进行加密,非对称密码技术也可被用于对消息数字签名。假设接收方具有原始消息,他们可计算相同的摘要,并且因此通过对该消息摘要进行解密鉴别该签名。消息摘要来源于原始消息,并且一般比原始消息要短,这使得从摘要计算原始消息变得非常困难;所谓的has功能可被用于产生消息摘要。
公开密钥基础设施通常包括提供数字标识(identity)证书。为了防止个人伪装成其他人,个人可向发证机构(certificationauthority)证明其身份,然后该发证机构发给使用发证机构的私有密钥所签名和包括该个人的公开密钥的证书。发证机构的公开密钥是众所周知的,因此是可信的,并且由于该证书仅能使用发证机构的私有密钥已被加密,所以个人的公开密钥由该证书验证。在移动电话网络的范围内,用户或网络操作员通过使用他们的私有密钥对消息签名,可验证他们的身份;同样地,可使用公开密钥验证身份。可在www.wapforum.org获得的2001.4.24版的WPKI、WAP-217-WPKI和www.ietf.org获得的X.509规范(PKIX)中查询无线应用PKI的进一步的细节,其整个内容都以参照的方式被包含在这里。
在3G移动电话系统标准或安全数据传输还没有被确定的情况下,目前在www.mexeforum.org MexE论坛(移动执行环境论坛)进行讨论。可参照ISO/IEC 117-3,“Information Technology-Security Techniques-key Management-Part 3Mechanism UsingAsymmetric Techniques”,1996 DIS。
Diffie和Hellman于1976年首先公开了非对称密码技术(W.Diffie和D.E.Hellma,“New directions incryptography”,IEEETransactions on Information Theory,22(1976),644-654),并且多种非对称密码技术现在为公开领域,其中最著名的为RSA(Rivest、Shamir和Adleman)算法(R.L.Rivest,A.Shamir和L.M.Adleman“A Method for obtaining digital signatures an dpublic-keycryptosystems”,communications of the ACM,21(1978),P120-126)。其它更新的算法包括椭圆曲线密码系统(见例如X 9.63,“Public key cryptography for the financial services industryKeyagreement and Key transport using elliptic curve cryptography”,Draft ANSI X9F1,October(1999)。上述的X.509 ITU(国际电信联盟)标准通常被用于公开密钥证书。包括密钥发行人的唯一标识符和公开密钥(以及关于算法和发证机构的消息)的该证书包括在目录中,即由个人和组织使用的证书的公开系统消息中心库。
安全系统的主要目的是鉴认数据发信方或接收方、访问控制、非拒绝提供发送或接收的数据、发送数据的完整性和机密性。最好为“匿名”数据下载做好准备,即准备或广播数据而无需特别验证接收方。
对称和非对称密码技术纲要彼此具有优点和缺点。非对称方法有效资源较少,需要复杂的计算和比对称法相对更长的密钥长度以达到相对应的安全等级。然而,对称法需要在终端内存储密钥,并且不提供非拒绝或匿名软件下载。本发明综合了这两种方法,概括地说,就是使用公开密钥技术传输保密话路密钥。然后例如使用该密钥可建立对称话路以安全地下载软件。在软件下载后,该密钥可被存储在用于非拒绝的或终端的系统消息中心库中,或一旦该软件或其它数据下载完成后,可放弃该密钥。该技术支持用于像X.509或WPKI的密钥管理的层级基础设施、对大哥移动终端的广播的能力、匿名下载软件到移动终端的能力(采用非对称技术)和在建立对称话路后移动终端的更快的软件下载(使用对称技术)。

发明内容
根据本发明的第一个方面,提供了一种在移动通信系统的移动终端和服务器之间建立安全通信链接的方法,该方法包括从移动终端的存储器中检索素数p和用于Diffie-Hellman密钥交换协议的发生器g;在终端产生小于p-1的正整数b;将包括(gbmod p)值的消息从终端发送到服务器;在终端利用用于服务器的b和值y=gamod p,并在服务器利用a、b、g和p,通过计算(gabmod p)的值,确定终端和服务器的共享密值,其中a为在终端和服务器的小于p-1的正整数;使用共享密码在终端和服务器之间建立所述安全通信。
技术人员将认识到移动终端和服务器的角色可被交换。例如通过终端和服务器已知的散列数据,共享密值(secret number)可被用做话路密钥或可被用于产生话路密钥。最好使用例如用作服务器的部分数字标签的服务器的公共值y,素数p和发生器g可被局部存储在例如移动终端SIM(用户标识模块)卡中。或者公共值y可从服务器被发送到终端。
在优选实施例中,在其最好与服务器的标识符一起从服务器被发送到终端之前,公共值y使用终端的公开密钥被加密。这使得能够进行提供保护以防所谓的中间人的攻击的验证的话路密钥交换。为了提供另外的安全,时间戳可被加密和被发送,或最好可在终端和服务器之间交换以提供与时间有关的话路密钥有效期和期满时间。随机数或当前的数(只使用一次的数)可被发送或另外地或选择地被交换到时间戳。
为了更安全,在其从终端被发送到服务器之前,最好使用服务器的公开密钥加密gbmod p的值。在这种情况下,可将服务器的公开密钥存储在终端内,例如在SIM上。
通过对软件和附许可证或其它的文件数字签名,可进一步降低恶意软件下载的危险。然而,不是使用常规的方法对数据签名,而是使用允许消息恢复的签名操作可对要被下载的整个代码或数据签名,然后仅该签名可被发送。或者可使用解码文字(en clair)或使用允许消息恢复的签名签署的所附的许可证或其它的文件发送数据或软件,后面的方法比前面的方法具有更多的优点,而不需要在整个数据或代码区上执行签名操作。
本发明也提供了一种在移动通信系统的服务器和移动终端之间建立安全通信链接的方法,该方法包括从服务器中的存储器检索素数p和用于Diffie-Hellman密钥交换协议的发生器g;在服务器产生小于p-1的正整数;将包括(gbmod p)值的消息从服务器发送到终端;在终端利用用于服务器的b和值y=gamod p,并且在服务器利用a、b、g和p,通过计算值(gabmod p),确定服务器和终端的共享密值,其中a为在服务器和终端的小于p-1的正整数;使用共享密值以建立在服务器和终端之间的所述安全通信。
为了方便起见,对其应用于通信链接的两端时已描述了该方法。然而,本发明仅分别提供了在服务器端所执行的方法步骤和在链接的终端所执行的步骤。
本发明的其它方面提供了在链接的服务器端执行该方法的计算机程序代码和在链接的终端执行该方法的计算机程序代码。该代码最好存储在诸如硬盘或软盘、CD或DVD-ROM之类的载体上,或存储在诸如只读存储器或闪速存储器之类的可编程存储器上;或它可被设置在光或电信号的载体上。技术人员应当理解仅在软件上或通过软件(或固件)和硬件的组合,或仅在硬件中可实现本发明。同样地,没有必要在单个处理部件内执行如在链接的任何一端所执行的方法步骤,但其可被分布在例如在处理器的网络上的多个这样的部件之中。
上述方法的实施例排除了在生产商的移动终端内安装唯一对称话路密钥的必要性,提供了多终端的能力,并且提供了使用对称技术不能实现的匿名软件的下载。匿名下载软件和其它数据的能力使得能够对每一终端/客户要求进行安全软件和数据下载,因此能够下载免费软件、标签、赠券和诸如音乐和MPEG电影剪辑之类的流媒体数据的节选。对称和非对称技术的组合,特别是在X.509或WPKI基础设施内操作的方法能力也有助于m-商务。此外,该过程也不完全依赖于非对称技术,使得也能够使用更快的对称算法。
当需要更强的安全性时,技术人员将认识到上述本发明的特征和方面可被组合。
通过示例,并且参照其中的附图,现在将进一步描述本发明。


图1示出了3G移动电话系统的一般结构;图2示出了用于在移动电话网络的移动装置和与该网络相连的服务器之间的安全通信链接的密钥管理;图3示出了用于实现根据本发明的实施例的方法的计算机系统。
具体实施例方式
图1在10示出了第三代数字移动电话系统的一般结构。在图1中,无线电天线(radio mast)12与基站14相连,该基站14反过来由基站控制器16控制。所示移动通信装置18通过无线电或空中接口20与基站14双向通信,该接口在GSM(用于移动通信的全球系统)网络和GPRS(通用分组无线服务)网络中为Um接口,在CDMA2000和W-CDMA网络中为Un接口。一般地,在任一时间多个移动装置18都与给定的基站相关联,该给定的基站包括多个无线电收发器以服务于这些装置。
基站控制器16与多个其它的基站控制器(未示出)一起与移动交换中心(MSC)22耦接。多个这样的MSC与网关MSC(GMSC)24耦接,网关MSC(GMSC)24将移动电话网络与公用交换电话网络(PSTN)26相连。主位置(home location)寄存器(HLR)28和访问位置寄存器(VLR)30管理呼叫路由选择和漫游,其它的系统(未示出)管理验证,记帐(billing)。操作和维护中心(OMC)29从诸如基站和交换机之类的网络基础设施部件收集统计信息以提供给网络操作员使其更好了解网络运行情况。OMC可被用于例如确定在一天中不同的时刻多少可用的网络容量或网络部分正被使用。
上述的网络基础设施主要管理在移动通信装置18和其它的移动装置和/或PSTN 26之间的电路交换语音连接。如GPRS的所谓的2.5G网络和3G网络将分组数据服务加到电路交换语音服务上。广义地说,分组控制单元(PCU)32被加到基站控制器16上,该基站控制器16通过层级系列交换(hierarchicai series of switches)与诸如网络38之类的分组数据网络相连。在基于GSM的网络中,它们包括服务GPRS支持节点(SGSN)34和网关GPRS支持节点(GGSM)36。应当理解,在图1的该系统中和下面将要描述的系统中,在网络内的部件的功能可存在于该系统的单物理节点上或分离物理节点上。
在移动装置18和网络基础设施之间的通信一般包括数据和控制信号。该数据可包括数字编码语音数据,或可使用数据调制解调器以将数据透明地传递到该移动装置上和从该移动装置中透明地传递数据。在GSM型网络中,文本和其它的低带宽数据也可使用GSM短消息服务(SMS)被发送。
在2.5G或3G的网络中,移动装置18可向另一个电话提供多于一个的简单语音连接。例如,移动装置18可另外地或可选择地提供视频和/或多媒体数据服务、万维网浏览、电子邮件和其它数据服务。逻辑上可认为移动装置18包括移动终端(装有用户标识模块(SIM)卡),该移动终端串联连接到诸如数据处理器或个人计算机之类的终端设备。一般地,一旦该移动装置已被连接到网络上,其“总是工作”(always on),并且例如通过在移动终端设备接口的标准AT命令,用户数据可在该装置和外部数据网络之间透明地传输。当常规移动电话被用于移动装置18,可能需要诸如GSM数据卡之类的终端适配器。
图2示意地示出了使用根据本发明的实施例的方法的系统模型200。移动装置202通过无线电塔(radio tower)206与移动通信网络208耦接。移动通信网络208与诸如因特网之类的计算机网络210耦接,计算机网络210被连接到服务器204。移动装置202或服务器204的其中一个或移动装置202或服务器204两者存储数字证书,存储在移动装置202中的数字证书212包括用于服务器204的公开密钥,存储在服务器204中的数字证书214包括用于移动装置202的公开密钥(本发明的其它实施例省去了这两个数字证书中的一个或这两个数字证书)。
PKI话路密钥(session key)传输机构216被设置以在移动装置202和服务器204之间传输话路密钥,PKI传输机构根据来自数字证书中的一个或两个的信息使用非对称密码技术。由PKI装置所传输的话路密钥为供对称密码处理使用的保密话路密钥,并且因为PKI传输,所以没有必要在服务器或移动装置上存储和管理事先安装的唯一保密话路密钥。
PKI传输机构(mechanism)216可包括从服务器到移动装置,或从移动装置到服务器的单向传输机构,或可提供用于获得共享话路密钥的相互交换机构。该服务器可由网络操作员、移动装置生产商或可信(trusted)或不可信(untrusted)的第三方操作,其中该服务器由不可信的第三方操作时,可省去数字证书。
移动装置一般由移动通信网络的用户控制。为简便起见,仅示出了单个移动装置,尽管一般说来,话路密钥可被组播(multiscast)到多个这样的装置,或者甚至可被广播。
图3示出了用于实现根据本发明的实施例的如下面将要描述的方法的通用计算机系统300。取决于该计算机系统是在服务器端还是在链路的移动用户端,该计算机系统可包括图2的部分服务器204或图2的部分移动装置202。当该计算机系统包括部分移动装置,其可在该装置本身或在连接到该装置的分离的计算机系统上、或以其它方式(例如SIM卡或类似的模块上)被实现。
计算机系统包括地址和数据总线302,键盘308、显示器310和音频接口306(在移动电话的情况下)或定位装置(pointingdevice)306(在服务器的情况下)(除非是在SIM卡上实现)与地址和数据总线302相连,在服务器的情况下,电话提供这些功能。诸如网络接口(用于服务器)、无线电接口(用于电话)或接触盘(contact pad)接口(用于SIM卡)之类的通信接口304也与总线302连接。此外,处理器312、工作存储器314、非易失性数据存储器316和非易失性程序存储器318与总线302相连,非易失性存储器一般包括闪速存储器。
非易失性程序存储器318存储用于电话/服务器的SIM卡操作系统的网络通信代码和对称、非对称密码(cryptography code)。处理器312执行该密码以提供相对应的对称和非对称密码处理和网络通信处理。该非易失性数据存储器316最好在数字证书内存储公开密钥,该服务器存储用于一个或多个移动用户的公开密钥,该移动装置存储用于一个或多个服务器操作员的公开密钥。非易失性数据存储器也存储对称密钥(一旦这已被建立)、软件(从服务器下载的软件或下载到移动装置/SIM卡上的软件)和用于软件的许可证(licence)数据,并且在一些情况下,用于控制下载软件的用户的一个或多个安装标签(ticket)。该软件可包括诸如视频数据或MP3数据或代码。
通常希望通过移动终端从诸如生产商、操作员和服务提供者之类的值得信任的机构或可信的提供者获得软件或数据,可以信赖这些生产商、操作员和服务提供者正确声明软件模块的有效性。最好该终端可以安全的方法获得可信的机构(trusted entity)认为具体核心软件模块是有效的信息。
在对称方法中,所谓的标签服务器仅对有效的软件模块发给安装标签。其由可信的提供者控制和操作。通过发给安装标签,标签-服务器表示该标签所指的软件模块有效。安装标签包括加密性强、耐冲突(很难猜测)单向散列值,软件模块的终端使用该值以检查下载的完整性。消息验证代码(MAC)(例如关键散列函数,见例如计算机数据验证。国家标准局1985年第113号FIPS公布文献)用于保护该安装标签。使用由终端和标签服务器共享的密钥计算该MAC。通过检查标签的MAC,该终端证实可信的提供者已发出标签并且该标签未被修改。然后该终端通过将所接收软件模块的散列值(hashvalue)与包含在安装标签中的散列值相比较检查所接收的软件模块的完整性。然而,在可信的提供者和终端用户之间出现争议时,该技术不能确保肯定的结论(non-repudiation),因为他们共享密钥所以具有密钥的任何一个都能够产生标签的MAC。
非对称签名的许可证方法使用公开密钥密码技术。与基于许可证的方法相似,许可证(licence)包括验证软件模块的完整性所需要的信息。签名的许可证可以是新定义的格式,或者它可以是诸如X.509证书或WTLS(无线传输层安全)证书之类的先前定义格式。许可证最好应该至少包括软件模块的加密散列和诸如有效期、发行者的身份(identity)之类的其它相关信息,并且也可包括接收方的身份。该许可证由许可证服务器签名,该许可证服务器由可信的提供者控制和操作。
许可证服务器仅对有效软件模块发给许可证,所以通过对一个软件发给许可证,该许可证服务器实际上声明该软件模块是有效的。由于使用公开密钥签名方案,能获得许可证服务器的公开密钥进行访问的每一机构(entity)可检查许可证的签名。因此,如果在移动终端用户和服务提供者之间有争议,则该方法提供肯定的结构,保护双方。换句话说,由于仅许可证服务器知道签名的许可证的相应的公开密钥,所以仅该许可证服务器可产生用于许可证的有效签名。
终端可用不同的方法获得安装标签或签名的许可证。它们可进行等待直到软件模块被接收为止,然后从服务器直接请求标签或许可证。或者,通过下载服务器或重新配置的管理结点可间接获得标签或许可证。用该间接方法,该软件与标签或许可证捆绑,并且整个分组被发送到终端。
对称和非对称法对终端能力和安全数据量的要求是不同的。签名许可证法要求终端执行非对称密码操作,一般说来,非对称密码操作(cryptographic operation)在处理功率(power)和存储器方面更昂贵,这些在终端上比对称密码处理操作更缺乏。该标签服务器法仅需要一般说来需要很少处理的密钥密码技术。然而,利用非对称法,与在线标签服务器的通信总是必要的,而利用非对称法没有必要使许可证服务器通常处于在线状态。
在两种情况下,终端需要计算加载软件模块的耐冲突的单向散列值。在非对称法中,使用MAC标签确定有效性;在非对称法中,通过检查数字签名,许可证的有效性被确定。数字签名一般需要更多的数据,所以许可证中的位的数量一般多于标签中位的数量。
这些方法的主要目的是保护终端以防恶意下载软件。它们不保护涉及终端的物理修改(如替代程序存储器)的攻击,也不用来限制软件的分发和使用或保护软件模块免遭逆向工程(reverse-engineering)。然而,非对称法的安全需要终端保持其与标签服务器共享的密钥的秘密性,而非对称法依赖于公开密钥,即为保护非对称密钥,保护公开密钥所需要的秘密程度是必须的。
在综合对称方法和非对称方法的上述实施例中,假定使用PKI(公开密钥基础设施),并且诸如生产商和操作员之类的可信方向移动终端发出证书,该移动终端将它们存储在诸如智能或其它卡(例如SIM用户标识模块;WIU无线标识模块;SWIM组合SIM和WIM;USIM通用用户标识模块)之类的安全防破坏模块中。
PKI提供肯定并且保护双方;一旦对称话路密钥已从诸如生产商、操作员等之类的可信方被传输(使用验证的公开密钥),该对称话路密钥提供低的开销和快速下载。为提高的安全性,该话路密钥可能仅在短时期内是有效的。
该方法提供唯一秘密话路密钥,所以没有必要安装这样一种密钥,也没有必要在移动终端内永久安全存储密钥,否则这可能限制在可信的服务提供者和终端之间的密钥管理、限制广播多个移动终端和提供匿名软件下载的能力。对于每一终端/客户/请求来说,下面将要描述的用于移动终端的匿名软件下载技术能够进行诸如下载免费软件、标签、附件等之类的安全软件下载。
首先下面将要描述由操作员/服务器所启动的软件下载技术。假定在该示例中的发信方(originator)A-可信的软件提供者(即终端生产商、网络操作员等)拥有目的接收方(intended recipient)B-移动终端的加密公开密钥的先验的真实副本,并且假定该终端具有服务器(公开)的加密密钥的副本。
然后用于确定共享加密话路密钥的一种技术表示如下M1A→BPB(k‖B‖TA‖SA(k‖B‖TA‖LC))等式1其中M1A→B表示A将M1发送到B,并且其中k为秘密话路密钥,B为用于B的可选标识符(目的接收方),TA为由A产生的可选时间戳,LC为可选数字许可证(例如软件许可证),‖表示数据的级连。使用时间戳阻止了重放攻击(replay attack),但在其它的实施例中,除了例如根据时钟产生的时间戳TH之外,可使用数(最好是随机数),或可使用数(最好是随机数)替代该时间戳TH。这可被用做确定性伪随机数产生器的种子(seed)以使A和B然后产生用作话路密钥的同步的系列伪随机数。这样一种数(在消息中)可以是当前仅使用一次的数。PB(Y)表示使用B方的数据Y的公开密钥加密,如RSA(R.L.Rivest、A.Shamir和L.M.Adleman,“A method for obtaining digital signatures and public-keycryptosystems”,Communications fo the ACM,21(1978),120-126),ECC,(N.Koblitz“Elliptic curve crytopsystems”,Mathematics of Computer,48(1987),203-209)、ElGamal(T.ElGamal,“A public key cryptosystems and a signaturescheme based on discrete logarithms”,IEEE Transactions onInformation Theory,31(1985),469-472),SA(Y)表示使用A的私有签名密钥的对Y的签名操作。
或者,可使用允许签名消息恢复的签名操作,像利用消息恢复算法的RSA签名(ISO/IEC 9796,“Information technology-Securitytechniques-Digital signature scheme giving messagerecovery”,International Organization for Standardization,Geneva,Switcherland,1991)可被使用如下M1A→BPB(SA‖(K‖B‖TA‖LC))等式2其中k为秘密话路密钥,B为用于B的可选标识符(目的接收方),TA为由A产生的可选时间戳,LC为可选数字许可证(例如软件许可证)。
在使用中,一旦终端例如使用许可证获得签名话路密钥,则该终端等待软件模块的到来,并且在接收该软件后,该终端能够(即被允许)使用话路密钥执行该软件。或者,整个软件包可与签名的话路密钥和许可证一起被发送到终端。
使用具有消息恢复的匿名RSA签名的相关技术可被用于下载免费软件和赠券(conpon)。这对于希望广播试用版本的软件以及音乐和电影的短剪辑的受托服务提供者来说可能是有用的。在这样一种情况下,最好是任何人都能够截取消息以获得话路密钥。该密钥可能仅短时期内有效,例如对于电影预告片来说30分钟,这减轻了验证的需要,尽管最好提供该话路密钥发行者的标识符,即最好提供可被容易校验的标识符。因此,该密钥可由生产商/操作员或服务提供者进行数字签名。因此,该技术的一个实施例如下表示M1A→BSA(k‖B‖TA‖LC))等式3其中k为秘密话路密钥,B为用于B的可选标识符(目的接收方),TA为由A产生的可选时间戳,LC为可选数字许可证(例如软件许可证)。
在该实施例中,利用消息恢复方案的RSA签名操作被使用(例如,ISO/IEC 97961991)。由于该消息由A签名,所以没有必要包括A的标识符;包括用于接收方的标识符使得接收方能够确认它们是指定的接收方。接收M1的每一终端都具有用于A、发信方/操作员的适当证书,从而使得能够从例如存储在SIM上的SA提取该消息。这也可被用于广播话路密钥以能够进行免费软件下载,并且能够使该终端匿名下载软件。
在该技术的变体中,密钥k由Diffie-Hellman公共值(publicvalue)gnmod p替代(见,例如W.Diffie和D.E.Hellman,出处同上),其中n为满足1≤n≤p-2的正整数。那么,M1的替换公式如下表示M1A→BSA(gnmod p‖B‖TA‖LC)) 等式4其中k为秘密话路密钥,B为用于B(目的接收方)的可选标识符,TA为由A产生的可选时间戳,LC为可选数字许可证(例如软件许可证)。
移动终端B或客户可获得包含在服务器密钥交换中的服务器的公共值YA=gamod p,或者SIM可包含服务器的公共值。发信方(在该示例中为服务器A)选择随机值n,计算gnmod p并且将包括gnmod p的M1发送到终端。然后服务器A可计算话路密钥k=YAn=(ga)n=ganmod p,终端B可使用k=(gn)a=gnamod p计算相同的话路密钥。
然后通过使用公用话路密钥加密该软件,可将加密软件发送到终端B。窃听者不知道服务器(即a)的私有密钥,因此计算上不可能确定该话路密钥。该方法可被用于向移动设备分发系统软件以匿名安全下载软件,例如用于广播SIM更新,因为各接收方不必被确定。
在上述的四种情况下,在对M1解密时,接收方B将使用话路密钥从发信方/操作员A那里下载软件。在软件下载后,B可将该密钥放在系统储存库中或丢弃该话路密钥,这取决于在可信的服务提供者和终端之间的密钥管理。
在上述的情况下,在对M1解密时,接收方B可使用话路密钥以从发信方/操作员A那里下载软件。在软件下载后,B可将该密钥放在系统储存库(repository)或丢弃该话路密钥,这取决于除了其它的情况、在可信的服务提供者和终端之间的密钥管理。对于操作系统升级而言,最好使用非匿名技术而非匿名技术,因为这有助于了解该升级已被发送给谁。
下面将描述由移动终端启动的软件下载技术。这些技术接近于上述的服务器启动的技术的镜像。根据用于从移动终端启动密钥交换的诸如RSA和Diffie-Hellman之类的非对称技术,我们将描述安全软件下载和匿名软件下载技术。这些技术可被用于为安全实现每一个对诸如软件、标签、赠券等之类的一个数据项或一组数据项的请求建立话路密钥。
在该技术中,通过将数字签名与公开密钥加密合并,签名的单据(bock)被加密,如下列等式所示M1B→APA(k‖A‖TB‖SB‖(k‖A‖TB‖LC))等式5其中k为秘密话路密钥,A为用于A的可选标识符(目的接收方),TB为由B产生的可选时间戳,LC为例如软件许可证的可选数字许可证。
终端B产生话路密钥并且对话路密钥、A的标识和时间戳的组合签名。该话路密钥、签名和可选时间戳和A的标识符被加密,例如从先前的服务器密钥交换消息提取服务器的合格公开密钥。诸如视频剪辑和音乐之类的软件使用话路密钥从服务器A被发送到客户B。由于窃听者不知道服务器的私有密钥,特别是由于其可能仅对一个话路或有限的时间有效,所以从计算上不可能泄露话路密钥k。
如上面所描述的,诸如匿名RSA之类的匿名密码技术也可被描述如下M1B→APA(k‖A‖TB‖LC) 等式6其中k为秘密话路密钥,A为用于A的可选标识符(目的接收方),TB为由B产生的可选时间戳,LC为例如软件许可证之类的可选数字许可证。
终端B产生话路密钥K并且使用服务器的验证的公开密钥(从服务器密钥交换消息中提取)对其进行加密。然后该软件可利用话路密钥K被发送到用户B。由于窃听者不知道服务器的私有密钥,所以一次话路密钥K从计算上来讲不可能被泄露。
或者,可如下使用匿名Diffie-Hellman密码技术(描述了移动启动技术;服务器启动技术对应)首先,适当的素数(prime)p和Zp*的发生器(generator)g被选择并公开,并且例如被存储在终端SIM。这里Zp*为乘法群1、2、3…p-1并且(2≤g≤p-2)。在RFC(请求注释)2631中描述了产生适当的p和g的一个方法。
M1B→Agbmod p 等式7移动终端B或客户例如从服务器密钥交换可获得为服务器的私有密钥的服务器的公共值YA=gamod p。然而最好服务器的公共值被存储在SIM中。该终端选择随机值b,计算gbmod p,并且将M1 gbmod p(被加密的)发送到服务器。a和b均为满足于1≤a≤p-2和1≤b≤p-2的正整数。移动终端B可计算用于对称话路k=YAbmod p=(gamod p)bmod p=gabmod p的密钥,并且服务器A可计算相同的话路密钥k=(gbmod p)amod p=gbamod p。然后通过使用话路密钥对其进行加密,加密的数据或软件可被发送到终端B,或者终端和服务器均可使用该话路密钥以例如通过利用k操作对两者为已知的数据产生另一个公用密钥。窃听者不知道服务器(a)的私有密钥,因此从计算上不可能确定该话路密钥。例如可使用匿名RSA和Diffie-Hellman下载免费软件、标签和赠券。
匿名软件下载技术一般仅提供保护以防被动的窃听者。在创建话路的握手处理期间,主动的窃听者或主动的中间人(active man-in-the-middle)的攻击可用它们自己的消息来替代完成的消息。为了避免该攻击,服务器的验证是所需的。
类似于参照等式4描述的具有消息恢复的匿名RSA签名技术,使用发信方的(即,在该示例中B的)私有密钥,Diffie-Hellman值gbmod p可被加密。更具体地说,通过发送Diffie-Heuman值作为数字签名(根据该值可恢复签名的消息),其可被保护。然后接收方可使用发信方的公开密钥恢复gbmod p,更具体地说通过从该签名提取该消息恢复(recover)gbmod p。
在某种情况下,Diffie-Hellman(DH)和相关椭圆曲线Diffie-Hellman(ECDH)密钥一致方案(X 9.63,“Public keycryptography for the financial services industryKey agreement andKey transport using elliptic curve cryptography”,Draft ANSI X9F1,October(1999))易受被称为“小子组(small-subgroup)”攻击的一类攻击。如果密钥属于一个小子组,则基于根据该小子组的估计密钥的直接的强力攻击可能成功。在匿名DH和ECDH的情况下,存在这样一种风险,即这样的一种小子组攻击将导致通信方共享攻击者已知的话路密钥。通过使用预定一组确定的g和p的“good”(好)或“strong”(强)值和通过检查接收的公开密钥不位于该组的一小组,或通过重新使用普通DH密钥对,可减轻该威胁。在草案ANSI标准X.9.42(X.9.42,“Agreement of symmetric keysusing Diffie-Hellman and MQV algorithms”ANSI draft,May(1999)和在X.9.63(X 9.63,“Public key cryptography for the financialservices industryKey agreement and Key transport using ellipticcurve cryptography”,Draft ANSI X9F1,October(1999))中可查到关于防止这些密码攻击的背景信息。
下面将描述交互密钥验证协议。在这些协议中,A和B由具有A和B的信息或具有A和B特性特征的交换消息验证;在下面的协议中,使用A和B的公开密钥,消息被加密。
第一交互验证处理A、B拥有彼此的真实公开密钥,或者每一方都具有携带其自己的公开密钥的证书,并且一附加消息由证书传输的一方被发送到另一方。在Needham和Schroeder(R.M.Needham和M.D.Schroeder“Using encryption for authentication in largenetworks of computers”,Communications of ACM,21(1978),993-999)可查到关于该协议的背景信息。
所发送的消息如下M1A→BPB(k1‖A‖TA) 等式8M2A←BPA(k1‖k2) 等式9M3A→BPB(k2) 等式10该过程步骤如下1、发信方操作员(或服务器)A将包括第一密钥k1的M1发送到B。
2、接收用户(终端)B在接收到M1时恢复k1,并且将包括第二密钥k2的M2返回到A。
3、在解密M2时,A检查从M2恢复的密钥k1与在M1中被发送的一致。然后A将M3发送到B。
4、在解密M3时,B检查从M3恢复的密钥k2与在M2中被发送的一致。使用适当的公知的诸如MD5(像在RFC 1321中所定义的消息摘要5)和SHA-1(安全散列算法-1,见例如美国国家局的联邦消息处理标准(FIPS)公开文献180-1)之类的不可逆函数f,话路密钥可被计算为f(k1‖k2)。
5、然后B通过使用对称话路密钥f(k1‖k2)开始下载软件。在软件下载之后,取决于密钥管理策略,B可丢弃该话路密钥或将其保持一小段时间。
在X.509强双向验证过程(ISO/IEC 9594-8,“Informationtechnology-Open systems interconnection-The directory Authentication framework”,International Organization forStandadization,Geneva,Switzerland 1995)范围内所进行的第二X509交互验证处理描述如下设DA=(TA‖RA‖B‖PB(k1))DB=(TB‖RB‖A‖PA(k2)) 等式11其中A和B包括分别用于服务器和终端的标识符。
M1A→BCertA‖DA‖SA(DA) 等式12
M2A←BCertB‖DB‖SB(DB) 等式13其中CertA和CertB分别为用于A和B的公开证书。该过程步骤如下1、A获得表示终止时间的时间戳TA,然后使用PB产生随机数RA,获得对称密钥k1,加密K1,并且将消息M1发送到B(由于该消息由A被签名,所以没有必要包括用于A的标识符;在DA中包括接收方标识符使得该接收方能够确认他们是指定的接收方)。
2、B验证CertA的真实性,提取A的签名公开密钥,并且验证在数据块DA上的A的签名。然后B检查是否在M1中的标识符指定其自己作为指定的接收方和时间戳TA是有效的,并且检查是否RA还未被重放。
3、如果所有检查成功,则B宣布A的验证成功,使用它的话路密钥对k1进行解密,并且保存用于安全下载软件的该现在共享的密钥。(如果仅需要单向验证,则这终止该协议)。然后B获得时间戳TB,产生随机数RB,并且向A发送消息M2。
4、类似于由B所进行的动作,A进行类似的动作。如果所有检查成功,则A宣布B的验证成功,并且密钥k2可接着在后面使用。A和B共享交互密钥k1和k2以使话路密钥可被计算成f(k1‖k2),然后f(k1‖k2)可被用于安全下载软件(这里一般意义上的“软件”用于指软件数据)。
通过使用如下的公开密钥加密,可实现验证的Diffie-Hellman话路密钥交换发信方A(即可信的软件提供者、终端生产商、操作员等)和终端B拥有A和B的加密公开密钥的真实副本,这例如可被局部存储或公开密钥可在例如作为数字证书在双方之间被交换。如上述的匿名Diffie-Hellman,适当的素数p和Zp*(2≤g≤p-2)的发生器g被选择和被公开,最好局部存储在该终端中,消息如下交换M1A→BPB(gamod p‖A‖TA) 等式14M2A←BPA(gbmod p‖B‖TA‖TB) 等式15
M3A→BSA(Ek(software‖LC)) 等式16其中A和PA、B和PB分别包括标识符,发信方的公开密钥和终端,TA和TB为用于分别来自A和B的消息时间戳(A、B、TA和TB是可选的),k表示使用密钥k所执行的加密操作。
A选择随机值a,计算gamod p,并且将M1发送到B(没有必要将gamod p存储在终端,因为该值被加密,所以对于中间人的攻击它是安全的)。移动终端B使用它的私有密钥解密接收到的消息,并且选择随机值b,计算gb和p,以及将M2(gbmod p)发送到使用其的私有密钥解密该消息的A。a和b均为满足1≤a≤p-2和1≤b≤p-2的正整数。然后终端B计算话路密钥k=(gamod p)bmodp=gabmod p;发信方A也可使用k=(gbmod p)amod p=gbamod p计算话路密钥。然后A最好使用共享话路密钥k签名加密软件和LC,并且将它发送到B;这里LC为软件许可证,其可选择地规定话路密钥k的有效期,给予版权说明等。窃听者不知道A和B的私有密钥和约定值a和b,因此从计算上不可能确定话路密钥,并且可减轻来自中间人的攻击的威胁。加密的标识符A和B提供该消息的发送人身份的保证,因此M1最好包括A,尽管M2没有必要包括B。同样地,只有B知道TA,所以在M2中包括TA(不管是否也包括TB)使得A能够暗示该消息被B正确地接收。包括TB允许定义时间窗口TB-TA;该时间窗口TB-TA最好短于可能的解密时间,例如不超过1小时。这里,TA最好定义M1的发送时间,TB最好定义M1的接收时间(在B)。
在该方法的变体中,M3可替换为如下i) M3A→B Ek(software‖LC)ii)M3A→B Ek(software‖LC)SA(Ek(software‖LC))iii)M3A→B Ek(software)‖SA(LC)这些选择对象可提供更快速的加密。在(ii)中,可使用不需要操作消息恢复的签名操作;在(iii)中,最好使用消息恢复仅对许可证签名,除非该许可证在软件内(在(iii)中,可选地,许可证Ek(LC)的加密版本被签名)。
可使用时间戳以提供刷新和(消息),并且可提供用于唯一性担保、消息答复的时间窗口。这有助于提供所需的安全性以防已知的密码攻击,和易于受到单向密钥验证协议的重放攻击。基于时间戳技术的安全性依赖于公用时间基准的使用。这反过来要求可获得同步的主时钟,并且考虑到被使用的可接受的时间窗口,时钟漂移必须是可接受的。在实践中,最好是超过1分钟的同步,尽管使用较长的时间窗口超过1小时的同步可能是可接受的。通过例如设置生产的终端的内部时钟,可实现同步。
该终端拥有用于A、发信方式操作员的真实证书(局部存储的或在消息中接收到的),然后以上述的单向密钥验证技术提供安全的软件下载。对于A和B均拥有真实证书或公开密钥的交互验证协议来说,除了用于恢复(recover)A和B的私有密钥的强力攻击以外,不会有将已知攻击会成功。然而,在X.509上下文过程中,因为在DA内的加密PB的范围内,没有包括诸如A之类的标识符,所以人们不能确保签名方确实知道该明码文本密钥。即,因为标识没有被加密,所以该消息不能由未加密该密钥的人签名。
上面已描述了传输用于安全软件下载的对称话路密钥的公开密钥技术的使用。其综合了非对称和对称法的优点。PKI能够肯定并且如果没有争议的话对双方进行保护,但PKI在计算上量大(intensive)并且靠自己进行安全软件下载是低效的。一旦该密钥已使用由可信方发送的验证的公开密钥被传输,则对称话路密钥提供一种能够有效和快速下载的方法。取决于安全要求和该密钥被破解的可能性,该话路密钥的寿命可能较短(例如对于单个数据传输)或较长(例如几个月)。
上述技术也适合于未来可编程移动用户设备的MexE标准。而且,对于要求下载免费软件、标签、赠券以及安全的M商务的每一终端/客户要求,匿名软件下载技术能够进行安全软件下载。
在服务器和移动通信系统的移动终端的背景下描述了本发明的实施例,但本发明也可应用在其它方面,例如应用在网络计算机系统中。也应该意识到,一般来说,终端或服务器均可包括上述协议中的初始消息发信方,尽管为了简明,参照其中一个或其它的作为发信方描述了具体的示例性的实施例。但本发明不限于上述的实施例,在权利要求的精神和范围内,可包含各种对本领域的技术人员来说显而易见的改进。
权利要求
1.一种在移动通信系统的移动终端和服务器之间建立安全通信链接的方法,该方法包括从移动终端的存储器中检索素数p和用于Diffie-Hellman密钥交换协议的发生器g;在终端产生小于p-1的正整数b;将包括(gbmod p)值的消息从终端发送到服务器;在终端利用用于服务器的b和值y=gamod p,并在服务器利用a、b、g和p,通过计算(gabmod p)的值,确定终端和服务器的共享密值,其中a为在终端和服务器的小于p-1的正整数;使用共享密码在终端和服务器之间建立所述安全通信。
2.如在权利要求1中所述的方法,还包括在移动终端的存储器中检索公共值y。
3.如在权利要求1中所述的方法,还包括使用终端的公开密钥在通信链接的服务器端加密公共值y以提供第一加密消息,该公共密钥为非对称密码技术的密钥;将第一加密消息发送到终端;在终端从第一加密消息中解密公共值y。
4.如在权利要求3中所述的方法,其中所述加密还包括加密服务器的标识符,因此所述第一加密消息包括所述服务器标识符;其中所述解密还包括解密所述服务器标识符;并且其中该方法还包括在终端检查所述服务器标识符。
5.如在权利要求3或4中所述的方法,其中所述加密还包括加密服务器时间戳,因此所述第一加密消息包括所述服务器端时间戳;其中所述解密包括解密所述服务器端时间戳以使所述安全通信链接有效。
6.如上述的权利要求中的任何一个的方法,还包括使用服务器的公开密钥在终端加密(gbmod p)的值以提供第二加密消息包,该公开密钥为非对称密码技术的密钥;将第二加密消息发送到服务器;和在服务器从第二加密消息解密(gbmod p)的值。
7.如权利要求6所述的方法,其中所述加密还包括加密服务器的标识符,因此所述第二加密消息包括所述终端标识符;其中所述解密还包括解密所述终端标识符;并且其中该方法还包括在服务器检查所述终端标识符。
8.如权利要求6或7所述的方法,其中所述加密还包括加密终端时间戳,因此所述第二加密消息包括所述终端时间戳;其中所述解密还包括解密所述终端时间戳以使所述安全通信链接有效。
9.如当从属于权利要求5时如权利要求8所述的方法,其中所述第二加密消息包括所述服务器端时间戳。
10.如上述权利要求中的任何一个所述的方法,还包括将由服务器数字签名的消息从服务器发送到终端。
11.如权利要求10所述的方法,其中该数字签名提供消息恢复,并且其中被数字签名的该消息包括至少一个许可证标识符。
12.如权利要求10或11所述的方法,其中由服务器数字签名的消息包括使用所述共享密码被加密的数据。
13.一种安全地传递数据的方法,包括通过上述权利要求的任何一个的方法建立安全的通信链接,并且通过该链接安全地传递数据。
14.如权利要求1中所述的方法,其中包括(gbmod p)的值的该消息包括一个数字签名,从该数字签名可恢复(gbmod p)的值。
15.一种在移动通信系统的服务器和移动终端之间建立安全通信链接的方法,该方法包括从服务器中的存储器检索素数p和用于Diffie-Hellman密钥交换协议的发生器g;在服务器产生小于p-1的正整数;将包括(gbmod p)值的消息从服务器发送到终端;在终端利用用于服务器的b和值y=gamod p,并且在服务器利用a、b、g和p,通过计算值(gabmod p),确定服务器和终端的共享密值,其中a为在服务器和终端的小于p-1的正整数;使用共享密值以建立在服务器和终端之间的所述安全通信。
16.如权利要求15中的方法,其中包括(gbmod p)的值的该消息包括一个数字签名,从该数字签名可恢复(gbmod p)的值。
17.一种被配置用于实现权利要求1-16中的任何一个的方法的数据传输链接。
18.一种载有用于终端的计算机程序代码的载体以实现在通信链接的终端所执行的权利要求1-16中的任何一个的部分方法。
19.一种包括权利要求18的载体的移动终端。
20.一种载有用于服务器的计算机程序代码的载体以实现在通信链接的服务器端所执行的权利要求1-16中的任何一个的部分方法。
21.一种包括权利要求20的载体的服务器。
全文摘要
一种在移动通信系统的移动终端和服务器之间建立安全通信链接的方法,该方法包括从移动终端的存储器中检索素数p和用于Diffie-Hellman密钥交换协议的发生器g;在终端产生小于p-1的正整数b;将包括(g
文档编号H04L9/08GK1507720SQ03800188
公开日2004年6月23日 申请日期2003年1月17日 优先权日2002年1月17日
发明者蒂莫西·法恩哈姆, 尹灿晔, 蒂莫西 法恩哈姆 申请人:株式会社东芝
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1