用于验证证书上的数字签名的系统和方法

文档序号:7627074阅读:173来源:国知局
专利名称:用于验证证书上的数字签名的系统和方法
技术领域
本发明大体上涉及如电子邮件消息等消息的处理,更具体地,涉及一种用于验证用在处理已编码消息中的证书的系统和方法。
背景技术
可以利用多种已知协议之一对电子邮件(“e-mail”)消息进行编码。如安全多用途因特网邮件扩展(“S/MIME”)等一些协议依赖于公用和私用加密密钥来提供保密性和完整性,以及依赖于公用密钥基础结构(PKI)来通信提供了验证和授权的信息。只能利用私用密钥/公用密钥对的公用密钥来解密利用该对的对应私用密钥进行了加密的数据,反之亦然。利用证书来确认用在消息编码中的公用密钥的真实性。具体地,如果计算设备的用户想要在将消息发送给特定的个体之前对消息进行解密,则该用户需要针对该个体的证书。所述证书典型地包括该个体的公用密钥以及其他标识相关信息。
证书是通常由证书权威机构颁发的数字文档。为了信任特定的公用密钥,公用密钥通常需要由同样被信任的证书权威机构颁发,或者由与可信的证书权威机构相关联的实体颁发。可信的证书权威机构与所颁发的公用密钥之间的关系可以通过一系列相关证书来表示,所述一系列相关证书也被称作证书链。可以跟随证书链,以确定证书的有效性。
典型地,证书权威机构将对其所颁发的每个证书进行数字签名,以验证特定的公用密钥属于相应证书上所指示的声称所有者。在构建证书链时,经常需要验证证书链中的证书上的数字签名。证书上的数字签名的验证是需要颁发该证书的证书权威机构的公用密钥的处理。

发明内容
所述验证处理可能是耗时且昂贵的(例如,在计算资源的使用等方面),尤其是在如移动设备等较小的设备上进行验证的情况下。在用户的计算设备上处理多个证书的情况下,可能会对相同的数字签名进行多于一次的验证。本发明的实施例大体上涉及一种系统和方法,通过存储签名验证操作中所采用的特定信息以便再次使用,有利于更为有效地验证证书上的数字签名。
在本发明的一个更为广泛的方案中,提出了一种在计算设备上验证证书上的数字签名的方法,所述方法包括以下步骤利用与证书的颁发者相关联的第一公用密钥,执行对数字签名的第一签名验证操作;确定在第一签名验证操作中数字签名是否被成功验证;将第一公用密钥存储在存储器中;接收利用与证书的颁发者相关联的第二公用密钥、执行对数字签名的第二签名验证操作的请求;将第二公用密钥与存储在存储器中的第一公用密钥进行比较,以确定第一和第二公用密钥是否匹配;以及如果在第一签名验证操作中数字签名被成功验证,而且如果在比较步骤中确定了匹配,则响应于所述请求,指示数字签名的成功验证,由此不需要执行第二数字签名验证操作。


为了更好地理解本发明的实施例,以及更为清楚地示出其如何实现所述效果,现在将参照附图,作为示例,对其进行描述,其中图1是一个示例实施方式中的移动设备的方框图;图2是图1所示移动设备的通信子系统组件的方框图;图3是无线网络的节点的方框图;图4是示出了一个示例结构中的主机系统的组件的方框图;图5是示出了证书链的示例的方框图;图6是示出了已编码消息的示例的组件的方框图;图7A是示出了两个示例证书链的方框图;图7B是示出了链接图7A的证书链的交叉证书的方框图;图8A是示出了本发明实施例中、验证证书上的数字签名的方法中的步骤的流程图;以及图8B是示出了本发明另一实施例中、验证证书上的数字签名的方法中的步骤的流程图。
具体实施例方式
本发明的一些实施例使用移动台。移动台是具有高级数据通信能力的双向通信设备,具有与其他计算机系统进行通信的能力,并且以下被统称为移动设备。移动设备还可以包括语音通信能力。根据移动设备所提供的功能,可以将其称为数据消息收发设备、双向寻呼机、具有数据消息收发能力的蜂窝电话、无线因特网设备或数据通信设备(具有或不具有电话功能)。移动设备通过收发机站网络与其他设备进行通信。
为了帮助读者理解移动设备的结构及其如何与其他设备进行通信,将参照图1到3。
首先,参考图1,将一个示例实施方式中的移动设备的方框图总体表示为100。移动设备100包括多个组件,控制组件是微处理器102。微处理器102控制移动设备100的总体操作。通过通信子系统104执行包括数据和语音通信在内的通信功能。通信子系统104从和向无线网络200接收和发送消息。在移动设备100的示例实施方式中,根据全球移动通信系统(GSM)和通用分组无线业务(GPRS)标准来配置通信子系统104。GSM/GPRS无线网络得到了广泛的使用,并且预期这些标准最终将被全球发展增进型数据比率(EDGE)和通用移动电信系统(UMTS)所取代。仍在定义新标准,但可以确信其将具有与这里所描述的网络行为的类似性,并且本领域普通技术人员应当理解的是本发明倾向于使用未来开发的任何适当的标准。连接通信子系统104和网络200的无线链路表示一个或多个不同的射频(RF)信道,根据针对GSM/GPRS通信而规定的已定义协议进行操作。利用更新的网络协议,这些信道能够支持电路交换语音通信和分组交换数据通信。
尽管在移动设备100的一个典型实施方式中,与移动设备100相关联的无线网络是GSM/GPRS无线网络,在变体实施方式中,其他无线网络也可以与移动设备100相关联。例如,可以采用的不同类型的无线网络包括数据中心型无线网络、语音中心型无线网络和通过相同的物理基站能够支持语音和数据通信的双模式网络。组合双模式网络包括但不限于码分多址(CDMA)或CDMA2000网络、GSM/GPRS网络(如上所述)和将来第三代(3G)网络,如EDGE和UMTS。数据中心网络的一些较早示例包括MobitexTM无线网络和DataTACTM无线网络。较早的语音中心型数据网络的示例包括个人通信系统(PCS)网络,如GSM和时分多址(TDMA)系统。
微处理器102还与其他子系统进行交互,如随机存取存储器(RAM)106、闪速存储器108、显示器110、辅助输入/输出(I/O)子系统112、串行端口114、键盘116、扬声器118、麦克风120、短距离通信122和其他设备124。
移动设备100的一些子系统执行通信相关的功能,而其他子系统可提供“驻留”或设备内置功能。作为示例,显示器110和键盘116可以用于如输入用于通过网络200传送的文本消息等通信相关功能以及如计算器或任务表等设备驻留功能。通常将微处理器102使用的操作系统软件存储在如闪速处理器108等永久存储器中,或者可以是只读存储器(ROM)或类似的存储元件(未示出)。本领域普通技术人员应当清楚的是可以将操作系统、设备专用应用程序或其一部分暂时加载到如RAM 106等易失性存储器中。
在已经完成所需的网络登记或激活程序之后,移动设备100可以在网络200上发送和接收通信信号。网络接入与移动设备100的订户或用户相关联。为了识别订户,移动设备100需要将订户身份模块或“SIM”卡126插入SIM接口128中,以便与网络进行通信。特别地,SIM 126是用于识别移动设备100的订户和使移动设备100个人化的一类传统“智能卡”。没有SIM 126,移动设备100不能完全操作与网络200的通信。通过将SIM 126插入SIM接口128,订户可以访问全部已订阅服务。服务可以包括网络浏览和消息收发,如电子邮件、语音邮件、短消息服务(SMS)和多媒体消息服务(MMS)。更多的高级服务可以包括销售点、现场服务和销售力量自动控制(sales forceautomation)。SIM 126包括处理器和用于存储信息的存储器。一旦将SIM 126插入SIM接口128中,其与微处理器102相连。为了识别订户,SIM 126包含一些用户参数,如国际移动订户身份(IMSI)等。使用SIM 126的优点是用户不必与任何单一的物理移动设备绑定。SIM126也可以存储针对移动设备的额外订户信息,包括记事册(或日历)信息和最近呼叫信息。
移动设备100是电池供电的设备,并包括电池接口132,用于容纳一个或多个可充电电池130。电池接口132与稳压器(未示出)相连,其辅助电池130将电源V+提供给移动设备100。尽管目前的技术使用电池,但如微型燃料电池等未来的技术也可以为移动设备100提供能量。
除了其操作系统功能外,微处理器102能够在移动设备100上执行软件应用程序。通常在制造期间,将控制基本设备操作的应用程序组(包括数据和语音通信应用程序)安装到移动设备100上。可以加载到移动设备100上的其他应用程序是个人信息管理器(PIM)。PIM具有组合和管理用户所关心的数据项的功能,例如但不限于电子邮件、日历事件、语音邮件、约会和任务项。PIM应用程序具有通过无线网络200发送和接收数据项的能力。PIM数据项可以通过无线网络200与所存储的和/或与主计算机系统相关的、移动设备订户的相应数据项无缝集成、同步和更新。此功能在移动设备100上创建了针对这些数据项的镜像主机。这在主计算机系统是移动设备订户的办公室计算机系统的情况下尤为有利。
附加的应用程序也可以通过网络200、通过辅助I/O子系统112、通过串行端口114、通过短距离通信子系统122或通过任何其他合适的子系统124加载到移动设备100上。这种在应用程序安装方面的灵活性增加了移动设备100的功能,并且能够提供增强的设备内置功能、通信相关功能或这二者。例如,安全通信应用程序可以使得电子商务功能和其他财务交易能够使用移动设备100执行。
通过提供除了通过无线通信网络以外到移动设备100的信息或软件下载,串行端口114使订户能够通过外部设备或软件应用程序来设置偏好,并扩展移动设备100的能力。例如,可选的下载路径可以用于通过直接、从而可靠、可信的连接,将加密密钥加载到移动设备100上,以提供安全设备通信。
短距离通信子系统122用于移动设备100和不同系统或设备之间的通信,无需使用网络200。例如,子系统122可以包括红外设备以及用于短距离通信的相关电路和组件。短距离通信的示例将包括由红外数据协会(IrDA)、蓝牙开发的标准和由IEEE开发的802.11标准族。
在使用中,通信子系统104将处理如文本消息、电子邮件消息或网页下载等接收信号,并输入微处理器102。然后,微处理器102处理接收信号,以便输出到显示器110或者代替地输出到辅助I/O子系统112。订户也可以构造数据项,如电子邮件消息等,例如,与显示器110和可能的辅助I/O子系统112相结合地使用键盘116。辅助子系统112可以包括以下设备触摸屏、鼠标、轨迹球、红外指纹检测器或具有动态按钮按下能力的滚轮。键盘116是字母数字键盘和/或电话型小键盘。可以通过通信子系统104、在网络200上传输所构造的数据项。
对于语音通信,移动设备100的总体操作实质上是类似的,除了将接收到的信号输出到扬声器118和用于传输的语音信号由麦克风120产生之外。可选的语音或音频I/O子系统,如语音消息记录子系统,也可以在移动设备100上实现。尽管语音或音频信号输出主要通过扬声器118完成,也可以使用显示器110提供如呼叫方身份、语音呼叫的持续时间或其他语音呼叫相关信息等附加信息。
现在参照图2,示出了图1所示的通信子系统组件104的方框图。通信子系统104包括接收机150、发射机152、一个或多个嵌入式或内部天线元件154、156、本地振荡器(LO)158和如数字信号处理器(DSP)160等处理模块。
通信子系统104的详细设计取决于移动设备100将运行其中的网络200,因此应当理解的是图2所示的涉及只用作一个示例。将天线154通过网络200接收的信号输入接收机150,接收机150可以进行如信号放大、频率下转换、滤波、信道选择和模拟到数字(A/D)转换等普通接收机功能。接收信号的A/D转换允许更复杂的通信功能,如要在DSP 160中执行的数字解调和解码。以类似方式,处理要发射的信号,包括DSP 160执行的调制和编码。将这些DSP处理后的信号输入发射机152,进行数字模拟(D/A)转换、频率上转换、滤波、放大和经天线156在网络200上传输。DSP 620不仅处理通信信号,还提供接收机和发射机控制。例如,可以通过在DSP160中实现的自动增益控制算法,自适应控制施加到接收机150和发射机152中的通信信号的增益。
移动设备100和网络200之间的无线链路可以包含一个或多个不同的信道(典型地是不同的RF信道)以及用在移动设备100和网络200之间的相关协议。典型地,由于移动设备100的总体带宽的限制和有限电池功率,RF信道是有限的资源,必须加以保留。
当移动设备100可完全操作时,发射机152通常只在其向网络200进行发送时接通,而在其他时刻关闭,以保留资源。类似地,在指定的时间段内,接收机150周期性地关闭,以保留电力,直到其需要接收信号或信息为止。
现在参照图3,将无线网络的节点的方框图表示为202。具体地,网络200包括一个或多个节点202。移动设备100与无线网络200中的节点202进行通信。在图3所示的示例实施方式中,根据通用分组无线业务(GPRS)和全球移动通信系统(GSM)技术来配置节点202。节点202包括与塔站206相关联的基站控制器(BSC)204、添加了对GSM中的GPRS支持的分组控制单元(PCU)208、移动交换中心(MSC)210、归属位置寄存器(HLR)212、拜访位置寄存器(VLR)214、服务GPRS支持节点(SGSN)216、网关GPRS支持节点(GGSN)218和动态主机配置协议(DHCP)220。此组件列表并不表示GSM/GPRS网络中的每个节点202的穷尽组件列表,而是通常用在通过网络200的通信中的组件列表。
在GSM网络中,MSC 210与BSC 204和陆上传输网络(如公用交换电话网络(PTSN)222等)相连,以满足电路交换的需求。通过PCU208、SGSN 216和GGSN 218到公用或专用网络(因特网)224(也统称为共享网络基础结构)的连接表示针对GPRS使能移动设备的数据路径。在以GPRS能力加以扩展的GSM网络中,BSC 204还包含与SGSN 216相连的分组控制单元(PCU)208,用于控制分段、无线电信道分频,以及满足分组交换需要。为了跟踪移动设备位置和可用性,以便进行电路交换和分组交换管理,在MSC 210和SGSN 216之间共享HLR 212。对VLR 214的访问由MSC 210控制。
站点206是固定收发机站。站点206和BSC 204一起形成了固定收发机设备。固定收发机设备提供针对通常被称作“小区”的特定覆盖区域的无线网络覆盖。固定收发机设备通过站点206向和从其小区内的移动设备发射和接收通信信号。固定收发机设备通常在其控制器的控制下,根据特定、通常是预定的通信协议和参数,执行对要发送到移动设备的信号的调制和可能的编码和/或加密等处理。固定收发机设备类似地解调和可能地解码和解密(如果需要的话)从其小区内的移动设备100接收到的任意通信信号。通信协议和参数可以在不同的节点间不同。例如,一个节点可以采用不同的调制方案,并在与其他节点不同的频率进行操作。
对于与特定网络进行登记的全部移动设备100,将如用户简档表等永久配置数据存储在HLR 212中。HLR 212还包含针对每个已登记移动设备的位置信息,并且可以被查询,以确定移动设备的当前位置。MSC 210负责一组位置区域,并将当前位于其负责区域内的移动设备的数据存储在VLR 214中。其他VLR 214也包含与拜访其他网络的移动设备有关的信息。VLR 214中的信息包括从HLR 212传送到VLR 214的部分永久移动设备数据,以便进行更快的访问。通过将额外的信息从远程HLR 212节点移动到VLR 214,可以减少这些节点间的业务量,从而能够以更快的响应时间提供语音和数据服务,并且同时需要较少地使用计算资源。
SGSN 216和GGSN 218是添加用于GPRS支持的元件;即在GSM内支持分组交换数据。SGSN 216和MSC 210在无线网络200内具有类似的职责,保持对每个移动设备100的位置的跟踪。SGSN 216还执行安全功能和对网络200上的数据业务的访问控制。GGSN 218提供与外部分组交换网络的联网连接,并通过在网络200内进行操作的因特网协议(IP)骨干网与一个或多个SGSN 216相连。在正常操作期间,给定的移动设备100必须执行“GPRS附属”以获取IP地址并访问数据服务。由于将集成服务数字网络(ISDN)地址用于路由呼入和呼出呼叫,这一要求并不出现在电路交换语音信道中。目前,所有GPRS使能网络使用专用、动态分配IP地址,因而需要与GGSN 218相连的DHCP服务器220。存在多种针对动态IP分配的机制,包括使用远程验证拨入用户服务(RADIUS)服务器和DHCP服务器的组合。一旦GPRS附属完成,则建立从移动设备100通过PCU 208和SGSN 216到GGSN 218内的接入点节点(APN)的逻辑连接。APN表示能够访问直接因特网兼容服务或专用网络连接的IP隧道的逻辑端点。在每个移动设备100必须被分配给一个或多个APN,并且如果未首先执行对已授权其使用的APN的GPRS附属,移动设备100不能交换数据这一点上,APN还表示针对网络200的安全机制。可以认为APN与如“myconnection.wireless.com”等因特网域名相似。
一旦GPRS附属完成,则创建了隧道,并利用IP分组中能够支持的任何协议,在标准IP分组内交换所有业务。这包括如在与虚拟专用网络(VPN)一起使用的一些IP安全(IPsec)连接的情况下的IP overIP等隧道方法。这些隧道也被称为分组数据协议(PDP)上下文,并且在网络200中存在有限的可用数量。为了最大化对PDP上下文的使用,网络200将运行针对每个PDP上下文的空闲定时器,以确定是否缺乏活动性。当移动设备100并未使用其PDP上下文时,可以取消对PDP上下文的分配,并将IP地址返回给由DHCP服务器220管理的IP地址库。
现在参照图4,示出了一个示例结构中的主机系统的组件的方框图。主机系统250将典型地是公司办公室或其他局域网(LAN),但也可以是家庭办公室计算机或一些其他私有系统,例如在变体实施方式中。在图4所示的示例中,将主机系统250图示为移动设备100的用户所属的组织的LAN。
LAN 250包括通过LAN连接260彼此相连的多个网络组件。例如,具有用于用户移动设备100的附属底座264的用户桌面计算机262a适用于LAN 250上。例如,针对移动设备100的底座264可以通过串行或通用串行总线(USB)连接与计算机262a相连。其他用户计算机262b也适用于LAN 250,并且每个计算机可以配备有或不配备有针对移动设备的附属底座264。底座264有利于信息(例如PIM数据、有利于移动设备100和LAN 250之间的安全通信的私用对称密钥等)从用户计算机262a到移动设备100的加载,并且对于通常在初始化移动设备100以便使用时执行的批量信息更新尤为有用。下载到移动设备100上的信息可以包括用在消息交换中的证书。本领域普通技术人员应当理解,用户计算机262a、262b还将典型地与图4未示出的其他外围设备相连。
此外,图4只示出了LAN 250的网络组件的子集,并且本领域普通技术人员应当理解的是,对于此示例结构,LAN 250将包括图4中未详尽示出的额外组件。更一般地,LAN 250可以表示所述组织的较大网络[未示出]的一小部分,并且可以包括与图4所示的示例不同的组件和/或按照与图4所示的示例不同的拓扑进行排列。
在此示例中,移动设备100通过无线网络200的节点202和如服务提供商网络或公用因特网等共享网络基础结构224与LAN 250进行通信。可以通过一个或多个路由[未示出]提供对LAN 250的接入,并且LAN 250的计算设备可以在防火墙或代理服务器266的后面进行操作。
在变体实施方式中,LAN 250包括无线VPN路由器[未示出],便于LAN 250和移动设备100之间的数据交换。无线VPN路由器的概念在无线产业中是新的,并且意味着可以通过特定的无线网络直接建立对移动设备100的VPN连接。使用无线VPN路由器的可能性在最近才成为可能,并且可以在新的因特网协议(IP)版本6(IPv6)出现在基于IP的无线网络中时使用。这种新协议将提供足够的IP地址,从而使IP地址专用于每个移动设备,使其能够在任意时刻将信息推入移动设备。使用无线VPN路由器的优点是其可以是不需要使用分离的无线网关和分离的无线基础设施的现成的VPN组件。优选地,在此变体实施方式中,VPN连接可以是传输控制协议(TCP)/IP或用户数据报协议(UDP)/IP连接,直接将消息传递到移动设备100。
最初,由LAN 250的消息服务器268接收针对移动设备100的用户的消息。这些消息可以来自于多个源中的任意一个。例如,可以由发送方从LAN 250内的移动设备262b、从与无线网络200或不同无线网络相连的不同移动设备[未示出]、或从不同的计算设备或能够发送消息的其他设备,通过共享网络基础结构224,并可能通过应用服务提供商(ASP)或因特网服务提供商(ISP),发送消息。
消息服务器268典型地作为交换消息的主要接口,尤其是电子邮件消息,在所述组织内部,在共享网络基础结构224上。已经建立用于发送和接收消息的组织中的每个用户典型地与由消息服务器268管理的用户帐户相关联。消息服务器268的一个示例是MicrosoftExchangeTM服务器。在一些实施方式中,LAN 250可以包括多个消息服务器268。消息服务器268也可以适用于提供除消息管理以外的附加功能,例如,包括与日历和任务列表相关的数据的管理等。
当消息服务器268接收到消息时,通常将其存储在消息存储器[未详尽示出]中,随后可以从中检索消息并传递给用户。例如,在用户计算机262a上操作的电子邮件客户端应用程序可以请求与存储在消息服务器268上的用户帐户相关联的电子邮件消息。然后,典型地,从消息服务器268获得这些消息,并本地存储在计算机262a上。
当操作移动设备100时,用户可能希望将所获得的电子邮件消息传递到手持设备上。在移动设备100上进行操作的电子邮件客户端应用程序也可以向消息服务器268请求与用户帐户相关联的消息。可以配置电子邮件客户端(由用户或管理员进行,可能根据组织的信息技术(IT)策略),以某些预定的时间间隔或者在一些预定时间发生时,使此请求指向该用户。在一些实施方式中,向移动设备100分配其自身的电子邮件地址,并在消息服务器268接收到专门寻址于移动设备100的消息时,将其自动重新定向到移动设备100。
为了有利于移动设备100和LAN 250的组件之间的消息和消息相关数据的无线通信,可以设置多个无线通信支持组件270。例如,在此示例实施方式中,无线通信支持组件270包括消息管理服务器272。消息管理服务器272专门用于提供对消息管理的支持,如电子邮件消息等将由移动设备处理的消息。通常,在消息仍被存储在消息服务器268上时,消息服务器272可以用于控制何时、是否以及如何将消息发送给移动设备100。消息管理服务器272还有利于处理在移动设备100上构成的消息,该消息被发送到消息服务器268,以便进行随后的传递。
例如,消息管理服务器272可以针对新电子邮件消息,监视用户的“邮箱”(例如消息服务器268上、与用户帐户相关联的消息存储器);将用户定义过滤器应用于新消息,以确定是否和如何将消息中继到用户的移动设备100;压缩并加密新消息(例如,使用如数据加密标准(DES)或三重DES等加密技术),并通过共享网络基础结构224和无线网络200将其推入移动设备100;以及接收在移动设备100上构成的消息(例如利用三重DES进行加密),解密并解压缩所构成的消息,如果需要,对所构成的消息重新格式化,从而使其看上去来自用户的计算机262a,并将所构成的消息重新路由到消息服务器268,以便进行传递。
消息管理服务器272可以定义(由管理员根据IT策略)和强化与要从和/或要由移动设备100发送和/或接收的消息相关联的特定属性或约束。可以包括移动设备100是否可以接收已加密和/或已签署消息、最小加密密钥尺寸、是否必须加密和/或签署输出消息、以及是否要向预定副本地址发送从移动设备100发送的全部安全消息的副本等。
消息管理服务器272也可以用于提供其他控制功能,例如,只将存储在消息服务器268上的特定消息信息或消息的预定部分(如“块”)推入移动设备100。例如,当移动设备100最初从消息服务器268检索消息时,消息管理服务器272用于只将消息的第一部分推入移动设备100,该部分具有预定尺寸(如2KB)。然后,用户可以请求消息管理服务器272将更多的消息按照类似尺寸的块传递给移动设备100,可能直到最大预定消息尺寸。
因此,消息管理服务器272有利于更好地控制与移动设备100进行通信的数据类型和数据量,并有助于最小化带宽或其他资源的潜在浪费。
本领域普通技术人员应当理解的是不必将消息管理服务器272实现在LAN 250或其他网络中的分离物理服务器上。例如,可以将与消息管理服务器272相关联的一些或全部功能与消息服务器268或LAN250中的一些其他服务器集成。此外,LAN 250可以包括多个消息管理服务器272,尤其是在需要支持大量移动设备的变体实施方式中。
本发明的实施例大体上涉及用于对已编码消息的处理中的证书,如已加密和/或已签署的电子邮件消息。在简单邮件传送协议(SMTP)、RFC 822报头和多用途因特网邮件扩展(MIME)体部分可以用于定义不需要编码的典型电子邮件消息的格式时,可以在通信已编码消息时(即在安全消息收发应用程序中),使用安全/MIME(S/MIME),MIME协议的一种版本。S/MIME实现了端到端验证和保密性,并且从消息的发起者发送消息的时刻开始直到消息接收方解码并使其可用为止,保护数据完整性和私密性。也可以采用其他已知的标准和协议,以有助于安全消息通信,如Pretty Good PrivacyTM(PGP)、OpenPGP或其它已知技术。
如S/MIME等安全消息收发协议依赖于公用和私用加密密钥来提供保密性和完整性,并依赖于公用密钥基础结构(PKI)来通信提供了验证和授权的信息。只能利用私用密钥/公用密钥对的公用密钥来解密利用该对的对应私用密钥进行了加密的数据,反之亦然。私用密钥信息永不公开,而公用密钥信息是共享的。
例如,如果发送方希望以加密形式向接收方发送消息,利用接收方的公用密钥来加密消息,之后将只能利用接收方的私用密钥进行解密。或者,在一些编码技术中,产生一次性的会话密钥,并用于加密消息体,典型地利用对称加密技术(如三重DES等)。然后,利用接收方的公用密钥对会话密钥进行加密(例如,利用如RSA等公用密钥加密算法),之后将只能利用接收方的私用密钥进行解密。然后,利用解密后的会话密钥来解密消息体。消息报头可以用于规定必须用于解密消息的特定解密方案。在变体实施方式中,可以使用基于公用密钥加密法的其他加密技术。但是,在每种情况下,只有接收方的私用密钥可以用于有利于消息的解密,并且按照这种方式,可以保持消息的保密性。
作为另一示例,发送方可以利用数字签名来签署消息。数字签名是利用发送方的私用密钥进行加密的消息的摘要(例如消息的散列信息),然后将其附加到输出消息上。为了在接收时验证消息的数字签名,接收方使用与发送方相同的技术(例如,使用相同的标准散列算法),以获得接收消息的摘要。接收方还使用发送方的公用密钥来解密数字签名,以便获得什么是接收消息的匹配摘要。如果接收消息的摘要不匹配,这意味着在传送期间消息内容被改变和/或所述消息并非来自将其公用密钥用于验证的发送方。可以按照以下方式设计数字签名算法仅知道发送方的私用密钥的人能够编码接收方将利用发送方的公用密钥正确解码的签名。因此,通过按照这种方式验证数字签名,可以保持发送方的验证和消息完整性。
可以加密、签署、既加密又签署已编码消息。利用证书来确保用在这些操作中的公用密钥的真实性。证书是由证书权威机构(CA)颁发的数字文档。证书用于验证用户及其公用密钥之间的关联性,实质上提供了用户公用密钥的真实性的可信程度。证书包含与证书持有者有关的信息,典型地根据已接受标准(如X.509)来格式化证书内容。
考虑图5,其中示出了示例证书链300。颁发给“John Smith”的证书310是颁发给个人的证书的示例,可以将其称为终端实体证书。终端实体证书310典型地识别证书持有者(即此示例中的John Smith)和证书的颁发者314,并包括颁发者的数字签名316和证书持有者的公用密钥318。证书310还将典型地包括识别证书持有者的其他信息和属性(如电子邮件地址、组织名称、组织单位名称、地点等)。当个人构建要发送给接收方的消息时,通常将个人的证书300包括在消息内。
对于可信的公用密钥,其颁发组织必须是可信的。可以通过一系列相关证书来表示可信CA和用户的公用密钥之间的关系,也被称作证书链。可以跟踪证书链,以确定证书的有效性。
例如,在图5所示的示例证书链300中,声称由John Smith发送的消息的接收方可能希望验证附属于接收消息的证书310的可信状态。例如,为了在接收方计算设备(例如图4的计算机262a)上验证证书310的可信状态,获得颁发者ABC的证书320,并用于验证证书310确实是由颁发者ABC签署的。证书320可能已经被存储在计算设备上的证书存储器中,或者可能需要从证书源(例如图4的LDAP服务器284或一些其他公用或专用LDAP服务器)获得。如果证书320已经被存储在接收方的计算设备中,并且接收方将该证书指定为可信的,则认为证书310是可信的,因为其链接到已存储的可信证书上。
但是,在图5所示的示例中,还需要证书330来验证证书310的可信度。证书330是自签署的,并被称作“根证书”。因此,可以将证书320称为证书链300中的“中间证书”;假设可以针对特定的终端实体证书确定到达根证书的链,到达根证书的任意给定证书链可以包含零个、一个或多个中间证书。如果证书330是由可信源(来自较大的证书权威机构,如Verisign或Entrust)颁发的根证书,则可以认为证书310是可信的,因为其链接到可信证书。这意味着消息的发送方和接收方都信任根证书330的源。如果证书不能链接到可信证书,则认为证书是“不可信的”。
证书服务器存储与证书有关的信息和用于识别已经被调用的证书的列表。可以访问这些证书服务器,以获得证书,并验证证书真实性和调用状态。例如,轻载目录访问协议(LDAP)服务器可以用于获得证书,以及在线证书状态协议(OCSP)服务器可以用于验证证书调用状态。
标准电子邮件安全协议典型地有利于非移动计算设备(如图4所示的计算机262a、262b;远程桌面设备)之间的安全消息传输。再次参照图4,为了能够从移动设备100读取从发送方接收到的已签署消息以及要发送到这些发送方的已加密消息,移动设备100用于存储证书和其他个体的关联公用密钥。例如,存储在用户的计算机262a上的证书通常是从计算机262a通过底座264下载到移动设备100上的。
存储在计算机262a上并被下载到移动设备100上的证书并不局限于与个人相关的证书,还可以包括如颁发给CA的证书等。存储在计算机262a和/或移动设备100上的特定证书也可以被用户明确地指定为“可信的”。因此,当用户在移动设备100上接收到证书时,其可以通过将所述证书与存储在移动设备100上并被指定为可信的证书或者被确定为链接到可信证书的证书进行匹配,在移动设备100上进行验证。
移动设备100还可以用于存储与用户相关联的公用密钥/私用密钥对的私用密钥,从而移动设备100的用户可以签署在移动设备100上构成的输出消息,并解密以用户的公用密钥加密的、发送到用户的消息。例如,私用密钥可以从用户的计算机262a通过底座264下载到移动设备100上。优选地,在计算机262a和移动设备100之间交换私用密钥,从而使用户可以共享用于访问消息的一个身份和一种方法。
用户计算机262a、262b可以获得来自多个源的证书,以便存储在计算机262a、262b和/或移动设备(如移动设备100)上。例如,这些证书源可以是私用的(例如,专用于组织内部的用户)或公用的,可以位于本地或远程,并且可以从组织的专用网络内部或通过因特网进行访问。在图4所示的示例中,与所述组织相关联的多个PKI服务器280位于LAN 250上。PKI服务器280包括用于颁发证书的CA服务器282、用于搜索和下载证书(例如,针对组织内部的个人)的LDAP服务器284、和用于验证证书的调用状态的OCSP服务器286。
例如,用户计算机262a可以从LDAP服务器284中检索证书,以便通过底座264下载到移动设备100。但是,在变体实施方式中,移动设备100也可以直接访问LDAP服务器284(即,在这种情况下,“在空中”),以及移动设备100可以通过移动数据服务器288搜索并获得个人证书。类似地,移动数据服务器288可以用于允许移动设备100直接查询OCSP服务器286,以验证证书的调用状态。
在变体实施方式中,只允许选定的PKI服务器280访问移动设备(例如,只允许从用户的计算机262a、262b下载证书,同时允许从移动设备100检查证书的调用状态)。
在变体实施方式中,例如,只允许特定的PKI服务器280访问登记给特定用户的移动设备,由IT管理员规定,并可能根据IT策略来规定。
例如,其他证书源[未示出]可以包括Windows证书存储器、位于LAN 250上或之外的另一安全证书存储器、以及智能卡等。
现在参照图6,将示出了可以由消息服务器(例如图4的消息服务器268)接收的已编码消息示例的组件的方框图总体表示为350。已编码消息350典型地包括以下的一个或多个部分报头部分352、已编码体部分354、可选的一个或多个已编码附件356、一个或多个加密会话密钥358、以及签名和签名相关信息360。例如,报头部分352典型地包括地址信息,如“到”、“来自”和“抄送”地址等,也可以包括消息长度指示符以及发送方加密和签名方案标识符等。实际消息内容通常包括消息体或数据部分354和可能的一个或多个附件356,可以由发送方利用会话密钥进行加密。如果使用了会话密钥,利用每个接收方的相应公用密钥,针对每个预期的接收方,对会话密钥进行编码,并且包括在消息358中。如果签署消息,则还包括签名和签名相关信息360。例如,这可以包括发送方的证书。
图6所示的已编码消息的格式只是作为示例,本领域普通技术人员应当理解,已编码消息可以按照其它形式存在。例如,根据所使用的特定消息收发方案,已编码消息的组件可以表现出与图6所示不同的次序,并且已编码消息可以包括更少、更多或不同的组件,可以依赖于是否对已编码消息进行了加密、签署或这二种操作。
本发明的实施例大体上涉及一种系统和方法,通过存储签名验证操作中所采用的特定信息以便再次使用,有利于更为有效地验证证书上的数字签名。在构建证书链时(如图5的示例中所讨论的那样),经常需要验证证书上的数字签名。在用户的计算设备上处理多个证书的情况下,经常要对相同的数字签名进行多于一次的验证。在形成了包含交叉证书的证书链的情况下,这种情形尤为普遍。稍后,将参照图7B,对交叉证书进行更为详细的讨论。
首先,参照图7A,示出了两个示例证书链的方框图。将两个示例证书链总体表示为400a和400b。本领域普通技术人员应当理解的是,将所述证书链400a和400b图示为示例。具体地,证书链可以包括比所示示例更少或更多的证书。
多个组织建立其自己的CA,颁发专属于其自己的组织中的个人的证书。颁发给特定组织内个人的终端实体证书不需要由与该组织相关联的单一CA颁发。终端实体证书经常由以该组织的根CA为首的CA体系内的多个下级或中间CA之一颁发。此根CA可以提供被用作“可信锚标”(trust anchor)的自签署根证书,所述可信锚标是该组织内所颁发的证书有效性的起点。
证书链400a示出了示例证书链,形成所述示例证书链用于验证颁发给组织“ABC”内的个体“用户1”的证书402a。证书402a通过由根CA颁发给该组织的中间CA的中间证书406a,链接到由该组织的根CA颁发且被用户1信任的自签署根证书404a上。例如,可以从由该组织维护的LDAP服务器(如图4的LDAP服务器284)搜索并获得组织ABC内所颁发的证书。
类似地,证书链400b示出了示例证书链,形成所述示例证书链用于验证颁发给不同的组织“XYZ”内的个体“用户2”的证书402b。证书402b通过中间证书406b,链接到由组织XYZ的根CA颁发且被用户2信任的自签署根证书404b上。例如,可以从由组织XYZ维护的LDAP服务器搜索并获得组织XYZ内所颁发的证书。
考虑组织ABC的用户1接收到来自组织XYZ的用户2的已编码消息的示例情形。即使用户2已经将其证书402b附加到消息上,用户1仍然不能只通过该证书来验证用户2的证书402b的可信状态(假设用户1并未存储用户2的证书402b并将其标记为可信)。如果用户1不信任来自组织XYZ的证书,则不能验证用户2的证书402b,因为其并未链接到可信证书上。
为了有利于不同组织的用户之间的安全通信,需要允许证书在组织之间使用并被信任。可以在两个组织之间执行被称作交叉验证的验证方法,其中一个组织的CA验证另一组织的CA。
术语交叉验证可以用于一般性地表示两个操作。通常相对不频繁地执行的第一操作涉及通过由一个CA在被称作交叉证书的证书中签署另一CA的公用密钥来建立两个CA(例如,跨越组织或在相同的组织内)之间的信任关系。通常相对频繁地执行的第二操作涉及通过形成包括至少一个这种交叉证书的证书链来验证用户的证书。
现在,参照图7B,示出了链接两个示例证书链的交叉证书的方框图。在此示例中,示出了由组织XYZ的根CA颁发给组织ABC的根CA的交叉证书410。类似地,示出了由组织ABC的根CA颁发给组织XYZ的根CA的交叉证书412。
图7B的示例示出了两个根CA之间的相互交叉证书。但是,在变体实施方式中,其他交叉验证方法是可能的。例如,可以由一个组织中的下级CA将交叉证书颁发给另一组织的根CA。作为另一示例,第一组织的CA可以将交叉证书颁发给第二组织的CA,即使第二组织并未反向地将交叉证书颁发给第一组织。
此外,例如,可以根据组织的IT策略,限制跨组织的证书使用。例如,一个组织的IT策略可以规定只有为了处理已编码电子邮件消息的目的,才能信任来自其他组织的证书。而且,一个组织的颁发CA可以撤销交叉证书,以终止与其他组织之间的信任关系。这可以有助于更为有效地控制跨组织的个体之间的安全电子邮件通信。
交叉证书有利于已经建立了信任关系的组织的个体之间的安全通信。再次考虑组织ABC的用户1接收到来自组织XYZ的用户2的已编码消息的情形。用户1能够通过从用户2的证书402b中获得证书链中的证书,向由用户1的组织的根CA颁发且被用户1信任的根证书404a验证用户2的证书402b的可信状态。具体地,如图7B的示例所示,证书链包括ABC的根证书404a、交叉证书412、XYZ的根证书404b、中间证书406b和用户2的证书402b。
对于用户1,为了验证用户2的证书402b的可信状态,用户1必须获得证书402b。其通常将伴随着从用户2到用户1的消息;但是,在未提供证书402b且并未存储在用户1的计算设备上的情况下,必须从例如由组织XYZ维护的LDAP服务器或其他证书服务器获取。此外,必须也获得证书链中的剩余证书中的每一个,以验证证书402b的可信状态。需要从ABC的LDAP服务器、XYZ的LDAP服务器或用户1能够访问的一些其他LDAP服务器中获得证书链中的其他证书(在本示例中,包括根证书和交叉证书)。
如参照图5、图7A和7B所讨论的那样,在构建证书链时,通常需要验证证书上颁发CA的数字签名。在验证证书时,也可以执行其他任务,如检查证书日期的有效性,或检查由组织根据IT策略而建立的其他有效判据。
证书上的数字签名的验证是需要颁发CA的公用密钥的处理。当CA数字签署证书时,通常利用CA的私用密钥,对包括如证书持有者的名称和公用密钥的证书信息或通过应用散列算法而获得的该信息的散列信息进行编码。典型地,在证书中标识出颁发CA用于签署证书的算法。之后,按照类似于验证由用户签署的消息的数字签名时所采用的方式,可以通过利用CA的公用密钥,解码已编码信息或散列信息,并将结果分别与预期的证书信息或其散列信息进行比较,来验证证书上的CA的数字签名。成功的匹配表明CA已经验证了证书持有者的公用密钥可以有效地与证书持有者相绑定,并建议如果CA是可信的,则可以信任证书持有者的公用密钥。
验证证书签名可能是耗时且昂贵的(例如,在计算资源的使用等方面),尤其是在如移动设备等较小的设备上进行验证的情况下。本发明的实施例大体上涉及一种系统和方法,通过存储签名验证操作中所采用的特定信息以便再次使用,有利于更为有效地验证证书上的数字签名。
在至少一个实施例中,将已经颁发了特定证书的CA的一个或多个公用密钥与该证书相关联,并进行缓存或存储。如上所述,在试图验证证书上由CA签署的数字签名时,需要CA的公用密钥。但是,可能存在属于相同CA的多个证书(每个证书均附有公用密钥)。例如,如果几个证书具有相同或相似的主题数据(即标识证书持有者的证书数据),或者如果CA已经颁发了多个公用密钥(其中一些可能不再有效),则可能发生这种情形。因此,可能有利的是,跟踪哪些特定的公用密钥已经被用于成功地验证了特定的证书。
参照图8A,将示出了本发明实施例中、验证证书上的数字签名的方法中的步骤的流程图总体表示为420。
在本发明的一个实施例中,通过在移动设备上执行并驻留在其上的证书验证应用程序来执行所述方法的至少一些步骤。在变体实施方式中,证书验证应用程序可以驻留在除了移动设备以为的其他计算设备上,并在其上执行。此外,证书验证应用程序不必是独立的应用程序,可以在移动或其他计算设备上执行并驻留在其上的一个或多个应用程序中实现证书验证应用程序的功能。
通常,在方法420中,当使用给定的公用密钥成功地验证了证书上的数字签名时,缓存该公用密钥的副本,或者将其存储在存储器中。例如,可以将公用密钥与有关证书的证书数据一起存储,或者存储在适合于存储成功的签名验证中所采用的公用密钥的分离存储器(例如,查找表)中。当之后试图验证相同证书上的数字签名时,不是立即执行至少需要利用公用密钥解码一些数据的、昂贵的签名验证操作,而是代替地,首先将再次用于验证数字签名的公用密钥与已存储的公用密钥进行比较。如果这些公用密钥匹配,则认为验证成功,因为要使用的公用密钥与先前成功地用于签名验证操作的密钥匹配。于是,认为不必针对相同的数字签名,再次执行实际的签名验证操作。因此,能够以更为有效的比较操作(例如,字节阵列比较操作)代替至少一些随后的签名验证操作。下面,将详细描述方法420的步骤。
在步骤430,发起对证书上的数字签名的验证(例如,通过证书验证应用程序)。例如,可以在为了验证用户所接收到的特定证书而构建证书链时(例如,如参照图5所讨论的那样,为了验证附加到所接收到的消息上的证书的可信状态),执行对证书上的数字签名的验证。在本实施例中,正在进行验证的证书上的数字签名是颁发各个证书的证书权威机构的数字签名。如上所述,在签名验证操作中,需要颁发证书的证书权威机构的公用密钥。如果其并未被存储在移动或其他计算设备上的证书存储器中,在此步骤,可能需要获得证书权威机构的证书和公用密钥(例如,从LDAP服务器中)。
对于给定的公用密钥,在步骤440,在利用此公用密钥进行签名验证操作之前,确定先前是否已经成功地利用此公用密钥、对主题证书上的数字签名进行了验证。如上所述,这可以通过将先前用于成功地验证主题证书上的数字签名的证书颁发者的已存储公用密钥(如果存在,则在步骤470,已被存储在缓存或其他存储器中)与要用于验证数字签名的公用密钥进行比较、然后确定是否匹配来进行。由于,在本实施例中,只将成功验证尝试中所采用的公用密钥存储在缓存或其他存储器中,如果确定了匹配,则意味着先前已经成功地验证了主题证书上的数字签名。
如果先前并未利用给定的公用密钥,成功地验证主题证书上的数字签名,则在步骤450,按照已知的方式,利用此公用密钥验证数字签名。根据本实施例,如果在步骤460,确定利用此公用密钥成功地验证了该签名,则在步骤470,将用在此成功验证中的公用密钥存储在缓存或其他存储器中,以便将来使用。例如,可以将在步骤470存储的公用密钥与有关主题证书的数据一起存储,或者存储在通过证书索引的(例如,通过将证书的颁发者名称和序列号与公用密钥一起存储)、针对公用密钥的中央存储器中(例如,查找表中)。
另一方面,如果在步骤440确定先前已经成功地利用给定的公用密钥验证了主题证书上的数字签名,则在步骤480,提供验证成功的指示。代替执行至少需要利用公用密钥解码一些数据的实际签名验证操作,进行此操作,从而使签名验证处理更为有效。这有助于保存电池电力,并增强用户的感受,例如,尤其是对于如移动设备等小型设备。
对于额外的公用密钥,可以重复方法420的步骤。
现在参照图8B,将示出了本发明另一实施例中、验证证书上的数字签名的方法中的步骤的流程图总体表示为420b。
方法420b类似于方法420,除了在只将成功签名验证中所采用的公用密钥存储在缓存或其他存储器中这一方面与方法420相反,在方法420b中,将用在任何签名验证尝试(成功或不成功)中的公用密钥与验证尝试的结果一起存储在缓存或其他存储器中。
通常,在方法420b中,当使用给定的公用密钥验证证书上的数字签名时,与操作的结果一起,缓存该公用密钥的副本,或者将其存储在存储器中。例如,可以将公用密钥和关联结果与有关证书的证书数据一起存储,或者存储在分离存储器(例如,查找表)中。当之后试图利用给定公用密钥验证相同证书上的数字签名时,不是执行至少需要利用公用密钥解码一些数据的、昂贵的签名验证操作,而是代替地,首先将再次用于验证数字签名的公用密钥与已存储的公用密钥进行比较。如果给定的公用密钥与已存储的公用密钥相匹配,则根据与已存储的公用密钥相关联的已存储的结果,认为当前的验证尝试成功或不成功。如果已存储的结果表明利用该已存储公用密钥的先前验证尝试是成功的,则认为当前的验证尝试成功。如果已存储的结果表明利用该已存储公用密钥的先前验证尝试是不成功的,则认为当前的验证尝试失败。因此,能够以更为有效的比较操作(例如,字节阵列比较操作)代替否则将需要利用公用密钥解码一些数据的随后的签名验证操作。
在步骤430,发起对证书上的数字签名的验证(例如,通过证书验证应用程序),如参照方法420所述。
对于给定的公用密钥,在步骤440b,在利用此公用密钥进行签名验证操作之前,确定先前是否已经利用此公用密钥、对主题证书上的数字签名进行过验证。如上所述,这可以通过将先前用于验证主题证书上的数字签名的证书颁发者的公用密钥(如果存在,则在步骤470,已被存储在缓存或其他存储器中)与要用于验证数字签名的公用密钥进行比较、然后确定是否匹配来进行。如果确定了匹配,则意味着先前已经进行过验证主题证书上的数字签名的尝试。
如果先前并未进行过验证主题证书上的数字签名的尝试,则在步骤450,按照已知的方式,进行签名验证操作,如参照方法420所述。根据本实施例,在步骤470b,将用在此验证中的公用密钥和验证尝试的结果(即,是否成功地验证了数字签名的指示符)存储在缓存或其他存储器中,以便将来使用。例如,可以将在步骤470存储的公用密钥和结果与有关主题证书的数据一起存储,或者存储在通过证书索引的(例如,通过将证书的颁发者名称和序列号与公用密钥一起存储)、针对公用密钥的中央存储器中(例如,查找表中)。
如果在步骤440b确定先前已经利用给定的公用密钥验证过主题证书上的数字签名,则在步骤472,从缓存或其他存储器中获得利用此密钥的先前验证尝试的结果,并确定所存储的结果是否表示利用此密钥的先前验证尝试是成功的。如果是,则在步骤480,提供当前验证成功的指示;如果不是,则在步骤490,提供当前验证不成功的指示。
对于额外的公用密钥,可以重复方法420b的步骤。
代替执行至少需要利用给定公用密钥解码一些数据的签名验证操作,利用先前验证尝试的结果来确定利用此公用密钥的验证是否失败,从而使签名验证处理更为有效。具体地,如果用户利用相同的无效公用密钥,多次请求验证证书的数字签名,则只需执行一次至少需要利用公用密钥解码一些数据的、实际的、昂贵的签名验证操作,以及在执行相对有效的比较操作(例如,字节阵列比较)之后,随后的尝试将立即失败。这进一步有助于保存电池电力,并增强用户的感受,例如,尤其是对于如移动设备等小型设备。
本领域普通技术人员应当理解,在变体实施例中,如果需要,也可以将除了上述公用密钥和验证尝试结果以外的其他信息存储在缓存或其他存储器中。
在本发明的变体实施例中,可以只允许在限定的持续时间内,将存储在缓存或其他存储器中的公用密钥和其他信息(如验证尝试结果等)用于公用密钥比较,在限定的持续时间之后,可以认为其已经过时,并从缓存或其他存储器中删除。这可以为了安全性的目的而进行,从而必须不时地重新执行至少需要利用公用密钥解码一些数据的实际签名验证操作。例如,可以根据IT策略来设置此持续时间。类似地,在本发明的另一变体实施方式中,例如,可以将存储在缓存或其他存储器中的一些或全部公用密钥和其他信息标记为过时的,或从中删除,例如,可以由用户或管理员手工指定,从而必须重新执行签名验证操作。为了更为改进的安全性,例如,可以也执行验证操作,以确保公用密钥(例如,先前成功地验证了证书签名的公用密钥)并未在存储之后变为无效。
本发明实施例中用于验证证书上的数字签名的方法的步骤可以作为存储在计算机可读介质上的可执行软件指令来提供,所述计算机可读介质可以包括传输型介质。
已经针对多个实施例对本发明进行了描述。但是,本领域普通技术人员应当理解的是,在不偏离由所附权利要求所限定的本发明的范围的前提下,可以进行多种变化和修改。
权利要求
1.一种在计算设备上验证证书上的数字签名的方法,所述方法包括以下步骤利用与证书的颁发者相关联的第一公用密钥,执行对数字签名的第一签名验证操作;确定在第一签名验证操作中、数字签名是否被成功验证;将第一公用密钥存储在存储器中;接收利用与证书的颁发者相关联的第二公用密钥、执行对数字签名的第二签名验证操作的请求;将第二公用密钥与存储在存储器中的第一公用密钥进行比较,以确定第一和第二公用密钥是否匹配;以及如果在第一签名验证操作中、数字签名被成功验证,而且如果在所述比较步骤中确定了匹配,则响应于所述请求,指示数字签名的成功验证,由此不需要执行第二数字签名验证操作。
2.根据权利要求1所述的方法,其特征在于只有在第一签名验证操作中、数字签名被成功验证时,才在存储步骤,将第一公用密钥存储在存储器中。
3.根据权利要求1或2所述的方法,其特征在于所述存储步骤还包括存储表示在第一签名验证操作中是否成功地验证了数字签名的结果,以及在所述指示步骤中,使用所述结果,以确定在第一签名验证操作中、数字签名是否被成功验证。
4.根据权利要求3所述的方法,其特征在于还包括以下步骤如果在所述指示步骤中确定在第一签名验证操作中、数字签名未被成功验证,而且如果在所述比较步骤中确定了匹配,则响应于所述请求,指示数字签名的不成功验证。
5.根据权利要求1到4之一所述的方法,其特征在于所述计算设备是移动设备。
6.一种软件应用程序,用于在计算设备上执行,所述应用程序包括存储在计算机可读介质上的多条指令,所述指令用于执行根据权利要求1到5之一所述的方法的步骤。
7.一种用于验证证书上的数字签名的系统,包括至少一个计算设备,其中证书验证应用程序在所述至少一个计算设备中的计算设备上执行,且驻留在其上,其中对所述证书验证应用程序进行编程,以执行根据权利要求1到5之一所述的方法的步骤。
全文摘要
一种用于验证证书上的数字签名的系统和方法,其可以用在对已编码消息的处理中。在一个实施例中,当在签名验证操作中,数字签名被成功验证时,缓存用于验证数字签名的公用密钥。当进行验证数字签名的随后尝试时,将要用于验证数字签名的公用密钥与已缓存的密钥进行比较。如果密钥匹配,则可以成功地验证数字签名,而无需执行其中利用公用密钥解码一些数据的签名验证操作。
文档编号H04L12/58GK1767438SQ20051011877
公开日2006年5月3日 申请日期2005年10月31日 优先权日2004年10月29日
发明者迈克尔·K·布朗, 迈克尔·S·布朗 申请人:捷讯研究有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1