背景技术
计算和网络技术改变了我们工作和娱乐的方式。网络已变得如此丰富以至于一个简单的可连网的计算系统可和几百万其他计算系统中的任何一个通信,这些计算系统通过常称为“因特网”的网络聚集物在整个地球上分布。这些计算系统可包括台式计算机、膝上型计算机、或图形输入个人计算机、个人数字助理(PDAs)、电话、或任何其他能通过数字网络通信的计算机或设备。
为了通过网络通信,一个计算系统(在此文中作为“源计算系统”或“源客户”提到)构造或用别的方法访问电子报文,并通过网络将电子报文发送至另一计算系统(在此文中作为“目标计算系统”或“目标客户”提到)。当电子报文是电子邮件或立即信息时可被用户阅读,或换作可被运行在接收计算系统上的应用读取。在可能的用户的辅助下,电子报文可由运行在发送计算系统上的应用构造。
尽管这样的电子报文有利地使计算系统能够交换信息,并因此用前所未有的方式为他们的相关用户服务,但是电子本文容易遭到截听。根据电子报文内容的敏感性,截听会是非常有害的,在某些情况下甚至是灾难性的失败。为了预防截听,电子报文常被加密以至于只有那些具有某个二进制序列(称为“密钥”)的用户可解密电子报文由此访问电子报文中所表示的信息。通过努力以至于有希望地仅仅接收计算系统有访问解密电子报文所需的密钥的权利。因此,在缺少特别极大努力的情况下,任何发生于其间的截听者仅仅有访问电子报文的加密形式的权利。
在对称的加密中,用于加密电子报文的同样密钥可用来解密电子报文。在非对称的加密中,一个“公钥”和一个“私钥”与特定的计算系统相关。公钥为种类繁多的计算系统所知,而私钥不是广为传播的。私钥可用于解密用公钥加密的任何报文。因为接收计算系统必须是唯一的能解密为其准备的电子报文的计算系统,所以私钥比公钥更机密。
为了使加密容易,发送计算系统常访问与接收计算系统有关的电子证书。图8说明了依据先前领域的证书800的数据结构。证书800包括确认信息803。确认信息803使得发送计算系统能够证实证书确实与接收计算系统相符并且证书没有被撤消。X.509证书是现在普遍使用的一类证书。X.509证书的确认信息可包括,例如,可被访问以证实证书是否确实与目标计算系统相符的URL。X.509证书的确认信息还可包括表明证书是否被撤消的证书吊销清单。
证书800还包括证书识别信息802,证书识别信息802使得发送计算系统能够识别证书。例如,X.509证书可包括,例如,一个密钥识别符或可能一个发行者识别符和一序列号的组合。
证书800还包括加密信息801(如在X.509证书中的公钥)。加密信息使得发送计算系统能够用可被与证书对应的目标计算系统解密的方式来加密电子报文。例如,当发送计算系统用与目标计算系统对应的公钥加密电子报文时,目标计算系统将理想地成为唯一的具有解密电子报文所需的相应的私钥的计算系统。
当证书在加密点上使用时存在有效的情况。例如,常规地,当加密用S/MIME(多功能因特网邮件扩展安全规范)的电子邮件时,为了在完成加密中辅助发送计算系统,用于接收计算系统的证书被用在发送计算系统本身。MIME(多功能因特网邮件扩展规范)是用于格式化非ASCII报文以至于它们能通过因特网被发送的规范。许多电子邮件客户现在支持MIME,这使得他们能够经由因特网邮件系统发送和接收图像、声频和视频文件。MIME在1992年由因特网工程任务组(IETF)定义。S/MIME是个定义加密和编码与MIME标准一致的电子邮件报文内容的方式的标准,S/MIME是基于上述公钥加密技术的。期待S/MIME将被广泛实施,这使人们可能将保密电子邮件报文发送给其他人,即使他们正用不同的电子邮件应用。
存在一些潜在的障碍来普及诸如由S/MIME定义的基于证书加密技术的采用和利用,特别是在有限存储器的移动设备上。目前,为了在基于证书加密中加密报文,全证书被访问。X.509证书对于每个证书可常超过1千字节大小。一个证书常规地用于报文的每个潜在的接收者。一些报文有许多接收者,因此增加了存储证书所需的存储器的数量。当工作在一般具有相对有限的存储器和处理器能力的移动设备上时,这会显著地降低性能。
因此,发送计算系统经常通过高时延和低带宽连接(如,拨号或无线连接)获取来自于另一个计算系统的证书。特别是,证书常被存储于在中央储存库或目录用于电子邮件使用者访问。证书的大小大大地影响通过慢网络连接和这些储存库相连的电子邮件使用者。因此,减少存储器、处理器和带宽要求的基于证书加密技术将是有利的。
具体实施方式
本发明的原理涉及到基于证书加密机理,其中当加密将被发送至目标客户的电子报文时,源客户不访问与目标客户对应的全证书。而是,源客户仅仅请求来自于证书服务器的证书的一部分。那个部分包括加密信息,但是可能缺少证书中的自确认信息的一些甚至全部。如果确认被实施,证书服务器在向源客户发送加密信息之前完成证书的任何确认。证书不需要由源客户单独确认,特别是如果证书服务器被源客户信任的话。
源客户使用证书的更有限部分(在此文中可作为“小型证书”或“部分证书”提到)来加密报文。因为部分证书比全证书小得多,这减少用于完成基于证书加密的存储器和处理器资源,也减少了证书服务器和源客户之间的带宽要求。
本发明的实施方式可包括包含各种各样计算机硬件的专用的或通用的计算设备,如下面详细讨论的。在本发明范围内的实施方式也包括用于携带或具有存储在其上的计算机可执行的指令或数据结构的计算机可读媒体。这样的计算机可读媒体可以是任何可获得的能被通用或专用计算机访问的媒体。作为例子,而非限制,这样的计算机可读媒体可包含物理存储媒体,如随机存取存储器、只读存储器、电可擦可编程只读存储器、光盘只读存储器或或其他光盘存储、磁盘存储或其他磁性存储设备,或任何其他可用于携带或存储所需的程序代码装置的媒体,程序代码装置以计算机可执行指令或数据结构的形式存在,并可被通用或专用计算机访问。计算机可读媒体可以是持久存储器或可以是动态存储器或其组合。
图1和下面的讨论试图提供合适的计算环境的简要的、一般的描述,在此计算环境中发明可被实施。尽管未要求,用被计算设备执行的计算机可执行指令,如程序模块,的一般上下文来描述发明。一般地,程序模块包括完成特定任务或实施特定抽象数据类型的路由、程序、目标、部件、数据结构等等。
关于图1,用于发明原理的合适的操作环境包括以无线设备100形式存在的通用计算设备。尽管无线设备100具有移动电话的外表,种类繁多的设备现在能通过无线网络通信并且可通过使用本发明的原理而受益。例如,膝上型计算机、图形输入个人计算机、个人数字助理(PDAs)和其他无线设备现在可获得。其他无线设备形式可在将来发展。本发明的原理不限制于无线设备的特定形式。
无线设备100包括用户接口101,用户接口使得用户能够通过输入用户接口103输入信息。用户经由输出用户接口102查阅呈现的信息。根据无线设备的形式因素用户接口变化很大。在所说明的实施方式中,不管怎样,其中无线设备100是膝上型计算机,输出接口102包括用于向用户呈现声频信息的扬声器104,以及用于向用户呈现视频信息的显示器105。
输入用户接口103可包括用于将声频信息变为电子形式的话筒。另外,输入用户接口103包括使得用户能够将信息输入至无线设备100中的拨号控制107和导航控制108。
包含一个或多个程序模块的程序代码装置可存储于存储器112。一个或多个程序模块可包括操作系统113、一个或多个应用程序114、其他程序模块115和程序数据116。一个或多个程序模块可在存储器(如果是易失的)中被具体化,或从存储器(如果是非易失的)中装载并且用处理器111进一步处理。程序代码装置可包括非易失的以及易失的存储器,并且它的形式根据无线设备的类型变化很大。
当图1表示用于本发明的合适的操作环境时,本发明的原理可使用在任何能通过无线网络通信的无线设备中。图1中所说明的无线设备仅仅是说明性的,并且决不代表种类繁多的环境中甚至小小的一部分,在此环境中本发明的原理可被实施。
图2说明网络环境200,在此环境中本发明的原理的可被使用。网络环境200包括源客户计算系统210。在这个描述和权利要求书中,“计算系统”是任何能够用一个或多个处理器执行软件的硬件部件或硬件部件的组合。计算系统可以是有处理能力的系统或设备。计算系统可以是,例如,膝上型计算机、台式计算机、图形输入计算机、个人数字助理(PDAs)、移动电话、或任何其他现在存在的或将来要被发展的处理系统或设备。
在这个描述和权利要求书中,“客户计算系统”或“客户”是任何接收其他计算系统业务的计算系统,不管客户计算系统是否也向其他计算系统提供业务。例如,源客户210接收证书服务器220的业务,当需要时证书服务器运作以向源客户提供证书(或其部分)。在例子中,源客户210访问(不管它是否也产生电子报文)将被发送至一个或多个目标客户230的电子报文,目标客户包括目标客户231、232、233、234中的任何一个,其中可能更多的目标客尸如垂直椭圆235所表示。源客户210和目标客户231、232、233和234可以为无线设备100配置成如上所述,或采取任何其他属于在此文中公布的计算系统定义的形式。
图3说明依据本发明的原理的方法300,此方法用于源客户计算系统在证书服务器的协助下加密将被发送至至少一个目标客户的报文。如在图3左列下的标题“源客户”下所表示的,方法300的一些操作和一个步骤可以由源客户210完成。如在图3右列的标题“证书服务器”下的所表示的,方法300的其他操作由证书服务器完成。
源客户210首先访问将被发送至至少一个目标客户的电子报文(操作301)。电子报文可以从本地存储器中被访问,或可能从其他计算系统被接收用于传送至目标计算系统。因此,电子报文可以是将被发送至目标客户的电子报文的最终版本的初步版本。
然后源客户210决定电子报文在发送至目标客户前将被加密(操作302)。这个决定可做出以响应配置设置、与目标客户或目标客户从属的一组客户相关的具体的设置,或可能响应来自于源客户用户的请求。
然后源客户完成用于完成基于证书加密的功能的、面向结果的步骤,基于证书加密加密没有访问与目标客户对应的全证书的权利的目标客户(步骤303)。这个面向结果的步骤包括用于完成这个结果的任何相应的操作。然而,在所说明的实施方式中,步骤303包括相应的操作304、305、309。
特别是,源客户210产生一个仅仅访问与目标客户对应的证书的一部分的请求。那个部分可以是在图7中被作为部分证书700说明的证书。部分证书700包括加密信息701,加密信息是加密电子报文以至于能被目标客户解密的所需的。部分证书700中的加密信息701可以和全证书中的加密信息801相似。例如,如果全证书800是X.509证书,加密信息701可以是与目标客户拥有的私钥相符的公钥。
部分证书700还可包括识别与部分证书700对应的全证书800的证书识别信息702。证书识别信息702可包括,例如,至少全证书的证书识别信息802的一部分。例如,如果全证书800是X.509证书,那么证书识别信息702可包括密钥识别符,或替代或除此之外,证书发行者识别符和证书序列号的组合。尽管确认信息803的一些也可被包括在部分证书700中,没有一个确认信息803被作为由部分证书包含来说明。因为部分证书700缺少全证书800的许多信息,部分证书700的大小可比全证书的大小小得多。
在源客户210生成一个访问证书的一部分的请求时(操作304),源客户210向证书服务器发送请求(操作305)。这个传送在图2中通过如箭头211A所表示的请求211从源客户210移动至证书服务器220来表示。
图4用图表说明依据本发明的请求211的数据结构。请求211包括标题信息401。标题信息401可包括被传输协议使用的任何信息。例如,如果电子报文是超文本传输协议(HTTP)请求(例如,HTTP POST请求),请求211A会包括HTTP标题信息。传输请求的HTTP协议的使用在证书服务器不在和源客户210相连的本地网上的情况下是有用的,但是仅仅通过因特网可访问。
请求211也包括目标客户识别402。这个识别可以这样的形式存在,例如,与目标客户或客户有关的URLs、IP地址、或电子邮件地址。如果识别以单独目标客户的未分辨名称的形式存在的话,那么证书服务器220也可分辨特定的目标客户名称,并在所请求的部分证书或全证书由证书服务器提供给源客户的同时提供这个分辨返回给源客户210。如果识别是以分配清单的未分辨名称的形式存在的话,证书服务器可扩展分配清单,然后向源客户210返回用于与分配清单对应的每个目标客户的部分证书或全证书。分配清单上的实体包括个体以及潜在的一个或多个其他子分配清单。分配清单的扩展意味着,通过首先包含在分配清单中已直接识别的任何个体,然后反复递归地完成任何一个或多个其他子分配清单的相同的扩展来识别包括在分配清单中的每个个体。通过这个递归处理,分配清单中所有个体被识别,即使那些个体仅仅在子分配清单或其他后续清单中被识别。另一可选用地,这样的地址名分称分辨可以由证书服务器220或一些其他分辨服务器单独完成,未展示,和/或由源客户210内部的分辨机理完成。
请求211还包括证书请求403,证书请求包括证书的全版本是否被请求(如全版本字段404所表示的),或证书的部分版本是否被请求(如部分版本字段405所表示的)的指示。如果有多于一个与证书请求对应的目标客户的话,那么请求可详细说明证书的全版本对于所有目标客户是需要的,或证书的部分版本对于所有目标客户是需要的。另一可选用地,请求可详细说明部分证书被返回仅仅为了一组指定的目标客户,以及全证书被返回给其他目标客户。此外,请求可详细说明全证书返回仅仅为了一组指定的目标客户,以及部分证书返回给其他目标客户。现在描述以“getcert”请求形式存在的具体的证书请求的一个例子。
“getcert”命令可以在HTTP POST请求中并且包括文本”cmd=getcerts”来由此识别请求是为了证书的。
地址字段“addrs={ADDRESS}”可表明一个或多个需要其证书目标客户的一个或多个地址。当大写字母被包含在方括号中时,那意味着由大写字母描述的类型的实际值将代替报文中的方括号及其内容。例如,[ADDRESS]将被目标客户的实际地址所代替,或被将由证书服务器分辨成地址的未分辨名称所代替。用“getcert”命令,分辨数据不返回给客户,仅仅已分辨地址的证书被返回。
选择字段“minicert=[t/f]”如果设置成真的将使得证书服务器220返回部分证书而不是全证书。否则,如果值是假的或minicert字段不存在,全证书将被返回。minicert字段可以与由addrs字段表示的特定目标客户相符,或可表示由请求中的addrs字段表示的一些或全部目标客户。
证书服务器220接收来自于源客户210的请求(操作306),决定请求是仅仅为了部分证书的(操作307),然后通过仅仅返回目标客户的部分证书来响应(操作308)。关于图2,如箭头212A所表示,证书服务器220向源客户210返回响应212。
图5说明响应212的数据结构例子。响应包括标题信息501。例如,如果请求211是HTTP请求,响应可以是HTTP请求,在此情况下,标题信息是HTTP响应标题信息。响应也包括用于电子报文的每个目标客户的证书503。证书可以是如单元504表示的全证书,或可以是如单元505表示的部分证书。然而,依据本发明的原理,为了至少一个接收电子报文的目标客户,部分证书被返回。
以下表示一个用于嵌入在HTTP POST响应中的响应的可能的模式(为阐明增加行号)
1.<a:response xmlns:a=“
http://chemas.microsoft.com/exchange.webmail”>
2.<a:cert>[CERTIFICATE]</a:cert>
3.</a:response>
行1到3表示一“request”XML单元。属性“xmlns”表示与XML单元对应的名称空间,并且可用于语法分析和解释XML单元的含义。
行2表示一“cert”XML单元,它可被每个由请求中的addrs字段表示的目标客户(或在地址是一分配清单的情况下其一组目标客户)重复。
cert单元的内容是与addrs单元对应的证书或证书群,并且采用下列形式(为阐明增加行号)
1.[DWORD:size of the whole content of the cert element]
2.[DWORD:total count of recipients for which the cert elements contains acertificate for(can be zero if thr recipient was unresolved)]
3.[DWORD:total count of certificates found(can be zero if no valid certificateswere found)
4.[certificate 1]
5.……
6.……
7.……
8.[certificate M]
行1-3是表示关于cert单元全部内容的信息的DWORDS。行4-8表示可有许多证书段。在这种情况下,证书包括证书1到M,在此行5-7是垂直椭圆,表示第一和第M证书之间可变数量的证书。每个证书段可如下构造(为阐明增加行号):
1.[WORD:size of certificate]
2.WORD:flags(may include whether the certificate is a full or partial certificate andwhether the certificate is identified with a key identifier)
3.[THE PARTIAL OR FULL CERTIFICATE ITSELF]
回到图2和图3的更一般的例子,源客户210仅仅接收来自于服务器的证书的请求部分(操作309)。在这阶段,源客户210被准备来加密电子报文,电子报文用于电子报文将被发送到的每个目标客户的接收。因为,为一些、或甚至,全部的电子报文将被发送到的目标客户,仅仅部分证书被返回至,并且因为部分证书比全证书小得多(甚至可能是数量级的),证书被传送得更快并且使用从证书服务器220到源客户的更少的带宽。
然后源客户使用部分证书中的加密信息来加密电子报文。如前面提到的,加密信息701在图7的部分证书700中被表示。加密信息可以是,例如,与电子报文将被发送到的目标客户对应的公钥。
如果电子报文将被发送到多个目标客户的话,为每个目标客户电子报文将被加密。这可以通过用每个目标客户的相应的密钥为每个目标客户单独加密内容来完成。然而,如果有许多目标客户,这会是高度的处理器密集任务并可能导致在传送电子报文中的高度的存储器和带宽使用。
为了减少处理器、存储器和带宽要求,电子报文可替代地构造成图6中所说明的电子报文600。用会话密钥602加密电子报文的内容601。通过用与那个目标客户对应的公钥加密会话密钥602将会话密钥602通知给每个目标客户。例如,假定电子报文600将被发送至具备从1到4各自的公钥的231到234的每个目标客户。在那种情况下,会话密钥602将被用从1到4的密钥单独加密。
密钥识别符612与用公钥1加密的会话密钥602相关,公钥1被密钥识别符612识别。密钥识别符613与用公钥2加密的会话密钥602相关,公钥2被密钥识别符613识别。发行者识别符614A和序列号614B的组合与用公钥3加密的会话密钥602相关,公钥3对于614A和614B的组合是唯一。发行者识别符615A和序列号615B的组合与用公钥4加密的会话密钥602相关,公钥4对于615A和615B的组合是唯一。当接收到报文213时,每个目标客户可用密钥识别符,或发行者识别符和序列号的组合,来决定哪个会话密钥的加密形式能解密。目标客户然后解密会话密钥,并使用会话密钥来解密内容。
因此,因为用缩减大小的证书使保密通信成为可能,存储器、处理机和网络带宽资源被保留,并且减少了发送保密电子报文的所需的时间。
在不脱离发明的精神或必要的特性下,本发明可以在其他具体的形式中具体化,所描述的实施方式从所有方面来说被认为仅仅是说明性的而非限制性的。发明的范围,因此,在后附的权利要求书中被表明,而不是前面的描述。所有变化,在权利要求书的含义和等效范围内,将被在其范围内采用。