具体实施方式
现在将参照附图在下文中对本发明的一些实施例进行更加充分的描述,其中示出了本发明的一些,但并非所有的实施例。本发明的各种实施例确实可以体现为很多不同的形式,并且不应该被解释为限于这里所描述的实施例;更确而是,这些实施例是为了使本申请的公开满足适用的法律要求而提供的。遍及全片,相同的参考标号指代相同的元件。如同这里所使用的,术语“数据”“内容”“信息”以及类似的术语可以被可互换地指代根据本发明的一些实施例能够被传输、接收和/或存储的数据。因此,任何这样的术语的使用不应该被用来限制本发明的实施例的精神和范围。
此外,如这里所使用的,术语“电路”指(a)只有硬件的电路实现方式(例如,以模拟电路和/或数字电路的形式实现);(b)电路与包含软件和/或存储在一个或多个计算机可读存储器上的固件指令的组合,该计算机可读存储器协同工作以使一装置执行这里所描述的一个或多个功能;以及(c)电路,比如例如一个或多个微处理器或一个或多个微处理器的一部分,其需要软件或固件以进行操作,即使软件或固件并不物理存在。“电路”的这种定义适用于这里所有使用该术语的情形,包括在任何权利要求中的使用。作为进一步的例子,正如这里所使用的,术语“电路”还包括包含一个或多个处理器和/或处理器部分以及随附的软件和/或固件。作为另一个例子,这里所使用的术语“电路”还例如包括用于移动电话的基带集成电路或应用处理器集成电路,或者服务器、蜂窝网络设备、其它网络设备和/或其它计算设备中的类似的集成电路。
正如这里所定义的,“计算机可读存储介质”,指代非暂时性的物理存储介质(例如,易失性或非易失性存储设备),可以与指代电磁信号的“计算机可读传送介质”区别开来。
正如上面所指出的,本发明的一些实施例可以涉及对数字证书撤销的管理。在示例性的情形中,证书授权机构(CA)可以针对各种移动设备处理证明以及撤销过程。可以定位第一移动设备和第二移动设备,使得第一和第二移动设备都没有对网络的有保证的访问。因此,期望能够提供一种机制,通过这种机制,例如,在第一和第二移动设备都离线时,第一移动设备可以通过提供有效的、未被撤销的证书来向第二移动设备认证自己。
实现上面所描述的认证的一种方式可以是,CA创建可以经由相对较低带宽的信道发送给用户的经过压缩的证书撤销列表(CRL)。用户可以通过低带宽的信道接收CRL并基于CRL的内容对其它用户进行离线的验证。本发明的一些实施例可以使用证书标识符的收集器,并且还提供了用以证明收集器中实体的成员资格(或非成员资格)的技术。一些实施例还可以提供在一个或多个受委派的机构(或节点)上分配这里所描述的技术的可能,当得到相应的委派时,其可以是完全可信的节点。
在一些实施例中,布隆过滤器(Bloom filter)可以被用于CRL压缩。图3示出了示例性的布隆过滤器。布隆过滤器通常包括m位的矢量,其所有位被初始设置为零。通过(1)将元素与k个独立的哈希函数进行哈希运算,该哈希函数输出范围1、……、m中的数,或者(2)将每个哈希函数指向的矢量位设置为一,可以将元素包含到过滤器中。由于将若干个元素相加,有可能一位可以被多次设置为一。然后,布隆过滤器可以作为经压缩的元素列表被分配或公布。为了检验给定的元素被包含在过滤器中,可以对该元素进行哈希运算,对应的过滤器位就可以被检查出来。如果至少一个位为零,则该元素并不包含在过滤器中。否则,如果所有必需的k个位都被设置过,通常包含该元素的可能性很高。其它元素的多次相加(误检(false positive))也可以使对应的各个位被设置。相加的元素越多,遭遇误检的可能性也就越高。
在点对点应用以及其它通信相关的环境中,可以将布隆过滤器与数据库一起使用。布隆过滤器可以提供高的压缩率,同时具有相对低的误检并且没有漏检(falsenegative)。因此,鉴于布隆过滤器所能提供的相对较好的压缩,使用布隆过滤器来提供CRL压缩从而使CRL的提供适应低带宽的信道可以是有利的。然而,有时布隆过滤器被认为运算比较复杂,而且在CA处解除撤销证书之后可能需要再次对整个列表进行运算。因此,本发明的一些示例性实施例被设计为通过只在将要被解除撤销的证书上以相对较少的运算来支持解除撤销。于是,布隆过滤器的压缩优势可以得到维持,同时避免了与再次对整个列表进行运算相关联的必要的资源损耗。
很多过去的解决方案假定存在可信的基础设施或参与方,或者采用了运算复杂和/或需要大量通信带宽的技术。正如前面所指出的,一些示例性实施例可以在CRL压缩中使用收集器和/或布隆过滤器,以允许在低带宽环境中使用CRL。
图1示出了一般性的系统图,其中示出了处于示例性通信环境中的设备,比如移动终端10,其可以得益于本发明的一些实施例。如图1所示,根据本发明示例性实施例的系统包括第一通信设备(例如,移动终端10)和第二通信设备20,每个都可以能够与网络30进行通信。提供第二通信设备20作为一个示例,来说明关于可以包括在网络30中并且可以实施示例性实施例的其它设备的实例的潜在多样性。系统的通信设备可以能够与网络设备进行通信,或者通过网络30彼此通信。在一些情况下,系统的通信设备与之进行通信的网络设备可以包括服务平台40。在示例性实施例中,移动终端10(和/或第二通信设备20)能够与服务平台40进行通信以提供、请求和/或接收信息。在一些示例中,服务平台40(或网络30的其它部分)可以像下面将更加详细地描述的那样宿主证书授权机构(CA)。
出于示例的目的,虽然对移动终端10的示例性实施例进行了说明并且在下文中进行了描述,但是,很多种移动终端,比如便携式数字助理(PDA)、寻呼机、移动电视、移动电话、游戏设备、便携式计算机、照相机、照相手机、录像机、音/视频播放器、收音机、全球定位系统(GPS)设备、导航设备、或者上述设备的任意组合,以及其它类型的多媒体、声音及文本通信系统,可以容易地采用本发明的示例性实施例。而且,非移动型的设备也可以容易地采用本发明的示例性实施例。同样地,例如,第二通信设备20可以代表可以采用示例性实施例的固定电子设备的例子。例如,第二通信设备20可以是个人计算机(PC)或其它终端。
在某些实施例中,不是所有采用本发明实施例的系统都可以包括这里说明和/或描述的所有的设备。例如,尽管这里将要描述的示例性实施例中,移动用户设备(例如,移动终端10)、固定用户设备(例如,第二通信设备20)或者网络设备(例如,服务平台40)可以包括能够实现和与网络30通信相关的某些示例性实施例,但是,应该理解,某些实施例可以排除这些设备中的一个或多个,或者连同网络30一起排除,并且仅在单个设备上实施。
在示例性实施例中,网络30包括能够通过相应的有线和/或无线接口彼此通信的各种不同节点、设备或者功能的集合。同样地,图1的示图应该被理解为系统的某些元件的广义上的例子,而不应理解为系统或网络30的包括一切的或具体意义上的例子。尽管不是必须的,但是,在某些实施例中,网络30可以能够支持根据第一代(1G)、第二代(2G)、2.5G、第三代(3G)、3.5G、3.9G、第四代(4G)移动通信协议、长期演进(LTE)和/或类似协议中的任何一种或多种所进行的通信。
一个或多个通信终端比如移动终端10和第二通信设备20可以能够通过网络30彼此通信,并且每个可以包括用以传输信号给基础站点以及从基础站点接收信号的一个或多个天线,基础站点例如可以是作为一个或多个蜂窝或移动网络的一部分的基站或者可以被连接到数据网络(比如局域网(LAN)、城域网(MAN)和/或广域网(WAN),比如互联网)的接入点。接着,其它设备,比如处理设备或元件(例如,个人计算机、服务器计算机等等)可以通过网络30连接到移动终端10和第二通信设备20。通过直接或间接地将移动终端10、第二通信设备20以及其它设备连接至网络30,能够使移动终端10和第二通信设备20,例如根据包括超文本传输协议(HTTP)和/或类似协议在内的众多通信协议与其它设备(或彼此)通信,从而分别执行移动终端10和第二通信设备20的各种通信或者其它功能。
此外,尽管图1并未示出,移动终端10和第二通信设备20可以依照例如射频(RF)、蓝牙(BT)、红外(IR)或者任何多种不同的有线或无线通信技术进行通信,包括USB、LAN、无线LAN(WLAN)、全球微波互联接入(WiMAX)、WiFi、超宽带(UWB)、Wibree技术和/或类似技术。同样地,可以使移动终端10和第二通信设备20通过任何众多不同的接入机制与网络30以及彼此进行通信。例如,移动接入机制,比如宽带码分多址接入(W-CDMA)、CDMA2000、全球移动通信系统(GSM)、通用分组无线电业务(GPRS)和/或类似的机制,可以被支持,无线接入机制,比如WLAN、WiMAX和/或类似的机制,以及固定接入机制,比如数字用户线路(DSL)、有线调制解调器、以太网和/或类似的机制,也同样可以被支持。
在示例性实施例中,服务平台40可以是设备或者节点,比如服务器或其它处理设备。服务平台40可以具有多种功能或者与各种服务的关联。同样地,例如,服务平台40可以是一种比如与特定的信息源或服务(例如,数字证书管理服务)相关的专用服务器(或者服务器阵列),或者服务平台40可以是与一种或多种其它功能或服务相关的后端服务器。同样地,服务平台40代表了用于多种不同服务或信息源的可能的主机。在一些实施例中,服务平台40的功能由硬件和/或软件部件提供,这些部件被配置为按照已知的用以向通信设备的用户提供信息的技术来进行操作。然而,由服务平台40所提供的功能中的至少一些可以是根据本发明的示例性实施例提供的信息。
图2示出了根据本发明示例性实施例的用于提供针对证书撤销的有效管理的装置的示意性框图。现在将参照图2对本发明的示例性实施例进行描述,其中显示了用于提供针对证书撤销的有效管理的装置50的某些元件。图2所示的装置50可以被用在例如充当证书授权机构或者用作证书授权机构的主机的服务平台40上。然而,在一些实施例中,装置50(或其部分)可以被用在移动终端10中和/或用在第二通信设备20上(当这些设备用作代表(delegate)节点时)。然而,作为选择,装置50可以用在各种其它设备上,移动的以及固定的(比如,例如上文中所列出的任意设备)。在某些情况下,一个实施例可以在一个设备或者多个设备的组合上采用。因此,本发明的一些实施例可以完全在单个的设备(例如,服务平台40、移动终端10或第二通信设备20)上实现,由以分布式方式存在的多个设备实现,或者由处于客户端/服务器关系中的多个设备实现(例如,移动终端10和服务平台40)。而且,应该注意到,下面所描述的设备或元件可以不是强制的,因此在某些实施例中一些设备或元件可以被忽略。
现在参照图2,提供了一种用于提供针对证书撤销的有效管理的装置。装置50可以包括处理器70、用户接口72、通信接口74以及存储设备76,或以其它方式与这些设备通信。在一些实施例中,处理器70(和/或协同处理器或者任何辅助或以其它方式与处理器70相关联的其它处理电路)可以经由用以在装置50的部件之间传递信息的总线与存储设备76进行通信。存储设备76例如可以包括一个或多个易失性和/或非易失性存储器。换句话说,例如存储设备76可以是包括开关电路(gate)的电子存储设备(例如,计算机可读存储介质),其中的开关电路被配置为存储可以被机器(例如,如同处理器70的计算设备)检索的数据(例如,位)。存储设备76可以被配置为存储信息、数据、应用程序、指令或者类似物以使装置50能够实现根据本发明示例性实施例的各种功能。例如,存储设备76可以被配置为缓存由处理器70处理的输入数据。此外或者作为选择,存储设备76可以被配置为存储由处理器70执行的指令。
在一些实施例中,装置50可以是被配置为采用本发明示例性实施例的移动或固定通信设备或者计算设备(例如,服务平台40)。然而,在一些实施例中,装置50可以被体现为芯片或芯片组。换言之,装置50可以包括一个或多个物理封装(package)(例如,芯片),该封装在结构组件(例如,基板)上包括材料、部件和/或导线。该结构组件可以为其上包含的组件电路提供物理强度、大小保持和/或对电相互作用的限制。因此,在某些情况下,装置50可以被配置为在单个芯片上或者作为单个的“片上系统”来实现本发明的实施例。同样地,在某些情况下,芯片或芯片组可以构成用于执行提供这里所描述的功能的一个或多个操作的装置。
处理器70可以通过多种不同的方式以硬件的形式实现。例如,处理器70可以体现为一个或多个不同的处理装置,比如协处理器、微处理器、控制器、数字信号处理器(DSP)、具有或者不具有随附DSP的处理元件、或者各种其它的处理电路,包括集成电路,比如,例如ASIC(专用集成电路)、FPGA(现场可编程门阵列)、微控制器单元(MCU)、中央处理器(CPU)、硬件加速器、向量处理器、图形处理单元(GPU)、特定用途的计算机芯片、或其它类似的硬件设备。同样地,在一些实施例中,处理器70可以包括一个或多个被配置为独立执行的处理核心。多核处理器使得能够在单个物理封装中进行多重处理。此外或者可替换地,处理器70可以包括一个或多个被配置为通过总线串联以使得能够进行指令的独立执行、流水线和/或多线程处理。
在示例性实施例中,处理器70可以被配置为执行存储在存储设备76中的或者处理器70能够通过其它方式得到的指令。作为选择或者附加地,处理器70可以被配置为执行硬编码功能。同样地,无论通过硬件、软件方法还是两者的组合来配置,处理器70可以代表当被相应地配置时能够执行根据本发明实施例的操作的实体(例如,物理地体现在电路中的)。因此,例如当处理器70被体现为ASIC、FPGA或类似物时,处理器70可以是用以进行这里所描述的操作的特别配置的硬件。作为另一个例子,可替换地,当处理器70被体现为软件指令的执行器时,当这些指令被执行时,这些指令可以特别地配置处理器70以执行这里所描述的算法和/或操作。然而,在某些情况下,处理器70可以是适配用于通过处理器70配置用以执行这里所描述的算法和/或操作的指令而利用本发明实施例的特定设备(例如,移动终端或网络设备)的处理器。除了其它东西,处理器70可以包括时钟、算术逻辑单元(ALU)以及被配置为支持处理器70操作的逻辑门电路。
与此同时,通信接口74可以是被配置为从网络和/或任何与该装置通信的设备或模块接收数据和/或向网络和/或任何与该装置通信的设备或模块发送数据的任何装置,比如体现为或者硬件或者硬件与软件组合的设备或电路。就此而言,通信接口74例如可以包括天线(或多个天线)以及用于使得能够与无线通信网络进行通信的支撑硬件和/或软件。在某些环境中,通信接口74可以可替换地或者同时支持有线通信。同样地,通信接口74例如可以包括通信调制解调器和/或其它用以支持经电缆、数字用户线路(DSL)、通用串行总线(USB)或其它机制进行通信的硬件/软件。
用户接口72可以与处理器70通信以接收用户接口72处的对用户输入的指示和/或向用户提供声音、视觉、机械或其它输出。同样地,用户接口72例如可以包括键盘、鼠标、操纵杆、显示器、触摸屏、软键、麦克风、扬声器或者其它输入/输出机构。在装置50被体现为服务器或某些其它网络设备(例如,服务平台40)的例示性实施例中,用户接口72可以被限制或消除。然而,在装置被体现为用作代表节点的通信设备(例如,移动终端10或第二通信设备20)的实施例中,用户接口72可以包括,除了其它设备或元件,扬声器、麦克风、显示器以及键盘等等中的任意或者全部。就此而言,例如,处理器70可以包括配置为控制用户接口(比如,例如扬声器、振铃器、麦克风、显示器和/或类似物)的一个或多个元件的至少一些功能的用户接口电路。处理器70和/或包括处理器70的用户接口电路可以被配置为通过存储在能够由处理器70访问的存储器(例如,存储装置76和/或类似物)上的计算机程序指令(例如,软件和/或固件)来控制用户接口的一个或多个元件的一个或多个功能。
在示例性实施例中,处理器70可以被体现为包括或以其它方式控制撤销列表管理器80。同样地,在一些实施例中,处理器70可被认为导致、指引或控制这里所描述的应归因于撤销列表管理器80的各种功能的执行或者发生。撤销列表管理器80可以是比如设备或电路的任何装置,该装置按照软件或者以其它方式体现在硬件或硬件与软件的组合中(例如,在软件控制下工作的处理器70,体现为被特别配置以执行这里所描述的操作的ASIC或FPGA的处理器70,或者它们的组合)从而配置该设备或电路来执行这里所描述的撤销列表管理器80的相应的功能。因此,在采用软件的例子中,执行软件的设备或电路(例如,一个例子中的处理器70)形成与这样的装置有关的结构。
在示例性实施例中,撤销列表管理器80(在这里可互换地称为证书授权机构(CA))可以被配置为计算、算出和/或生成收集器82和特定于条目的(entry specific)布隆过滤器84中的任何一个或两个,取决于特定的实施例采用了收集器82和特定于条目的布隆过滤器84中的哪一个(或两个)。而且,在同时采用了收集器82和特定于条目的布隆过滤器84的实施例中,撤销列表管理器80可以被配置为按照操作者、用户所指定的或者按照驻存在撤销列表管理器80中或能够由撤销列表管理器80访问的特定的基于条件的规则来选择性地使用收集器82和特定于条目的布隆过滤器84中的一个或两个。
在示例性实施例中,收集器82可以被用来执行CRL压缩。因此,正如特定于条目的布隆过滤器84一样,可以使用收集器82来帮助在通信带宽受限的环境中处理已经撤销的证书的取消撤销。因此,例如对于网络而言,无论由于什么原因通信成本比平时高(或容量较低)因此人们希望尽可能地减少通信量的情况,收集器82和特定于条目的布隆过滤器84可以是有用的。在一些例子中,收集器82可以保留证书标识符的列表,包括已撤销的证书的列表(例如,撤销列表)。收集器82还可以被配置为以与撤销列表中的条目中的一些(或每个)相关的方式存储“证据值”。该证据值可以被用作撤销列表中标识符的成员资格或非成员资格的证明。在某些情况下如果撤销列表被提供给代表节点(例如,移动终端10和/或第二通信设备20)可能会生成问题。在这一点上,代表节点通常被假定为是完全可信的。因此,如果由于撤销列表中对成员资格(以及非成员资格)的证明被转换了而导致代表节点中的一个通过不适当地改变撤销列表而实际上欺骗了系统,恶意的用户就可能危害系统。因此,一些示例性实施例放宽了所有代表节点都是完全可信的假设,从而由代表节点开始的可能的欺骗可以被追踪,进而特定的代表(例如,表现差的代表)可以被取消。因此,一些实施例可以使成员资格和/或非成员资格为不可转换的。
在示例性实施例中,收集器82可以按照下面描述的那样计算(例如,通过撤销列表管理器80或CA)。就此而言,基于元素x的集合X,CA能够计算出收集器c:每次加入新的条目,y,收集器被更新为c'=cy mod n。x在X中的成员资格的证据可以是整数w,使得c=wx mod n。在某些情况下,x在X中的成员资格的证据可以在向X中插入y之后被动态地计算为:w'=wy mod n。可替换地或者附加地,在向X中插入y之后,能够动态地计算新的收集器:c'=cy mod n作为x在X中的成员资格的证据。在某些情况下,在从X中删除y之后,能够动态地计算新的收集器: 作为x在X中的成员资格的证据,其中为欧拉函数。可替换地或者附加地,在从X中删除y之后,能够动态地计算证据:w'=wzc'k mod n作为x在X中的成员资格的证据,其中1=yz+kx(x未被删除)。
同时,在一些实施例中,x在X中非成员资格的证据可以通过一对整数(a、d)提供,使得ca=dxg mod n。在向X中插入y之后,x在X中非成员资格的证据可以被动态地计算为:a'=az,d'=dc-ak mod n,其中1=yz+kx(y不是x)。新的收集器能够被动态地计算为:c'=cymod n。在某些情况下,在从X中删除y之后,新的证据能够被动态地计算为:a'=ay,d'=d,并且新的收集器能够被动态地计算为: 其中为欧拉函数。
在一些实施例中,接着上面提供的说明,可以基于一组非成员资格原语(primitive)对收集器82进行修改,而且收集器可以被配备一种机制以允许有效地批量更新。还可以针对不完全可信的代表节点的使用修改收集器82。此外,通过使用零知识技术,可以使得对解除撤销的证明是不可转让的,从而验证实体无法获得任何可转移的证据。因此,通信要求以及收集器82的实现复杂性可以是相对恒定的。
在一些实施例中,可以通过应用先前的添加算法在一行中添加若干个元素ai,A=∏ai,和/或通过应用先前的删除算法在一行中删除若干个元素di,∏=di,来提供批量更新。对于批量更新,考虑有理数r=A/D且新的收集器c'=c。为了减小位长,用y=r modλ(n)替换r,并且将y添加到X中来更新证据。的最小公共乘数(multiplier),其中pi是n的唯一因式分解的质因数(prime)。通过释放(releasing)y替代r,y与x互质,因此尽管x被删除了还是能更新x的成员资格的证据,或者尽管x被添加了还是能更新x的非成员资格的证据。此外,通过释放y替代r,CA公开了λ(n)的倍数(multiple),这对于系数n来说可以是足够的信息。
正如上面所指出的,更新算法通常仅有可信的参与者运行。因此,通常推断更新算法是由机构(CA)的某些可信的代表运行。一些示例性实施例通过提供由不完全可信的代表使用的方法可以避免这一潜在的问题。恶意地使用收集器82的不完全可信的代表可以被CA删除并取消。
因此,一些示例性实施例可以进行范式转换(paradigm shift)从而假定代表节点是不完全可信的代表,其可以就更新证据收到质疑。代表节点可以保持经更新的被取消的x的列表。尽管这些代表可以通过证明属于撤销列表的证书的非成员资格进行欺骗,这些欺骗者的身份是可以确定的,从这个意义上来讲,这些代表是不完全可信的。因此,在一些实施例中,给定一个区别整数h,对于不在X中的x证据(或证据值)为三元组(a,b,c),使得cahb=dxg(mod n)。该证据值可以与区别整数h的证书一起被提供。当从X中删除或向X中添加成员时,能够容易地更新证据。CA可以被配置为选择一随机数s,计算h=cgs mod n并且为区别整数h签署证书。然后,h和s可以被发送给代表节点。代表节点可以将值s用作陷阱门。就此而言,可以使得代表节点能够计算证据并且几乎不费力气地更新当前的收集器c,但是无需能够分解n。
为了为x计算证据,代表节点可以被配置为首先在其撤销的证书X的记录中查证x是不存在的(这能够在时间O(log|X|)内完成),然后,由于s和x是互质的,代表节点能够计算bs=kx+1,a=-b,以及d=gk mod n。在这种情况下,cahb=c-b(cgs)b=gbs=gkx+1=dx g(mod n),于是(a,b,d)就是x的证据。这在时间O((log n)3)内也如此。之后,证书持有者能够独自更新证据。在某些情况下,证据泄漏了用来标识代表的区别整数h及其发送周期。因此,如果有人发现了用于已撤销的x的证据,代表也能够被追踪到并被取消。如果这样的事件很不常见,则能够通过使用常规的撤销列表或使用前面描述的方法进行管理。
这里所描述的不完全可信的委派可以进一步与零知识证明机制结合,如下所述。例如,为了使对成员资格的证明或者对非成员资格的证明不会向检验者提供任何可转移的证据,可以采用用于证明证据的零知识交互式知识证明。
作为示例,考虑从G到Z* N的同态函数证明者可以(从G中)随机地选择u,计算并将结果发送给检验者。检验者可以(从{1,…,t}中)随机地选择e并将其发送给证明者。证明者可以计算v=u+ey并将发送给检验者。检验者可以查证 所有x的值必须为质数并且比t大。因此,存在α和β使得xα+eβ=1。在证明成员资格的情形中(Y=c,G=Z* N), 在证明非成员资格的情形中(Y=g,G=Z×Z* N),
在示例性实施例中,除了使用收集器82或者替代使用收集器82来使CRL压缩与低比特率的信道相适应,可以与CRL一起采用特定于条目的布隆过滤器84。然而,使用布隆过滤器通常可以造成明显的附加计算开支,正如前面所指出的,因为每次解除撤销可以要求布隆过滤器再次计算整个CRL,这需要在CRL中对每个条目进行多次哈希运算。CRL的重新计算通常是由于在过滤器中设置的位可以同时属于许多被撤销的证书的哈希值,如图3所示。在这样的例子中,如果由于对应的证书未被撤销而将给定的位(0)复位,会错误地解除撤销所有其它具有映射到同样位的哈希值的证书,因此会严重地损害这种机制。
一些示例性实施例可以使CA能够仅对将要被解除撤销的条目进行哈希运算,从而在避免每次解除撤销时计算整个CRL的同时提供良好的压缩率。为了实现该过程,一些可以采用特定于条目的布隆过滤器84的实施例可以在证书被解除撤销时(对于因为未能付费而被撤销而费用随后到了的用户,这种情况可能经常发生)采用非二进制/计数布隆过滤器(CBF)。当构建CRL时,CA可以向哈希函数输入撤消了的证书的证书标识符。哈希函数的输出可以指向布隆过滤器的将要被设置(为1)的位的位置。在示例性实施例中,位由计数器替代(例如,以字节的形式),无论什么时候哈希运算指向给定的位置,计数器被添加1,如图4所示。
向布隆过滤器中添加撤消了的证书,不会使二进制(基于位的)布隆过滤器和非二进制(基于计数器的)布隆过滤器出现显著的区别。在从布隆过滤器CRL中移除证书时,可以看到差别。就此而言,为了从基于位的布隆过滤器CRL中移除证书(为了解除撤销),CA可能需要如前面所述的从头对整个CRL进行重新计算。然而,通过使用基于计数器的布隆过滤器(例如,特定于条目的布隆过滤器84),CA可以只需对将要解除撤销的证书的标识符进行哈希运算,然后将对应的计数器减一。
基于计数器的布隆过滤器经通信信道的传输可以提供比传输基于位的布隆过滤器所能达到的更小的压缩。例如,压缩率可以按照等于计数器按位计算的大小的因数较少。然而,计数器本身对于端用户通常是没用的,而仅仅对CA有用。事实上,为了验证证书是否属于布隆过滤器CRL,端用户设备只需要知道一给定位置是零还是比零大的值。因此,尽管CA可以维持基于计数器的布隆过滤器,被传输的布隆过滤器可以将任何大于零的值转换为数值一。图5示出了在CA 100处维持的基于计数器的布隆过滤器以及能够由CA生成的被传输的布隆过滤器110的例子。因此,在传输之前,CA可以被配置为将基于计数器的布隆过滤器的所有大于零的值转换为数值一以便传输经过转换的值。
在某些情况下,可以为处理计数器溢出的可能性做准备。例如,假定k个哈希函数被统一地、随机地输出给布隆过滤器位置,并且每个位置上的每个计数器添加了(撤销证书的数量)×k/m次。因此,可以基于最高限度预先设置每个计数器的位大小,并且可以通过在过滤器的开头添加“计数器位长”域来动态地适应(例如,基于计数器的每次溢出)。
图6和图7示出了根据本发明示例性实施例的方法及程序产品的流程图。应该理解,流程图中的每个块以及各个块的组合可以通过多种方式实现,比如硬件、固件、处理器、电路和/或其它与包括一个或多个计算机程序指令的软件的执行相关的设备。例如,前面所描述的步骤中的一个或多个可以由计算机程序指令来体现。就此而言,体现前面所描述的步骤的计算机程序指令可以由用户终端或网络设备的存储设备存储并且由用户终端或网络设备的处理器执行。应该理解,任何这样的计算机程序指令都可以加载到计算机或其它可编程装置(例如,硬件)上而生成一机器,使得在计算机或其它可编程装置上执行的指令形成用于执行由流程图的块所指定功能的装置。这些计算机程序指令还可以被存储在计算机可读存储器中,该计算机可读存储器可以指引计算机或其它可编程装置以特定的方式起作用,从而存储在计算机可读存储器中的指令生成一制品,其实现一个或多个流程图的块所指定的功能。计算机程序指令还可以被加载到计算机或其它可编程装置上使得由要在计算机或其它可编程装置上执行的一系列操作生成一由计算机实现的过程,从而由在计算机或其它可编程装置上执行的指令实现一个或多个流程图的块中所指定的功能。
因此,流程图中的各个块支持用于执行指定功能的装置的组合,并且支持用以执行指定功能的操作的组合。还应该理解,流程图中的一个或多个块,以及流程图中的各个块的组合,能够通过执行指定的功能的基于硬件的特殊用途的计算机系统来实现,或者能够通过特殊用途的硬件与计算机指令的组合来实现。
就此而言,如图6所示,根据本发明一个实施例的方法可以包括:在操作200中,存储包括撤销列表的数字证书的标识符列表,该撤销列表定义了收集器中的被撤销的证书的列表;以及在操作210中,以与撤销列表中的至少一些条目相关联的方式存储证据值,在撤销列表中该证据值为撤销列表中的标识符的成员资格或非成员资格提供证明。该方法可以进一步包括:在操作220中,使得能够响应于每次在撤销列表中插入或删除条目而生成新的收集器和新的证据值;以及在操作230中,使得能够使用减小的位长度值对撤销列表进行批量更新,该减小的位长度值是根据基于向撤销列表中添加的元素而生成的值与基于从撤销列表中删除的元素而生成的值的比率而生成的。
在一些实施例中,上述操作中的某些操作可以按照下面所描述的那样被修改或者进一步加强。而且,在一些实施例中还可以包括附加的可选操作。应该认识到,下面的每个修改、可选的添加或者增强可以单独地或者与这里所描述的任何其它特征结合起来与前面的各种操作一起被包括进来。在一些实施例中,使得能够进行批量更新的过程包括,使用由y=r modλ(n)替换的减少的位长度值r来将y作为条目添加到集合X中以更新证据值,其中r=A/D并且ai定义了行中要添加的元素,A=∏ai,并且di定义了行中要删除的元素,D=∏di。λ(n)是的最小公共乘数,其中pi是n的唯一因式分解的质因数。在示例性实施例中,存储列表、存储证据值、使得能够生成新的收集器和新的证据值以及使得能够进行批量更新等过程在证书授权机构处或者在不完全可信的代表处进行。在一些实施例中,可以使证书授权机构能够监测不完全可信的代表至少与新的证据值的生成有关的活动,并且基于与新的证据值的生成相关联的不正常来取消不完全可信的代表。在某些情况下,可以使不完全可信的代表生成证据值来使用零知识证明机制为成员资格或非成员资格提供证明。
在示例性实施例中,用于执行前面图6的方法的装置可以包括被配置为执行前面所描述的操作(200-230)中某些或每个操作的处理器(例如,处理器70)。处理器例如可以被配置为通过执行由硬件实现的逻辑功能、执行存储的指令或者执行用来执行这些操作中每项操作的算法来执行这些操作(200-230)。可替换地,该装置可以包括用来执行上面所描述的每项操作的装置。就此而言,根据示例性实施例,用来执行操作200-230的装置的例子例如可以包括CA或者撤销列表管理器80。附加地或者可替换地,至少由于处理器70可以被配置为控制甚至被体现为撤销列表管理器80,处理器70和/或用来执行指令或者执行用以处理如上面所描述的信息的设备或电路也可以形成用来执行操作200-230的装置的例子。
在某些情况下,上面所描述的操作(200-230),以及任何的修改,可以在涉及促进访问至少一个接口以便允许经由至少一个网络访问至少一个服务的方法中实施。在这样的情况下,该至少一个服务可以被认为至少执行操作200-230。
在另一实施例中,如图7所示,用于对证书撤销进行有效管理的方法可以包括,在操作300中在证书授权机构处使用计数过滤器使证书撤销列表得到压缩。该计数过滤器可以包括多个计数器位置,每个计数器位置可以与被撤销证书的标识符的哈希函数相对应。该方法可以进一步包括,在操作310中使得计数过滤器中的值转换为二进制值,从而大于零的值被转换为一以便形成二进制过滤器,以及在操作320中使得二进制过滤器得以传输以便向另一实体提供证书撤销列表。
在一些实施例中,上面操作中的某些操作可以如下面所描述的那样被修改或者进一步增强。而且,一些实施例还可以包括附加的可选操作。应该认识到,下面的每个修改、可选的添加或者增强可以单独地或者与这里所描述的任何其它特征结合起来与前面的各种操作一起被包括进来。在一些实施例中,计数过滤器可以是计数布隆过滤器,二进制过滤器可以是二进制布隆过滤器。在一些实施例中,使压缩得以进行的步骤可以包括使用计数布隆过滤器进行压缩,其中对于添加到证书撤销列表中的每个证书的相应的哈希运算计数器位置被递增一,对于从证书撤销列表中删除的每个证书的相应的哈希运算计数器位置被递减一。
在示例性实施例中,用于执行前面图7的方法的装置可以包括被配置为执行前面所描述的操作(300-320)中某些或每个操作的处理器(例如,处理器70)。处理器例如可以被配置为通过执行由硬件实现的逻辑功能、执行存储的指令或者执行用来执行这些操作中每项操作的算法来执行这些操作(300-320)。可替换地,该装置可以包括用来执行上面所描述的每项操作的装置。就此而言,根据示例性实施例,用来执行操作300-320的装置的例子例如可以包括CA或者撤销列表管理器80。附加地或者作为选择,至少由于处理器70可以被配置为控制甚至被体现为撤销列表管理器80,处理器70和/或用来执行指令或者执行用以处理如上面所描述的信息的设备或电路也可以形成用来执行操作300-320的装置的例子。
在某些情况下,上面所描述的操作(300-320),以及任何的修改,可以在涉及促进访问至少一个接口以便允许经由至少一个网络访问至少一个服务的方法中实施。在这样的情况下,该至少一个服务可以被认为至少执行操作300至320。
得益于上述说明以及相关的附图中所给出的教导,这里所阐述的发明的许多修改以及其它实施方式可以由发明所属领域的技术人员想到。因此,应该理解,本发明并不限于所公开的特定的实施例,修改以及其它的实施方式被预期包含在所附权利要求的范围内。而且,尽管前述的说明以及相关的附图在元件和/或功能的某些示例性组合的上下文中描述了一些示例性实施例,但是,应该认识到,不偏离所附权利要求的范围的前提下,作为选择的实施例可以提供元件和/或功能的不同的组合。就此而言,正如在一些所附的权利要求中所阐明的那样,例如明显不同于前面所描述的元件和/或功能的不同组合同样是可以预期的。尽管这里采用了特定的术语,但是它们仅仅是在一般、描述性的意义上使用,并非用于限定的目的。