CN1659597A - Physical access control - Google Patents
Physical access control Download PDFInfo
- Publication number
- CN1659597A CN1659597A CN038132664A CN03813266A CN1659597A CN 1659597 A CN1659597 A CN 1659597A CN 038132664 A CN038132664 A CN 038132664A CN 03813266 A CN03813266 A CN 03813266A CN 1659597 A CN1659597 A CN 1659597A
- Authority
- CN
- China
- Prior art keywords
- certificate
- door
- card
- user
- key
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/02—Payment architectures, schemes or protocols involving a neutral party, e.g. certification authority, notary or trusted third party [TTP]
-
- G—PHYSICS
- G07—CHECKING-DEVICES
- G07C—TIME OR ATTENDANCE REGISTERS; REGISTERING OR INDICATING THE WORKING OF MACHINES; GENERATING RANDOM NUMBERS; VOTING OR LOTTERY APPARATUS; ARRANGEMENTS, SYSTEMS OR APPARATUS FOR CHECKING NOT PROVIDED FOR ELSEWHERE
- G07C9/00—Individual registration on entry or exit
- G07C9/20—Individual registration on entry or exit involving the use of a pass
- G07C9/22—Individual registration on entry or exit involving the use of a pass in combination with an identity check of the pass holder
- G07C9/23—Individual registration on entry or exit involving the use of a pass in combination with an identity check of the pass holder by means of a password
-
- G—PHYSICS
- G07—CHECKING-DEVICES
- G07C—TIME OR ATTENDANCE REGISTERS; REGISTERING OR INDICATING THE WORKING OF MACHINES; GENERATING RANDOM NUMBERS; VOTING OR LOTTERY APPARATUS; ARRANGEMENTS, SYSTEMS OR APPARATUS FOR CHECKING NOT PROVIDED FOR ELSEWHERE
- G07C9/00—Individual registration on entry or exit
- G07C9/20—Individual registration on entry or exit involving the use of a pass
- G07C9/22—Individual registration on entry or exit involving the use of a pass in combination with an identity check of the pass holder
- G07C9/25—Individual registration on entry or exit involving the use of a pass in combination with an identity check of the pass holder using biometric data, e.g. fingerprints, iris scans or voice recognition
- G07C9/257—Individual registration on entry or exit involving the use of a pass in combination with an identity check of the pass holder using biometric data, e.g. fingerprints, iris scans or voice recognition electronically
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Business, Economics & Management (AREA)
- Human Computer Interaction (AREA)
- Computer Security & Cryptography (AREA)
- Accounting & Taxation (AREA)
- Strategic Management (AREA)
- General Business, Economics & Management (AREA)
- Theoretical Computer Science (AREA)
- Lock And Its Accessories (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
Description
相关申请的交叉参考Cross References to Related Applications
本申请基于:2002年4月8日申请的、题为“可升级的证书确认及简化的PKI管理”的美国临时申请60/370,867;2002年4月16日申请的、题为“无时钟装置确认”的美国临时申请60/372,951;2002年4月17日申请的、题为“遍历散列序列的技术”的美国临时申请60/373,218;2002年4月23日申请的、题为“物理访问控制”的美国临时申请60/374,861;2002年10月23日申请的、题为“安全物理访问”的美国临时申请60/420,795;2002年10月25日申请的、题为“OCSP上的实时凭证”的美国临时申请60/421,197;2002年10月28日申请的、题为“实时凭证”的美国临时申请60/421,756;2002年10月30日申请的、题为“保护移动计算资源”的美国临时申请60/422,416;2002年11月19日申请的、题为“类似Kerberos的设置中的私钥安全物理访问或实时凭证(RTC)”的美国临时申请60/427,504;2003年1月29日申请的、题为“带有实时确认的三因素鉴别”的美国临时申请60/443,407;及2003年2月10日申请的、题为“带有低端卡的RTC物理访问”的美国临时申请60/446,149;所有这些申请的示教均组合于此以供参考。This application is based upon: U.S. Provisional Application 60/370,867, filed April 8, 2002, entitled "Upgradeable Certificate Validation and Simplified PKI Management"; U.S. Provisional Application 60/372,951, filed April 17, 2002, entitled "Techniques for Traversing Hash Sequences"; U.S. Provisional Application 60/374,861, filed October 23, 2002, entitled "Secure Physical Access"; U.S. Provisional Application 60/421,197, filed October 28, 2002, entitled "Real-Time Credentials"; U.S. Provisional Application 60/421,756, filed October 28, 2002, entitled "Securing Mobile Computing Resources U.S. Provisional Application 60/422,416, filed November 19, 2002, entitled "Private Key Secure Physical Access or Real-Time Credentials (RTC) in a Kerberos-Like Setup," U.S. Provisional Application 60/427,504, filed November 19, 2002; U.S. Provisional Application 60/443,407, filed February 29, entitled "Three-Factor Authentication with Real-Time Confirmation"; and filed February 10, 2003, entitled "RTC Physical Access with Low-End Cards" US Provisional Application 60/446,149; the teachings of all of these applications are incorporated herein by reference.
本申请是2002年3月20日申请的、题为“可升级的证书确认及简化的管理(未决的)”的美国专利申请10/103,541的部分的延续,其示教组合于此以供参考,其本身是2001年7月25日申请的、题为“证书废除系统(未决的)”的美国专利申请09/915,180的部分的延续,且其是2000年1月14日申请的美国专利申请09/483,125的延续(未决的),其是1999年7月19日申请的美国专利申请09/356,745的延续(未决的),其是1997年3月24日申请的美国专利申请08/823,354的延续(现在为美国专利5,960,083),其是1995年11月16日申请的美国专利申请08/559,533的延续(现在为美国专利5,666,416),其基于1995年10月24日申请的美国临时申请60/006,038。美国专利申请10/103,541还是1997年12月18日申请的美国专利申请08/992,897的延续,其基于1996年12月18日申请的美国临时申请60/033,415,且其是1996年9月19日申请的、题为“证书废除系统”(已放弃)的美国专利申请08/715,712的部分的延续,其基于1995年10月2日申请的、题为“证书废除系统”的美国临时申请60/004,796的延续。美国专利申请08/992,897的部分还是1996年10月11日申请的、题为“基于树状的证书废除系统”的美国专利申请08/729,619(现在为美国专利6,097,811)的延续,其基于1995年11月2日申请的、题为“基于树状的证书废除系统”的美国临时申请60/006,143。美国专利申请08/992,897的部分还是1997年2月24日申请的、题为“基于树状的证书废除系统”的美国专利申请08/804,868(已放弃)的延续,其是1996年11月1日申请的、题为“基于树状的证书废除系统”的美国专利申请08/741,601的延续,其基于1995年11月2日申请的、题为“基于树状的证书废除系统”的美国临时申请60/006,143。美国专利申请08/992,897的部分还是1997年6月11日申请的、题为“基于证明的证书废除系统”的美国专利申请08/872,900(已放弃)的延续,其是1996年11月5日申请的、题为“证书废除系统”的美国专利申请08/746,007(现在为美国专利5,793,868)的延续,其基于1996年8月29日申请的、题为“证书废除系统”的美国临时申请60/025,128。美国专利申请08/992,897还基于1997年2月3日申请的、题为“证书废除系统”的美国临时申请60/035,119,其还是1997年8月5日申请的、题为“基于证明的证书废除系统”的美国专利申请08/906,464(已放弃)的延续,其部分是1996年12月9日申请的、题为“基于证明的证书废除系统”的美国专利申请08/763,536(现在为美国专利5,717,758)的延续,其基于1996年9月10日申请的、题为“基于证明的证书废除系统”的美国临时申请60/024,786,并基于1996年4月23日申请的美国专利申请08/636,854(现在为美国专利5,604,804),并还基于1996年8月29日申请的、题为“证书废除系统”的美国临时申请60/025,128。美国专利申请08/992,897的部分还是1996年11月26日申请的、题为“分段的证书废除列表”的美国专利申请08/756,720(已放弃)的延续,其基于1996年8月29日申请的、题为“证书废除系统”的美国临时申请60/025,128,并还基于1996年9月19日申请的、题为“证书废除系统”的美国专利申请08/715,712(已放弃),并还基于1995年11月16日申请的美国专利申请08/559,533(现在为美国专利5,666,416)。美国专利申请08/992,897的部分还是1996年11月19日申请的、题为“证书发行列表”的美国专利申请08/992,897(现在为美国专利5,717,757)的延续,其基于1996年8月29日申请的、题为“证书废除系统”的美国临时申请60/025,128,且部分还是1997年2月24日申请的、题为“基于树状的证书废除系统”的美国专利申请08/804,869(已放弃)的延续,其是。1996年11月1日申请的、题为“基于树状的证书废除系统”的美国专利申请08/741,601(已放弃)的延续,其基于1995年11月2日申请的、题为“基于树状的证书废除系统”的美国临时申请60/006,143。美国专利申请08/992,897的部分还是1997年3月24日申请的、题为“证书废除系统”的美国专利申请08/823,354(现在为美国专利5,960,083)的延续,其是1995年11月16日申请的、题为“证书废除系统”的美国专利申请08/559,533(现在为美国专利5,666,416)的延续,其基于1995年10月24日申请的、题为“增强的证书废除系统”的美国临时申请60/006,038。美国专利申请10/103,541还基于2001年3月20日申请的美国临时申请60/277,244、及2001年6月25日申请的美国临时申请60/300,621、及2001年12月27日申请的美国临时申请60/344,245。上述所有申请均组合于此以供参考。This application is a continuation-in-part of U.S.
本申请的部分还是2001年6月25日申请的、题为“证书废除系统”(未决的)的美国专利申请09/915,180的延续,其示教组合于此以供参考,其本身是2000年1月14日申请的美国专利申请09/483,125(未决的)的延续,其是1999年7月19日申请的美国专利申请09/356,745(已放弃)的延续,其是1997年3月24日申请的美国专利申请08/823,354(现在为美国专利5,960,083)的延续,其是1995年11月16日申请的美国专利申请08/559,533(现在为美国专利5,666,416)的延续,其基于1995年10月24日申请的美国临时申请60/006,038(已放弃)。上述所有申请的示教均组合于此以供参考。This application is also a continuation-in-part of U.S. Patent Application Serial No. 09/915,180, entitled "Certificate Revocation System" (pending), filed June 25, 2001, the teachings of which are incorporated herein by reference, itself 2000 Continuation of U.S. Patent Application 09/483,125 (pending), filed January 14, 1999, which is a continuation of U.S. Patent Application 09/356,745 (abandoned), filed July 19, 1999, which was filed March 1997 Continuation of U.S. Patent Application 08/823,354 (now U.S. Patent 5,960,083) filed on the 24th, which is a continuation of U.S. Patent Application 08/559,533 (now U.S. Patent 5,666,416) filed on November 16, 1995, based on the 1995 U.S. provisional application 60/006,038 filed October 24 (abandoned). The teachings of all of the above applications are incorporated herein by reference.
本申请的部分还是2003年3月21日申请的、题为“有效的证书废除”的美国专利申请10/395,017(未决的)的延续,其示教组合于此以供参考,其本身是2002年9月16日申请的美国专利申请10/244,695(未决的)的延续,其是1997年12月18日申请的美国专利申请08/992,897(现在为美国专利6,487,658)的延续,其基于1996年12月18日申请的美国临时专利申请60/033,415,且其部分是1996年9月19日申请的、题为“证书废除系统”的美国专利申请08/715,712(已放弃)的延续,其基于1995年10月2日申请的、题为“证书废除系统”的美国专利申请60/004,796,且其部分还是1996年10月10日申请的、题为“基于树状的证书废除系统”的美国专利申请08/729,619(现在为美国专利6,097,811)的延续,其基于1995年11月2日申请的、题为“基于树状的证书废除系统”的美国专利申请60/006,143,且其部分还是1997年2月24日申请的、题为“基于树状的证书废除系统”的美国专利申请08/804,868(已放弃)的延续,其是1996年11月1日申请的、题为“基于树状的证书废除系统”的美国专利申请08/741,601(已放弃)的延续,其基于1995年11月2日申请的、题为“基于树状的证书废除系统”的美国专利申请60/006,143,且其部分还是1997年6月11日申请的、题为“基于证明的证书废除系统”的美国专利申请08/872,900(已放弃)的延续,其是1996年11月5日申请的、题为“证书废除系统”的美国专利申请08/746,007(现在为美国专利5,793,868)的延续,其基于1996年8月29日申请的、题为“证书废除系统”的美国专利申请60/025,128,且其还基于1997年2月3日申请的、题为“证书废除系统”的美国专利申请60/035,119,且其部分还是1997年8月5日申请的、题为“基于著名的证书废除系统”的美国专利申请08/906,464(已放弃)的延续,其是1996年12月9日申请的、题为“基于证明的证书废除系统”的美国专利申请08/763,536(现在为美国专利5,717,758)的延续,其基于1996年9月10日申请的、题为“基于证明的证书废除系统”的美国专利申请60/024,786,且还基于1997年4月23日申请的美国专利申请08/636,854(现在为美国专利5,604,804)及1996年8月29日申请的、题为“证书废除系统”的美国专利申请60/025,128,且其部分还是1996年11月26日申请的、题为“分段的证书废除列表”的美国专利申请08/756,720(已放弃)的延续,其基于1996年8月29日申请的、题为“证书废除系统”的美国专利申请60/025,128,并还基于1996年9月19日申请的、题为“证书废除系统”的美国专利申请08/715,712(已放弃),并还基于1995年11月16日申请的美国专利申请08/559,533(现在为美国专利5,666,416),且其部分还是1996年11月19日申请的、题为“证书发行列表”的美国专利申请08/752,223(现在为美国专利5,717,757)的延续,其基于1996年8月29日申请的、题为“证书废除系统”的美国专利申请60/025,128,且部分还是1997年2月24日申请的、题为“基于树状的证书废除系统”的美国专利申请08/804,869(已放弃)的延续,其是1996年11月1日申请的、题为“基于树状的证书废除系统”的美国专利申请08/741,601(已放弃)的延续,其基于1995年11月2日申请的、题为“基于树状的证书废除系统”的美国专利申请60/006,143,且其部分还是1997年3月24日申请的、题为“证书废除系统”的美国专利申请08/823,354(现在为美国专利5,960,083)的延续,其是1995年11月16日申请的、题为“证书废除系统”的美国专利申请08/559,533(现在为美国专利5,666,416)的延续,其基于1995年10月24日申请的、题为“证书废除系统”的美国专利申请60/006,038。上述所有申请的示教均组合于此以供参考。This application is also a continuation-in-part of U.S.
技术领域technical field
本发明涉及数字证书领域,特别是用于控制物理访问的数字证书确认领域。The present invention relates to the field of digital certificates, in particular to the field of verification of digital certificates for controlling physical access.
背景技术Background technique
数字证书(C)由发证机构(CA)的数字签名组成,其将几个数值安全汇集在一起:SN、对证书唯一的序列号、PK、用户的公钥、U-用户的标识符、D1-发行日期、D2-有效期、及另外的字段。表示成符号,C=SIGCA(SN,PK,U,D1,D2,...)。A digital certificate (C) consists of the digital signature of the issuing authority (CA), which securely brings together several values: SN, a serial number unique to the certificate, PK, the user's public key, U-user's identifier, D 1 - Date of Issue, D 2 - Expiration Date, and additional fields. Expressed notationally, C = SIG CA (SN, PK, U, D 1 , D 2 , . . . ).
经过广泛验证的是,数字证书提供最佳形式的因特网和其它访问鉴别。然而它们也难于管理。证书可能在一年后过期(即D2-D2=1年),但它们可能在其过期前被取消,例如,由于它们的持有人离开他们的公司或在公司内担任不同的职务。因而,由给定数字证书使能的每一事务需要该证书当前有效的适当证据,且该证据通常需要被存档以保护将来的主张。It has been widely proven that digital certificates provide the best form of Internet and other access authentication. However, they are also difficult to manage. Certificates may expire after one year (ie D2 - D2 = 1 year), but they may be canceled before their expiration, for example, because their holders leave their company or take a different position within the company. Thus, every transaction enabled by a given digital certificate requires appropriate proof that the certificate is currently valid, and this proof typically needs to be archived to protect future claims.
不幸地,用于证明所发出的证书的有效性的传统技术并没有做得很好。以未来的数字证书的容量,今天的有效性证据将既难于以安全方式获得,又太长了,因而太昂贵从而不能传输(特别是在无线设置中)。证书确认被普遍认为是至关重要的问题。除非得以有效地解决,其将严重限制PKI的增长和有用。Unfortunately, conventional techniques for proving the validity of issued certificates do not do a very good job. At the capacity of future digital certificates, today's evidence of validity would be both difficult to obtain in a secure manner, and too long, and thus too expensive, to transmit (especially in a wireless setting). Credential validation is generally considered to be a critical issue. Unless effectively addressed, it will severely limit the growth and usefulness of PKI.
目前,有两种主要的方法来证明证书的有效性:证书废除列表(CRL)及在线证书状态协议(OCSP)。Currently, there are two main methods to prove the validity of certificates: Certificate Revocation List (CRL) and Online Certificate Status Protocol (OCSP).
CRLCRLs
CRL被定期发出。CRL实质上由CA签署的列表组成,其包含所有被取消的证书的序列号。与电子事务一起出现的数字证书接着与最近的CRL进行比较。如果给定证书没有过期但在列表上,则每个人均可从CRL知道该证书不是有效的,且证书持有人不再有权进行该事务处理;否则,如果证书没有出现在CRL中,则证书被演绎为是有效的(双重否定)。CRLs are issued periodically. A CRL essentially consists of a CA-signed list containing the serial numbers of all revoked certificates. The digital certificate presented with the electronic transaction is then compared to the most recent CRL. If a given certificate has not expired but is on the list, everyone knows from the CRL that the certificate is not valid and the certificate holder is no longer authorized to conduct the transaction; otherwise, if the certificate does not appear in the CRL, then The certificate is deduced to be valid (double negative).
CRL尚没有得到太多的关切,因为害怕它们变得难以管理的长。(该害怕已通过最近的CRL分区技术而得以稍微减轻)。几年前,国家标准和技术研究院向MITRE公司分发任务,令其研究联邦政府的公钥基础设施(PKI)的组织和成本。(见公钥基础设施,最终报告;MITRE公司;国家标准和技术研究院,1994)。该研究得出结论,到目前为止,CRL构成联邦的PKI成本列表中的最大项目。CRLs haven't gotten much attention for fear of them becoming unmanageably long. (This fear has been somewhat mitigated by recent CRL partitioning techniques). A few years ago, the National Institute of Standards and Technology tasked MITER Corporation with studying the organization and cost of the federal government's public key infrastructure (PKI). (See Public Key Infrastructure, Final Report; MITER Corporation; National Institute of Standards and Technology, 1994). The study concluded that CRLs constitute by far the largest item on the federal list of PKI costs.
OCSPOCSP
在OCSP中,CA通过返回C自己的数字签名在当前时间的有效性状态而回答一询问。OCSP在以下方面有一些问题。In OCSP, the CA answers a query by returning the validity status of C's own digital signature at the current time. OCSP has some problems in the following aspects.
带宽。由OCSP产生的每一有效性证据具有不同寻常的长度。如果使用基于RSA或其它因子分解的签名方案,实际上,该证据要求最少2,048位用于CA的签名。bandwidth. Each validity evidence produced by OCSP is of unusual length. If an RSA or other factorization-based signature scheme is used, in practice, the proof requires a minimum of 2,048 bits for the CA's signature.
计算。数字签名是计算上复杂的运算。在某些大型应用中,如在峰值业务量时,OCSP可能要求在短时间内计算数百万个签名,其在计算上代价非常高。calculate. Digital signatures are computationally complex operations. In some large-scale applications, such as peak traffic, OCSP may require computing millions of signatures in a short period of time, which is very expensive in computation.
通信(如果集中)。假设一个确认服务器以集中的方式实施OCSP。则,所有证书有效性询问最好均将不得不发送给它,该服务器将是导致相当的拥塞和延迟的大“瓶颈”。如果大量诚实的用户突然询问服务器,则“拒绝服务”的中断将可能发生。Communication (if centralized). Suppose a validation server implements OCSP in a centralized fashion. Then, preferably all certificate validity queries would have to be sent to it, and this server would be a large "bottleneck" causing considerable congestion and delay. A "denial of service" outage will likely occur if a large number of honest users suddenly interrogate the server.
安全(如果是分布式的)。通常,将一个服务器的负载跨几个(如,100)服务器分布,这些服务器战略地位于全球各地,以减轻网络拥塞。然而,在OCSP情况下,负载分布产生比其解决的问题更坏的问题。为了将其响应加到其接收的证书询问,100个服务器的每一个均应有其自己的秘密签名钥匙。因而,危及100个服务器的任一服务器均将危及整个系统。安全电子库可保护这样的分布服务器,但非常昂贵。Safe (if distributed). Typically, the load of one server is distributed across several (eg, 100) servers strategically located around the world to alleviate network congestion. However, in the case of OCSP, load distribution creates problems worse than it solves. Each of the 100 servers should have its own secret signing key in order to add its response to the certificate challenge it receives. Thus, compromising any one of 100 servers will compromise the entire system. Secure electronic vaults can protect such distribution servers, but are very expensive.
发明内容Contents of the invention
本发明公开了一种通过数字证书确认过程控制物理访问的系统和方法,其与标准证书格式一起工作并使发证机构(CA)能够在任何时间间隔(如每天、小时、或分钟)证明每一证书C的有效性状态,时间间隔起始于C的发出日期D1。C的时间间隔可在证书本身内指定,除非对所有证书其是一样的。例如,所有证书可具有一天的间隔,且每一证书在发出365天后过期。假定由CA提供某些初始输入,使用单向散列函数来计算包括在数字证书上的所指定的字节大小的值,并计算保密并使用在确认过程中的其它值。The present invention discloses a system and method for controlling physical access through a digital certificate validation process that works with a standard certificate format and enables a Certificate Authority (CA) to certify every The validity status of a certificate C, the time interval starts from C's issue date D 1 . The time interval for C may be specified within the certificate itself, unless it is the same for all certificates. For example, all certificates may have an interval of one day, and each certificate expires 365 days after issue. Assuming some initial input is provided by the CA, a one-way hash function is used to calculate the specified byte-sized value included on the digital certificate, and to calculate secrets and use other values in the validation process.
控制物理访问包括检查实时凭证,其中实时凭证包括固定的第一部分及定期修改的第二部分,其中第二部分提供实时凭证是最新的证据;通过执行第二部分上的运算并将结果与第一部分比较来验证实时凭证的有效性;及仅在实时凭证被验证为有效时允许物理访问。第一部分可由机构数字签署。机构可提供第二部分或第二部分可由机构以外的实体提供。实时凭证可被提供在智能卡上。用户可在第一位置获得实时凭证的第二部分。用户可被允许访问不同于第一位置并与其分开的第二位置。实时凭证的第一部分的至少一部分可代表单向散列,其被多次施加到实时凭证的第二部分的一部分。多次可对应于自实时凭证的第一部分发出后逝去的时间量。控制物理访问可包括通过门控制访问。Controlling physical access includes checking real-time credentials, where the real-time credential includes a fixed first part and a periodically modified second part, where the second part provides evidence that the real-time credential is up-to-date; by performing operations on the second part and comparing the results with the first part verifying the validity of the real-time credential by comparison; and allowing physical access only when the real-time credential is verified as valid. The first part can be digitally signed by the institution. The institution may provide the second part or the second part may be provided by an entity other than the institution. Real-time credentials can be provided on the smart card. The user can obtain the second portion of the real-time credential at the first location. A user may be allowed access to a second location that is different from and separate from the first location. At least a portion of the first portion of the real-time credential may represent a one-way hash that is applied multiple times to a portion of the second portion of the real-time credential. The number of times may correspond to the amount of time that has elapsed since the first portion of the real-time credential was issued. Controlling physical access may include controlling access through doors.
附图说明Description of drawings
本发明将参考几个附图进行描述,其中:The invention will be described with reference to several drawings, in which:
图1为根据本发明的一实施例的示出CA怎样将关于每一其发出的单个证书废除状态信息CRSi发送给索引簙的示意图,其中这些证书C1,...Ck尚未过期。Fig. 1 is a schematic diagram showing how a CA sends to an index blog information about each individual certificate revocation status CRS i issued by it, wherein these certificates C 1 , ... C k have not yet expired, according to an embodiment of the present invention.
图2为在不重要的OCSP环境中的事务顺序的示意图。Fig. 2 is a schematic diagram of transaction sequence in a non-trivial OCSP environment.
图3为在服务器中导致相当拥塞和延迟的大“瓶颈”的示意图。Figure 3 is a schematic diagram of a large "bottleneck" in a server causing considerable congestion and delay.
图4为示出在服务于源自不同安全领域的证书有效性请求中OCSP如何具有困难的示意图。Figure 4 is a schematic diagram illustrating how OCSP has difficulties in servicing certificate validity requests originating from different security domains.
图5为根据本发明的一实施例的服务于源自不同安全领域的证书有效性请求的示意图。FIG. 5 is a schematic diagram of serving certificate validity requests from different security domains according to an embodiment of the present invention.
图6为根据本发明的一实施例的RTC系统的示意图。FIG. 6 is a schematic diagram of an RTC system according to an embodiment of the present invention.
图7为根据本发明的一实施例,在跨CA环境中,RTC-over-OCSP将被怎样展开的示意图。FIG. 7 is a schematic diagram of how RTC-over-OCSP will be deployed in a cross-CA environment according to an embodiment of the present invention.
图8为根据本发明的一实施例的系统运行的示意图。Fig. 8 is a schematic diagram of system operation according to an embodiment of the present invention.
图9为偷取的计算机时间线(timeline)的示意图。Figure 9 is a schematic diagram of a stolen computer timeline.
优选实施例的详细描述Detailed description of the preferred embodiment
安全物理访问Secure Physical Access
确保只有经授权的个人才能访问受保护的区域是至关重要的(如,在机场、军事装置、办公楼等)。受保护的区域可由物理的门(特别地,通过门人可进入,或集装箱、保险箱、或汽车的门)和墙确定,或可以其它方式实质性地确定。例如,受保护的区域可包括这样的区域,进入其将导致检测器发出侵入信号(且如果未被授权,则可能发出警报信号或声音)。在机场,通常,通过出口通道进入大门区域将引发这样的信号,即使没有门或墙被侵犯。还应注意的是,在本申请中,门应被解释为包括所有其它类型的访问-控制装置,其可以传统或更现代类型的钥匙实施。特别地,用于启动引擎的钥匙机构(从而我们的发明成为确保只有当前经授权的用户才能启动飞机、火车、或其它有价值的访问的新方式)。It is critical to ensure that only authorized individuals have access to protected areas (eg, at airports, military installations, office buildings, etc.). The protected area may be defined by physical doors (particularly, doors through which people may enter, or doors of containers, safes, or cars) and walls, or may be otherwise substantially defined. For example, a protected area may include an area into which entry will cause a detector to emit an intrusion signal (and, if not authorized, an alarm signal or sound). In airports, generally, entering a gate area through an exit passage will trigger such a signal, even if no gate or wall is violated. It should also be noted that in this application door should be interpreted to include all other types of access-control devices, which may be implemented with keys of traditional or more modern types. In particular, a key mechanism for starting an engine (thus our invention is a new way of ensuring that only the currently authorized user can start an airplane, train, or other valuable access).
已建立了我们上下文的一般性,在具体性的、但不损失一般性的结局中,我们将“门”称为控制访问或建立周界的手段,并将“进入”称为访问希望保护的区域的手段。Having established the generality of our context, in a specific, but without loss of general conclusion, we refer to "door" as a means of controlling access or establishing a perimeter, and "entry" as access to what one wishes to protect regional means.
智能门提供这样的访问控制。在最简单的层次,智能门可被装备以键座,用户通过其输入他/她的PIN或密码。键座具有一附加的存储器或基本的处理器,其中保存有有效PIN/密码的列表,从而可检查当前输入的PIN/密码是否属于列表上的PIN/密码之一。如果是,则门打开,否则其保持为锁住的状态。该基本的访问控制机构提供最小的安全性。特别地,解聘的雇员不再被授权通过该门;然而,如果他还记得自己的PIN,他将没有任何问题的打开这样的基本的智能门。因此,“消除”已解聘雇员的PIN是非常必要的。然而,这样的程序非常麻烦且成本高昂:机场设施可能有数百个门,无论雇员何时离开或被解聘,派遣一特殊的工人队伍出去“消除”所有这样的门太不实际了。肯定需要更多的安全性,且不产生过多的花费和牺牲方便性。Smart doors provide such access control. At the simplest level, a smart door can be equipped with a keypad through which the user enters his/her PIN or password. The keypad has an additional memory or underlying processor in which a list of valid PINs/passwords is kept so that it can be checked whether the currently entered PIN/password belongs to one of the PINs/passwords on the list. If yes, the door is opened, otherwise it remains locked. This basic access control mechanism provides minimal security. In particular, a dismissed employee is no longer authorized to pass through the door; however, if he still remembers his PIN, he will have no problem opening such a basic smart door. Therefore, it is very necessary to "eliminate" the PIN of terminated employees. However, such a procedure is cumbersome and costly: an airport facility may have hundreds of gates, and it would be impractical to send a special team of workers out to "eliminate" all such gates whenever an employee leaves or is fired. There is definitely a need for more security without incurring excessive cost and sacrificing convenience.
当然,除了(唯一地)依赖于传统的钥匙或简单的键座,更现代的智能门可与如智能卡及磁条卡的卡或无接触装置一起工作(单独的或连同一起)。但该增强的工具装置并不本质上保证访问-控制系统的安全性、便利性和低成本。这些均非常重要地依赖于在整个安全体系结构中使用了多少这样的工具。Of course, instead of relying (only) on traditional keys or simple keypads, more modern smart doors can work with cards or contactless devices such as smart cards and magnetic stripe cards (either alone or together). But this enhanced facility does not inherently guarantee the security, convenience and low cost of an access-control system. These all depend very heavily on how many of these tools are used in the overall security architecture.
理想地,智能门应识别进入的人并验证其当前是否有权进入。在两个任务中,第一个可能较容易。身份识别可以各种方式执行:具体地:Ideally, a smart door should recognize the person entering and verify that they are currently authorized to enter. Of the two tasks, the first is probably the easier. Identification can be performed in various ways: Specifically:
1.使用PIN及密码,其可在连接到门的键座上输入;1. Use PIN and password, which can be entered on the key pad connected to the door;
2.使用生物测定特征,其可由用户经连接到门的特殊读取机输入;2. Using biometric features, which can be entered by the user via a special reader connected to the door;
3.使用传统的签名,其由用户经连接到门的特殊的垫提供;3. Using a traditional signature, which is provided by the user via a special pad attached to the door;
4.使用智能卡或无接触卡(如经特殊的读卡机/接收器将PIN发送给门);4. Use of smart cards or contactless cards (e.g. PIN sent to the door via a special reader/receiver);
5.使用数字证书—如其保存在智能卡、无接触卡或无线装置中,其可经读卡机或其它接收器“通信给门”。5. Use of digital certificates - if stored on a smart card, contactless card or wireless device, which can be "communicated to the door" via a card reader or other receiver.
我们认为,对于使用在本发明的系统内,数字证书特别有吸引力,因而我们希望进一步详细描述其以某些方式与智能卡一起使用,我们设想将其组合在本发明系统内。具体地,但不损失一般性,我们将希望访问的个人拥有的装置称为“卡”。卡可保存数字证书及相应的密钥。基于卡持有人的适当指令(例如,通过在卡上的键座上按密码而执行),卡将数字证书传输给门机构并通过使用相应的密钥执行识别协议(如解密随机的挑战)。优选地,数字证书,特别地及其相应的密钥,应被保护在卡/装置的安全硬件部分内。We believe that digital certificates are particularly attractive for use within the system of the present invention, and thus we wish to describe in further detail the ways in which they are used with smart cards which we envisage being combined within the system of the present invention. Specifically, but without loss of generality, we refer to a device owned by an individual wishing to access as a "card". The card can store digital certificates and corresponding keys. Based on appropriate instructions from the cardholder (e.g. executed by pressing a password on a keypad on the card), the card transmits the digital certificate to the door mechanism and executes the identification protocol (e.g. decrypting a random challenge) by using the corresponding key . Preferably, the digital certificate, and in particular its corresponding key, should be protected within a secure hardware part of the card/device.
在某些情况下,可能希望匿名的而不是安全访问控制。在这种情况下,不需要执行识别,但需执行授权。然而,在大多数情况下,某些形式的识别被规定:因而我们假定识别可或已经被执行(如通过上述的5种方法之一)。总之:授权可怎样被执行?即使门已肯定地知道正应付John Doe,但门怎样能确保John Doe是当前有权进入的人?传统地,智能门请教当前(如给定的天/日期)授权的用户的数据库以验证其实际上为请求访问的个人。但这要求智能门连接到远处的数据库。此外,这不是普通的网络连接:其必须是安全的网络连接。实际上,不仅必须使用密码保护的通信以防止冒名顶替者模仿连接到门的数据库,还必须防止敌人切断将门连接到数据库的线缆,否则一旦断开,门必须从同等坏的选项选择:(a)一直打开或(b)一直保持关闭。但安全网络连接很容易使门锁的机电组件的成本变小:线路组件最多花费$1000,而安全网络连接可能花费$4000(如果线缆必须大距离安全连接则更多,如在机场。此外,即使在花费该$4000之后,在公共场所如机场有安全网络连接吗?应注意的是,向智能门提供到远处的数据库的无线连接也是不可能的。首先,长距离无线发射机和接收机非常昂贵。其次,在某些设施中,无线带宽可能被严格限制(以避免可能干扰其它装置)或根本禁止这样的使用。第三,无线通信很容易堵塞,从而有效地将门与数据库断开(因而强迫其选择两个同等坏的决定)。第四,如果门属于大西洋中间的集装箱,很可能其根本不能与岸上的任何数据库无线通信)。In some cases, it may be desirable to have access control for anonymity rather than security. In this case, identification does not need to be performed, but authorization does. In most cases, however, some form of identification is prescribed: we therefore assume that identification can or has been performed (eg by one of the 5 methods above). In summary: How can authorization be enforced? Even if the door knows for sure that it is dealing with John Doe, how can the door ensure that John Doe is the one who currently has the right to enter? Traditionally, a smart door consults a database of currently (eg, a given day/date) authorized users to verify that it is in fact the individual requesting access. But this requires the smart door to connect to a remote database. Also, this is no ordinary network connection: it must be a secure network connection. Actually, not only must password protected communication be used to prevent an imposter from impersonating the database connected to the door, but the enemy must also be prevented from cutting the cable connecting the door to the database, otherwise once disconnected, the door must choose from equally bad options :( a) always open or (b) always remain closed. But the security network connection can easily make the cost of the electromechanical components of the door lock small: the wiring assembly can cost up to $1000, and the security network connection can cost $4000 (more if the cable must be connected safely over a large distance, such as in an airport. Moreover, even After spending this $4000, is there a secure network connection in a public place such as an airport? It should be noted that it is also not possible to provide a smart door with a wireless connection to a remote database. First, long-distance wireless transmitters and receivers are very Expensive. Second, in some facilities, wireless bandwidth may be severely limited (to avoid possible interference with other devices) or such use prohibited at all. Third, wireless communications can easily jam, effectively disconnecting the gate from the database (thus forcing it to choose two equally bad decisions). Fourth, if the door belongs to a container in the middle of the Atlantic, it is likely that it cannot communicate wirelessly with any database on shore at all).
因而本发明的一方面是提供低成本、方便且安全的分离的智能门,其是不连接到(无论有线或无线)任何数据库或机构的低成本、方便且安全的智能门。It is thus an aspect of the present invention to provide a low cost, convenient and safe separate smart door that is a low cost, convenient and safe smart door that is not connected (whether wired or wireless) to any database or mechanism.
数字签名和证书Digital Signatures and Certificates
在优选实施例中,本发明依赖于数字签名,且优选地依赖于20字节技术。数字签名(如RSA)用于证明特定的消息M源自特定的用户U。为此目的,U产生一对匹配钥:验证钥PK和签名钥SK。数字签名经SK产生,且经匹配钥PK验证。用户U应对其自己的SK保密(使得只有U可代表U签名)。数字签名之所以工作是因为PK不会“背叛”匹配钥SK,即,PK的知识不会在计算SK方面给敌人任何实际的好处。因此,用户U应使其自己的PK尽可能公开(使得每一人均能验证U的签名)。为此,PK最好被叫作公钥。我们将用SIGU(M)表示消息M的U的数字签名。数字签名意于包括私钥签名,在这种情况下,签名人和验证人可共享一公共的密钥。In a preferred embodiment, the present invention relies on digital signatures, and preferably on 20-byte technology. Digital signatures (such as RSA) are used to prove that a specific message M originates from a specific user U. For this purpose, U generates a pair of matching keys: a verification key PK and a signing key SK. The digital signature is generated by SK and verified by matching key PK. User U should keep his own SK secret (so that only U can sign on behalf of U). Digital signatures work because the PK does not "betray" the matching key SK, i.e., knowledge of the PK does not give the enemy any real advantage in computing the SK. Therefore, user U should make his own PK as public as possible (so that everyone can verify U's signature). For this reason, the PK is best called a public key. We will denote the digital signature of U of message M by SIG U (M). Digital signatures are meant to include private key signatures, in which case the signer and verifier may share a common key.
叫作证书的文字数字字符串通过保证特定钥PK确实是用户U的公钥而使能数字签名。一旦确定用户的身份,发证机构(CA)产生并发出证书给用户。因而,该证书向所有人证明CA已验证持有人的身份,及可能其它属性。(如,如果公司充当其自己的CA并向其雇员发出证书,证书一定程度上可证明其持有人是经授权的以绑定他/她的雇主)。证书在指定的时间量之后过期,在公共CA的情况下通常为1年。实质上,数字证书C由CA的数字签名组成,其将几个数字安全地结合在一起:SN、唯一的证书序列号、PK、用户的公钥、U、用户的名字、发出日期D1、期满日期D2、及另外的数据。表示成符号,C=SIGCA(SN,PK,U,D1,D2,...)。The alphanumeric string called the certificate enables digital signatures by guaranteeing that the specific key PK is indeed the user U's public key. Once the user's identity is determined, a certificate authority (CA) generates and issues a certificate to the user. Thus, the certificate proves to everyone that the CA has verified the holder's identity, and possibly other attributes. (eg, if a company acts as its own CA and issues certificates to its employees, the certificate serves as a sort of proof that its holder is authorized to bind his/her employer). Certificates expire after a specified amount of time, typically 1 year in the case of public CAs. In essence, a digital certificate C consists of the CA's digital signature, which securely combines several numbers: SN, unique certificate serial number, PK, user's public key, U, user's name, date of issue D 1 , Expiration date D 2 , and additional data. Expressed notationally, C = SIG CA (SN, PK, U, D 1 , D 2 , . . . ).
证书还可包括PK为加密钥的情况。在这种情况下,U可向验证人V证明其身份,其通过将证书C发送给V,并使V使用钥PK加密随机挑战(字符串)R,并继而请求U将解密发回。如果用户使用R做出响应,则V确信其正应付U,因为只有U知道匹配PK的解密钥。Certificates can also include cases where the PK is an encryption key. In this case, U can prove its identity to verifier V by sending certificate C to V, and having V encrypt a random challenge (string) R with key PK, and then request U to send back the decryption. If the user responds with R, V is confident that it is dealing with U, since only U knows the decryption key that matches PK.
本发明的优选实施例提供了非常好的用于访问控制的解决方案。具体地,如果卡包含根据本发明的数字证书,则授权将被很便宜地执行。代替向中央数据库询问每一数字证书的有效性,门只需获得根据本发明的20字节有效性证据,其确认卡的当前有效性。Preferred embodiments of the present invention provide a very good solution for access control. In particular, if the card contains a digital certificate according to the invention, authorization will be performed very cheaply. Instead of asking the central database for the validity of each digital certificate, the gate need only obtain the 20-byte validity proof according to the invention, which confirms the current validity of the card.
例1:example 1:
现在,A为控制一组智能门的机构(即实体),U为在特定时间段应被授权访问特定门的用户。Now, A is the institution (i.e. entity) that controls a set of smart doors, and U is the users who should be authorized to access a specific door during a specific time period.
每一用户拥有一卡(如前述一般意义的卡)。Each user has a card (as in the aforementioned general sense of the card).
每一智能门具有一关联的读卡机(一般意义的能够通信或至少可从用户卡接收信息),在真正物理(而不是虚拟的)门的情况下,其与机电锁连接。优选地,每一门还具有唯一的标识符(并知道其自己的标识符)。门具有读卡机及不易窜改的锁及拥有A的公钥PKA并能够验证A的签名的计算装置。Each smart door has an associated card reader (generally capable of communicating or at least receiving information from a user's card), which is linked to an electromechanical lock in the case of a true physical (rather than virtual) door. Preferably, each door also has a unique identifier (and knows its own). The door has a card reader and a lock that cannot be tampered with, and a computing device that has A's public key PKA and can verify A's signature.
在特定时间段,机构决定哪一用户可通过哪一门。(例如,在不损失一般性的情况下,我们假定每一感兴趣的时间间隔由天组成。)为此目的,A可使用其自己的私用数据库DBl,保存所有的许可,其为在特定日(或任何可预见的未来的某天)谁有权通过哪一门。可推测地,A保护该数据库,否则敌人可能为其目的而改变保存在那里的许可。然而,A从DB计算公共数据库PDB如下。对于具有在天d通过门D的许可的每一用户U,A计算数字签名SUDd,其指出这确实是事实。例如,A计算SUDd=SIGA(U,D,d)。应注意的是,只有A可计算这些数字签名,所有具有A的公钥PKA的人均可验证它们。不知道A的密钥SKA的人不可能伪造这些签名,且他们在不使这些签名无效的情况下也不能以任何方式(如将U的许可转换为用于未授权用户U的许可)修改这些签名。因而,A可及时且没有太多担忧地计算和发送(如在一天的开始)这些签名到储存库PR。储存库是可由用户访问的地方。例如,位于大型设施的雇员入口(如机场的雇员入口)处的服务器。因为A的签名是不可伪造的,在A和PR之间的连接不需要是安全的。其足以使A在合理的时间内将其签名成功转移到PR。During a certain period of time, the agency decides which user can go through which door. (For example, without loss of generality, we assume that each time interval of interest consists of days.) For this purpose, A can use its own private database DBl, which holds all permissions, which are who has the right to pass which door on that day (or any day in the foreseeable future). Presumably, A protects this database, otherwise an adversary could alter the permissions stored there for his own purposes. However, A calculates the public database PDB from DB as follows. For each user U who has permission to pass through door D on day d, A computes a digital signature SUDd, which states that this is indeed the case. For example, A calculates SUDd= SIGA (U,D,d). It should be noted that only A can compute these digital signatures, and everyone who has A's public key PKA can verify them. It is impossible for someone who does not know A's key SKA to forge these signatures, and they cannot modify them in any way (such as converting U's permission to an unauthorized user U's permission) without invalidating these signatures. sign. Thus, A can compute and send (eg at the beginning of the day) these signatures to the repository PR in time and without much worry. A repository is a place that can be accessed by users. For example, a server located at the employee entrance of a large facility, such as that of an airport. Since A's signature is unforgeable, the connection between A and PR need not be secure. It is sufficient for A to successfully transfer its signature to PR within a reasonable time.
当雇员U在一天d到达设施(如通过PR位于其处的入口点)工作时,其可将其卡与PR相连接(如,其将卡插入与PR连接或与PR远程通信的读卡机/记录器)。通过这样做,其在其卡上获得SIGUDd,指出该天其有权通过门D的数字签名。这要求入口点而不是数百个门与A连接,且该连接也不需要是安全的。实际上,D不必仅指单一的门。例如,其可指一组门(如行李处理门),且A的签名指U可通过由D所指的每一门。或者,多个门D1、...、Dn可被逐一指定,且U可通过其中的每一门的事实可由A的一个以上的签名指出。例如,SIGUD1d...SIGUDnd。在这种情况下,所有这些签名均被转移到U的卡中。When employee U arrives at work at the facility on day d (e.g., via an entry point at which the PR is located), he may connect his card to the PR (e.g., he inserts the card into a card reader connected to or in remote communication with the PR /Recorder). By doing so, it gets SIGUDd on its card, indicating that it is authorized to pass through the digital signature of door D on that day. This requires an entry point to connect to A rather than hundreds of doors, and the connection also does not need to be secure. Actually, D doesn't have to refer to only a single door. For example, it may refer to a group of doors (such as baggage handling doors), and A's signature means that U can pass through each door referred to by D. Alternatively, multiple gates Dl,...,Dn may be specified one by one, and the fact that U can pass through each of them may be indicated by more than one signature of A. For example, SIGUD1d...SIGUDnd. In this case, all these signatures are transferred to U's card.
现在假定在一天d期间U在设施中四处行走并到达其已有授权的许可的门D。因此,其卡现在保存SIGUDd。接着,U可将其卡C插入在门D处的读卡机。与该门关联的处理器则使用A的公钥验证SIGUDd确实是有效的。接着使用其自己的时钟验证当前日确实是d。如果两项均是真的,则门D打开。应注意的是,门可通过执行各种方式的识别检查其确实是卡持有人。特别地,U还可被要求在与门关联的键座上输入其PIN。(注意,不同于以前的,被解雇的雇员不能进入门D,即使其记得自己的PIN。实际上,在该例子中的门将同时需要PIN及当天的正确签名。然而,在U已被解雇后,A不再为任何随后的天d产生签名SIGUDd,因此U不能向门提供该签名。他也不能伪造A的该签名。因此,在其被解雇后的任何日子,其均不能“说服”D打开。)或者,仅在U在C的背面上的键座上输入正确的PIN时,卡才可将SIGUDd转移到D的读卡机,且仅在卡证明其确实是U的卡之后,储存库PR可将SIGUDd下载到卡C上。或者,U可描绘属于U的卡C的标识符,且当插入在读卡机中时,如借助于密码协议,卡可证明其确实是卡C。或者,最后优选地,U的卡携带U的证书,且在输入正确的PIN之后,卡通过解密门的随机挑战而证明U的身份。在这种情况下,SIGUDd最好指出U具有通过门D的许可,其通过指出U的证书携带其所有人的许可实现。例如,SIGUDd=SIGuDd,其中u是U的证书的标识符,如U的证书的序列号(和发行人)。Now assume that during a day d U walks around the facility and arrives at door D for which he has authorized clearances. So its card now saves SIGUDd. U can then insert his card C into the card reader at door D. The processor associated with the gate then uses A's public key to verify that SIGUDd is indeed valid. It then verifies that the current day is indeed d using its own clock. If both are true, then door D is open. It should be noted that the door can check that it is indeed the card holder by performing various means of identification. In particular, U may also be required to enter his PIN on the keypad associated with the door. (Note that, unlike before, a fired employee cannot enter door D even if he remembers his PIN. In fact, the door in this example will require both the PIN and the correct signature for the day. However, after U has been fired , A no longer produces the signature SIGUDd for any subsequent day d, so U cannot provide this signature to the door. Nor can he forge this signature of A. Therefore, he cannot "convince" D on any day after his dismissal Open.) Alternatively, the card may transfer SIGUDd to D's card reader only if U enters the correct PIN on the keypad on the back of C, and only after the card proves that it is indeed U's card, store Library PR downloads SIGUDd to card C. Alternatively, U can delineate the identifier of a card C belonging to U, and when inserted in a card reader, the card can prove that it is indeed card C, eg by means of a cryptographic protocol. Or, finally preferably, U's card carries U's certificate, and after entering the correct PIN, the card proves U's identity by decrypting the door's random challenge. In this case, SIGUDd preferably indicates that U has permission to pass through gate D, by indicating that U's certificate carries the permission of its owner. For example, SIGUDd=SIGuDd, where u is the identifier of U's certificate, such as the serial number (and issuer) of U's certificate.
在所有这些方式中,应该意识到的是,门“分离”于A。门仅(可能识别U并)经内部计算和使用A的公钥及其自己的内部时钟检查U具有进入的许可。因此,系统不仅非常安全,而且还非常经济。In all of these ways, it should be appreciated that the gate is "separated" from A. The gate only (possibly identifies U and) checks that U has permission to enter via internal calculations and using A's public key and its own internal clock. Therefore, the system is not only very safe, but also very economical.
该有效性或授权证据可以多种不同的方式提供。下面正是这个怎样被完成的例子。This proof of validity or authorization can be provided in a number of different ways. The following is an example of how this is done.
例2:Example 2:
卡所有人可在适当时间“获得”有效性证据。例如,在工作环境中,每人在报到而开始工作时可获得当前的有效性证据。在许多工作地方(特别是那些对安全敏感的地方,如机场),雇员在报到而开始工作时签到。该“签到”可包括获得20字节的有效值,SIGUDd,并将其保存在卡上。卡可经有线的或无线的连接获得该值。Proof of validity can be "obtained" by the card owner at the appropriate time. For example, in a work environment, current evidence of effectiveness is available to each person when they report for work and start work. In many workplaces (particularly those that are security sensitive, such as airports), employees sign in when they report to begin work. This "check-in" may include taking the 20 byte valid value, SIGUDd, and storing it on the card. The card can obtain this value via a wired or wireless connection.
例3:Example 3:
卡可经无线网络如呼机网络获得有效性证据。在适当的时间,如果卡被授权访问,20字节的值被发送给卡。应注意,带宽要求是最小的:授权值短于呼机网络传输的典型消息。在适当的时间,如果卡被授权访问,SIGUDd被发送到该卡。Cards can obtain proof of validity over a wireless network such as a pager network. At the appropriate time, if the card is authorized for access, the 20 byte value is sent to the card. It should be noted that the bandwidth requirements are minimal: the grant value is shorter than a typical message transmitted by a pager network. At the appropriate time, if the card is authorized for access, SIGUDd is sent to the card.
例4:Example 4:
经有线或无线网络,门可类似地提前获得其预期将遭遇的每一卡的有效性证据。Via a wired or wireless network, the door can similarly obtain proof of validity in advance for each card it expects to encounter.
例5:Example 5:
当卡开始与其相互作用时,门可经要求获得卡的有效性证据。When the card begins to interact with it, the door can obtain proof of the validity of the card on demand.
应注意,没有任何上述方法要求门和中央服务器之间的任何种类的安全连接。这是因为有效性证据是自我鉴别的,从而即使门从一不信任的源和/或经不安全的连接接收有效性证据,仍可确定其正确性。事实是,在大型和/或远程区域、具有多个门的区域及移动区域,如飞机或火车的门,这些方法根本不要求连接来用于门提供更好的手段以进行访问控制。It should be noted that none of the above methods require any kind of secure connection between the gate and the central server. This is because the validity proof is self-authenticating so that even if the gate receives the validity proof from an untrusted source and/or over an insecure connection, its validity can still be determined. The fact is that in large and/or remote areas, areas with multiple doors, and moving areas, such as the doors of an airplane or train, these methods do not require connections at all for the doors to provide a better means for access control.
还应注意的是,在本申请中,门和受保护的区域应被解释为包括可以传统或更现代类型的钥匙保护的所有其它类型的访问点。特别地,用于启动引擎的钥匙机构(使得只有当前有权的雇员可启动飞机、火车或其它引擎)。It should also be noted that in this application, doors and protected areas should be construed to include all other types of access points that may be secured by traditional or more modern types of keys. In particular, a key mechanism for starting an engine (so that only currently authorized employees can start an airplane, train or other engine).
本领域技术人员可认识到的是,20字节有效性证据是特殊限制类型的数字签名方案,在其提供独一无二的优点时,如压缩性和效率,通过实践具有更一般的数字签名方案的本发明可得到许多其它优点,其可能不需要确认技术。本发明的优选实施例的组件为:(1)能够验证数字签名的门机构,其与基于成功验证而打开门的装置相连接;(2)机构组件,其提供数字签名,该签名表示通过门进入的授权在特定时间段已被准予;(3)能够接收数字签名并呈现它的卡或其它有线/无线装置组件。Those skilled in the art will recognize that 20-byte validity proofs are a particularly restricted type of digital signature scheme, and while they offer unique advantages, such as compression and efficiency, by practicing this method with more general digital signature schemes Many other advantages are available to the invention, which may not require validation techniques. The components of the preferred embodiment of the invention are: (1) a door mechanism capable of verifying a digital signature, which is connected to a device that opens the door upon successful verification; Authorization to enter has been granted for a specified period of time; (3) A card or other wired/wireless device component capable of receiving a digital signature and presenting it.
访问授权可伴随以下述步骤顺序之一:Access authorization can be accompanied by one of the following sequence of steps:
顺序1:Order 1:
(1)机构组件使得卡接收授权签名;(1) The mechanism component causes the card to receive the authorized signature;
(2)卡接收并保存授权签名;(2) The card receives and saves the authorized signature;
(3)卡将授权签名呈现给门,其验证签名并仅在授权签名有效的情况下打开。(3) The card presents the authorized signature to the door, which verifies the signature and only opens if the authorized signature is valid.
顺序2:Sequence 2:
(1)将卡呈现给门以请求访问授权;(1) Present the card to the door to request access authorization;
(2)门请求授权签名;(2) The door requests an authorized signature;
(3)机构组件使门接收授权签名;(3) The mechanism component enables the door to receive the authorized signature;
(4)门验证授权签名并仅在其有效时打开。(4) The door verifies the authorization signature and opens only if it is valid.
顺序3:Order 3:
(1)卡从机构组件请求授权签名;(1) The card requests an authorized signature from the institution component;
(2)机构组件将授权签名传输给卡;(2) The agency component transmits the authorized signature to the card;
(3)卡接收并保存授权签名;(3) The card receives and saves the authorized signature;
(4)卡将授权签名呈现给门,其验证签名并仅在授权签名有效时打开。(4) The card presents the authorization signature to the door, which verifies the signature and only opens if the authorization signature is valid.
顺序4:Order 4:
(1)门提前(或按其自己的请求或不是)从机构组件接收其预期将遭遇的多个卡的授权签名;(1) A door receives in advance (or at its own request or not) authorized signatures from an agency component for multiple cards it anticipates encountering;
(2)将卡呈现给门以请求访问授权;(2) Present the card to the door to request access authorization;
(3)门验证卡的授权签名并仅在其有效时打开。(3) The door verifies the authorized signature of the card and opens only if it is valid.
这些顺序仅是多个例子的一部分。另外,这些顺序可被组合。例如,门可接收信息/授权的一部分(如20字节的值),而卡可接收另一部分(如数字证书)。它们还可被及时地分开:卡可首先接收信息/授权的一部分(如数字证书),随后再接收其它部分(如每小时的20字节值)。These sequences are only some of the many examples. Additionally, these orders can be combined. For example, a door may receive one part of the information/authorization (such as a 20 byte value), while a card may receive another part (such as a digital certificate). They can also be separated in time: the card can first receive one part of the information/authorization (eg digital certificate) and later the other part (eg hourly 20 byte value).
此外,授权数字签名可被赋于卡持有人的长期证书。例如,卡可包含在每一年有效的长期证书,且机构组件可发出每天的签名以验证证书在当前日还有效。Additionally, an authorized digital signature can be assigned to the cardholder's long-term certificate. For example, the card may contain a long-term certificate that is valid for each year, and the authority component may issue a daily signature to verify that the certificate is still valid for the current day.
在没有任何请求的情况下,机构组件可自动产生授权。例如,机构组件可在每天晚上为第二天将被授权的雇员产生授权签名。这种方法使授权组件能够是非交互的,因而较容易安全地建立。Authority components can automatically generate authorizations without any request. For example, an agency component may generate authorization signatures each night for employees who will be authorized the next day. This approach enables the authorization components to be non-interactive and thus easier to build securely.
另外,授权组件可使用分开的、可能不安全的装置,其用于将授权签名分发给卡和/或门。这将使授权组件能够仅集中于一个任务:产生授权。其将不需要在安全授权组件和(可能较不安全的)门及卡之间的麻烦的直接连接。特别地,授权的分发可按如下步骤发生:(1)机构组件产生授权;(2)机构组件在可能不安全的连接上传输授权给分发数据库。这些数据库可以在多个位置且不需要是安全的。例如,在具有5个雇员入口的公司中,可能在每一入口均有一分发数据库。(3)分发数据库将授权传输给卡和/或门,或基于请求(“拉”)或自动地(“推”)。Additionally, the authorization component may use a separate, potentially insecure device for distributing authorization signatures to cards and/or doors. This will enable the authorization component to focus on only one task: generating authorizations. It would not require a cumbersome direct connection between the security authorization component and the (possibly less secure) door and card. In particular, distribution of authorizations may occur as follows: (1) the agency component generates the authorization; (2) the agency component transmits the authorization to the distribution database over a possibly insecure connection. These databases can be in multiple locations and need not be secure. For example, in a company with 5 employee entries, there might be a distribution database at each entry. (3) The distribution database transmits the authorization to the card and/or door, either on request ("pull") or automatically ("push").
使能上述分发的特性在于授权本身是不可伪造的,其仅能由机构组件产生。因此,一旦产生,其可在可能不信任的线路和装置上分发,没有任何安全风险。这使得不需要任何其它方或装置与机构组件交互,因而导致较任何要求安全连接的方案更便宜的解决方案。The feature that enables the above distribution is that the authorization itself is unforgeable, it can only be generated by institutional components. Therefore, once generated, it can be distributed over potentially untrusted circuits and devices without any security risk. This eliminates the need for any other party or device to interact with the mechanism components, thus resulting in a cheaper solution than any solution requiring a secure connection.
事实上,该系统中的任何组件之间的连接均不需要是安全的。(只有机构组件本身必须是安全的,使得不会产生不适当的授权。)因而,容错的、分布式的访问授权体系结构可被更容易地建立。此外,如前所述,可能在不需要任何用于门的连接的情况下建立该体系结构。In fact, none of the connections between any components in the system need be secure. (Only the institutional component itself must be secured so that improper authorization cannot be generated.) Thus, fault-tolerant, distributed access authorization architectures can be more easily built. Furthermore, as mentioned earlier, it is possible to build this architecture without requiring any connections for the gates.
应该意识到的是,本发明的访问控制系统可与部分3的租户CA结合。例如,几个机构(如在一办公楼内,停车机构、清洁机构、或共享使用办公楼的多个公司)在保持对访问不同受保护区域的持有人的能力进行单独控制的基础上可使用同样的证书。It should be appreciated that the access control system of the present invention can be combined with the tenant CAs of Section 3. For example, several facilities (e.g., within an office building, a parking agency, a cleaning agency, or multiple companies sharing the use of an office building) may maintain separate controls over the holders' ability to access different protected areas Use the same certificate.
例6:Example 6:
系统可运行如下。用户U(或其卡)具有证书CERT,其包含一确认字段—即D365-用于感兴趣的每一门D。U可在天j通过门D的许可可通过释放不可伪造的20字节值X365-j进行证明。门D可通过将其散列j次并检查结果是否与CERT的有效性字段D365一致而检查该许可。假使A必须应付多个门(如1000个门),则CERT可包含1000个不同的有效性字段,每一字段对应于不同的门,且每一门Dj检查其相对于第j个有效性字段的计算。在这种情况下,即使用户通过每一门的许可被分开提供,每一用户在特定日具有至多1000个证据。因而在特定日需要至多20k字节装载于其卡上。The system may operate as follows. The user U (or his card) has a certificate CERT containing a confirmation field - ie D365 - for each door D of interest. U's permission to pass through gate D on day j can be proven by releasing the unforgeable 20-byte value X365 -j . Gate D can check the license by hashing it j times and checking that the result agrees with the validity field D365 of the CERT. If A has to cope with multiple gates (say 1000 gates), the CERT can contain 1000 different validity fields, each field corresponding to a different gate, and each gate Dj checks its relative to the jth validity field calculation. In this case, each user has at most 1000 proofs on a specific day even if the user's permission through each gate is provided separately. Thus it requires at most 20k bytes to be loaded on its card on a given day.
应注意的是,因为在此卡为一般的卡,卡可以是无接触卡,读卡机可以是接收机,且卡不需插入读卡机但需传输到读卡机。注意,该“无线”卡-读卡机交互还是非常局部的,且非常不同于A或数据库在远处时的卡-机构/数据库交互。It should be noted that since the card is a normal card here, the card may be a contactless card, the reader may be the receiver, and the card need not be inserted into the reader but transmitted to the reader. Note that this "wireless" card-reader interaction is also very local and very different from the card-mechanism/database interaction when A or the database is at a distance.
此外,授权数字签名可被赋于卡持有人的长期证书。例如,卡可包含在每一年有效的长期证书,且机构组件可发出每天的签名以验证证书在当前日还有效。Additionally, an authorized digital signature can be assigned to the cardholder's long-term certificate. For example, the card may contain a long-term certificate that is valid for each year, and the authority component may issue a daily signature to verify that the certificate is still valid for the current day.
在没有任何请求的情况下,机构组件可自动产生授权。例如,机构组件可在每天晚上为第二天将被授权的雇员产生授权签名。这种方法使授权组件能够是非交互的,因而较容易安全地建立。Authority components can automatically generate authorizations without any request. For example, an agency component may generate authorization signatures each night for employees who will be authorized the next day. This approach enables the authorization components to be non-interactive and thus easier to build securely.
事实上,该系统中的任何组件之间的连接均不需要是安全的。(只有机构组件本身必须是安全的,使得不会产生不适当的授权。)因而,容错的、分布式的访问授权体系结构可被更容易地建立。此外,如前所述,可能在不需要任何用于门的连接的情况下建立该体系结构。In fact, none of the connections between any components in the system need be secure. (Only the institutional component itself must be secured so that improper authorization cannot be generated.) Thus, fault-tolerant, distributed access authorization architectures can be more easily built. Furthermore, as mentioned earlier, it is possible to build this architecture without requiring any connections for the gates.
应该意识到的是,本发明的访问控制系统可与部分3的租户CA结合。例如,几个机构(如在一办公楼内,停车机构、清洁机构、或共享使用办公楼的多个公司)在保持对访问不同受保护区域的持有人的能力进行单独控制的基础上可使用同样的证书。It should be appreciated that the access control system of the present invention can be combined with the tenant CAs of Section 3. For example, several facilities (e.g., within an office building, a parking agency, a cleaning agency, or multiple companies sharing the use of an office building) may maintain separate controls over the holders' ability to access different protected areas Use the same certificate.
记录分离的门的访问证据Record access evidence for detached doors
当分离的(分离于机构和数据库)且也非常安全的同时,低成本且便利的智能门最好是连接的智能门,后者提供通过特定门记录访问的能力。例如,知道谁曾在特定日通过特定门是非常重要的。连接的门通过发送适当的访问信息到远处的数据库或机构而很容易做到这点。但分离的门不能彻底做到这点。访问信息可通过发送适当的个人信息以从门到门收集该信息而收集。这不总是很方便地去做。然而,下面的系统提供了非常可行的选择。While separate (separate from the mechanism and database) and also very secure, a low-cost and convenient smart door is preferably a connected smart door, which provides the ability to record access through a specific door. For example, it is very important to know who has passed through a particular door on a particular day. Connected gates do this easily by sending the appropriate access information to remote databases or institutions. But the separated door cannot completely do this. Access information may be collected by sending the appropriate personal information to collect that information from door to door. This is not always convenient to do. However, the system below offers very viable options.
当用户U在时间t通过(或企图通过)门D时,门可产生适当的字符串LOGUDt,并将其本机保存(至少暂时地)。为确保该信息到达适当的数据库,门可使用用于通过其进入的卡。例如,D可将LOGUDt写(或使得LOGUDt被写)在其它用户U(可能包括U自己)的卡上。无论U在何时与PR(如下一工作日)或任何其它有线的或良好连接的装置连接,则PR或所述装置将LOGUDt传输到适当的数据库。这种情况下,适当的数据库将最后接收并继而以较容易核查的方式更永久地保存LOGUDt。可能数据库将接收LOGUDt的冗余拷贝,但其很容易清除任何不想要的冗余并仅保留原始副本。When user U passes (or attempts to pass) door D at time t, the door may generate the appropriate string LOGUDt and save it locally (at least temporarily). To ensure that this information reaches the appropriate database, the door may use a card for entry through it. For example, D may write (or cause LOGUDt to be written) on the cards of other users U (possibly including U himself). Whenever U is connected to PR (eg next business day) or any other wired or well-connected device, PR or said device transmits LOGUDt to the appropriate database. In this case, the appropriate database will be the last to receive and then store the LOGUDt more permanently in a more easily verifiable manner. It is possible that the database will receive a redundant copy of LOGUDt, but it is easy to clean up any unwanted redundancy and keep only the original copy.
优选的LOGUDt包括U自身的数字签名。这种情况下,当U在特定时间通过特定门时其不能容易地拒绝,且U声称门的访问信息是伪造的。事实上,只有他具有用于产生LOGUDt的秘密签署的钥匙。例如,LOGUDt e由SIGU(D,t)组成,其指出U在时间t通过门D。如果用户U的卡携带与公钥PKU匹配的秘密签署的钥匙SKU,则这非常容易实现。优选地,卡还携带PKU的数字证书,并因而LOGUD可不仅包括SIGU(D,t),还包括U的证书。也是优选地,用户卡可根据在其自己的时钟上显示的时间t产生SIGU(D,t),且门可仅在U提供该访问证据(可能除了其它授权证据如那些前面讨论的证据以外)SIGU(D,t)之后让U进入,假如由U鉴定的时间足够接近门时钟测量的当前时间t。用户还可能要求在时间t进入门D,但该门完全在另一地方,因而SIGU(D,t)一点也不能证明其曾通过如特定建筑的第三层的第二门:某些人有问题的通过以将所述位置传输到门的读卡机等。为防止这样的要求,或保护用户免遭这样的欺骗,用户卡(装置)可结合一GPS机构,SIGU(D,t)可实际上包括由卡测量的本地位置LP。在这种情况下,用户可将访问证据SIGU(D,t,ps)趋向于门,门可接受它且仅在不仅时间看上去正确而且本地位置也正确时让用户进入。与其计算卡/装置内的ps,用户不如使用其信任的一个或多个组件,且该组件可从它们自用户处接收的信息计算用户的位置(及可能它们自己的位置)。The preferred LOGUDt includes U's own digital signature. In this case, U cannot be easily denied when he passes a certain door at a certain time, and U claims that the access information of the door is forged. In fact, only he has the secret signed key used to generate LOGUDt. For example, LOGUDt e consists of SIG U (D,t), which indicates that U passed gate D at time t. This is very easy to achieve if the user U's card carries a privately signed key SKU that matches the public key PKU. Preferably, the card also carries PKU's digital certificate, and thus LOGUD may include not only SIG U (D,t), but also U's certificate. Also preferably, the user card can generate a SIG U (D,t) from the time t displayed on its own clock, and the door can provide this access proof only at U (possibly in addition to other authorization proofs such as those previously discussed ) SIG U (D, t) then lets U in if the time identified by U is close enough to the current time t as measured by the gate clock. A user may also ask to enter door D at time t, but that door is in another place entirely, so SIG U (D, t) can't at all prove that he has passed through, say, the second door on the third floor of a particular building: some The pass in question transmits the location to the door's card reader, etc. To prevent such a request, or to protect the user from such fraud, the user card (device) can incorporate a GPS mechanism, and SIG U (D, t) can actually include the local position LP measured by the card. In this case, the user can approach the access proof SIG U (D, t, ps) towards the door, which accepts it and only lets the user in if not only the time looks correct but also the local location. Instead of calculating ps within the card/device, the user can use one or more components that they trust and which can calculate the user's location (and possibly their own) from the information they receive from the user.
实施implement
基本系统basic system
如图1中所见,CA将个人证书废除状态信息CRS发送给目录,其关于每一其发出的、但尚未过期的证书C1,...Ck。目录将CRSi发送给已询问该发证机构的序列号为“i”的证书的请求用户。As seen in Figure 1, the CA sends individual certificate revocation status information CRS to the directory for each of its issued certificates C 1 , . . . C k that have not yet expired. The directory sends CRS i to the requesting user who has asked the issuing authority for a certificate with serial number "i".
本发明公开了一种用于通过数字证书确认过程来控制物理访问的系统和方法,数字证书确认过程与标准证书格式(如X.509v3)一起工作,且其使发证机构(CA)能够证明每一证书C自C的发出日期D1开始的任何时间间隔(如每天、小时、或分钟)的有效性状态,C的时间间隔可在证书本身内指明,除非其对所有证书是一样的。具体地但非限制的目的,下面我们为所有证书假定一天的间隔,且每一证书自其发出365天后期满。The present invention discloses a system and method for controlling physical access through a digital certificate validation process that works with a standard certificate format (such as X.509v3) and that enables a Certificate Authority (CA) to certify The validity status of each certificate C for any time interval (such as daily, hourly, or minutely) from the issue date D1 of C, the time interval of C may be specified within the certificate itself, unless it is the same for all certificates. For purposes of specificity but not limitation, below we assume an interval of one day for all certificates, with each certificate expiring 365 days from its issuance.
制作证书C。除了传统的数字如序列号SN、公钥PK、用户名U、发出日期D1、期满日期D2(=D1+365)之外,证书C还包括两个对其唯一的20字节值。明确地,在发出证书C之前,CA随机地选择两个不同的20字节值,Y0和X0,并从它们计算两个对应的20字节值,Y1和X365,其使用享有下述特性的单向散列函数H:H至少10000倍快于数字签名计算;无论输入多长,H产生20字节输出;且H很难颠倒:给定Y,发现X使得H(X)=Y实际上是不可能的。(见,例如,安全散列标准;FIPS PUB 180,94年7月11日修订(联邦注册,Vol.59,No.131,pp.35211-34460);1994年8月5日修订(联邦注册,Vol.59,No.150,pp.39937-40204))。值Y1通过散列Y0一次计算:Y1=H(Y0);X365通过散列X0365次计算:X1=H(X0),X2=H(X1),...,X365=H(X364)。因为H总是产生20字节输出,Y1、X365和所有中间值Xj均为20字节长。值Y0、 X0、 X1、...、X364被保密,同时Y1和X365被包括在证书中:C=SIGCA(SN,PK,U,D1,D2,...,Y1,X365)。我们将Y1称为废除目标,把X365称为有效目标。Make a certificate C. In addition to traditional numbers such as serial number SN, public key PK, user name U, issue date D 1 , expiration date D 2 (=D 1 +365), the certificate C also includes two unique 20-byte value. Specifically, before issuing certificate C, the CA randomly selects two different 20-byte values, Y 0 and X 0 , and computes from them two corresponding 20-byte values, Y 1 and X 365 , which use the enjoyment A one-way hash function H with the following properties: H is at least 10,000 times faster than digital signature computation; H produces a 20-byte output no matter how long the input is; and H is hard to reverse: Given Y, find X such that H(X) = Y is practically impossible. (See, e.g., the Secure Hash Standard; FIPS PUB 180, Revised Jul 11, 94 (Federal Register, Vol. , Vol.59, No.150, pp.39937-40204)). The value Y 1 is computed by hashing Y 0 once: Y 1 =H(Y 0 ); X 365 is computed by hashing X 0 365 times: X 1 =H(X 0 ), X 2 =H(X 1 ),. . . . X 365 =H(X 364 ). Since H always produces 20 bytes of output, Y 1 , X 365 and all intermediate values X j are 20 bytes long. The values Y 0 , X 0 , X 1 , ..., X 364 are kept secret, while Y 1 and X 365 are included in the certificate: C = SIG CA (SN, PK, U, D 1 , D 2 , .. ., Y 1 , X 365 ). We will refer to Y 1 as the abolition target and X 365 as the effective target.
废除及确认尚未过期的证书C。在C发出后第i天(即在D1+i天),CA按如下计算并释放C的状态的20字节证据。如果C被废除,则作为C废除的证据,CA释放Y0,即,废除目标Y1的H倒置(H-inverse)。否则,作为C在那天有效的证据,CA释放X365-i,即,有效目标X365的第i H倒置。(例如,C在发出100天后有效的证据由X265组成。)CA可通过提供响应于询问的值或将其发送在万维网上而释放Y0或X365-i。Revocation and confirmation of certificate C that has not yet expired. On the i-th day after C is issued (ie, on D 1 +i days), the CA calculates as follows and releases the 20-byte evidence of C's state. If C is revoked, then as evidence of C revocation, CA releases Y 0 , ie, the H-inverse of the revoked target Y 1 . Otherwise, as evidence that C was valid that day, CA releases X 365-i , ie, the ith H inversion of the valid target X 365 . (For example, proof that C is valid 100 days after issue consists of X 265. ) The CA may release Y 0 or X 365-i by providing a value in response to a challenge or sending it on the World Wide Web.
验证尚未过期的证书C的状态。在任何日子,C的废除证据Y0通过散列Y0一次并检查结果是否等于C的废除目标Y1来验证。(即,验证人自己测试Y0真地是Y1的H倒置。)注意,Y1被保证是C的废除目标,因为Y1在C内被证明。在C发出后第i天,C在该天的有效证据X365-i通过将值X365-i散列i次并检查结果是否等于C的有效目标X365而验证。(即验证人自己测试X365-i真地是X365的H倒置)。注意,验证人知道当前日D及C的发出日D1,(因为D1在C内被证明),并因而立即计算i=D-D1。Verify the status of certificate C that has not expired. On any day, C's revocation proof Y 0 is verified by hashing Y 0 once and checking that the result is equal to C's revocation target Y 1 . (i.e., the verifier himself tests that Y 0 is really the H inversion of Y 1. ) Note that Y 1 is guaranteed to be the abolition target of C, since Y 1 is proved within C. On the i-th day after C is issued, C's valid proof X 365-i for that day is verified by hashing the value X 365-i i times and checking whether the result is equal to C's valid target X 365 . (ie the verifier himself tested that X 365-i is really the H inversion of X 365 ). Note that the verifier knows the current date D and C's issue date D 1 , (since D 1 is proven in C), and thus immediately computes i=DD 1 .
安全件Security piece
废除证据不能被伪造。证书C的废除证据由C的废除目标Y1的H倒置组成。因为H实质上不可能倒置,一旦验证人检查给定的20字节值Y0确实是C的废除证据,其知道Y0肯定已被CA释放。事实上,只有CA可计算Y1的H倒置:不是因为CA比任何其它人能更好地倒置H,而是因为其通过以Y0开始并散列它而计算Y1。因为只要C保持有效,CA永远不释放C的废除证据,敌人不能伪造废除证据。Evidence of revocation cannot be falsified. Certificate C's revocation proof consists of the H inversion of C's revocation target Y 1 . Because H is essentially impossible to invert, once a verifier checks that a given 20-byte value Y 0 is indeed proof of C's revocation, it knows that Y 0 must have been released by the CA. In fact, only the CA can compute the H inversion of Y 1 : not because the CA can invert H better than anyone else, but because it computes Y 1 by starting with Y 0 and hashing it. Because CA never releases C's revocation proof as long as C remains valid, the enemy cannot forge the revocation proof.
有效性证据不能被伪造。在天i,证书C的有效性证据由C的有效性目标X365的第i H倒置组成。因为H实质上不可能倒置,一旦验证人检查给定的20字节值X365-i确实是C在天i的有效性证据,其知道CA肯定已释放X365-i。事实上,只有CA可计算X365的第i H倒置:不是因为CA比任何其它人能更好地倒置H,而是因为其通过以X0开始并散列它365次而计算X365,因而计算X365的所有第一365倒置。如果证书C在天i+1被废除,CA已经在先前的i天中释放值X365-1,...,X365-i(当C还有效时)但尚未释放并将在将来永远释放值X365-i-1(或任何其它值Xj,j<365-i)。因此,为伪造C的在i+1天有效的证据,敌人应计算X365的i+1stH倒置(即X365-i的H倒置),其非常难于实现。类似地,敌人不能为C计算在i+1之后的任何天的有效性证据。要那样做,应该能够再次在输入X365-i的基础上倒置H。例如,如果其能计算C在i+2天的有效性证据,X362-i-2,则通过将其散列一次,可容易地获得X365-i-1,X365-i的H倒置。Evidence of validity cannot be falsified. On day i, certificate C's validity proof consists of the ith H inversion of C's validity target X 365 . Because H is essentially impossible to invert, once a verifier checks that a given 20-byte value X 365-i is indeed proof of C's validity on day i, it knows that the CA must have released X 365-i . In fact, only CA can compute the ith H inversion of X 365 : not because CA can invert H better than anyone else, but because it computes X 365 by starting with X 0 and hashing it 365 times, thus Computes all first 365 inversions of X 365 . If certificate C is revoked on day i+1, the CA has released the values X 365-1 , ..., X 365-i in the previous i days (while C was still valid) but has not yet released and will release forever in the future Value X 365-i-1 (or any other value X j , j<365-i). Therefore, to falsify the evidence that C is valid on day i+1, the enemy should calculate the i+1 st H inversion of X 365 (ie the H inversion of X 365-i ), which is very difficult to implement. Similarly, the adversary cannot compute evidence of validity for C for any days after i+1. To do that, it should be possible to invert the H again based on the input X 365-i. For example, if it can calculate the proof of validity of C on day i+2, X 362-i-2 , then by hashing it once, the H inversion of X 365-i-1 , X 365-i can be easily obtained .
效率efficiency
证书C仅包括两个另外的20字节值,Y1和X365。这是可忽略的成本。取消了C已经包括数据的CA签名(至少2048位长),其包括公钥PK(至少1024位长),及C可包括注释及除SN、PK、U、D1和D2之外的大量其它数据。Certificate C includes only two additional 20 byte values, Y 1 and X 365 . This is a negligible cost. Canceled C already includes data CA signature (at least 2048 bits long), which includes the public key PK (at least 1024 bits long), and C can include comments and a lot in addition to SN, PK, U, D 1 and D 2 other data.
产生和仅要求366次散列。这是可忽略的成本。其取消了发出证书已经要求计算签名。Generates and requires only 366 hashes. This is a negligible cost. It cancels the requirement that the issuing certificate already requires computing a signature.
废除证据和有效性证据仅20字节长。我们的20字节证据均为微不足道的传输和存储,使得20字节技术对无线应用是理想的技术(在此,因为带宽还有限,许多移动电话和其它无线设备的存储容量也有限)。Revocation Proof and Validity Proof are only 20 bytes long. Our 20-byte proofs are both trivial to transmit and store, making 20-byte technology ideal for wireless applications (where, since bandwidth is still limited, many mobile phones and other wireless devices also have limited storage capacity).
根据本发明的实施例的证据可以如此短,因为它们使它们的安全性源自基本的密码组成,如单向函数,其可展现指数级的安全性。(非常不同地,数字签名方案具有复杂的安全性要求。它们的典型的数字理论实施至多提供亚指数级的安全性,并因而使非常长的密钥称为必要。)无论证书的总数字是几百还是几十亿,证据保持20字节长。事实上,有2160种可能的20字节字符串,且两个证书碰巧具有相同的废除或有效性证据的可能性可以忽略不计。Proofs according to embodiments of the present invention can be so short because they derive their security from fundamental cryptographic components, like one-way functions, which can exhibit exponential security. (Very differently, digital signature schemes have complex security requirements. Typical number-theoretic implementations of them provide at best sub-exponential security, and thus necessitate very long keys.) Regardless of the total number of certificates Hundreds or billions, evidence remains 20 bytes long. In fact, there are 2 160 possible 20-byte strings, and the probability that two certificates happen to have the same proof of revocation or validity is negligible.
还应注意的是,由于加密或鉴别,我们的20字节证据的长度不会增加。我们的20字节证据倾向于公开并因而不必加密。类似地,我们的20字节证据是自我鉴别的:通过将它们散列适当的次数,它们产生证书内指明的有效性目标或废除目标。如果被伪造或改变,它们将不工作,因而不必以任何方式签署或鉴别。It should also be noted that our 20-byte proof does not increase in length due to encryption or authentication. Our 20-byte proofs tend to be public and thus don't have to be encrypted. Similarly, our 20-byte proofs are self-authenticating: by hashing them the appropriate number of times, they yield the validity or revocation goal specified in the certificate. If forged or altered, they will not work and thus do not have to be signed or authenticated in any way.
最后,在i天的20字节有效性证据X365-i不必另外包括值i:在某种意义上,其已经包括其自己的时间戳。实际上,如上所述,i是当前日期和证书的发出日期之间的差,如果散列X365-ii次产生证书C的有效性目标,则这证明X365-i是C在i天的有效性证据。Finally, the 20-byte validity proof X 365-i at day i does not have to additionally include the value i: in a sense it already includes its own timestamp. Indeed, as stated above, i is the difference between the current date and the certificate's issue date, and if hashing X 365-i i times yields the validity target for certificate C, then this proves that X 365-i is C on day i evidence of effectiveness.
20字节证据被立刻计算。废除证据Y0或有效性证据X365-i只是从存储器检索。(或者,如果在证书发出期间只是X0被保存,每一X365-i可被在i天匆忙地再次计算;例如,通过至多364次散列。令人惊奇地更有效的策略在下面的部分中讨论。)The 20-byte proof is computed immediately. Revocation evidence Y 0 or validity evidence X 365-i is simply retrieved from memory. (Alternatively, if only X 0 is saved during certificate issuance, each X 365-i can be recalculated on the fly at i days; e.g., by hashing at most 364 times. A surprisingly more efficient strategy is in the following discussed in the section.)
无线环境wireless environment
本发明的实施例对于无线实施是理想的。其可升级性是巨大的:其可轻松供应几十亿证书。其要求的带宽可忽略不计,实质上30位序列号用于询问,20字节用于响应。其要求的计算也是可以忽略的,因为证书状态询问由单一的表查询回答且可立即被验证。当然,大可升级性、最小带宽及微不足道的计算使得本发明技术为无线环境中的一个选择。Embodiments of the present invention are ideal for wireless implementations. Its scalability is enormous: it can easily provision billions of certificates. It requires negligible bandwidth, essentially a 30-bit sequence number for the query and 20 bytes for the response. The computation it requires is also negligible, since certificate status queries are answered by a single table lookup and can be verified immediately. Of course, the large scalability, minimal bandwidth, and trivial computation make the present technique an option in wireless environments.
但有本发明的另一应用,其在无线应用中提供另外的优点。即,每天早上—例如,在午夜—无线用户可接收其证书的20字节有效性证据用于该天的剩余时间。(该20字节值可基于用户的请求获得,或被自动推到用户的移动装置—如,借助于SMS消息或其它控制消息。)由于其微不足道的长度,该证据可被容易地保存在大多数移动电话和PDA中。接着,无论用户想在那天的何时办理,用户简单地将其自己的证书连同证书的用于那天的20字节有效性证据一起发送。因为有效性证据是到处可验证的,证书和证据的验证人不必调用任何CA或任何回应者。验证人可完全离线工作。在移动环境中,其中任何调用转换成钱和时间成本,该离线能力是非常有价值的。But there is another application of the invention which provides additional advantages in wireless applications. That is, each morning—eg, at midnight—a wireless user may receive a 20-byte proof of validity of his certificate for the remainder of the day. (The 20-byte value can be obtained based on the user's request, or automatically pushed to the user's mobile device—for example, by means of an SMS message or other control message.) Due to its insignificant length, this proof can be easily saved in a large file. Most mobile phones and PDAs. Then, no matter what time of day the user wants to transact, the user simply sends their own certificate along with the certificate's 20 byte proof of validity for that day. Since validity evidence is verifiable everywhere, verifiers of certificates and evidence do not have to invoke any CA or any responder. Validators work completely offline. In a mobile environment, where any call translates into a cost in money and time, this offline capability is very valuable.
与OCSP比较Compared with OCSP
本发明和OCSP均为经请求的系统:即,用户发送关于证书当前有效性的询问并取回不可伪造的且到处可验证的证据作为响应。但也有如下区别:时间精确性;带宽;CA效率;安全性;及运行费用。Both the present invention and OCSP are on-demand systems: that is, a user sends a query about the current validity of a certificate and retrieves in response an unforgeable and everywhere verifiable proof. But there are also the following differences: time accuracy; bandwidth; CA efficiency; security;
时间精确性:原则上,OCSP可指明具有极大精确性的时间,而根据本发明的优选实施例的响应指明具有预定精确性的时间:一天、一小时、一分钟等。在低价值应用中,1天有效性是广为接受的。对于大多数财务应用,Digital Signature Trust考虑4小时的精确性就足够了。(也许这较其看上去更不令人惊讶:对于大多数财务事务,在早上接收的定单在下午执行,在下午接收的定单在第二个工作日执行。)在任何情况下,时间不由具有无限多阿拉伯数字的真实数字指明。在经请求确认系统中,小于1分钟的时间精确性很少有意义,因为询问和证书信任方的时钟可能不是同步的。事实上,在这样的系统中,15秒的时间精确性是实际的实时。Time precision: In principle, OCSP can specify time with great precision, whereas responses according to a preferred embodiment of the invention specify time with predetermined precision: one day, one hour, one minute, etc. In low-value applications, 1-day availability is generally accepted. For most financial applications, Digital Signature Trust considers 4 hours of accuracy to be sufficient. (Perhaps this is less surprising than it seems: for most financial transactions, orders received in the morning are executed in the afternoon, and orders received in the afternoon are executed the next business day.) In any case, time is not dictated by Real number designation of infinite number of Arabic numerals. Time accuracy of less than 1 minute is rarely meaningful in a request-for-validation system, since the clocks of the challenge and certificate relying parties may not be synchronized. In fact, in such a system, a time accuracy of 15 seconds is practically real time.
为处理这样的极端精确性,本发明的优选实施例计算大约1M长的散列链(即,需要计算X1M型的有效性字段),因为在一年中至多有527,040分钟。如果那样长的链可被有效处理,则本发明的优选实施例实际上是实时。在证书发出时计算1M散列是没有问题的:1M散列可在少于1秒的时间中执行,即使使用非常合理的平台,且证书通常一年发出一次,且没有巨大的时间压力。类似地,考虑到其通常仅关注于个别的事务且有较多的时间,1秒计算对于证书有效性证据的验证人(如依靠证书的商人)也是没有问题的。然而,根据证书状态请求计算1M散列可能影响产生有效性证据的服务器的性能,因为其通常在某时处理许多事务。幸运地,该服务器不必在线计算所有这些开始于X0的散列,而是通过表查寻—利用存储器中具有每一证书的全部散列链。但是,保存1M长的散列链在具有巨大数目的证书的应用中可能是一个问题。但,幸运地,如我们将在随后提及的,即使普通的服务器也可通过使用较好的算法以令人惊奇的效率重新计算1M长的散列链。To handle such extreme precision, the preferred embodiment of the present invention computes approximately 1M long hash chains (ie, needs to compute X 1M validity fields), since there are at most 527,040 minutes in a year. The preferred embodiment of the invention is practically real-time if such long chains can be efficiently processed. Computing 1M hashes when certificates are issued is no problem: 1M hashes can be performed in less than 1 second, even with very reasonable platforms, and certificates are usually issued once a year without huge time pressure. Similarly, 1-second calculations are no problem for verifiers of certificate validity proofs (such as merchants relying on certificates), given that they are usually only concerned with individual transactions and have more time. However, computing the 1M hash from the certificate status request may affect the performance of the server that produces the proof of validity, since it typically handles many transactions at a time. Fortunately, the server does not have to compute all these hashes starting at X 0 online, but instead does a table lookup - utilizing the entire hash chain with each certificate in memory. However, keeping 1M long hash chains can be a problem in applications with a huge number of certificates. But, fortunately, as we will mention later, even an ordinary server can recalculate a 1M long hash chain with surprising efficiency by using a better algorithm.
带宽:本发明的优选实施例较OCSP具有明显的带宽优势。前者使用20字节的回答,而后者通常使用256字节。Bandwidth: The preferred embodiment of the present invention has a significant bandwidth advantage over OCSP. The former uses a 20-byte answer, while the latter typically uses 256 bytes.
CA效率:在OCSP情况下,有效性询问由(复杂的)数字签名回答,而在本发明的情况下,通过(微不足道的)表查寻回答,只要CA保存每一证书的整个X链。CA Efficiency: In the case of OCSP, the validity query is answered by a (complex) digital signature, while in the case of the present invention it is answered by a (trivial) table lookup, as long as the CA keeps the entire X-chain for each certificate.
注意,具有1百万证书的量,当时间精确性为1天或1小时时CA可负担得起保存每一证书的整个X链。(在第一种情况下,CA不得不保存365个20字节值,即每证书7.3K字节,因而全部为7.3B字节。在第二情况下,全部为175.2B字节。)如果时间精确性为15秒,则每一散列链包括1M20字节值,对于整个系统,全部存储要求将在10.5tera字节,一个相当大的存储量。Note that with a volume of 1 million certificates, a CA can afford to keep the entire X-chain for each certificate when the time accuracy is 1 day or 1 hour. (In the first case, the CA has to save 365 20-byte values, or 7.3K bytes per certificate, so all are 7.3B bytes. In the second case, all are 175.2B bytes.) If With a time accuracy of 15 seconds, each hash chain contains 1M20 byte values, and for the entire system, the total storage requirement would be 10.5 tera bytes, a considerable amount of storage.
为大力降低该存储要求,CA可仅为每一证书保存单一20字节值(即X0),并从其通过至多1M散列重新计算每一Xi值。或者,Jacobsson[5]已经发现令人惊奇的时间/存储折衷。即,CA可以正确的顺序重新计算所有n个Xi值,其通过保存log(n)散列值并每次执行log(n)散列实现。如果n为1M,这意味着仅保存每证书20散列值,且每次证书需确认时仅执行20次散列。其它折衷也是可能的。特别地,对于我们的1M链的情况,Reyzin[R]已示出,CA可计算所有Xi值(i=1M下降到1),其通过仅保存3个散列值并每次至多执行100次散列实现。To greatly reduce this storage requirement, the CA may only save a single 20-byte value (ie X 0 ) per certificate, and recompute each Xi value by at most 1M hashes from it. Alternatively, Jacobsson [5] has discovered a surprising time/storage tradeoff. That is, the CA can recompute all n Xi values in the correct order by saving the log(n) hash values and performing the log(n) hash each time. If n is 1M, this means that only 20 hashes per certificate are stored, and only 20 hashes are performed each time a certificate needs to be validated. Other compromises are also possible. In particular, for our 1M chain case, Reyzin [R] has shown that CA can compute all Xi values (i=1M down to 1) by saving only 3 hash values and executing at most 100 secondary hash implementation.
总之,即使在实际上实时的应用中(即使用15秒时间精确性),本发明的优选实施例通过仅保存60字节每证书即可以微不足道的100次散列运算代替复杂的数字签名运算。In summary, even in practically real-time applications (ie, using 15 second time accuracy), the preferred embodiment of the present invention can replace complex digital signature operations with a trivial 100 hash operations by saving only 60 bytes per certificate.
安全性及运行费用:最后两个区别将在指明本发明的优选实施例和在考虑中的OCSP的实施类型之后被更好地论述。Security and Operating Cost: The last two differences will be better discussed after specifying the preferred embodiment of the invention and the type of implementation of OCSP under consideration.
集中的实施:安全性分析Centralized Implementation: Security Analysis
无论何时,证明证书的有效性均依赖于特定钥匙的保密,安全的电子库(vault)应可保护该钥匙,以保证整个系统的完整性。通过本发明或OCSP的集中实施,我们意指一个电子库可回答所有有效性询问。如果配置的证书的数量较小(如不大于100K),则集中实施是优选的,使得电子库可处理产生的询问容量,即使几乎所有证书在很小的时间间隔内均被使用,几乎同时触发有效性询问。在该实施中,优选实施例相对于OCSP在以下方面更好。Whenever attesting to the validity of a certificate relies on the secrecy of a particular key, a secure electronic vault should protect that key to guarantee the integrity of the entire system. By centralized implementation of the present invention or OCSP, we mean that one electronic repository can answer all validity queries. Centralized implementation is preferred if the number of certificates configured is small (e.g. no greater than 100K) so that the e-vault can handle the resulting query volume even if almost all certificates are used within a small time interval, triggering almost simultaneously Validity query. In this implementation, the preferred embodiment is superior to OCSP in the following ways.
末日保护:在传统的OCSP中,如果(尽管电子库和装甲的保护)敌人成功穿透电子库并危及秘密签署的密钥的安全,则其可使先前废除的证书“复活”及“废除”还有效的证书。(类似地,如果CRL签署密钥在CRL系统中被危及安全)。通过对比,在本发明的优选实施例中,穿透安全的电子库不会帮助对手伪造任何先前废除的证书的有效性。事实上,当证书在i天被废除时,不仅其废除证据Y0被公开,而且,同时地,所有其Xi值(或至少值X0到X365-i)被删除。因此,在成功进入后,敌人发现没有什么东西使其能够“延伸”废除的证书的有效性。要那样做,其应在没有任何帮助的情况下成功基于X365-i而倒置单向散列H,其中其被欢迎尝试(且可在没有进入任何安全电子库的情况下进行真实的尝试)。最坏的情况,根据本发明,敌人可在成功进入后在系统中伪造有效证书的废除,因而阻止诚实的用户鉴别合法的事务。当然,这是坏的情况,但尚没有使不诚实的用户鉴别非法的事务一样坏。Doomsday protection: In traditional OCSP, if (despite the protection of the vault and armor) an enemy succeeds in penetrating the vault and compromising the security of the secret signing key, it can "resurrect" and "revoke" a previously revoked certificate Also valid certificate. (Similarly, if the CRL signing key is compromised in the CRL system). By contrast, in the preferred embodiment of the present invention, penetrating the secure electronic vault does not help an adversary to falsify the validity of any previously revoked certificates. In fact, when a certificate is revoked on day i, not only its revocation proof Y 0 is made public, but, simultaneously, all its Xi values (or at least values X 0 to X 365-i ) are deleted. Thus, after a successful entry, the enemy finds nothing that enables him to "extend" the validity of the revoked certificate. To do that, it should successfully invert the one-way hash H based on X 365-i without any help, where it is welcome to try (and a real try can be done without access to any secure electronic vault) . Worst case, according to the present invention, an adversary can forge the revocation of valid certificates in the system after successful entry, thus preventing honest users from authenticating legitimate transactions. Of course, this is a bad situation, but not as bad as making dishonest users authenticate illegal transactions.
分布式实施:安全性及运行费用分析Distributed Implementation: Security and Operating Cost Analysis
集中实施要求所有关于证书有效性的询问发送到同一电子库。在具有几百万活性证书的应用中,这很容易导致较长的耽搁及拒绝服务。为保护免于这样的拥塞、耽搁及服务拒绝,可将回答有效性询问的负载扩展到几个地理上分开的回应者服务器。然而,在OCSP的情况下,每一另外的回应者需要具有秘密签署的密钥,并因而需要被保存在电子库中,使得OCSP系统的拥有花费非常繁重。满足财务机构要求的高级电子库花费至少$1M来建立,及$1M来运行。(好的电子库应包含装甲的混凝土、钢门、备用功率发电机、受保护的燃料库以运行发电机潜在的一段时间等。运行它将涉及最少4个不同组的24×7×365运算,加上管理监督等。)在一应用中,要求10该电子库在峰值业务量时保证合理快的响应,OCSP系统的拥有成本将是$10M的初始投资及进行中的$10M每年的预算。即使使用较不安全的电子库及运算,几百万美元的初始及进行成本还是必须的。Centralized implementation requires that all inquiries regarding certificate validity be sent to the same electronic repository. In applications with millions of active certificates, this can easily lead to long delays and denial of service. To protect against such congestion, delays, and denial of service, the load of answering validity queries can be spread across several geographically separated responder servers. However, in the case of OCSP, each additional responder needs to have a privately signed key, and thus needs to be kept in an electronic vault, making the OCSP system very costly to own. Advanced electronic libraries that meet financial institution requirements cost at least $1M to build, and $1M to run. (A good electronics bank would contain armored concrete, steel doors, generators for backup power, protected fuel banks to run the generators for potential periods of time, etc. Running it would involve a minimum of 4 different groups of 24x7x365 operations , plus management oversight, etc.) In an application where 10 electronic banks are required to ensure a reasonably fast response during peak traffic, the cost of ownership of the OCSP system would be an initial investment of $10M and an ongoing budget of $10M per year . Even with less secure electronic libraries and algorithms, initial and ongoing costs of several million dollars are necessary.
然而,在本发明的优选实施例的情况下,可以使用一个电子库(其为CA无论如何应具有的)及任意数的“不信任回应者”(即普通服务器)可实现分布式实施。让我们看看根据本发明的分布式系统的准确细节,具体地,假定(a)有10M证书;(b)有1000个服务器,战略地位于全球各地以使响应时间最小;及(3)时间间隔为1天。However, in the case of the preferred embodiment of the invention, a distributed implementation can be achieved using one electronic repository (which the CA should have anyway) and any number of "untrusted responders" (ie common servers). Let's look at the exact details of a distributed system according to the invention, specifically assuming (a) there are 10M certificates; (b) there are 1000 servers, strategically located around the globe to minimize response time; and (3) time The interval is 1 day.
CA运行(初始化费用):每天早上,以最小的序列号开始,按如下编译10M记录阵列:对于具有序列号j的每一证书C,保存C的20字节有效性/废除证据在位置j。接着,注明F的日期并签署F并将其发送到1000个服务器中的每一个。CA runs (initialization fee): Every morning, starting with the smallest serial number, compile the 10M record array as follows: For each certificate C with serial number j, save C's 20-byte validity/revocation proof at location j. Next, date and sign F and send it to each of the 1000 servers.
用户运行(询问费用):为知道证书C的状态,将C的序列号、j(及CA ID,如果必要)发送到服务器S。User runs (asking fee): To know the status of certificate C, send C's serial number, j (and CA ID, if necessary) to server S.
服务器运行(回答费用):每天早上,如果接收到适当注明日期并签署的阵列F,用新阵列替换旧阵列。Server operation (answer fee): Each morning, if properly dated and signed array F is received, replace old array with new array.
在任何时间:通过返回当前F的在位置j的20字节值而回答关于序列号j的询问。At any time: Answer the query about sequence number j by returning the current 20-byte value of F at position j.
优选实施例的运行Operation of the preferred embodiment
1.即时准备阵列F1. Immediate Preparation of Array F
如果每一证书的整个散列链被保存,则每一记录仅仅通过表查寻操作计算。在另一实施例中,其还可被当场计算。If the entire hash chain for each certificate is kept, each record is only computed by table lookup operations. In another embodiment, it can also be calculated on the spot.
2.F不包含秘密2.F does not contain a secret
其包括还有效的证书及已废除的证书的准确的及全部账户。(CA的目标实际上是以最有效的方式使该非秘密的信息尽可能公开。)It includes exact and complete accounts of certificates that are still valid as well as certificates that have been revoked. (The CA's goal is actually to make this non-secret information as public as possible in the most efficient way.)
3.直接将F传输到服务器3. Directly transfer F to the server
这样做是因为F不包含秘密,不要求加密,且不会造成安全风险。尽管10M证书量较大,在正常的时间间隔发送200M字节文件到1000个服务器是非常可行的。This is done because F contains no secrets, requires no encryption, and poses no security risk. Despite the large volume of 10M certificates, it is very feasible to send a 200M byte file to 1000 servers at normal intervals.
4.每一服务器回答为20字节长4. Each server reply is 20 bytes long
再次地,每一回答不要求加密、签名或时间戳。Again, each answer does not require encryption, signing or timestamping.
5.没有诚实的拒绝服务5. No Honest Refusal of Service
因为发送的每一值仅为20字节长,因为每一个这样的值被立即计算(通过表查寻),且因为业务量可被展开到1000个服务器,不应有拒绝服务发生,至少在系统的合法使用期间没有。Because each value sent is only 20 bytes long, because each such value is computed immediately (via a table lookup), and because the traffic can be spread out to 1000's of servers, there should be no denial of service, at least on the system period of legal use no.
6.服务器不必被信任6. The server does not have to be trusted
它们仅转发由CA接收的20字节证据。由于是自我鉴别的,这些证据不可被改变且散列到相应的目标。They only forward the 20 byte evidence received by the CA. Being self-authenticating, these proofs cannot be changed and hashed to the corresponding target.
本发明的分布式实施继续享有同样的、其集中副本的末日保护:即,成功进入电子库的敌人不可能使废除的证书复活。然而,老练的对手忍住钻电子库中的空子,只要可能,其宁愿软件攻击。幸运地,尽管可能对撞分布式/集中的OCSP,软件攻击不能登上本发明的分布式实施。A distributed implementation of the invention continues to enjoy the same doom protection of its centralized counterpart: ie, it is impossible for an adversary who has successfully gained access to the electronic vault to revive a revoked certificate. Sophisticated adversaries, however, refrain from exploiting electronic libraries, preferring software attacks whenever possible. Fortunately, although it is possible to hit distributed/centralized OCSP, software attacks cannot mount on the distributed implementation of the present invention.
在OCSP中,事实上,CA被要求接收来自不信任方的外部询问,并通过数字签名并因而借助于其宝贵的密钥回答它们。因此,存在这样的可能性,OCSP要求的“向外部世界开窗”可能被有敌意地使用从而暴露秘密签署的密钥。In OCSP, in fact, the CA is required to receive external challenges from untrusted parties and answer them with digital signatures and thus by means of its valuable keys. Therefore, there is a possibility that the "window to the outside world" required by OCSP could be used hostilely to expose the secret signing key.
用于对比,在本发明的分布式实施中,则没有这样的“窗口”:CA是在电子库中并永远不接收或回答来自外界的任何询问;其仅在定期的间隔输出非秘密的数据。事实上,每天(或小时)其输出包括公开信息的文件F。(CA可从其RA接收废除请求,但这些请求为经鉴别的通道来自较少的几个信任的实体—例如使用安全智能卡。)不信任的回应者从不信任方接收询问,但它们借助于它们的文件F并因而通过公开的数据回答那些询问。因此,在软件攻击本发明的优选实施例时,普通回应者仅“暴露”公开信息。For comparison, in a distributed implementation of the invention, there is no such "window": the CA is in the electronic vault and never receives or answers any queries from the outside world; it only outputs non-secret data at regular intervals . In fact, every day (or hour) its output includes a file F of public information. (CAs may receive revocation requests from their RAs, but these requests are from a few trusted entities over authenticated channels—for example, using secure smart cards.) Untrusted responders receive challenges from untrusted parties, but they rely on Their files F and thus answer those queries through the published data. Thus, common responders only "expose" public information when software attacks the preferred embodiment of the present invention.
简化的PKI管理Simplified PKI Management
PKI管理不是微不足道的。(见,例如,因特网公钥基础结构,部分III:Certificate Management Protocols;by S.Farrell,A.Adams,and W.Ford;Internet Draft,1996;Privacy Enhancementfor Internet Electronic Mail-PART II:Certificate-Based KeyManagement;by S.Kent and J.Linn;1989)。本发明的优选实施例可改善许多应有中的PKI管理,通过:(1)减少发出的证书的数量;(2)使能够对证书进行特权管理;及(3)与多个独立的CA共享注册功能。PKI management is not trivial. (See, e.g., Internet Public Key Infrastructure, Part III: Certificate Management Protocols; by S. Farrell, A. Adams, and W. Ford; Internet Draft, 1996; Privacy Enhancement for Internet Electronic Mail-PART II: Certificate-Based Key Management ; by S. Kent and J. Linn; 1989). Preferred embodiments of the present invention improve PKI management in many applications by: (1) reducing the number of certificates issued; (2) enabling privilege management of certificates; and (3) sharing certificates with multiple independent CAs. Register function.
让我们以一系列具体的例子非正式地阐释PKI管理中的改进。(注意,在一例子中使用的特征和技术可很容易地嵌入在另一例子中。我们不明确地这样做以避免无穷数量的可能变化。)Let us illustrate informally the improvements in PKI management with a series of concrete examples. (Note that features and techniques used in one example could easily be embedded in another. We do not do this explicitly to avoid an infinite number of possible variations.)
打开/关闭证书(及中止它)Turn certificates on/off (and disable it)
例7:音乐下载Example 7: Music download
假定因特网音乐卖主希望让用户从1000个服务器的任一个以$1/天的费用下载他们想要的任何歌曲。这可用数字证书有效地实现。然而,在该例子中,U可能非常肯定其将在该年的某些天下载音乐,但他不能预期这些天是哪一天或是多少天。因而音乐中心需要为U发出不同的1天证书,无论U在何时那样请求:U请求这样的证书,并在支付或许可支付之后,其接收证书并继而在那天与1000个音乐服务器的任一个一起使用。然而,发出1天证书具有不同寻常的管理成本,既用于卖主也用于用户。且在用户希望享有另一“音乐日”时这些成本每次肯定被复制。Assume that an Internet music vendor wishes to let users download any song they want for $1/day from any of 1000 servers. This can be efficiently achieved with digital certificates. However, in this example, U may be very sure that he will download music on certain days of the year, but he cannot predict which or how many of these days will be. Thus the music center needs to issue a different 1-day certificate for U no matter when U requests that: U requests such a certificate, and after paying or agreeing to pay, it receives the certificate and then communicates with any of the 1000 music servers that day use together. However, issuing 1-day certificates has unusual administrative costs, both for the vendor and for the user. And these costs must be replicated each time the user wishes to enjoy another "music day".
在优选实施例中,本发明可按如下减轻这些成本。U联系卖主的第一次,其可被发给具有发出日期D1=0、期满日期D2=365、及有效字段X365、废除目标Y1、及中止字段Z365的证书C。(卖主的CA建立与有效性字段一样的中止字段:通过以随机的20字节值Z0开始,并接着将其散列365次,在1天间隔的情况下。其接着保存整个散列链,或仅Z0,或使用适当的能产生任何想要的Zi的时间/存储方法。)在日子i=1,...,365,如果U请求那天的“音乐日”,则卖主简单地释放20字节值Z365-i以指明证书是有效的。否则其释放以指明证书是“暂停的”。否则,其释放Y0以指明证书已被废除。可选地,如果U和音乐卖主同意—假定—“音乐周在日子i开始”,则或用于那7天的20字节值在适当时间被释放,或单一的20字节值X365-i-7在日i被释放。In a preferred embodiment, the present invention mitigates these costs as follows. The first time U contacts the vendor, it may be issued a certificate C with Issue Date D 1 =0, Expiration Date D 2 =365, and Validity field X 365 , Revocation Target Y 1 , and Suspension field Z 365 . (Vendor's CA creates the same abort field as the validity field: by starting with a random 20 byte value Z 0 , and then hashing it 365 times, with 1-day intervals. It then saves the entire hash chain , or just Z 0 , or use an appropriate time/storage method that yields any desired Zi.) On days i=1,...,365, if U requests a "music day" for that day, the vendor simply A 20-byte value Z 365-i is released to indicate that the certificate is valid. Otherwise it is released to indicate that the certificate is "suspended". Otherwise, it releases Y 0 to indicate that the certificate has been revoked. Alternatively, if U and the music vendor agree - assuming - that "music week begins on day i", then either the 20-byte value for those 7 days is released at the appropriate time, or a single 20-byte value X 365- i-7 was released on day i.
也就是说,与其无论U在何时希望下载音乐而给予U一新的单天证书,不如卖主给予一个1年的证书。在任何时间,该单一的证书可被在某天打开,其仅通过释放适当的20字节值。因而,例如,本发明的优选实施例通过发出每年的证书代替发出(及嵌入在用户的浏览器中)10单天的证书,因为其碰巧将在该年的365天中的10天打开。卖主还可使用上述方法发出先验地指明可被打开的天的数量的证书(例如,365天中的10天的证书)。因为其具有可预计的成本,这样的证书更适于作为礼物。That is, rather than giving U a new one-day certificate whenever U wishes to download music, the vendor might give U a 1-year certificate. At any time, this single certificate can be opened some day, just by releasing the appropriate 20-byte value. Thus, for example, the preferred embodiment of the invention replaces issuing (and embedding in the user's browser) 10 single-day certificates by issuing yearly certificates, as they happen to be opened on 10 of the 365 days of the year. Vendors can also issue certificates that specify a priori the number of days that can be opened (eg, certificates for 10 out of 365 days) using the methods described above. Because of its predictable cost, such a certificate is more suitable as a gift.
为同一用户打开/关闭许多证书Turn on/off many certificates for the same user
例8:安全验证管理Example 8: Security Verification Management
数字证书在保证只有适当的用户才可访问某些资源方面真地工作得很好。原则上,特权可被指明在证书自身上面。例如,国务院可具有10个不同的安全验证级别,L1...L10,通过发出类似下面的证书C,表示其具有授权的安全性级别5:Digital certificates work really well in ensuring that only the proper users can access certain resources. In principle, privileges could be indicated on the certificate itself. For example, the State Department may have 10 different security verification levels, L1...L10, indicating that it has authorized security level 5 by issuing a certificate C like the following:
C=SIGSD(SN,PK,U,L5,D1,D2,...)C=SIG SD (SN, PK, U, L5, D 1 , D 2 ,...)
其中,D1和D2表示发出日期和期满日期。Among them, D 1 and D 2 indicate the date of issue and the date of expiration.
然而,在证书自身上面指明特权可导致证书管理恶梦:无论其特权在何时变化,证书需要被废除。事实上,雇员的安全性级别可随其任务改变,其在同一年内经常改变。例如,如果U的安全验证级别被临时升级到3,则国务院应废除原始的C并发出新证书C。这个任务可被简单化,其通过使U因而及C’保持与以前一样的公钥(及期满日期)实现;例如,通过使:However, specifying privileges on the certificate itself can lead to a certificate management nightmare: whenever its privileges change, the certificate needs to be revoked. In fact, an employee's security level can vary with his assignment, which often changes during the same year. For example, if U's security verification level is temporarily upgraded to 3, the State Department should revoke the original C and issue a new certificate C. This task can be simplified by having U and C' keep the same public key (and expiration date) as before; for example, by having:
C’=SIGSD(SN’,PK,U,L3,D1’,D2,...)C'=SIG SD (SN', PK, U, L3, D 1 ', D 2 ,...)
然而,U还面临将新C’“插入”其在各个地方的浏览器内的任务:其桌面PC、其膝上型电脑、其移动电话、其PDA等。现在,使CA以稍微不同的形式采取行动重新发出证书是一回事,但依靠用户采取行动是完全不同的另一回事。However, U is also faced with the task of "plugging" the new C' into its browsers in various places: its desktop PC, its laptop, its mobile phone, its PDA, etc. Now, it's one thing to make the CA take action to reissue the certificate in a slightly different form, but it's quite another thing to rely on the user to take action.
如果使用短期证书(如在发出1天后过期),该管理问题仅被加剧。在本例子的上下文中,单天证书可使国务院雇员或用户U能够出席需要更高安全级别的会议。(如果U在适当的移动设备、智能卡甚或磁条卡中具有这样的证书,其可,例如,使用证书打开通向该天的会议的门。)短期证书的使用非常广泛,并已被提倡,因为其很大程度上省却了废除的困难(没必要废除将在24小时内过期的证书,至少在大多数应用中是这样)。然而,发出短期证书使得它们位于所有有关用户的浏览器中还是有管理成本。This management problem is only exacerbated if short-lived certificates are used (eg expire 1 day after issue). In the context of this example, a single-day certificate may enable a State Department employee or User U to attend meetings that require a higher level of security. (If U has such a credential in an appropriate mobile device, smart card, or even a magnetic stripe card, it could, for example, use the credential to open the door to that day's meeting.) The use of short-term credentialing is widespread and has been advocated, Because it largely eliminates the difficulty of revocation (there is no need to revoke a certificate that will expire within 24 hours, at least in most applications). However, there is still an administrative cost to issuing short-lived certificates such that they reside in all relevant users' browsers.
这些管理成本可通过按如下使用本发明的优选实施例而得以减轻。假定1天的时间精确度就足够了,国务院发给用户U一证书,其包含10个有效性字段及1个废除字段:如These administrative costs can be mitigated by using the preferred embodiments of the present invention as follows. Assuming that the time accuracy of 1 day is enough, the State Council issues a certificate to user U, which contains 10 validity fields and 1 revocation field: if
C=SIGSD(SN,PK,U,D1,D2,A365,B365,C365,D365,E365,F365,G365,H365,I365,J365,Y1,)C=SIG SD (SN, PK, U, D 1 , D 2 , A 365 , B 365 , C 365 , D 365 , E 365 , F 365 , G 365 , H 365 , I 365 , J 365 , Y 1 , )
其中第一有效性字段A365对应于安全验证级别1……及第10个有效性字段J365对应于安全验证级别10,同时,Y1照常是C的废除字段。证书C被按如下使用。在天n,如果U还在位(即证书C还有效),且U的安全验证级别为5,则国务院公开(如,发送给其所有在分布式NOVOMODO实施中的回应者)20字节的有效性证据E365-n。如果在天m,U的安全验证级别变为2,则国务院公开B365-m。以此类推。一旦C变成无效的(如因为U被终止作为雇员或因为U的密钥被危及),则国务院公开Y0(且从其存储器擦除)“未来的”A、B、C、D、E、F、G、H、I和J值。Wherein the first validity field A 365 corresponds to security verification level 1 . Certificate C is used as follows. On day n, if U is still in place (that is, certificate C is still valid), and U’s security verification level is 5, the State Council discloses (for example, sends to all its responders in the distributed NOVOMODO implementation) the 20-byte Evidence of Effectiveness E 365-n . If on day m, the security verification level of U becomes 2, the State Council discloses B 365-m . and so on. Once C becomes invalid (e.g. because U is terminated as an employee or because U's keys are compromised), the State Department publishes (and erases from its memory) the "future" A, B, C, D, E , F, G, H, I and J values.
这种方式,尽管内部指明其自己的特权,当它们的特权以正常方式变化时,证书C不需要被废除,且用户不必在他们的浏览器中装载新证书。实质上,本发明的优选实施例具有这样的最小痕迹,CA(而不是发出、废除、再发出许多有关的证书)能够非常简单地发出一个证书,具有非常高的不被废除的可能性(因为安全验证级别的变化并不转化为废除)。因此,很少有证书将停止被发出或废除在该应用中,从而导致更简单的PKI管理。This way, despite specifying its own privileges internally, certificates C do not need to be revoked and users do not have to load new certificates in their browsers when their privileges change in the normal way. In essence, the preferred embodiment of the invention has such a minimal footprint that the CA (rather than issuing, revoking, reissuing many related certificates) can very simply issue a certificate with a very high probability of not being revoked (because A change in security verification level does not translate into a repeal). Consequently, fewer certificates will cease to be issued or revoked in the application, resulting in simpler PKI management.
总之,本发明的优选实施例代替关于一组动态变化的特性或属性的复杂的证书管理,其通过单一的证书(具有最小的额外长度)及单一的20字节值用于属性实现。In summary, the preferred embodiment of the present invention replaces complex credential management for a dynamically changing set of properties or attributes with a single credential (with minimal extra length) and a single 20-byte value for the attribute implementation.
电信公司可使用类似于例2的方法来将无线设备从一收费表切换到另一收费表,如用于漫游的目的。A telecommunications company can use a method similar to Example 2 to switch a wireless device from one tariff to another, such as for roaming purposes.
房东CA和租户CALandlord CA and Tenant CA
主要的PKI成本与RA功能有关。事实上,识别用户U可要求昂贵的个人会见并验证U确实知道正确的密钥(对应于将被证明的公钥PK)。如果该RA功能可在许多CA中共享则是很好的,同时使它们对它们自己的证书保持完全独立的控制。The main PKI cost is related to RA functionality. In fact, identifying user U may require an expensive personal interview and verify that U does know the correct key (corresponding to the public key PK to be proven). It would be nice if this RA function could be shared among many CAs, while keeping them completely independent control over their own certificates.
例9:机构证书Example 9: Organization certificate
政府及大的机构包括并列的及分级的分支机构:部门、营业单位等。雇员可能与两个或多个分支机构有从属关系。例如,在美国政府中,其可为NIST及商务部工作。为每一这样的从属关系发出数字证书将导致证书的总数很高,并导致复杂的PKI管理:每次雇员停止/增加一个其从属关系时,最好废除相应的证书/发出新证书。理想地,两个对立面应被协调:(1)机构仅为每一雇员发出一个证书,及(2)每一分支机构为每一其从属关系发出并控制单独的证书。Government and large institutions include parallel and hierarchical branches: departments, business units, etc. An employee may have affiliations with two or more branches. For example, in the US government, it may work for NIST and the Department of Commerce. Issuing a digital certificate for each such affiliation would result in a high total number of certificates and complicate PKI management: each time an employee stops/adds one of his affiliations, it is better to revoke the corresponding certificate/issue a new one. Ideally, the two opposites should be reconciled: (1) the agency issues only one certificate per employee, and (2) each branch issues and controls a separate certificate for each of its affiliations.
这两个对立面可按如下由本发明的优选实施例协调。在开始,应注意本发明的优选实施例与将证明过程分离于确认过程是一致的,第一过程由CA控制,第二过程有确认机构(VA)控制。例如,假定1天的时间精确度,一旦CA准备发出具有序列号SN的证书C,其将SN发送给VA,其选择Y0和X0,秘密地保存三元组(SN,Y0,X0),照常计算Y1和X365,并接着将Y1和X365返回给CA,其将它们包括在C内。这种方式,CA不必打扰对C的确认:CA独自负责识别用户并适当地发出C,而VA是唯一可证明C有效或已废除的机构。该分离可被以各种方式使用,以使机构证书灵活地反映内部的分支机构动态。下述的仅是这些方式中的一个,并使用政府及部门作为运行的例子。政府总体上将具有其自己的CA,每一部门也将具有自己的CA。These two opposites can be reconciled by the preferred embodiment of the invention as follows. At the outset, it should be noted that the preferred embodiment of the present invention is consistent with separating the certification process from the validation process, the first process being controlled by the CA and the second process being controlled by the Validation Authority (VA). For example, assuming a time accuracy of 1 day, once the CA is ready to issue a certificate C with a serial number SN, it sends the SN to the VA, which chooses Y 0 and X 0 , keeping the triplet (SN,Y 0 ,X 0 ), calculate Y 1 and X 365 as usual, and then return Y 1 and X 365 to CA, which includes them in C. This way, the CA doesn't have to bother validating the C: the CA is solely responsible for identifying the user and issuing the C appropriately, while the VA is the only one who can prove that the C is valid or revoked. This separation can be used in a variety of ways to allow the organization certificate to flexibly reflect internal branch dynamics. What follows is just one of these approaches, and uses governments and ministries as operational examples. The government as a whole will have its own CA, as will each department.
设想k个不同的部门具有相应的CA,CA1...CAk,及1天的时间精确度,政府证书C具有下面的形式:Assuming that k different departments have corresponding CAs, CA 1 ... CA k , and a time accuracy of 1 day, the government certificate C has the following form:
C=SIGGOV(SN,PK,U,D1,D2,X365,Y1,[X365 1,Z365 1],...,[X365 k,Z365 k])C=SIG GOV (SN, PK, U, D 1 , D 2 , X 365 , Y 1 , [X 365 1 , Z 365 1 ], ..., [X 365 k , Z 365 k ])
其中,照常,SN是证书的序列号,PK是用户的公钥,U为用户的身份,D1为发出日期,D2为期满日期,X365为有效性字段,Y1为废除字段,且其中X365j是CAj的确认字段,及Z365 j是CAj的中止字段。Where, as usual, SN is the serial number of the certificate, PK is the user's public key, U is the user's identity, D 1 is the issue date, D 2 is the expiration date, X 365 is the validity field, Y 1 is the revocation field, And wherein X365 j is the confirmation field of CA j , and Z 365 j is the stop field of CA j .
这样的证书由具有来自部门CA的输入的政府CA产生。在识别用户U并选择唯一的序列号SN、发出日期D1、及期满日期D2之后,政府CA将SN、PK、U、D1、D2(最好以鉴别的形式)发送给每一部门CA。第j个这样的CA接着:选择两个秘密的20字节值X0 j和Z0 j;保存(SN,PK,U,D1,D2,X0 j,Z0 j),或更简单地,(SN,X0 j,Z0 j);并返回用于在位置j(或使用“标签”j)将其组合在政府证书中。Such certificates are generated by government CAs with input from departmental CAs. After identifying the user U and selecting a unique serial number SN, issue date D1 , and expiration date D2 , the government CA sends the SN, PK, U, D1 , D2 (preferably in authenticated form) to each A department CA. The jth such CA then: select two secret 20-byte values X 0 j and Z 0 j ; save (SN, PK, U, D 1 , D 2 , X 0 j , Z 0 j ), or more Simply, (SN, X 0 j , Z 0 j ); and return for combining it in a government certificate at position j (or use "tag" j).
该证书C按如下用本发明的分布式实施管理,使得工作为1证书、2证书、…、k证书;即,作为k个独立的证书,每部门一个。在天n,设想100个响应者:如果C还有效,政府CA发送20字节值X365-n给所有100个响应者,否则发送Y0。接着,第j部门CA发送20字节值X365-n j之给所有100个响应者,以表明C可作为j证书而被依赖,否则发送Z365-n j。This certificate C is managed with the distributed implementation of the invention as follows, so that works as 1 certificate, 2 certificates, ..., k certificates; ie as k independent certificates, one for each department. On day n, imagine 100 responders: the government CA sends the 20-byte value X 365-n to all 100 responders if C is still valid, and Y 0 otherwise. Next, the jth department CA sends the 20-byte value X 365-n j to all 100 responders to indicate that C can be relied upon as certificate j, otherwise sends Z 365-n j .
因此,政府CA独自负责识别用户并发出证书,但每一部门CA可独立地管理实际上是其自己的证书。(这是绝对至关重要的。如果CA1为司法部门,CA2为DOD,则尽管有一些重迭的兴趣,最好每一个单独行动)。所得的证书系统运行非常经济。首先,证书的数量被大大减少(原则上,仅有一个证书用于雇员)。第二,特定的雇员在不需要废除旧证书或发出新证书的情况下可离开并加入不同的部门。第三,不同的部门CA可共享同一响应者。(实际上,无论何时,特定用户从属于特定部门不是秘密的起码的事实—某些事对于大多数部门将是真的—服务器实质地仅包含“可公开的信息”。)因而,关于作为j证书的C的状态的询问被用两个20字节值回答:一个作为政府证书,一个作为j证书。这使得一个或多个能够敏捷地废除在“集中级别”的C(如,如果U丢失了对应于PK的密钥)。Thus, the government CA is solely responsible for identifying users and issuing certificates, but each departmental CA can independently manage what is effectively its own certificate. (This is absolutely critical. If CA 1 is the Judiciary and CA 2 is the DOD, it is best to each act individually, although there are some overlapping interests). The resulting certificate system is very economical to run. Firstly, the number of certificates is greatly reduced (in principle, there is only one certificate for an employee). Second, a particular employee can leave and join a different department without the need to revoke the old certificate or issue a new certificate. Third, different departmental CAs may share the same responder. (Actually, whenever the minimal fact that a particular user belongs to a particular department is not a secret—something will be true for most departments—the server essentially only contains "discloseable information.") Thus, about A query for the C status of a certificate is answered with two 20-byte values: one for the government certificate and one for the j certificate. This enables one or more to nimbly revoke C at the "centralized level" (eg, if U loses the key corresponding to PK).
例10:Example 10:
在上述例子中,证书C仅可以集中的方式废除,但其可容易地安排,废除的责任被推到各个部门。例如,为使第j部门CA能够完全自治地废除并中止C作为j证书,C可采取下述形式:In the example above, certificate C could only be revoked in a centralized manner, but it can easily be arranged that the responsibility for revocation is pushed to individual departments. For example, in order for the jth department CA to fully autonomously revoke and suspend C as a j certificate, C can take the following form:
C=SIGGOV(SN,PK,U,D1,D2,[XN1 1,Y1 1ZN1 1],...,[XNk k,Y1 1,ZNk k]).C=SIG GOV (SN, PK, U, D 1 , D 2 , [X N1 1 , Y 1 1 Z N1 1 ],..., [X Nk k , Y 1 1 , Z Nk k ]).
同样,不同的部门对它们自己的证书可具有不同的时间精确度。这通过使C具有下述格式而可容易地实现,Also, different departments may have different time precisions for their own certificates. This is easily accomplished by having C have the following format,
C=SIGGOV(SN,PK,U,D1,D2,[TA1,XN1 1,Y1 1,ZN1 1],...,[TAk,XNk k,Y1 1,ZNk k)C=SIG GOV (SN, PK, U, D 1 , D 2 , [TA 1 , X N1 1 , Y 1 1 , Z N1 1 ], . . . , [TA k , X Nk k , Y 1 1 , Z Nk k )
其中TAj为第j个CA的时间精确度,Nj为D1和D2之间的时间单位的数量。(如,如果TAj是1天且D1-D2=1年,则XNj j=X365 j。)where TA j is the time accuracy of the jth CA and Nj is the number of time units between D1 and D2 . (eg, if TA j is 1 day and D 1 -D 2 = 1 year, then X Nj j = X 365 j .)
在一个机构内,发出按上述构造并管理的证书的一个主要优点包括:使证书能够保持有效的,尽管用户从一个分支机构移到另一分支机构。然而,应该认识到的是,上述技术还可用于单一机构范围之外。事实上,政府CA可被看作为房东CA,k个部门CA看作服务不相干机构(而不是分支机构)的租户CA,且证书可被看作租用的证书。该术语借自更常见的例子,其中应用“联合结构和独立控制”的优点。租用的证书事实上模拟于具有同一层痕迹的标本建筑。Within an organization, a major advantage of issuing certificates structured and managed as described above includes enabling the certificate to remain valid despite the user moving from one branch to another. However, it should be appreciated that the techniques described above can also be used outside the confines of a single institution. In fact, the government CA can be viewed as a landlord CA, the k departmental CAs as tenant CAs serving unrelated organizations (rather than branch offices), and the certificates can be viewed as leased certificates. The term is borrowed from more common examples where the advantages of "joint structure and independent control" are applied. The rented certificate is in fact modeled on a specimen building with traces of the same floor.
而不是仅其自己的房间的建筑,富裕的建筑商建造20层的建筑,将其自己置于小棚屋房间,而将其它层的好房出租或出售。20个租户的每一个接着充作单一的所有人。其完全自治地并不依赖于建筑商地决定谁将被允许进入其公寓及谁将被给予钥匙。当然,20层建筑较单层的20倍便宜:其可能正好花费10倍。该经济节约在租用的证书中甚至更显著。事实上,发出正常证书的成本及发出租用的证书的成本完全一样。因而,发出租用的证书对房东CA是非常有利的,或至少可完全偿还其自己的证书产生的费用。另一方面,租户CA也具有它们自己的优势,实际上:它们节约了发行费用:它们共享发出证书k的费用,且它们节约了基础结构费用:它们共享同一响应者(因为它们仅包含公开数据)。Instead of building just his own room, a wealthy builder builds a 20-story building, placing himself in a shed room while renting out or selling the nicer rooms on the other floors. Each of the 20 tenants then acts as a single owner. It decides completely autonomously and independently of the builder who will be allowed into its apartment and who will be given the keys. Of course, a 20-story building is 20 times cheaper than a single story: it might cost exactly 10 times. This economic saving is even more significant in leased certificates. In fact, the cost of issuing a normal certificate is exactly the same as the cost of issuing a leased certificate. Thus, it would be highly beneficial for the landlord CA to issue leased certificates, or at least fully reimburse the costs incurred for its own certificates. On the other hand, tenant CAs also have their own advantages, in fact: they save issuance costs: they share the cost of issuing certificate k, and they save infrastructure costs: they share the same responder (since they only contain public data ).
用作外部租户CA的房东CA的自然候选人为:信用卡公司、大的财务机构、及政府(如经USPS或IRS)。实际上,在许多情况下,它们与几百万“用户”具有长久的和密切的关系,并可能在不投资太多资源用于用户识别的情况下更容易地发给他们一数字证书(如,信用卡公司已将年度账单发送给其客户,并可补充支持该知识)。信用卡公司可能喜欢作为房东CA发出证书的想法,以更有效地运行其自己的类似程序(具有宾馆链、航空公司等作为他们的租户)。IRS可能已经决定使用数字证书,及租用的证书可能随后将提供他们以收入流,其将偿还建设快速的和更好的服务所产生的费用。Natural candidates for a landlord CA to serve as an external tenant CA are: credit card companies, large financial institutions, and the government (eg via USPS or IRS). In fact, in many cases, they have long-standing and intimate relationships with millions of "users" and may more easily issue them a digital certificate (such as , credit card companies have sent annual statements to their customers and can add to support that knowledge). A credit card company might like the idea of issuing certificates as a landlord CA to more efficiently run its own similar programs (with hotel chains, airlines, etc. as their tenants). The IRS may have decided to use digital certificates, and leased certificates may then provide them with a revenue stream that will reimburse the costs of building faster and better services.
例11:Example 11:
迄今为止,我们已描述房东和租户CA的方式要求房东CA在发出过程期间与其自己的租户CA合作,并因而其已经预先识别其租户CA。然而,对于房东CA,发出租用的证书设想—假定-20个租户CA实际上是可能的,并未已识别所有或任一这些租户。更合适地,未来的租户CA将能够出租已经发出的证书中的空间。该能力对新证书使能的应用是理想的。而不是忍受发出证书给几百万客户所必须的开支,提供新证书使能的产品的公司可着手处理房东CA,其具有发出的几百万证书,在设备之后出租他们中的空间,并接着签订客户作为大部分房东CA用户,其通过彻夜打开他们所有的相应证书(没有任何客户识别及其它发行费用)并接着根据其自己的规则启动管理他们。我们将在下文中描述各种使能该功能的技术。The way we have described Landlord and Tenant CAs thus far requires that the Landlord CA cooperates with its own Tenant CAs during the issuance process, and thus it already pre-identifies its Tenant CAs. However, for a Landlord CA, issuing certificates for lease assumes that - assuming - 20 tenant CAs are actually possible, not all or any of these tenants have been identified. More suitably, future tenant CAs will be able to lease space in already issued certificates. This capability is ideal for new certificate enabled applications. Rather than suffer the expense necessary to issue certificates to millions of customers, a company offering a new certificate-enabled product could start with a landlord CA that has millions of certificates issued, lease out space in them after the facility, and then Subscribing clients as most landlord CA users, they open all their corresponding certificates overnight (without any client identification and other issuance fees) and then start managing them according to their own rules. We describe various techniques to enable this functionality below.
另外的系统another system
设备确认系统Equipment Confirmation System
现在让我们看看,我们可怎样使本发明的技术适于设备(如移动电话、PDA、射频识别权标、PC、膝上型电脑、VCR、网络设备、路由器、防火墙、置顶盒、CD播放机、游戏机、DVD设备等)。Now let's see how we can adapt the technique of the present invention to devices such as mobile phones, PDAs, radio frequency identification tokens, PCs, laptops, VCRs, network equipment, routers, firewalls, set-top boxes, CD players consoles, game consoles, DVD devices, etc.).
例如,有十足的能力打开这些设备,或让它们继续运行。如果设备被偷窃,例如,希望其不再运行。另一方面,如果其未被偷窃,则其将继续正常地运行。类似地,如果用户“租用”该设备,或支付订费,或代表公司使用设备(如该设备是公司的膝上型电脑),如果其不再支付租金或订费,或不再为公司工作,则设备需要被关掉/禁用。否则,设备应正常运行。同样,这些设备可以动态的方式打开、关闭、再打开。For example, there is ample ability to turn on these devices, or keep them running. If a device is stolen, for example, it is hoped that it will no longer function. On the other hand, if it has not been stolen, it will continue to function normally. Similarly, if the user "rents" the device, or pays a subscription fee, or uses the device on behalf of the company (for example, if the device is a company laptop), if the user no longer pays the rental or subscription fee, or ceases to work for the company , the device needs to be switched off/disabled. Otherwise, the device should function normally. Also, these devices can be turned on, off, and back on in a dynamic fashion.
当然,这些功能可借助于根据本发明的优选实施例的系统来实现。实质上,再次假定,用于具体的但没有任何限制的目的,以每天的间隔,设备可携带数字证书C,其指明有效性字段X,及设备仅在其具有每天的关于X的有效性证据时才可在特定天工作。设备可具有信任的/受保护的时钟来避免被欺骗。设备(特别是移动设备)可被“推”以其自己的每天的有效性证据。或者,设备可向第二实体请求其该天的有效性证据。例如,设备可提供其序列号并接收作为回应的该天的有效性证据。Of course, these functions can be realized by means of the system according to the preferred embodiment of the present invention. In essence, assume again that, for a specific but without any limiting purpose, at daily intervals, a device may carry a digital certificate C specifying a validity field X, and that the device only has evidence of its validity for X each day Only available to work on certain days. Devices can have trusted/protected clocks to avoid spoofing. Devices (especially mobile devices) can be "pushed" with their own everyday evidence of effectiveness. Alternatively, the device may request proof of its validity for that day from the second entity. For example, a device may provide its serial number and receive proof of validity for that day in response.
这可以工作是因为有效性字段的整体性由证书保证,并因而由CA的X的数字签名保证(连同其它信息,如日期信息)。然而,我们可以下述另外的方式保护X的整体性:即,通过以不可改变的方式“烧进”设备:例如,通过将其写入只读存储器中,即芯片(智能卡/PDA/电话/膝上型电脑等芯片组)。在这种方式中,设备的用户不能以任何方式改变X。证据验证算法还可被烧进。从而,一旦特定日的所谓的有效性证据P出现,则P被散列适当的次数并接着与烧进的X比较。更普遍地,在此可使用单向函数F,而不是单向散列函数。从而,整个过程包括制造看起来像这样:This works because the integrity of the validity field is guaranteed by the certificate, and thus by the CA's digital signature of X (along with other information such as date information). However, we can protect the integrity of X in another way: namely, by "burning into" the device in an unalterable way: for example, by writing it into read-only memory, i.e. a chip (smart card/PDA/phone/ chipsets such as laptops). In this way, the user of the device cannot change X in any way. Evidence verification algorithms can also be burned in. Thus, once a so-called proof of validity P for a particular day appears, P is hashed an appropriate number of times and then compared with the burnt-in X. More generally, a one-way function F may be used here instead of a one-way hash function. Thus, the whole process including fabrication looks like this:
第一实体产生初始值IV,并在V的基础上将单向函数F迭代给定的次数,使得获得最后的值FV。第二实体(可能等于第一)将X烧进设备D。设备D具有迭代函数F的装置。设备D随后接收所谓的第n证据值PV,其中n为正整数,并通过基于PV对函数F迭代n次而验证PV并检查所得的值是否等于烧进的值X。The first entity generates an initial value IV, and iterates the one-way function F for a given number of times based on V, so as to obtain a final value FV. A second entity (possibly equal to the first) burns X into device D. The device D has means for iterating the function F. The device D then receives a so-called nth proof value PV, where n is a positive integer, and verifies the PV by iterating the function F n times based on the PV and checks whether the resulting value is equal to the burned-in value X.
设备D可询问其自己的时钟以确保第n证据值对应于当前日期。当前日期实际上可以是自固定日期开始的日期序列中的第n日期。固定日期也可被烧进设备中以保护其整体性。Device D may interrogate its own clock to ensure that the nth evidence value corresponds to the current date. The current date can actually be the nth date in a sequence of dates starting from a fixed date. Fixed dates can also be burned into the device to preserve its integrity.
在每一迭代,函数F可接收另外的输入作为输入(不仅仅是先前计算的值,还有)。例如,D的标识符可以是在每一迭代时的输入。该另外的输入在每一不同的迭代时也可以不同。例如,整数k可以是在迭代k时的输入。At each iteration, the function F may receive additional inputs as inputs (not just previously calculated values, but also). For example, an identifier for D may be an input at each iteration. This additional input can also be different at each different iteration. For example, an integer k may be an input at iteration k.
同样,不可能只有一个单向函数F。事实上,有一连串单向函数,且Fk可以是在迭代k应用的函数。Likewise, it is impossible to have only one one-way function F. In fact, there is a chain of one-way functions, and Fk can be the function applied at iteration k.
有效性字段X(实质上对D是唯一的)还可被用作D的标识符(或其的一部分),以分别节省对D的序列号和有效性字段的处理。The validity field X (essentially unique to D) can also be used as an identifier for D (or a part thereof) to save processing of D's serial number and validity fields, respectively.
迄今为止,所描述的系统可被用于打开或关闭特定的设备D。但其还可被用于打开或关闭特定的唯一一个功能或几个可能功能中的一个。例如,X可以是对于功能FX的有效性字段,Z为功能FZ的有效性字段,以此类推。在这种情况下,接收关于X(Z)的有效性证据意味着功能FX(FZ)在那天在设备D上被打开。这样的另外的有效性字段Z……还可被烧进设备D。同样,其功能与X/Z/……关联的描述/标识符也可被烧进。The systems described so far can be used to switch specific devices D on or off. But it can also be used to switch on or off a specific only one function or one of several possible functions. For example, X may be the validity field for function FX, Z is the validity field for function FZ, and so on. In this case, receiving validity evidence for X(Z) means that function FX(FZ) was opened on device D on that day. Such an additional validity field Z... can also be burned into device D. Likewise, a description/identifier whose function is associated with X/Z/... can also be burned in.
如果可能的功能的数量(及有效性字段的数量)较大,则有效性字段可被Merkle散列并接着Merkle树的根值可被烧进。在这种情况下,要打开功能FX(在特定天),可向设备提供适当的关于X的有效性证据(对于那天的),连同在Merkle树中从X到根的鉴别路径。Merkle鉴别路径算法也可被烧进。If the number of possible functions (and the number of validity fields) is large, the validity field can be Merkle hashed and then the root value of the Merkle tree can be burned in. In this case, to turn on function FX (on a particular day), the device may be provided with appropriate proof of validity for X (for that day), along with an authenticated path from X to the root in the Merkle tree. The Merkle authentication path algorithm can also be baked in.
无时钟设备确认No clock device acknowledgment
如我们已看到的,优选实施例的技术可用于确认设备并将它们打开或关闭以防止它们的误用。通常,该应用的安全性在于设备具有不可由敌人控制的时钟的事实,只有设备的真实所有人才可能控制(如,被解聘的雇员在其被解聘后希望用其还在家的公司的膝上型电脑访问公司数据)。实际上,即使公司不再发出天j的有效性证据,且即使没有这样的有效性证据,设备在天j将不会工作,敌人可对设备的时钟重上发条,以导致设备相信当前日为d<j,接着将正确发出的天d的有效性证据发回设备,从而欺骗设备在天j运行。As we have seen, the technology of the preferred embodiment can be used to identify devices and turn them on or off to prevent their misuse. Typically, the security of this application lies in the fact that the device has a clock that is not controllable by the adversary, only the true owner of the device may control it (e.g., a fired employee wishes to use his company laptop that is still at home after he is fired) computer access to company data). In fact, even if the company no longer sends out proof of validity for day j, and even without such proof of validity, the device would not work on day j, an adversary could rewind the clock of the device to cause the device to believe that the current day j For d<j, then send back the valid proof of day d that was sent correctly to the device, thereby deceiving the device to operate on day j.
优选实施例提供了这样的技术,其在即使设备无时钟即没有时钟或没有安全的时钟的情况下可执行设备确认。The preferred embodiment provides techniques that can perform device validation even if the device is clockless, ie, does not have a clock or does not have a secure clock.
技术设想一确认者,决定特定设备在一连串日期中的特定日期是否应被确认—即打开或关闭--的实体。具体的,但非限制性的,我们假定特定日期为一连串天中的特定天。设备最后具有安全的存储器部件及时钟。尽管不安全的,至少在被打开时设备可告诉特定时钟是否已被重置。例如,只要其保持运行,设备可告诉24小时已过去。确认软件最好被保护在设备中(如,在受保护的存储器部件中运行,或烧进,或位于防火墙内),以避免被以任何方式改变。注意,某些智能卡以类似的方式工作。例如,它们具有受保护的存储器部件,它们可具有最小的功率用于将特定值保持在(如安全的)存储器内,并具有时钟,但不是电池能够使其在任何重要的时间长度运行。因而,一旦插入在读卡机中,智能卡的时钟变得积极的,及卡可准确地监控时间的消逝(如因为时钟也在安全的存储器中),但一旦卡被拿出读卡机,则时钟不再工作,尽管较小的值还可被保留在安全的存储器中。The technology contemplates a validator, an entity that decides whether a particular device should be validated—that is, turned on or off—on a particular date in a sequence of dates. Specifically, but not limitatively, we assume that a specific date is a specific day in a chain of days. The device finally has secure memory components and a clock. Although not secure, at least when turned on the device can tell if a particular clock has been reset. For example, a device may tell that 24 hours have passed as long as it remains running. Verify that the software is preferably protected within the device (eg, running in a protected memory component, or burned into, or located within a firewall) to avoid being altered in any way. Note that some smart cards work in a similar manner. For example, they have protected memory components, they can have minimal power to hold certain values in (eg secure) memory, and have clocks, but not batteries to keep them running for any significant length of time. Thus, once inserted in the reader, the smart card's clock becomes active, and the card can accurately monitor the elapse of time (e.g. because the clock is also in secure memory), but once the card is taken out of the reader, the clock No longer works, although smaller values may be retained in secure memory.
例12:Example 12:
在该方法中,确认者及设备共享密钥K。密钥K最好位于设备的安全存储器部件中。从该密钥K,设备及确认者均能够传输一连串对应于日期序列的不可预知的(对第三方而不是拥有K的方)值。例如,对于每一天1、2……一连串值包括V1=H(K,1)、V2=H(K,2)……其中H为单向散列函数,或每次用密钥K加密1、2……的加密函数。在天j,如果确认者希望设备再多活动一天,其公布(如发送给响应者)值Vj=H(K,j)。现在假定设备在已经于天d活动后在天j被打开,并接着在天j以前被关闭。则设备已将值Vd=H(K,d)或最近天的指示器(如d)保持在存储器中。设备将不会再次运行直到其在天d后得到有效性证据。或者,设备自己持续保存—如在一个变量中—其在天d期间已工作的时间量。因此,当设备被关闭时,其不仅可记住d,而且还记住如6小时10分钟。因而,当其被再次打开时,其将继续工作17小时50分钟。在其后,其其将要求d之后的日子的有效性证据。现在假定设备真地在天j>d被再次打开。则设备获得用于天j的(所谓的)有效性证据Vj(如,在向响应者请求后,其被推以那样的证据或其接收那样的证据)。接着,设备试图看Vj是否是当前在存储器中的证据Vd之后的有效性证据(或关于存储器中的天d之后的天)。例如,设备使用其密钥K继续产生Vd+1,Vd+2…直到值Vj被产生(或者直到超出给定的天数—如设想我们根本不再关心设备在10000天后的工作)。如果这是那样,则其将自己打开另外的24小时(即在存储器中保留新的Vj或j,并适当地运行和监控时钟,使得在持续打开24小时之后,需要新的值Vj+1或Vk,k>j)。In this method, the validator and the device share a key K. The key K is preferably located in a secure memory part of the device. From this key K, both the device and the validator are able to transmit a sequence of unpredictable (to a third party other than the party owning K) value corresponding to a sequence of dates. For example, for each
设备可通过不公布或反馈以将来的有效性证据而被关闭,或通过公布或使其接收一特殊的值如H(K,NO MORE)或保存在存储器中的特殊值Vnomore而被关闭。设备可通过公布或使其接收一特殊的值如H(K,suspend,j)而被中止。用于有效性、废除及中止证据的密钥可以是相同的或不同的。The device can be turned off by not publishing or feeding back evidence of future validity, or by publishing or making it receive a special value like H(K, NO MORE) or a special value Vnomore kept in memory. A device can be suspended by posting or having it receive a special value such as H(K, suspend, j). The keys used for validity, revocation and suspension proofs may be the same or different.
这已经提供了大量保护。假定设备在天j-1尚正常地使用,但接着被偷窃,且没有对于天j的有效性证据曾被公布或被使得可用于该设备。接着,无论在被偷窃之前设备是否已被关闭,其将在天j的开始停止工作。事实上,如果其已被关闭,当恢复它将需要j-1天后的那天的有效性证据以将其自己正常地打开时,没有这样的证据出现。如果在偷窃时其是打开的,至多24小时之后其将停止工作。This already provides a great deal of protection. Assume that the device was in normal use on day j-1, but was then stolen, and no evidence of validity for day j was ever published or made available for the device. Then, regardless of whether the device was turned off before being stolen, it will stop working at the beginning of day j. In fact, if it had been turned off, when restoring it would require proof of validity of the day j-1 days later to turn itself on normally, no such evidence appears. If it was open at the time of the theft, it will stop working after up to 24 hours.
最坏的情况是,设备被打开(例如在天j-3),并因而记入有效性证据Vj-3的占有,并接着被关闭。假定设备在这时被偷窃且其丢失直到天j-1才被通知,或者设备在天j-1被偷窃且敌人记录设备可能已看到的值Vj-2和Vj-1。则这样的敌人可至多反馈这两个值给设备并使其至多再工作两天。In the worst case, the device is switched on (for example on day j-3), and thus credits possession of the validity evidence Vj-3, and is then switched off. Suppose the device is stolen at this time and its loss is not notified until day j-1, or the device is stolen on day j-1 and the enemy records the values Vj-2 and Vj-1 that the device may have seen. Then such an enemy can at most feed back these two values to the device and make it work for at most another two days.
例13:Example 13:
该方法实质上如例11中公开的方法一样工作,其使用一连串不可预知的值,在一连串日期的每一日期(如,非限制性的,天)公布或使其可用于设备,时钟不安全等,但没有在设备中使用密钥。例如,设备保存Xk及如上所述并使用同样的变量基于初始值XO迭代一(或多个)单向函数F k次的结果。接着Xk被写入防火墙(如以不可改变的方式)或保存在存储器的受保护的部分。天j的有效性证据简单地为Xk-j,如本发明的基础方案中那样。再次地,中止和废除可以类似的方式出现。This method works essentially as the method disclosed in Example 11, using a sequence of unpredictable values, published or made available to the device at each date (eg, non-limiting, day) in the sequence, the clock is not secure etc, but no keys are used in the device. For example, the device saves Xk and the result of iterating one (or more) one-way functions F k times based on the initial value X0 using the same variables as described above. Xk is then written to the firewall (eg in an immutable manner) or stored in a protected part of memory. The validity proof for day j is simply Xk-j, as in the underlying scheme of the present invention. Again, suspension and repeal can occur in a similar fashion.
RTC物理访问结构RTC physical access structure
在混合环境中的多特权管理Multi-Privilege Management in Hybrid Environments
加强的访问控制系统必须回答用于每一用户的两个问题。第一问题为鉴别或识别:“你是你说的那个人吗?”该问题通常通过识别证章、钥匙生物测定特征或密码而直接或间接地提出。这些为长久的用户识别提供了合理的回答,但没有提出时间更紧急的确认问题:“你当前被允许做你想做的了吗?”An enhanced access control system must answer two questions for each user. The first question is authentication or identification: "Are you who you say you are?" This question is usually asked directly or indirectly through an identification badge, key biometric or password. These provide reasonable answers to long-term user identification, but do not ask the more urgent confirmation question: "Are you currently allowed to do what you want?"
例如,识别证章可告诉你Alice已在最近的10年作为雇员被雇请,但不能单独地确定她依然是具有计算机服务器房间的访问许可的雇员。For example, an identification badge may tell you that Alice has been employed as an employee for the last 10 years, but cannot alone determine that she is still an employee with access to a computer server room.
对于物理访问控制,安全的锁必须通过鉴别来确定身份,并接着执行确认以确定用户当前的特权是否允许进入。某些锁通过有线的网络连接到中央托管的许可机构来执行该确认。整个基于网络有线锁的物理访问解决方案具有两个很大的限制。每一有线锁的成本包括安全配线、现场控制面板、及劳工的成本,总共每门几千美元。有线结构的区域限于可通过永久网络而轻松地访问的锁。这阻止了用于移动的或很难到达那些如汽车、存储集装箱、有用的橱柜等上的锁的加强的访问控制。For physical access control, a secure lock must authenticate to determine identity and then perform validation to determine if the user's current privileges allow entry. Some locks perform this validation through a wired network connection to a centrally hosted licensing authority. The whole physical access solution based on network wired locks has two big limitations. The cost of each wired lock includes the cost of security wiring, field control panels, and labor, totaling several thousand dollars per door. Areas of wired structures are limited to locks that are easily accessible through a permanent network. This prevents enhanced access control for locks on mobile or hard to reach ones such as cars, storage containers, utility cabinets and the like.
根据本发明的优选实施例的实时凭证技术提供了安全的方式,其对有线的及分离的锁执行有效的物理访问确认。这允许智能门锁在不要求到每一锁的昂贵网络连接的情况下确认当前用户的特权和许可。The real-time credential technology according to the preferred embodiment of the present invention provides a secure way to perform effective physical access confirmation to both wired and detached locks. This allows smart door locks to confirm the current user's privileges and permissions without requiring an expensive network connection to each lock.
本公开内容描述了几种结构,其可用于基于大量独立的用户特权而提供分离的确认。每一结构提供与现有的访问控制硬件和软件的互用性,以用在不同种类的安装中。对于每一结构,本文将描述实时凭证是怎样提供另外的灵活性的,同时引人注目地降低了高安全性的总成本。This disclosure describes several structures that can be used to provide separate validation based on a number of independent user privileges. Each architecture provides interoperability with existing access control hardware and software for use in different kinds of installations. For each architecture, this article describes how real-time credentials provide additional flexibility while dramatically reducing the overall cost of high security.
下面,描述的所有四个结构特征在于同一RTC确认过程。在这些方案之间的主要区别在于鉴别用户的过程,其影响价格及与现有访问解决方案的兼容性。In the following, all four structures described are characterized by the same RTC confirmation procedure. The main difference between these solutions is the process of authenticating users, which affects price and compatibility with existing access solutions.
无接触ID/存储器Contactless ID/Memory
第一RTC确认结构为基于具有读/写存储器访问的无接触ID卡的访问控制环境。这被使用普通的MIFARETM标准无接触卡作为例子进行描述,但该确认解决方案可同样用于任何存储器ID卡。The first RTC confirmation structure is an access control environment based on a contactless ID card with read/write memory access. This is described using a common MIFARE ™ standard contactless card as an example, but the validation solution can equally be used for any memory ID card.
当MIFARE ID卡被用在当前网络化的物理访问环境中时,锁从卡读ID并将其传输给附近的面板或服务器,其检查特权并执行确认。鉴别过程为卡ID的确定,确认过程被基于该ID而远程处理。When MIFARE ID cards are used in today's networked physical access environment, the lock reads the ID from the card and transmits it to a nearby panel or server, which checks for privileges and performs validation. The authentication process is the determination of the card ID, based on which the validation process is processed remotely.
本发明的物理访问解决方案可保持与该种有线门的兼容性,并增加对分离的门的支持,其通过使用卡的读/写存储器以保存该卡的数字签署的“确认证据”而实现。该证据被定期在任何网络化的读卡机写到卡中,接着其可在任何分离的锁处被读以建立该用户的当前有效性及许可。The physical access solution of the present invention maintains compatibility with such wired doors and adds support for separate doors by using the card's read/write memory to hold a digitally signed "proof of confirmation" for the card . This evidence is periodically written to the card at any networked card reader, which can then be read at any separate lock to establish the user's current validity and permissions.
下面的表示出了保存在卡上的RTC确认证据的逻辑内容,连同每一组成的存储要求:The following table shows the logical content of an RTC confirmation proof stored on the card, along with the storage requirements for each component:
卡ID:#123456 4字节Card ID: #123456 4 bytes
状态:卡有效 1字节Status: card valid 1 byte
开始时间:8/4/03 09:00 4字节Start time: 8/4/03 09:00 4 bytes
结束时间:8/5/04 08:59 4字节End time: 8/5/04 08:59 4 bytes
授权:ACME Inc. 20字节Authorization: ACME Inc. 20 bytes
特权:R&D实验室 1位到10字节Privilege:
停车 1位到10字节
柜53 1位到10字节Cabinet 53 1 bit to 10 bytes
终端B 1位到10字节
数字签名 42字节Digital signature 42 bytes
总大小:~100字节Total size: ~100 bytes
当用户通过有线门进入一设施时,门检索用户的上述格式的全部确认证据,并将其放置在卡上的存储器区域中。一旦证据被装载在卡上,分离的锁可通过下述步骤确认用户的许可:When a user enters a facility through a wired door, the door retrieves the user's entire proof of identification in the format described above and places it in a memory area on the card. Once evidence is loaded on the card, the detached lock can confirm the user's permission through the following steps:
(1)通过检索用户的卡ID执行标准鉴别;(1) Perform standard authentication by retrieving the user's card ID;
(2)从存储器检索RTC确认证据;(2) Retrieve RTC confirmation evidence from memory;
(3)验证数字签名与信任的机构的现有公钥匹配;(3) verify that the digital signature matches the existing public key of the trusted institution;
(4)验证证据是最新的(使用开始和结束时间);(4) verify that the evidence is up to date (use start and end time);
(5)验证卡是有效的;(5) Verify that the card is valid;
(6)基于证据的特权检查随机访问控制需求。(6) Evidence-based privilege checks for random access control requirements.
分离的锁基于特权而不是单个用户的ID被配置以一套访问控制规则。例如,锁可被配置来仅允许用户有“停车”特权,且仅在营业时间。由于单个用户的特权可通过RTC确认证据改变,当添加新用户时锁本身不需要被改变或抹掉以改变访问许可。此外,锁不需要保存任何密钥或数据,其意味着单个的锁可被分解,而不降低整个系统的安全性。Separate locks are configured with a set of access control rules based on privileges rather than individual user IDs. For example, the lock can be configured to only allow the user to have "parking" privileges, and only during business hours. Since the privileges of individual users can be changed via RTC confirmation evidence, the lock itself does not need to be altered or erased to change access permissions when new users are added. Furthermore, the lock does not need to hold any keys or data, which means that individual locks can be disassembled without reducing the security of the overall system.
根据本发明的优选实施例的RTC确认证据具有使它们对物理访问控制环境非常有功效的某些特征。由于证书是数字签署的,它们是不可伪造和纂改的证据。由于证据不包含任何密钥,它们可以是公开的,并没有安全风险的传输。证书足够小以被保存在低端存储卡上。RTC validation evidences according to preferred embodiments of the present invention have certain characteristics that make them very effective for physical access control environments. Since certificates are digitally signed, they are proofs that cannot be forged and altered. Since proofs do not contain any keys, they can be public and transmitted without security risk. Certificates are small enough to be stored on low-end memory cards.
这些特征允许RTC确认证据用在如MIFARE标准的卡中,同时还对每卡数千独立用户特权提供高安全性密码确认。These features allow RTC confirmation evidence to be used in cards such as the MIFARE standard, while still providing high security cryptographic confirmation of thousands of unique user privileges per card.
成本。MIFARE 1k标准卡可在$1到$5之间获得,其价格取决于制造商和容量。基于MIFARE卡和RTC确认技术的分离的锁可在每门$500以下制造。使用该装置,单个的门或容器在$1000以下即可是安全的。cost. MIFARE 1k standard cards are available between $1 and $5 depending on the manufacturer and capacity. Separate locks based on MIFARE cards and RTC validation technology can be manufactured for under $500 per door. With this unit, individual doors or containers can be secured for under $1000.
安全性。简单的ID鉴别针对复制和伪造提供较弱的保护。与PKI保护结合的第二和第三因素鉴别可用于增加鉴别安全性。凭证确认由强大的PKI加密保护,防止许可伪造和修改。safety. Simple ID authentication provides weaker protection against copying and forgery. Second and third factor authentication combined with PKI protection can be used to increase authentication security. Credential validation is protected by strong PKI encryption, preventing license forgery and modification.
无接触共享的秘密Contactless shared secrets
RTC凭证确认还可与身份证如HID的iClass一起使用,其使用直接或间接与所有读卡机共享的密码信息执行确认。锁将使用随机的挑战/响应协议对卡执行鉴别,前述协议证明卡知道对其ID的秘密通信。RTC credential validation can also be used with ID cards such as HID's iClass, which performs validation using cryptographic information shared directly or indirectly with all readers. The lock will authenticate the card using a random challenge/response protocol that proves that the card knows the secret communication of its ID.
用于共享的秘密卡的RTC确认与用于简单的ID卡的确认是一样的。当用户进入有线的门时,锁将当前RTC确认证据写到用户的卡上。该证据随后由分离的读卡机检索以用于离线确认。The RTC validation for a shared secret card is the same as for a simple ID card. When the user enters the wired door, the lock writes the current RTC confirmation evidence to the user's card. This evidence is then retrieved by a separate reader for offline validation.
成本。具有存储器的无接触共享的秘密卡可在$5到$10之间获得,其价格取决于制造商和容量。基于共享的秘密卡和RTC确认技术的分离的锁可在每门$500以下制造。使用该装置,单个的门或容器在$1000以下即可是安全的。cost. Contactless shared secret cards with memory are available for between $5 and $10, depending on manufacturer and capacity. Separate locks based on shared secret cards and RTC validation technology can be manufactured for under $500 per door. With this unit, individual doors or containers can be secured for under $1000.
安全性。共享的秘密鉴别减少了单个卡的复制机会,但单一的离线读卡机可允许许多卡的复制。凭证确认由强大的PKI加密保护,防止许可伪造和修改。safety. Shared secret authentication reduces the chance of duplication of a single card, but a single off-line card reader can allow the duplication of many cards. Credential validation is protected by strong PKI encryption, preventing license forgery and modification.
无接触PKIContactless PKI
能够执行公钥数字签名的卡提供最高级别的鉴别安全性。这包括基于MIFARE PRO X芯片的卡及许多高端JavaCard。锁在不要求锁中的任何敏感信息的情况下可基于挑战/响应协议鉴别卡。这大大降低了钥匙复制的风险。Cards capable of performing public key digital signatures provide the highest level of authentication security. This includes cards based on MIFARE PRO X chips as well as many high-end JavaCards. The lock can authenticate cards based on a challenge/response protocol without requiring any sensitive information in the lock. This greatly reduces the risk of key duplication.
用于公钥卡的RTC确认与用于简单的ID卡的确认是一样的。当用户进入有线的门时,锁将当前RTC确认证据写到用户的卡上。该证据随后由分离的读卡机检索以用于离线确认。The RTC confirmation for a public key card is the same as for a simple ID card. When the user enters the wired door, the lock writes the current RTC confirmation evidence to the user's card. This evidence is then retrieved by a separate reader for offline validation.
卡的公钥通常将由数字证书表示,其可被用于另外的应用如计算机访问及电子邮件安全。高端公钥卡可支持另外的应用如信息安全或保存的值,其有助于降低每一应用的总成本。The card's public key will usually be represented by a digital certificate, which can be used for additional applications such as computer access and email security. High-end public key cards can support additional applications such as information security or stored value, which helps to reduce the overall cost per application.
成本。无接触PKI卡可在$10到$20之间获得,其价格取决于制造商和容量。基于MIFARE卡和RTC确认技术的分离的锁可在每门$500以下制造。使用该装置,单个的门或容器在$1000以下即可是安全的。cost. Contactless PKI cards are available for between $10 and $20, depending on the manufacturer and capacity. Separate locks based on MIFARE cards and RTC validation technology can be manufactured for under $500 per door. With this unit, individual doors or containers can be secured for under $1000.
安全性。PKI卡能够对锁提供强大的密码鉴别,具有较低的危及钥匙风险或卡复制的风险。凭证确认由强大的PKI加密保护,防止许可伪造和修改。safety. PKI cards can provide strong cryptographic authentication of locks with low risk of key compromise or card duplication. Credential validation is protected by strong PKI encryption, preventing license forgery and modification.
遍历散列序列的技术Techniques for Traversing a Sequence of Hash
H为单向散列函数。长度n的散列链是值x0,x1,...,xn的收集,使得H(xi)=xi-1。当xi-1很容易从xi计算时,由于H的单向性,相反方向的计算是不可行的。H is a one-way hash function. A hash chain of length n is a collection of values x 0 , x 1 , . . . , x n such that H( xi )= xi-1 . While xi -1 is easily computed from xi , computation in the opposite direction is infeasible due to the unidirectionality of H.
下面是散列链的表示:Here is a representation of a hash chain:
X0(H)x1(H)...(H)xn-1(H)xn X 0 (H)x 1 (H)...(H)x n-1 (H)x n
在许多应用中(如,文档确认及特权管理服务),能够遍历散列链是必要的,即在某一时间段(如为一年的一天输出一值)按顺序产生值x0,x1,...xn(在上述链中,从左到右)。注意,左到右的顺序使该问题很难,因为H的单向性。在通过简单地重复应用H而很容易以顺序x0,x1,...xn产生和输出时,相反的顺序要求更多的时间和/或存储器。In many applications (e.g., document validation and privilege management services), it is necessary to be able to traverse the hash chain, that is, to generate the values x 0 , x 1 in sequence during a certain period of time (such as outputting a value for a day of the year). , ... x n (in the above chain, from left to right). Note that the left-to-right order makes this problem hard because of the unidirectionality of H. While it is easy to generate and output in the order x 0 , x 1 , . . . x n by simply repeatedly applying H, the reverse order requires more time and/or memory.
两个明显的途径是:Two obvious avenues are:
仅保存一值xn,及,为了输出xi,计算Hn-1(xn);save only one value x n , and, to output x i , compute H n-1 (x n );
保存所有值x0,x1,...xn,当它们被输出时将其擦除。All values x 0 , x 1 , ... x n are saved and erased when they are output.
第一途径要求两个散列值(一个用于xn,另一用于计算xi)的存储及总共n(n+1)/2次H的求值,或者,平均地,每值输出n/2次的求值。第二途径要求n+1个散列值的存储及共n次H的求值,或者平均地,每值输出1次求值。The first pass requires the storage of two hash values (one for x n and the other for computing xi ) and a total of n(n+1)/2 evaluations of H, or, on average, each output n/2 evaluations. The second pass requires the storage of n+1 hash values and a total of n evaluations of H, or on average, 1 evaluation per value output.
我们感兴趣的是中间的方案:提供其它存储器(保存的散列值数量)对时间(所需的H的求值的数量)的平衡。We are interested in solutions in the middle: providing a balance of other memory (number of hash values saved) versus time (number of evaluations of H required).
一算法已在现有技术中提出,其导致下述平衡:保存 散列值,且至多每散列值输出 次H的计算。(见Don Coppersmithand Maruks Jakobsson,Almost Optimal Hash Sequence Traversal,in Matt Blaze,editor,Financial Cryptography:SixthInternational Conference(FC’02),Southhampton,Bermuda,11-14,March 2002)。An algorithm has been proposed in the prior art, which leads to the following balance: Preserving hash value, and output at most every hash value The calculation of times H. (See Don Coppersmith and Maruks Jakobsson, Almost Optimal Hash Sequence Traversal, in Matt Blaze, editor, Financial Cryptography: Sixth International Conference (FC'02), Southhampton, Bermuda, 11-14, March 2002).
具有常数存储器的新算法New algorithm with constant memory
Jakobsson的方法要求关于log2n散列值的存储,且在只有较少的存储量可用时不能使用该方法。注意,对于长度365的散列链,这意味着9个值需要被保存,对于长度1000000的散列链,这意味着20个值需要被保存。我们更愿意使用要求较低存储量的算法。此外,我们希望能够独立于散列链长度而指明存储量要求。这种方式,同样的存储量将被要求管理短链及长链;因而,如果散列链变化,则不需获得新的存储器。Jakobsson's method requires storage on log 2 n hash values and cannot be used when only a small amount of storage is available. Note that for a hash chain of length 365, this means 9 values need to be saved, and for a hash chain of length 1000000, this means 20 values need to be saved. We prefer to use algorithms that require less storage. Additionally, we want to be able to specify storage requirements independent of hash chain length. This way, the same amount of memory will be required to manage both short and long chains; thus, no new memory needs to be acquired if the hash chain changes.
为了论证该算法的方便。我们称值xj为算法在位置j保存一卵石。接着卵石被“允许”:(i)移到另一卵石所在的位置(这对应于拷贝值),或,(ii)自其当前位置向左移一步(这对应于求值H)。初始地,卵石可起程于散列链上的随机位置。In order to demonstrate the convenience of the algorithm. We call the value x j the algorithm saves a pebble at position j. The pebble is then "allowed" to: (i) move to where another pebble was (this corresponds to the copy value), or, (ii) move one step to the left from its current position (this corresponds to evaluating H). Initially, the pebble may start at a random position on the hash chain.
注意,卵石的数量对应于保存的散列值的数量,卵石向左一步所花的时间数量对应于H的求值数量。接着,我们的目标是提出在给定特定量的卵石的情况下降低卵石步骤(我们将称为“成本”)的数量的算法。Note that the number of pebbles corresponds to the number of saved hashes, and the amount of time it takes a pebble to move left corresponds to the number of H evaluations. Next, our goal is to come up with an algorithm that reduces the number of pebble steps (which we will call "cost") given a certain amount of pebbles.
两个卵石(Pebble)Two Pebbles
很清楚的是,如果xn未被保存,在n总是需要一卵石,当其在遍历结束时被需要时,没有办法去重新获得它因而没有办法输出它。同样清楚的是,在当前位置i总是需要一卵石,以能够输出xi。因而,至少需要两个卵石。Clearly, if x n is not saved, a pebble is always needed at n, and when it is needed at the end of the traversal, there is no way to retrieve it and thus no way to output it. It is also clear that a pebble is always required at the current position i in order to be able to output x i . Thus, at least two pebbles are required.
如果只使用两个卵石,则它们之一必须总是呆在xn,而另一个没有任何选择,只能每次从xn开始并移到xi。因而,两个卵石的最好算法需要花n(n+1)/2步,或平均每输出n/2步。例如,对于长度1000000的散列链,每值输出的步骤的平均数是500000。If only two pebbles are used, one of them must always stay at x n , and the other has no choice but to start at x n and move to x i each time. Thus, the best algorithm for two pebbles takes n(n+1)/2 steps, or n/2 steps per output on average. For example, for a hash chain of length 1000000, the average number of steps per value output is 500000.
三个卵石three pebbles
如果在绝对必要的2个卵石基础上增加一个卵石,其结果是我们可引人注目地改善步骤的数量。If we add a pebble to the absolutely necessary 2 pebbles, the result is a dramatic improvement in the number of steps we can take.
我们将按如下进行:将散列链分成长度为s的间隔,其中(注意,将有n/s sqrt{n}个间隔)。将卵石数3放在xn,卵石数2在xs。接着,使用上述的两卵石算法,使用卵石数1遍历点x0...xs(每次在xs开始)。接着将卵石数2放在x2s(通过在xn开始并向左移动),并再次使用两卵石的算法遍历xs+1,...x2s。继续以这种方式,对于长度s的间隔,每次均使用两卵石的算法。We will proceed as follows: Divide the hash chain into intervals of length s, where (Note that there will be n/s sqrt{n} intervals). Put pebble number 3 at x n and
该算法的步骤的总数可计算如下:使用两卵石遍历每一间隔,我们需要s(s+1)/2步。此外,在遍历前将卵石数2移到每一间隔的开始,我们需要(n-s)+(n-2s)+...+s+0(n/s)(n/2)步。调用
则没输出值的平均步骤数为
The total number of steps of the algorithm can be calculated as follows: using two pebbles to traverse each interval, we need s(s+1)/2 steps. Also, to move the
因而,增加到三个卵石与最小的两个相比,可允许我们将每值输出的时间从n/2减少到sqrt{n}。该减少实际上是引人注目的:例如,对于长度1000000的散列链,每值输出的步骤平均数为1000(而对于两个卵石,则需要500000)。Thus, increasing to three pebbles compared to a minimum of two allows us to reduce the time per value output from n/2 to sqrt{n}. The reduction is actually dramatic: for example, for a hash chain of length 1000000, the average number of steps per value output is 1000 (whereas for two pebbles it takes 500000).
四个卵石four pebbles
如果我们还有其它卵石可用,我们可再次将散列链分为间隔。这次,我们将设定s=|sqrt{n(2/3)}|,并将整个链分为长度为s的n/sn(1/3)个间隔。If we have other pebbles available, we can divide the hash chain into intervals again. This time, we will set s = |sqrt{n (2/3) }| and divide the whole chain into n/sn (1/3) intervals of length s.
接着我们将卵石数4放在n,并将其使用为卵石数3的开始点,其将移到大小为s的每一间隔的开始点,以从左到右的顺序。在每一间隔,我们将使用上述的三卵石遍历算法。即,我们还将每一间隔细分为大小为
的子间隔,并将卵石数2放在每一子间隔的开始,以从左到右的顺序(卵石数2将开始,每次,及卵石数3)。接着卵石数1将遍历子间隔,每次在卵石数2开始。Next we place pebble number 4 at n and use it as the starting point for pebble number 3, which will move to the starting point of each interval of size s, in order from left to right. At each interval, we will use the three-pebble traversal algorithm described above. That is, we also subdivide each interval into subintervals, and place
因而,遍历每一间隔的成本将为sqrt{s},或|n(1/3)|每值输出。这样,我们不得不增加将卵石数3移到每一间隔的开始的成本。卵石数3将被移动n/s次:首先n-s步,接着n-2s步,以此类推,得出每值输出(n/s)/2n(1/3)/2的平均成本。Thus, the cost of traversing each interval will be sqrt{s}, or |n (1/3) | per value output. Thus, we have to increase the cost of moving the pebble number 3 to the beginning of each interval. The pebble number 3 will be moved n/s times: first n steps, then n-2s steps, and so on, giving an average cost per value output of (n/s)/2n (1/3) /2.
因而,每值输出的步骤的平均数为|1.5n(1/3)|。再一次地,使用长度1000000的链,每值输出的步骤的平均数为150。Thus, the average number of steps output per value is |1.5n (1/3) |. Again, using a chain of length 1000000, the average number of steps per value output is 150.
推广到更多的卵石roll out to more pebbles
从上述例子形成的更一般的技术如下:给定c个卵石,将散列链分为每一长度为n((c-2)/(c-1))的n(1/(c-1))个间隔。在每一这些间隔上使用c-1个卵石的技术。每值输出的平均成本将为((c-1)/2)n(1/(c-1))}。A more general technique derived from the above example is as follows: given c pebbles, divide the hash chain into n ( 1/ (c-1) each of length n ((c-2)/(c-1)) )) intervals. A technique of c-1 pebbles is used on each of these intervals. The average cost per value output will be ((c-1)/2)n (1/(c-1)) }.
该推广被认为不仅可用于常数的卵石,而且,例如可用于c=1+log2n。在这种情况下,使用等式n1/log2n=2,使用我们的算法我们计算每值输出的平均成本将为log2n。This generalization is believed to be valid not only for constant pebbles, but also, for example, for c=1+log 2 n. In this case, using the equation n 1 /log2n = 2, using our algorithm we calculate that the average cost per value output will be log 2 n.
改善最坏情况的费用Worst-case cost of improvement
即使上述技术获得了较好的一般情况的每输出值成本,某些输出值将较其它值花更长的时间计算。Even though the above technique achieves a good general case cost per output value, some output values will take longer to compute than others.
例如,采用3个卵石的例子。每次我们遍历s卵石时,我们不得不重新定位卵石数2。因而,在间隔的最左端的输出值将花更长的时间计算;例如,要计算xs+1,我们将需要进行n-(s+1)步。另一方面,在间隔内的所有其它卵石将至多s步。For example, take the example of 3 pebbles. Every time we traverse s pebbles, we have to reposition the
当然,在一些应用中这可能出现严重的问题:所涉及的计算装置不得不足够快以处理这些“坏”的情况。但如果其已经那样快时,则看上去不具有较好的“一般”情况:我们还宁愿需要强有力的计算装置,其在一般情况下简单地闲着。Of course, in some applications this can present serious problems: the computing means involved have to be fast enough to handle these "bad" cases. But if it's already that fast, it doesn't seem to have a better "normal" situation: we'd rather need a powerful computing device that simply sits idle under normal conditions.
为了防止这个问题,我们需要使最坏情况的输出值成本接近于一般情况的输出值成本。在三个卵石的情况下,这可通过仅增加一个额外的卵石实现。称为卵石“2a”。其工作是提前移到卵石2接下来将移到的位置。例如,当卵石2位于点s时,卵石2a将在点n开始移向点2s。其将在卵石2需要在点2s时准确地到达点2s-在值s被输出之前。To prevent this problem, we need to make the worst-case output value cost close to the general-case output value cost. In the case of three pebbles, this can be achieved by adding only one extra pebble. Called Pebble "2a". Its job is to move ahead to where
因而,在任何给定的大小为s的间隔正被遍历时,卵石2a将在位置n开始并向左移到下一间隔的开始。注意,卵石2a需要较n步少的步骤以到达其目的地。对于卵石2a,明显的途径是采取至多n/s步用于间隔中的每一输出值。这可导致每输出值
步的最坏情况的成本。然而,注意,可做得更好:因为卵石1对于间隔左端的值较间隔右端的值将花更多的步骤,为减少最坏情况的成本,卵石2a应“慢慢地”起程并接着“加速”。这种方式,卵石1和2a所用的步骤总数将为常数。具体地,卵石2a首先花(n/s)/2步,接着花(n/s)/2+1步,以此类推,直到间隔的最后值被输出时的3(n/s)/2步。这将最坏情况的成本进一步减小到
Thus, when any given interval of size s is being traversed, pebble 2a will start at position n and move left to the beginning of the next interval. Note that pebble 2a requires n fewer steps to reach its destination. For Pebble 2a, the obvious approach is to take at most n/s steps for each output value in the interval. This results in output values per The worst-case cost of the step. Note, however, that it can be done better: since
应注意的是,步骤总数因而及每输出值的平均成本不会随该额外的卵石的添加而增加。这是因为,额外的卵石将不做任何额外的工作,只是稍微提前做工作。因而,对于长度1000000的散列链,最坏情况的成本将是1500,而一般情况的每输出值成本为1000。It should be noted that the total number of steps and thus the average cost per output value does not increase with the addition of this extra pebble. This is because, the extra pebbles will not do any extra work, just slightly ahead of time. Thus, for a hash chain of length 1000000, the worst case cost would be 1500, while the general case cost per output value would be 1000.
该方法可延伸到更多的卵石。如果我们采用具有4个卵石的解决方案,并增加卵石2a和3a,其分别提前移到卵石2和3的适当位置,我们将把最坏情况的成本减小到|2n1/3|。再次使用长度1000000的链的例子,最坏情况的成本将是200,而每输出值的一般情况的成本为150。This method can be extended to more pebbles. If we take the solution with 4 pebbles, and add pebbles 2a and 3a, which are moved ahead of time in place of
因此,一般而言,使用2c-2个卵石,我们可以每输出值((c-1)/2)n{1/(c-1)}的平均成本遍历散列链,且对于任何给定的输出值,最坏情况的成本为(c/2)n{1/(c-1)}。Thus, in general, using 2c-2 pebbles, we can traverse the hash chain at an average cost per output value ((c-1)/2)n {1/(c-1)} , and for any given The output value of , the worst-case cost is (c/2)n {1/(c-1)} .
再次,该推广被认为不仅可用于常数的卵石,而且,例如可用于c=1+log2n。在这种情况下,使用2log2n个卵石,我们的算法将以每输出值log2n的平均成本遍历散列链,且最坏情况的成本为1+log2n。Again, this generalization is considered not only for constant pebbles, but also, for example, for c=1+log 2 n. In this case, using 2log2n pebbles, our algorithm will traverse the hash chain at an average cost of log2n per output value, with a worst-case cost of 1+ log2n .
最佳解决方案best solution
下面我们描述,给定任何数量c的卵石,用于获得具有可证实地最佳总(因而及每输出值的平均)计算成本的算法。然而,注意,对于较小的值c,该可证实地最佳解决方案相比于上面的解决方案仅将稍微地较少步骤数。Below we describe, given any number c of pebbles, an algorithm for obtaining a provably optimal total (and thus average per output value) computational cost. Note, however, that for small values of c, the provably optimal solution will only have slightly fewer steps than the solution above.
假定我们具有c个卵石。我们必须保存xn,其占有1个卵石。接着,另一卵石将被移到xk(某些k将在下面确定),其对xn应用Hn-k次。接着,递归地,对c个卵石使用最佳解决方案以按顺序输出值xk+1,...,xn。这再次等于遍历了一较短的链—长度为n-k,因为第一k值已经被遍历。Suppose we have c pebbles. We must save x n , which occupies 1 pebble. Next, another pebble will be moved to x k (some k will be determined below), which applies Hn-k times to x n . Then, recursively, use the best solution on the c pebbles to output the values x k+1 , . . . , x n in order. This again amounts to traversing a shorter chain—of length nk, since the first k values have already been traversed.
现在,定义F(c,n)为遍历长度为n的散列链所必须的步骤数,同时在任何给定时间保存不多于c个卵石。很明显地,对于任何c≥1,F(c,0)=0,及对于任何n,F(0,n)=。接下来,在我们的上述方法中,F(k,n)=mink F(c-1,k)+F(c,n-k-1)+n-k,且k应被选择使得F(c,n)最小。Now, define F(c,n) to be the number of steps necessary to traverse a hash chain of length n while holding no more than c pebbles at any given time. Clearly, F(c,0)=0 for any c≧1, and F(0,n)=0 for any n. Next, in our above method, F(k,n)=min k F(c-1,k)+F(c,nk-1)+nk, and k should be chosen such that F(c,n ) minimum.
对于特定c和n,发现最佳点k是以memoization(a.k.a.动态编程)递归的简单事情。我们提出用C语言实现该任务。这样的最佳点可被提前容易地发现,并继而集成在散列遍历编码中。For a particular c and n, finding the optimal point k is a simple matter of memoization (a.k.a. dynamic programming) recursion. We propose to implement this task in C language. Such sweet spots can be easily found in advance and then integrated in the hash traversal coding.
我们的用于任何数量的存储器的最佳解决方案的实施Implementation of our optimal solution for any amount of memory
#include″stdio.h″
int **table;
int **ktable;
int f(int r,int n)
{
int k,t_min=-2,t,k_min=-2,t1,t2;//-2 Stands for
infinity;
//-1 stands for uninitialized
if(table[r][n]!=-1)
return table[r][n];
if(n==0 && r>0){
table[r][n]=0;
ktable[r][n]=0;
return 0;
}
if(r==0){
table[r][N]=-2;
ktable[r][n]=-2;
return-2;
<!-- SIPO <DP n="65"> -->
<dp n="d65"/>
}
for(k=0;k<n;k++){
t1=f(r-1,k);
if(t1==-2)
continue;
t2=f(r,n-k-1);
if(t2==-2)
continue;
t=t1+t2+n-k;
if(t<t_min||t_min=-2){
t_min=t;
k_min=k;
}
}
table[r][n]=t_min;
ktable[r][n]=k_min;
return table[r][n];
}
void main()
{
int max_r,max_n,i,j;
printf(″max balls:″);
<!-- SIPO <DP n="66"> -->
<dp n="d66"/>
scanf(″% d″,&max_r);
printf(″chain length:″);
scanf(″% d″,&max_n);
table=(int**)malloc((max_r+1)*sizeof(int));
ktable=(int**)malloc((max_r+1)*sizeof(int));
if(table==NULL||ktable=NULL){
printf(″Out of memory!\n″);
retUrn;
}
for(i=0;i<=max_r;i++){
table[i]=(int*)malloc((max_n+1)*sizeof(int));
ktable[i]=(int*)malloc((max_n+1)*sizeof(int));
if(table[i]==NULL||ktable[i]=NULL){
printf(″Out of memory!\n″);
return;
}
for(j=0;j<=max_n;j++)
ktable[i][j]=table[i][j]=-1;
}
for(i=0;i<=max_r;i++)
<!-- SIPO <DP n="67"> -->
<dp n="d67"/>
for(j=0;j<=max_n;j++)
f(i,j);
printf(″\nTable for F(r,n)--the number of steps needed:
\nn\\r″) ;
for(i=0;i<=max_r;i++)
printf(″% 6d″,i);
printf(″\n″);
for(j=0;j<=max_n;j++){
printf(″%6d:″,j);
for(i=0;i<=max_r;i++)
printf(″%6d″,table[i][j]);
printf(″\n″);
}
printf(″\nTable for k--the optimal position to put the
first pebble:\n n\\r″);
for(i=0;i<=max_r;i++)
printf(″% 6d″,i);
printf(″\n″);
for(j=0;j<=max_n;j++){
printf(″% 6d:″,j);
for(i=0;i<=max_r;i++)
printf(″% 6d″,ktable[i][j]);
<!-- SIPO <DP n="68"> -->
<dp n="d68"/>
printf(″\n″);
}
}
\end{verbatim}
#include "stdio.h"
int **table;
int **ktable;
int f(int r, int n)
{
int k, t_min=-2, t, k_min=-2, t1, t2; //-2 Stands for
infinity;
//-1 stands for uninitialized
if(table[r][n]!=-1)
return table[r][n];
if(n==0 && r>0){
table[r][n] = 0;
ktable[r][n] = 0;
return 0;
}
if(r==0){
table[r][N]=-2;
ktable[r][n]=-2;
return-2;
<!-- SIPO <DP n="65"> -->
<dp n="d65"/>
}
for(k=0; k<n; k++){
t1=f(r-1,k);
if(t1==-2)
continue;
t2=f(r,n-k-1);
if(t2==-2)
continue;
t=t1+t2+n-k;
if(t<t_min||t_min=-2){
t_min = t;
k_min=k;
}
}
table[r][n]=t_min;
ktable[r][n]=k_min;
return table[r][n];
}
void main()
{
int max_r, max_n, i, j;
printf("max balls:");
<!-- SIPO <DP n="66"> -->
<dp n="d66"/>
scanf("%d", &max_r);
printf("chain length:");
scanf("%d", &max_n);table=(int**)malloc((max_r+1)*sizeof(int));ktable=(int**)malloc((max_r+1)*sizeof(int));
if(table==NULL||ktable=NULL){
printf("Out of memory!\n");
retUrn;
}
for(i=0; i<=max_r; i++){
table[i]=(int*)malloc((max_n+1)*sizeof(int));
ktable[i]=(int*)malloc((max_n+1)*sizeof(int));
if(table[i]==NULL||ktable[i]=NULL){
printf("Out of memory!\n");
return;
}
for(j=0; j<=max_n; j++)
ktable[i][j]=table[i][j]=-1;
}
for(i=0; i<=max_r; i++)
<!-- SIPO <DP n="67"> -->
<dp n="d67"/>
for(j=0; j<=max_n; j++)
f(i,j);
printf(″\nTable for F(r, n)--the number of steps needed:
\nn\\r″);
for(i=0; i<=max_r; i++)
printf("%6d", i);
printf("\n");
for(j=0; j<=max_n; j++){
printf("%6d:", j);
for(i=0; i<=max_r; i++)
printf("%6d", table[i][j]);
printf("\n");
}
printf(″\nTable for k--the optimal position to put the
first pebble:\n n\\r″);
for(i=0; i<=max_r; i++)
printf("%6d", i);
printf("\n");
for(j=0; j<=max_n; j++){
printf("%6d:", j);
for(i=0; i<=max_r; i++)
printf("%6d", ktable[i][j]);
<!-- SIPO <DP n="68"> -->
<dp n="d68"/>
printf("\n");
}
}
\end{verbatim}
私钥安全物理访问(在类似KERBEROS的设置中的实时凭证)Secure physical access to private keys (live credentials in a KERBEROS-like setup)
一般而言,想定可包括多个门及多个用户。此外,访问可由多个机构控制(每一机构控制通过某些门的访问,用于不同机构的一批门可能重迭)。在大多数一般情况,访问通过使用户将凭证提交给门而进行控制(这样的凭证的验证可能要求用户和门的交互,如PIN输入,及门和用户卡之间的消息交换)。在门的情况下,以最少的成本支持访问安全性是特别重要的,甚至不将门连接到网络或任何特定的服务器。In general, a scenario may include multiple doors and multiple users. In addition, access may be controlled by multiple agencies (each agency controls access through certain doors, sets of doors for different agencies may overlap). In most general cases, access is controlled by having the user present credentials to the door (verification of such credentials may require interaction between the user and the door, such as PIN entry, and message exchange between the door and the user's card). In the case of doors, it is especially important to support access security with minimal cost, without even connecting the door to the network or any particular server.
一个重要的发现是,无论我们使用什么凭证,我们的RTC技术可得到重要的安全性、基础结构及成本利益。RTC可连同公钥密码方法(证书、公钥签名、PKI)及私钥密码工具(对称的或私钥签名及加密、类似Kerberos的系统等)一起使用。An important finding is that our RTC technique yields significant security, infrastructure, and cost benefits regardless of the credentials we use. RTC can be used in conjunction with public key cryptographic methods (certificates, public key signatures, PKI) and private key cryptographic tools (symmetric or private key signing and encryption, Kerberos-like systems, etc.).
使用公钥技术对分离的门进行访问控制已被提出。在此,我们描述怎样将这些想法适用到私钥技术。Access control to separate gates using public key techniques has been proposed. Here, we describe how to apply these ideas to private key technology.
基本原语basic primitive
加密、签名、假随机函数Encryption, signature, pseudorandom functions
特别地,私钥加密、私钥签名(aka MAC)、私钥随机函数均是我们将使用的典型的私钥原语。对于我们的许多目的,这些原语可被交替地使用。例如,确定性的私钥签名方案(在共享秘密签署的密钥SK的两个实体之间)及随机函数Fs(其种子在两个实体之间共享)实际上可被认为是等价的。二者均产生对第三方而言不可预知的输出,第三方可能直到对应的输入,但不是SK或s。例如,返回具有密钥SK的x的数字签名的函数FSK(x)在实践中可被认为是一个较好的具有种子SK的足够假的随机函数。另一方面,函数Fs(x),其在输入x的基础上返回在具有种子s的假随机函数F的x的值,可被认为是具有密钥s的私钥签名算法。In particular, private key encryption, private key signature (aka MAC), private key random function are typical private key primitives that we will use. For many of our purposes, these primitives can be used interchangeably. For example, a deterministic private key signature scheme (between two entities sharing the secret signing key SK) and a random function Fs (whose seed is shared between the two entities) can actually be considered equivalent. Both produce outputs that are unpredictable to third parties, who may know the corresponding inputs, but not SK or s. For example, the function FSK(x) that returns the digital signature of x with the key SK can be considered in practice to be a good enough pseudorandom function with the seed SK. On the other hand, the function Fs(x), which returns the value of x in a pseudorandom function F with seed s on the basis of input x, can be considered as a private key signature algorithm with key s.
单向及单向散列函数One-way and one-way hash functions
我们还将使用另外的基本原语:单向函数F和单向散列函数H。实质上,函数F是单向的,如果(1)给定输入X,可有效地计算F(X),同时,(2)给定F(X),其中X最好已被足够随机地选择以足够地不可预知,计算X实际上是不可能的(如,原则上,因为太多的X值不得不被尝试,且没有有效的方法来缩小可能的候选值的数量)。函数H为单向散列函数,如果其是单向的且(尽管最好使较长的输入匹配较短的输入或任意长的输入,如160位长)难于发现两个截然不同的输入X和Y使得H(X)=H(Y)。We will also use additional basic primitives: the one-way function F and the one-way hash function H. In essence, a function F is one-way, if (1) given an input X, F(X) can be efficiently computed, and (2) given an F(X), where X has preferably been chosen sufficiently randomly With sufficiently unpredictable computation of X is practically impossible (eg, in principle, because too many values of X have to be tried, and there is no efficient way to narrow down the number of possible candidate values). A function H is a one-way hash function if it is one-way and (although it is better to make longer inputs match shorter inputs or arbitrarily long inputs, say 160 bits long) it is difficult to find two distinct inputs X and Y such that H(X)=H(Y).
在实践中,我们可使用单向散列函数H构建其它原语。例如,私钥签名可以下面的简单方式构建。要用密钥SK签署消息M,可计算H(SK,M)。即,适当地结合SK和M-如,连接它们—并接着散列该结果。当然,要签署M并注明M的日期,可增加日期d到该结合中,因而代之以计算H(SK,M,d)。类似地,假随机函数可按如下构建。基于输入x,要产生具有种子s的假随机函数的输出,可计算H(s,x);即,可适当地结合s和x,并接着应用单向散列函数到该结果。In practice, we can construct other primitives using the one-way hash function H. For example, private key signatures can be constructed in the following simple way. To sign a message M with key SK, compute H(SK,M). That is, combine SK and M appropriately - eg, concatenate them - and then hash the result. Of course, to sign M and date M, the date d can be added to the combination, thus computing H(SK,M,d) instead. Similarly, a pseudorandom function can be constructed as follows. To generate the output of a pseudorandom function with seed s, based on input x, H(s,x) can be computed; ie, s and x can be suitably combined, and then a one-way hash function applied to the result.
安全物理访问Secure Physical Access
我们只关注由私钥设置产生的新的方面,而跳过那些可自然适于新想定的普通方面(如,每日的/正常的计算方面等)。我们以简单的想定开始。We only focus on new aspects arising from private key settings, and skip those ordinary aspects (eg, daily/normal computing aspects, etc.) that can be naturally adapted to new scenarios. We start with a simple scenario.
单一机构single agency
让D为门(具有所述的机制),A为希望控制D的访问的机构,及U为用户(可能为A工作),再次地,具有一卡CU,具有适当的标识符等。接下来,A可通过与D共享密钥SK而控制D的访问。如果A希望授权U在天d(时间间隔d)访问D,其计算证据PUDd,A以外的其它任何人(及可能D)都很难计算,但对于D很容易验证。让我们看看这是怎样被完成的,二者均使用私钥加密和私钥签名。Let D be the door (with the mechanism described), A be the institution wishing to control D's access, and U be the user (possibly working for A), again, with a card CU, with the appropriate identifier, etc. Next, A can control D's access by sharing the key SK with D. If A wishes to authorize U to visit D on days d (time interval d), it computes a proof PUDd, hard for anyone other than A (and possibly D), but easy to verify for D. Let's see how this is done, both using private key encryption and private key signing.
私钥加密解决方案(具有可能的恒等证据)Private key encryption solution (with possible proof of identity)
例如,PUDd可以是消息的加密EUDd,其用专用加密密钥SK根据一些已经建立的私钥加密算法如DES指明U及可能D和d。在从U的卡接收EUDd的基础上,D用密钥SK将其解密,且如果结果指明U和当前日(时间间隔)d,则门打开。门可用其自己的锁确定其自己的时间是否落在时间间隔d的范围内。For example, PUDd may be an encrypted EUDd of a message specifying U and possibly D and d with a private encryption key SK according to some established private key encryption algorithm such as DES. On receipt of EUDd from U's card, D decrypts it with the key SK and if the result indicates U and the current day (time interval) d, the door is opened. The door can determine with its own lock whether its own time falls within the time interval d.
在此,与其它地方一样,U用以指示用户及U的适当标识符。如果用户U具有与其关联的卡(最好安全地),则U可以是该卡或其适当的标识符。在后面的情况下,例如,门的读卡机可从卡得到U,且还得到EUDd,则其用密钥SK解密EUDd,并将解密的U与卡提供的进行比较,以确保它们相等。Here, as elsewhere, U is used to indicate a user and an appropriate identifier for U. If user U has a card associated with it (preferably securely), then U can be that card or its appropriate identifier. In the latter case, for example, the door's reader can get U from the card, and also EUDd, it decrypts EUDd with the key SK, and compares the decrypted U with what the card provided to make sure they are equal.
注意,EUDd向门D证明用户U被授权在时间间隔d通过其进入,但这并不向D证明其确实是与用户U打交道。因而,我们可增加基本的计划,用于U向门提供其自己的身份。这可以几种方式实现。特别地,机构A可仅提供EUDd给U的卡,且U的卡被提供以键座,并仅在正确的PIN在其键座上被输入时才将EUDd传输到门(且如果错误的PIN被输入大于给定数量的次数,卡可自我毁坏或擦除有关的非永久性存储器内容)。这种方式下,无论门在何时接收EUDd,其知道其正从U的卡接收(因为A仅传输EUDd给U的卡)且其知道“卡背后的用户”肯定是U(与具有偷窃的U的卡的怀恶意的用户相对照)因为U的卡不会工作或传输EUDd给D,除非U的PIN已在其键座上输入。用于U向D证明其身份的第二种方式包括使U向D直接提供其自己的PIN。例如,门D可具有其自己的键座,且U使用它来输入他自己的PIN、PINu。门可具有内部的方式(如表)来将PINu到U,并因而可认识到其确实是与U打交道。然而,如果在系统中有许多门,为每一门提供和更新(如,因为新用户加入系统)表可能是不实际的。因而最好使U的标识符可直接为PINu。例如,EUDd可以是EPINuDd。当用户U接近门D时,他输入PINu到D的键座及其卡将EPINuDd传输给门。门接下来检查所输入的PIN是否等于EPINuDd中所指明的,在这种情况下,其正与正确的用户打交道且该同一用户被A授权通过门D,并不使用任何PIN用户表:实际上,键座告诉D一知道PINu的用户在其前面,且EPINuDd告诉D知道PINu的用户为当前授权通过D的用户。在第三种方式中,而不是直接出现在EUDd中,用户PIN可被安全地与EUDd结合。例如,A可能将EUDd给予用密钥PINu或从PINu可重构建的密钥K加密的U的卡(如,k=H(PINu)or K=H(PINu,d)or K=H(D,PINu,d)等)。在这种情况下,门D将检查在时间间隔d,PIN被安全地结合到用户的授权。例如,其使用PINu解密EUDd,并使用其与机构A共享的密钥SK检查EUDd为适当的授权。Note that EUDd proves to door D that user U is authorized to enter through it at time interval d, but this does not prove to D that it is indeed dealing with user U. Thus, we can add the basic scheme for U to provide its own identity to the gate. This can be accomplished in several ways. In particular, Agency A may only provide EUDd to U's card, and U's card is provided with a keypad, and transmit the EUDd to the door only if the correct PIN is entered on its keypad (and if the wrong PIN is entered more than a given number of times, the card may self-destruct or erase the associated non-permanent memory contents). This way, whenever the door receives EUDd, it knows it is receiving from U's card (since A only transmits EUDd to U's card) and it knows that the "user behind the card" must be U (unlike a stolen Malicious user of U's card vs.) because U's card will not work or transmit EUDd to D unless U's PIN has been entered on its keypad. A second way for U to prove his identity to D involves having U provide D directly with his own PIN. For example, door D may have its own keypad, and U uses it to enter his own PIN, PINu. A gate may have an internal way (like a table) to pin Nu to U, and thus may recognize that it is indeed dealing with U. However, if there are many doors in the system, it may not be practical to provide and update (eg, as new users join the system) tables for each door. Therefore, it is preferable to make the identifier of U directly be PINu. For example, EUDd may be EPINuDd. When user U approaches door D, he enters PINu to D's keypad and his card transmits EPINuDd to the door. The gate next checks that the entered PIN is equal to that specified in EPINuDd, in which case it is dealing with the correct user and that same user is authorized by A through gate D, without using any PIN user table: in fact , the keypad tells D that the user who knows PINu is in front of it, and EPINuDd tells D that the user who knows PINu is currently authorized by D. In a third way, instead of appearing directly in the EUDd, the user PIN can be securely integrated with the EUDd. For example, A might give EUDd to U's card encrypted with key PINu or a key K reconstructable from PINu (e.g., k=H(PINu) or K=H(PINu,d) or K=H(D , PINu, d) etc.). In this case, gate D will check that at time interval d, the PIN is securely bound to the user's authorization. For example, it decrypts EUDd using PINu and checks EUDd as properly authorized using the key SK it shares with Institution A.
使用回答者use answerer
但是:A怎样才可容易地并安全地将EUDd传输到U的卡?我们提出使用响应者。这些均为设备(如服务器或能够连接到服务器的计算机终端/读卡机)。优选地,这些响应者不必被放在库里或被保护。这样的保护可能增加大量的成本且不方便系统,使系统在不保护响应者的情况下安全的工作是至关重要的。理想地,机构A在一系列日期中的每天d执行更新。每一日期最好指明时间间隔(如一天)。例如,d可以是天d或天d的开始。在更新d期间,A决定哪一用户U应被授权访问/通过D,并计算可由D验证的证据。例如,在基于加密的共享密钥的系统中,该证据可以是上述的字符串EUDd,并可被验证,因为A与D共享密钥SK,A用其计算EUDd。所有这些证据接着被发送给响应者。这些响应者最好位于方便的位置。例如,在机场系统中,响应者可位于机场的主要入口。用户U接着(如当到达工作时)从响应者获得其自己的通过门D的授权。优选地,U的卡可向响应者鉴别其自身以接收EUDd。这是非常方便的,因为没有无线的及其它昂贵的系统,用户可获得其每天的对于所有其在特定天被授权从正门(用户不得不通过其通过)通过的门的授权,并使用传统的机制如将其自己的卡插入读卡机中(如,以证明他已出现开始工作)。其后,他可自由地在机场四处行走,并可容易地使用其已获得的授权EUDd通过所有其被授权的受保护的门D。但是因为该方便性及响应者最好是不安全的事实,怀恶意的用户也可能获得诚实的用户的授权。因而下述是必要的,(1)在不保护响应者的前提下阻止这样的事发生,和/或(2)确保对诚实的用户的授权不可为任何其它人使用。后者的情况通过使用户在门输入PIN而可被足够地加强,如已经所讨论的,最好安全地结合到由卡释放的授权。因而,从响应者获得U的授权EUDd的怀恶意的用户V不能在门模仿U,因为其不知道U的PIN。前者的保护可通过使机构A在用U的卡CU内的并为A知道的密钥SKCU加密授权EUDd之后将其发送给响应者而得以加强。这种方式下,A实质上给响应者一加密的授权EUDd’,其仅可由U的卡转换为授权EUDd,使其对下载别人的该天授权的怀恶意的V没用。即使V以任何其想要的方式制造其自己的卡,V还是不知道SKCU。But: How can A easily and securely transfer EUDd to U's card? We propose to use responder. These are devices (such as servers or computer terminals/card readers capable of connecting to servers). Preferably, these Responders do not have to be vaulted or secured. Such protection can add substantial cost and inconvenience to the system, and it is critical to make the system work safely without protecting the responder. Ideally, institution A performs the update on day d of a series of dates. Each date preferably specifies a time interval (eg, one day). For example, d can be day d or the beginning of day d. During the update of d, A decides which user U should be authorized to access/pass D, and computes a proof verifiable by D. For example, in an encrypted shared key based system, this evidence could be the above-mentioned string EUDd, and can be verified because A and D share the secret key SK, with which A computes EUDd. All these proofs are then sent to the responder. These responders are preferably located in a convenient location. For example, in an airport system, responders may be located at the main entrance of the airport. User U then (eg, when arriving at work) obtains his own authorization through gate D from the responder. Preferably, U's card can authenticate itself to the responder to receive the EUDd. This is very convenient, because without wireless and other expensive systems, the user can obtain his daily authorization for all the doors he is authorized to pass through the main entrance (through which the user has to pass) on a particular day, and use the traditional Mechanisms such as inserting his own card into a card reader (eg, to prove that he is present to work). Thereafter, he is free to move around the airport and can easily pass through all the protected gates D for which he is authorized using the authorization EUDd he has obtained. But because of this convenience and the fact that the responder is preferably insecure, it is also possible for a malicious user to gain authorization from an honest user. It is therefore necessary to (1) prevent this from happening without protecting the responder, and/or (2) ensure that authorizations to honest users cannot be used by anyone else. The latter case can be sufficiently enforced by having the user enter a PIN at the door, preferably securely combined with the authorization released by the card, as already discussed. Thus, a malicious user V who obtains U's authorization EUDd from a responder cannot impersonate U at the door because it does not know U's PIN. The protection of the former can be strengthened by having the authority A send the authorization EUDd to the responder after encrypting it with a key SKCU in U's card CU and known to A. In this way, A essentially gives the responder an encrypted authorization EUDd' that can only be converted to an authorization EUDd by U's card, making it useless for a malicious V who downloads someone else's authorization for that day. Even if V makes its own cards any way it wants, V still doesn't know about SKCU.
进一步地,使A与门D共享密钥SKD及与用户U共享密钥SKU是可能的。则PUDd可以是值EUDdk,包括用户U、门D及天d的指示,及某一随机秘密的k,所有这些均(由A)用密钥SKD加密。(注意,在这种情况下,U不能解密EUDdk)。此外,U可接收Ek,即用SKU加密的k。(D和d可为U知道,或可被通信给U-如,通过在主门的同一响应者。)这种方式下,因为U知道SKU,U同样获得秘密的k。为了进入门D,卡U可发送EUDdk给D。D可以一随机的值q响应,且卡U接着发送Eq,即用秘密的k加密的q。门D可解密Eq,验证使用了同样的q,且U与EUDdk中指明的相同,且日期d为当前日期,如果所有的检查均被确认,将让U通过。这种机制还可组合上述的PIN机制,使其更加安全。基于k的另外的挑战-响应方法也是可能的。(特别地,D可计算和发送Eq并要求U发回正确的解密q。)即使攻击者监控卡和门之间的通信,这样的机制也可提供安全性。Further, it is possible for A to share the key SKD with gate D and the key SKU with user U. Then PUDd may be the value EUDdk, including indications of user U, door D and day d, and some random secret k, all encrypted (by A) with key SKD. (Note that U cannot decrypt EUDdk in this case). In addition, U can receive Ek, k encrypted with SKU. (D and d may be known to U, or may be communicated to U—eg, by the same responder at the main gate.) This way, since U knows the SKU, U also obtains the secret k. To enter door D, card U may send EUDdk to D. D may respond with a random value q, and the card U then sends Eq, q encrypted with the secret k. Gate D can decrypt Eq, verify that the same q is used, and U is the same as specified in EUDdk, and the date d is the current date. If all checks are confirmed, U will pass. This mechanism can also be combined with the above-mentioned PIN mechanism to make it more secure. Additional challenge-response methods based on k are also possible. (In particular, D can compute and send Eq and ask U to send back the correct decrypted q.) Such a mechanism can provide security even if an attacker monitors the communication between the card and the door.
然而,在门看见由用户输入的PIN的敌人在偷窃U的卡之后可模仿U,至少在时间间隔d期间,如果U的卡内具有EUDd的话。其后,如果U报告其卡已被偷窃,A将不再使EUDd可用于U的卡。However, an enemy who sees the PIN entered by the user at the door can impersonate U after stealing U's card, at least during the time interval d, if U's card has EUDd in it. Thereafter, if U reports that his card has been stolen, A will no longer make EUDd available for U's card.
私钥签名解决方案Private key signature solution
例如,PUDd可以是消息的私钥数字签名,其根据一些已建立的私钥签名算法,用A和D均知道的私钥SK指明U和d(可能及D)。特别地,H为单向散列函数,则UDd=H(SK,U,d)。在从卡接收U的基础上,门的读卡机可用其自己的私钥SK签署U和d并比较该计算的结果是否与从可获得的字符串PUDd匹配。注意,携带有锁的门读卡机可能知道当前日d,因而不必从卡检索d。只要A每次授权所有天的访问,这就可以工作。否则,卡还发送d(或选择的时间间隔)给读卡机,接着读卡机用SK签署所获得的U和d,检查结果确实等于PUDd,接着检测当前时间(根据门的时钟)在d的范围内。如果是,则其打开。For example, PUDd could be a private key digital signature of a message specifying U and d (and possibly D) with a private key SK known to both A and D according to some established private key signature algorithm. In particular, H is a one-way hash function, then UDd=H(SK, U, d). On receipt of U from the card, the door's reader can sign U and d with its own private key SK and compare whether the result of this calculation matches the string PUDd available from the slave. Note that a door card reader carrying a lock may know the current date and thus not have to retrieve it from the card. This works as long as A grants access for all days at a time. Otherwise, the card also sends d (or the selected time interval) to the reader, then the reader signs the obtained U and d with SK, checks that the result is indeed equal to PUDd, and then detects that the current time (according to the clock of the door) is at d In the range. If yes, it is turned on.
再次地,U可被要求输入PIN作为交易的一部分。在这种情况下,PIN还可被用作U的部分。例如,U可包括u和PIN,其中u为识别用户的字符串,PIN为用户知道的密码。在这种情况下,卡将u及PUDd(可能及D或d及另外的数字)传输给门读卡机,用户向与读卡机结合的门控或读卡机自身输入PIN,接着读卡机重构U=(u PIN),接着用SK签署Ud以检查PUDd是否被获得。再次地,如果d由卡提供,其还检查当前时间在d的范围内。该方法使得用户及其卡以更紧密的方式结合,使得偷窃卡的敌人在没有适当的PIN时很难使用它。Again, U may be required to enter a PIN as part of the transaction. In this case, the PIN can also be used as part of the U. For example, U may include u and PIN, where u is a character string identifying the user, and PIN is a password known to the user. In this case, the card transmits u and PUDd (possibly D or d and another number) to the door reader, the user enters the PIN to the door control integrated with the card reader or the card reader itself, and the card is read Machine reconstructs U=(u PIN), then signs Ud with SK to check whether PUDd is obtained. Again, it also checks that the current time is within the range of d if d is provided by the card. This method brings the user and their card together in a tighter way, making it difficult for an adversary who steals the card to use it without the proper PIN.
当然,同样的SK可被用于一组门,在这种情况下,通过授权U范围其中的一个,A自动授权他访问所有的门。为允许最大的访问间隔,每一门D可具有密钥SKD。Of course, the same SK can be used for a group of doors, in which case, by authorizing U to scope one of them, A automatically grants him access to all doors. To allow maximum access intervals, each door D may have a key SKD.
结合两种方法Combining two methods
作为结合两种方法的例子,U可从A接收(如使用上述的机制,特别地,使用加密)用于天d的密钥SKUd。他接着使用私钥签名向门D“证明”他的身份和/或授权。即,门D可发送随机的消息m给卡U;作为响应,卡U可发送m的签名:H(m,SKUd)。注意,该签名的计算可能要求PINu。门D接着验证该签名。这可能要求门D知道SKUd(如,已直接从A接收,或从其它信息计算,如H(SKD,d,U)等。)或者,A可使用与D共享的密钥加密SKUd,从而获得ESKUd。接着ESKUd可被给予U(如,如上所述),接着U可将其连同签名发送给D。As an example of combining the two methods, U may receive from A (eg, using the mechanisms described above, in particular, using encryption) the key SKUd for day d. He then "proves" his identity and/or authorization to door D using the private key signature. That is, door D can send a random message m to card U; in response, card U can send m's signature: H(m, SKUd). Note that the computation of this signature may require PINu. Gate D then verifies the signature. This may require gate D to know SKUd (e.g., has received it directly from A, or computed from other information such as H(SKD,d,U), etc.) Alternatively, A may encrypt SKUd using a key shared with D, thus obtaining ESKUd. ESKUd can then be given to U (eg, as described above), and U can then send it to D along with the signature.
多个机构multiple institutions
如我们已看到的,对于组织/机构A,有能力与门D共享密钥SKD,以控制哪一用户U可在给定的时间间隔d访问D。该过程可被扩展以使多个组织A、B、C...单独地控制通过门D或一组门D1、D2、D3…的访问,每一组织X与门D共享密钥SKXD,接着使用上述的解决方案。例如,每一组织X可选择SKXD并将其插入D的读卡机。每一组织X可能不得不从门到门发送一个或多个的一组给雇员/雇请的工人/承包人/次承包人。在具有许多门的设施中,要这样做可能是不实际的或浪费的,因为其它组织可能已经那样做了。同样,如果有或将有许多机构,则读卡机在保存所有这些密钥方面有困难。此外,应当采取适当的预防措施。否则,没有东西能防止敌人将其自己的密钥插入门的读卡机,接着,分辨它,其可使用任何上述方法来授权他自己或他的同谋对该门的访问。由于这些原因,我们提出下述解决方案。注意,同样的方法可被应用于单个的解决方案。As we have seen, for an organization/institution A, there is the ability to share a key SKD with a gate D to control which user U can access D at a given time interval d. This process can be extended so that multiple organizations A, B, C ... individually control access through gate D or a set of gates D1, D2, D3 ..., each organization X shares the secret key SKXD with gate D, then Use the solution above. For example, each organization X can select a SKXD and insert it into D's card reader. Each organization X may have to send a set of one or more to employees/hired workers/contractors/sub-contractors from door to door. In a facility with many doors, it may not be practical or wasteful to do this, as other organizations may have done so. Also, if there are or will be many institutions, the card reader will have difficulty keeping all these keys. In addition, appropriate precautions should be taken. Otherwise, there is nothing to prevent an enemy from inserting his own key into the door's card reader, and then, identifying it, he can use any of the methods described above to authorize himself or his accomplices access to the door. For these reasons, we propose the following solution. Note that the same approach can be applied to individual solutions.
第一解决方案first solution
如我们已看到的,如果他或他的卡共享特定时间间隔的密钥,用户可通过安全的门。因此,在这种情况下,用户及门共享一会话密钥。Kerberos及Needham-Schroeder协议提供了用于确保实体对共享秘密会话密钥的机制,在此并可被应用在整个系统中。然而,这些协议均基于密钥分发中心,其是在线的且无论共享的会话密钥在何时被需要,其必需被联系。因而,我们希望提出另外的、更方便的方法。在开始,即使对于实施基于Kerberos/Needham-Schroeder的系统,我们需要一种用于中央机构分发密钥给门的方式(其可能较分发密钥给其它机构更为困难)。As we have seen, a user can pass through a secure door if he or his card shares a key for a certain time interval. Therefore, in this case, the user and the gate share a session key. The Kerberos and Needham-Schroeder protocols provide mechanisms for ensuring that pairs of entities share secret session keys, and can be applied throughout the system here. However, these protocols are all based on a key distribution center, which is online and must be contacted whenever a shared session key is needed. Therefore, we wish to propose another, more convenient method. In the beginning, even for implementing a Kerberos/Needham-Schroeder based system, we need a way for a central authority to distribute keys to gates (which may be more difficult than distributing keys to other authorities).
我们设想特殊的机构SA(例如,在机场,机场机构)可安全地分发密钥给门读卡机。优选地,SA可以是可那样做的唯一实体。例如,门读卡机在递送和制造时没有密钥在其内,使得一旦第一组密钥(可能是一组单一的密钥)被插入,则读卡机将其长时间保存,并不接受其它密钥用于将来的存储。这种方式下,通过首先插入任何密钥在门读卡机中(之前,期间,或安装后不久),SA确保没有其它人可在门内安装密钥。或者,对于在门读卡机中保存其它密钥,则需要控制PIN或密钥。门读卡机在没有任何控制PIN或密钥的情况下被递送和制造,使得一旦第一控制PIN或密钥(或可能一组密钥)被插入时,则读卡机将它们长时间保存,并在将来不再接受其它控制PIN或密钥。然而,假定输入正确的控制PIN/密钥,则任何新密钥可被插入和保存在读卡机内。这种方式下,通过首先插入任何控制PIN/密钥在门读卡机中(之前,期间,或安装后不久),SA确保没有其它人可在门读卡机内插入和保存密钥。We envisage that a special agency SA (eg, at an airport, the airport agency) can securely distribute keys to door readers. Preferably, the SA may be the only entity that can do that. For example, door card readers are delivered and manufactured without keys in them, so that once the first set of keys (possibly a single set of keys) is inserted, the card reader stores them for a long time and does not Other keys are accepted for future storage. In this way, by first inserting any key in the door reader (before, during, or shortly after installation), the SA ensures that no one else can install a key inside the door. Alternatively, a control PIN or key is required for storing other keys in the door reader. The door reader is delivered and manufactured without any control PIN or key, so that once the first control PIN or key (or possibly a set of keys) is inserted, the reader keeps them for a long time , and no other control PINs or keys will be accepted in the future. However, assuming the correct control PIN/key is entered, any new key can be inserted and stored in the reader. In this way, by first inserting any control PIN/key in the door reader (before, during, or shortly after installation), the SA ensures that no one else can insert and store the key in the door reader.
在这一点上,SA知道门D的读卡机的所有密钥,例如,SKAD、SKBD、SKCD等。不是实施Kerberos,而是更简单的,即SA现在将SKAD给予机构A,SKBD给予机构B,等。这里,机构A/B/…可控制用户U访问D,其通过私钥加密方法或私钥签名方法实现。注意,这些机构可单独操作不同组的门。例如,假定At this point, SA knows all the keys of the card reader of door D, eg, SKAD, SKBD, SKCD, etc. Instead of implementing Kerberos, it's simpler that SA now gives SKAD to Institution A, SKBD to Institution B, etc. Here, organization A/B/... can control user U's access to D, which is realized by private key encryption method or private key signature method. Note that these mechanisms can individually operate different sets of doors. For example, suppose
1.门D1在其读卡机内具有密钥SKXD1,及SA将SKXD1给予机构X;1. Door D1 has key SKXD1 in its card reader, and SA gives SKXD1 to institution X;
2.门D2在其读卡机内具有密钥SKXD2,及SA将SKXD2给予机构Y;同时2. Door D2 has key SKXD2 in its card reader, and SA gives SKXD2 to institution Y; at the same time
3.SA不将门D1的密钥给予Y,及不将门D2的密钥给予X。3. SA does not give Y the key of door D1, and does not give X the key of door D2.
接着,机构X可控制对门D1的访问,机构Y可控制门D2,二者为完全独立的方式。Institution X can then control access to door D1 and institution Y can control door D2 in a completely independent manner.
一转好的解决方案One turn solution
但即使使用上述可用的特征,我们可在某些重要方面改善系统如上述的系统。即:But even with the features available above, we can improve a system such as the one described above in some important ways. Right now:
密钥-存储器大小。在门读卡机最好为每一不同的组织保存控制其的不同密钥的同时,这抬高了读卡机应安全保存的密钥的数量。key - memory size. While the door reader preferably holds a different key for each different organization that controls it, this drives up the number of keys that the reader should securely hold.
增加新控制。当新机构或新门被引入到系统中时,新控制发出可能发生。如果门D不为组织X保存密钥,且随后想要X获得对D的控制,则SA必须在D的读卡机内插入用于X的密钥。例如,如果新组织出现,则SA必须派遣一队工人去在应由新组织控制的每一门D内插入SKXD。然而,这样的物理“旅行”可能是不方便的。为避免它们,SA可在门D的读卡机中预安装另外的密钥,接着将它们与出现的新组织结合,或与随后必须控制通过D的访问的组织结合。然而,这个策略只会加剧在第一加重号处描述的情况。此外,如果引入新门,其将由某些已经存在的机构控制,则SA将不得不在门读卡机中插入新密钥,并接着将适当的密钥递送给已经存在的、必须控制新门的机构。尽管可做,但递送密钥总是有问题的。Add new controls. New control issues may occur when new mechanisms or new doors are introduced into the system. If door D does not hold a key for organization X, and subsequently wants X to gain control of D, the SA must insert the key for X in D's card reader. For example, if a new organization appears, SA must send a team of workers to insert SKXD in each door D that should be controlled by the new organization. However, such physical "travel" can be inconvenient. To avoid them, the SA could pre-install additional keys in the card reader of door D, and then combine them with new organizations that arise, or that must then control access through D. However, this strategy only exacerbates the situation described in the first bullet point. Furthermore, if a new door is introduced which will be controlled by some already existing authority, the SA will have to insert the new key in the door reader and then deliver the appropriate key to the already existing authority which must control the new door. mechanism. While doable, delivering keys is always problematic.
收回控制。一旦密钥SKXD被保存在门D中并为组织X知道,则X将继续控制通过D的访问,即使在某一点对D的控制应被专门地给予不同的组织。为避免此,SA应再次从事于物理旅行并将SKXD从门D中移除(如借助于控制PIN/密钥机制)。Take back control. Once the key SKXD is held in gate D and known to organization X, X will continue to control access through D, even if at some point control of D should be given exclusively to a different organization. To avoid this, SA should again engage in physical travel and remove SKXD from door D (eg by means of a control PIN/key mechanism).
现在让我们描述怎样致使这些另外的改善。Let us now describe how these additional improvements were brought about.
基本系统轮廓Basic System Profile
在开始,我们可使系统与每门单一的密钥一起工作。例如,SA在门D中保存单一的密钥SKD(当然跟踪该信息)。该密钥可潜在地由SA从唯一由SA知道的D的标识符和秘密种子s计算:例如,SKD=H(s,D)。接着,SA将对D的控制给予机构X,通过给予X以选自SKD和X的密钥SKXD实现。例如,作为在X求值的具有种子SKD的假随机函数(为了简单,我们假定实体与其适当的标识符一致)。特别地,我们可使SKXD=H(SKD,X)。机构A接着使用SKXD授权用户U在时间间隔(如天)d访问D,如先前那样。特别地,通过使用SKXD作为私钥签名方案的签署密钥:例如,通过计算SKXDUd=H(SKXD,U,d)并接着使SKXDUd被保存在U的卡中。当U的卡与D的读卡机通信时,则卡提供(a)X和(b)SKXDUd及可能其它信息如d(及关于用户U的信息)给读卡机。在接收该信息的基础上,读卡机计算H(SKD,X)并接着使用该结果(依其所述等于SKXD)作为同一私钥签名方案的签署密钥并签署(U,d)-在上述的例子中,通过在将其与SKXD结合后散列(U,d)。如果结果与由卡看管的值(依其所述,SKXDUd)匹配,如果时间间隔关于读卡机的时钟是正确的(及如果U输入正确的PIN,如果PIN被适当地用在上述系统内),则门打开。In the beginning, we can make the system work with a single key per door. For example, SA holds a single key SKD in gate D (tracking this information of course). This key can potentially be computed by the SA from an identifier of D uniquely known by the SA and a secret seed s: eg, SKD = H(s, D). SA then gives authority X control over D by giving X a key SKXD selected from SKD and X. For example, as a pseudorandom function with seed SKD evaluated at X (for simplicity we assume entities coincide with their appropriate identifiers). In particular, we can let SKXD=H(SKD,X). Institution A then authorizes user U to access D for time interval (eg days) d using SKXD, as before. In particular, by using SKXD as the signing key for the private key signature scheme: eg by computing SKXDUd = H(SKXD, U, d) and then having SKXDUd be saved in U's card. When U's card communicates with D's card reader, then the card provides (a) X and (b) SKXDUd and possibly other information such as d (and information about user U) to the card reader. On the basis of receiving this information, the reader calculates H(SKD, X) and then uses this result (equal to SKXD as stated) as the signing key of the same private key signature scheme and signs (U, d)-in In the above example, by hashing (U,d) after combining it with SKXD. If the result matches the value guarded by the card (SKXDUd according to it), if the time interval is correct with respect to the reader's clock (and if U enters the correct PIN, if the PIN is properly used in the above system) , the door opens.
密钥存储器.增加控制Key storage. Increased control
注意,该每门单密钥系统不仅使密钥存储器要求最小,而且极大地简化了增加控制的问题。在机构X需要获得对门D的第一次控制的任何时间,SA不需物理地到达D并在D的读卡机中插入(或帮助X的插入)新的D-X密钥。而是,如果D具有为SA知道的密钥SKD,则SA简单地从SKD计算D-X密钥(如,SKXD=H(SKD,X)),并将该D-X密钥递送(如电子地)给X。Note that this single-key-per-door system not only minimizes key memory requirements, but also greatly simplifies the problem of adding control. Any time agency X needs to gain control of door D for the first time, SA need not physically go to D and insert (or facilitate X's insertion) a new D-X key in D's card reader. Instead, if D has a key SKD known to SA, SA simply computes a D-X key from SKD (e.g., SKXD=H(SKD,X)), and delivers (e.g., electronically) the D-X key to X.
收回控制take back control
对于每一门D及被授权在时间间隔(如天)d控制D的机构X,SA计算并使其签名可用。例如,该签名可以是关于SA与门D共享的密钥SKD的私钥签名。特别地,该签名可以是值H(SKD,valid,X,d’)。注意,即使尽管作为私钥签名,签名本身可被公布,不必有任何担忧。事实上,使用上述的基于H的私钥签名实施,如果H为安全的单向散列函数,则从H(SKD,valid,X,d’)计算SKD是很难的。因而,当用户U在其卡中获得该天的正确门控许可时,他可获得用于门D的SKXDUd及H(SKD,valid,X,d’)。门D的读卡机接着可像以前那样验证SKXDUd,并通过散列SKD、valid、X及d’而另外地确定X确实已在间隔d’控制D,并检查由卡看管的同样的值在d’之内。事实上,只有SA(及D)知道秘密签署的密钥SKD:机构X仅知道H(SKD,X)且从H(SKD,X)和H(SKD,valid,X,d’)计算SKD是非常困难的。注意,时间间隔d和d’不可一样。例如,SA可对在每周的基础上授权X对D控制感到满意,同时X可在每天的基础上授权用户访问通过D。或者,系统可用密钥的取决于时间的版本代替上述的SKXD的使用:如,SKXDd=H(SKD,X,d)。则SA将不得不在时间间隔d之前将SDXDd递送给每一机构X。为收回控制,SA简单地停止发送时期d的SKXDd,因为其SA决定决绝X对D的控制。For each door D and organization X authorized to control D for a time interval (eg, day) d, the SA is computed and its signature is made available. For example, the signature may be a private key signature on the key SKD shared by SA and gate D. In particular, the signature may be the value H(SKD, valid, X, d'). Note that even though signed as a private key, the signature itself can be published without any concern. In fact, using the above H-based private key signature implementation, if H is a secure one-way hash function, it is difficult to calculate SKD from H(SKD, valid, X, d'). Thus, when user U has the correct door permission for that day in his card, he can get SKXDUd and H(SKD, valid, X, d') for door D. The card reader at door D can then verify SKXDUd as before, and additionally determine that X has indeed controlled D at interval d' by hashing SKD, valid, X, and d', and check that the same value guarded by the card is in within d'. In fact, only SA (and D) knows the secret signing key SKD: Agency X only knows H(SKD,X) and computing SKD from H(SKD,X) and H(SKD,valid,X,d') is very difficult. Note that the time interval d and d' cannot be the same. For example, SA may be satisfied with granting X control over D on a weekly basis, while X may grant user access through D on a daily basis. Alternatively, the system may replace the use of SKXD described above with a time-dependent version of the key: eg, SKXDd = H(SKD, X, d). The SA will then have to deliver SDXDd to each institution X by time interval d. To regain control, the SA simply stops sending SKXDd for period d because its SA has decided to sever X's control over D.
还应注意的是,系统当前考虑了一些隐私,因为SA不必知道哪一用户U被X给予了对D的访问,也不知道它们的号码。当然,方案可除去该隐私保护(如,报告或通过使用Kerberos系统)。It should also be noted that the system currently allows for some privacy, as SA does not have to know which user U was given access to D by X, nor their numbers. Of course, schemes can remove this privacy protection (eg, reporting or by using the Kerberos system).
例14:Example 14:
现在让我们概括一下我们的优选实施方式,其用于在具有超级机构SA、多个(最好是分离的)门D、多个组织X、多个用户U的系统中实现安全物理访问。优选的实施例使密钥存储量最小并使添加及收回组织X对门D的控制非常容易。Let us now outline our preferred implementation for enabling secure physical access in a system with a super-agency SA, multiple (preferably separate) doors D, multiple organizations X, multiple users U. The preferred embodiment minimizes key storage and makes it very easy to add and revoke organization X's control of door D.
在优选实施例中,SA授权组织X在给定的时间间隔控制门D。在该时间间隔期间,X本身可授权用户U访问D。In a preferred embodiment, SA authorizes organization X to control gate D at given time intervals. During this time interval, X itself may authorize user U to access D.
我们设想(及可能其它参与者)在对应于一连串时间间隔的一连串日期d的每一日期采取行动。例如,d可以是特定天的开始及特定天的相应时间间隔。为了简单,我们可使用d表示日期及相应的时间间隔。(然而,应该理解的是,这不是限制性的:例如,日期可以是特定的天,时间间隔对应于在该天之后的日期。)具体地,但非限制性的,我们可假设每一日期/时间间隔为一天。We envisage (and possibly other participants) taking an action on each date of a sequence of dates d corresponding to a sequence of time intervals. For example, d may be the start of a particular day and the corresponding time interval of a particular day. For simplicity, we can use d to represent dates and corresponding time intervals. (However, it should be understood that this is not limiting: for example, the date may be a specific day, and the time interval corresponds to a date after that day.) Specifically, but not limitatively, we may assume that each date /time interval is one day.
我们使用私钥数字签名描述优选实施例。这并没有限制的目的。我们的优选实施例应被认为可用上述任何其它私钥系统实施。更具体地,我们假定私钥签名使用单向散列函数H实施。这并没有限制的目的:H(SK,DATA)应总是被认为是具有数据的密钥SK的数字签名。We describe the preferred embodiment using private key digital signatures. This has no limiting purpose. Our preferred embodiment should be considered to be implementable with any of the other private key systems described above. More specifically, we assume that private key signing is implemented using a one-way hash function H. This has no limiting purpose: H(SK, DATA) should always be considered as the digital signature of key SK with data.
我们假定SA与门D共享密钥SKD。SA还可与组织X共享密钥SKX。(SKD可由A经主密钥SK产生。对于SKX是类似的。例如,SKD可等于H(SK,D),及SKX可等于H(SK,X)。SA接着可秘密地—或经加密—提供给D以SKD。对于X是类似的。)We assume that SA shares key SKD with gate D. SA may also share key SKX with organization X. (SKD can be generated by A via the master key SK. It is similar for SKX. For example, SKD can be equal to H(SK, D), and SKX can be equal to H(SK, X). SA can then be secretly—or encrypted— Provide SKD for D. Similar for X.)
在每一天d,如果SA希望授权组织X访问门D,其计算并使X接收密钥SKXDd,其是安全结合到X、D、及可由D验证(如,基于输入X和d)的天d的密钥。On each day d, if SA wishes to authorize organization X to access door D, it computes and causes X to receive the key SKXDd, which is securely bound to X, D, and verifiable by D (e.g., based on inputs X and d) for days d key.
例如,SKXDd=H(SKD,X,d),即,SA使用密钥SKD签署X、d。SA接着使X接收SKXDd。SA可通过发送SKXDd到X而使X接收SKXDd,这最好在使用与X共享的密钥SKX将其加密之后。也是优选地,SA发送那样加密的SKXDd给X,这通过使其被保存在响应者中、X接着从其下载而实现。For example, SKXDd=H(SKD, X, d), ie SA signs X, d with key SKD. SA then makes X receive SKXDd. The SA can cause X to receive SKXDd by sending SKXDd to X, preferably after encrypting it using a key SKX shared with X. Also preferably, SA sends the encrypted SKXDd to X by having it stored in the responder, from which X then downloads.
如果X希望在天d内的时间间隔t授权用户U访问D,则X计算并使得U接收密钥SKXDdUt,其是安全结合到X、D、U及可由D验证的t的密钥。If X wishes to authorize user U to access D at time interval t within days d, X computes and causes U to receive the key SKXDdUt, which is a key securely bound to X, D, U, and t verifiable by D.
例如,SKXDdUt=H(SKXDd,U,t),即,X使用密钥SKXDd签署U、t。X接着使U接收SKXDdUt。X可通过发送SKXDdUt到U而使U接收SKXDdUt,这最好在使用与U共享的密钥SKU将其加密之后。也是优选地,X发送那样加密的SKXDdUt给U,这通过使其被保存在响应者中、U接着从其下载而实现。For example, SKXDdUt=H(SKXDd, U, t), ie X signs U, t with key SKXDd. X then causes U to receive SKXDdUt. X can cause U to receive SKXDdUt by sending SKXDdUt to U, preferably after encrypting it using the key SKU shared with U. Also preferably, X sends that encrypted SKXDdUt to U by having it stored in the responder, from which U then downloads.
如果U希望在时间间隔t访问D,U使得D接收X、U、t(如,U的卡传输到D的读卡机)。If U wishes to access D at time interval t, U causes D to receive X, U, t (eg, U's card is transferred to D's card reader).
如果D在天d接收X、U、t,其从其密钥SKD计算SKXDd并接着从SKXDd计算SKXDdUt。D接着验证时间间隔t确实在天d的范围内,并使用其自己的时钟验证当前时间确实在时间间隔t的范围内。此外,D通过使用密钥SKXDdUt的挑战-响应机制验证其正与U/U的卡打交道。如果这些验证均通过,D打开。If D receives X, U, t on day d, it computes SKXDd from its key SKD and then computes SKXDdUt from SKXDd. D then verifies that the time interval t is indeed within the range of day d, and uses its own clock to verify that the current time is indeed within the range of time interval t. Furthermore, D verifies that it is dealing with U/U's card by means of a challenge-response mechanism using key SKXDdUt. If these verifications pass, D opens.
例如,D可通过计算H(SKD,X,d)而从其密钥SKD计算SKXDd,并接着通过计算H(SKXDd,U,t)而从SKXDd计算SKXDdUt。例如,使用密钥SKXDdUt的挑战-响应机制可包括:使D发送一随机的字符串q并接收回具有密钥SKXDdUt的q的加密,或具有密钥SKXDdUt的q的数字签名。或者,D可发送Eq,具有密钥SKXDdUt的q的加密,且必须接收回q。For example, D may compute SKXDd from its key SKD by computing H(SKD, X, d), and then compute SKXDdUt from SKXDd by computing H(SKXDd, U, t). For example, a challenge-response mechanism using key SKXDdUt may involve having D send a random string q and receive back an encryption of q with key SKXDdUt, or a digital signature of q with key SKXDdUt. Alternatively, D may send Eq, an encryption of q with key SKXDdUt, and must receive q back.
注意,优选方案应被理解为包括使用与上述方案协作的PIN。特别地,在前面部分中所述的任何PIN应用均可被使用在优选方案内。注意,优选方案提供了大量的灵活性,因为d和t可以不同。例如,SA可提供X在周d对D进行控制,而X可在周d内的天t授权用户U访问D。然而,我们可使d=t,在这种情况下,t不必被指明或单独使用在优选系统中。Note that the preferred approach should be understood to include the use of a PIN in cooperation with the above described approach. In particular, any of the PIN applications described in the previous sections may be used within the preferred solution. Note that the preferred scheme provides a great deal of flexibility, since d and t can be different. For example, SA can provide X to control D on week d, and X can authorize user U to access D on day t in week d. However, we can let d = t, in which case t need not be specified or used alone in the preferred system.
Kerberos方法Kerberos method
在我们的安全访问应用中,直接使用Kerberos方法将不能很好地工作。将所有门及SA实施为同一区域是最自然的(对于该区域,SA充作入场券授权服务(Ticket Granting Service),TGS)。每一组织及其雇员将在分开的区域。对于该区域每一组织的机构则可充作鉴别服务AS(及可能其自己的TGS)。根据Kerberos协议,每一用户可通过获得入场授权的入场券(ticket-granting ticket)TGT而为各自的机构/AS鉴别。该入场券TGT接着由用户发送给SA/TGS,连同请求用户被授权的每一门的服务授权入场券。SA/TGS接着不得不验证用户的合格性,且,如果用户—如果所有均是正确的—提供这些服务授权的入场券。很显然,该协议是非常费力的,并赋予SA大量的负担。特别地,验证特定的用户被授权哪一门并发出各自的入场券是SA的职责。此外,其要求SA是在线的并实时从事于协议。使用户具有到SA的通道也引出了额外的安全性威胁。In our secure access application, using the Kerberos method directly will not work well. It is most natural to implement all gates and SAs as the same area (for which SA acts as Ticket Granting Service (TGS)). Each organization and its employees will be in separate areas. The agency for each organization in the area may then serve as the Authentication Service AS (and possibly its own TGS). According to the Kerberos protocol, each user can be authenticated for the respective institution/AS by obtaining a ticket-granting ticket TGT for admission authorization. This ticket TGT is then sent by the user to the SA/TGS, together with a service authorization ticket for each door for which the requesting user is authorized. The SA/TGS then has to verify the user's eligibility and, if the user - if all is correct - provide a ticket for these service authorizations. Obviously, this protocol is very laborious and imposes a large burden on the SA. In particular, it is the SA's responsibility to verify to which door a particular user is authorized and to issue the respective tickets. Furthermore, it requires the SA to be online and work on the protocol in real time. Having a user have access to the SA also introduces additional security threats.
没有协议的Kerberos入场券Kerberos ticket without protocol
原则上,我们可“放弃”Kerberos协议而仅使用入场券。即,所有入场券可以预先预定或提前预计算,且用户可在主门进入的时间获得它们,并不需要参加适当的Kerberos协议。In principle, we could "forgo" the Kerberos protocol and just use tickets. That is, all tickets can be pre-booked or pre-computed in advance, and users can obtain them at the time of main gate entry, without the need to participate in the appropriate Kerberos protocol.
然而,许多上述问题仍将保留—特别地,将某些门的控制授权给特定的机构对SA而言应是自然的(但在这种情况下,该控制可被很容易地收回,可能在随后的点被恢复)。However, many of the above-mentioned problems will remain - in particular, it should be natural for SA to delegate control of certain doors to specific agencies (but in this case, this control can be easily taken back, possibly in Subsequent points are restored).
在Kerberos内使用RTCUsing RTC within Kerberos
帮助解决该问题的一种办法是使用实时凭证RTC。例如,我们可使用上述方法中的入场券。然而,在该方法中,我们不会在每天的基础上产生入场券。而是,我们可使用长效入场券,经在入场券的授权数据字段中已传递的RTC管理短效访问控制。One way to help with this is to use a real-time credential RTC. For example, we can use tickets in the above method. However, in this method we don't generate tickets on a daily basis. Instead, we can use a long-lived ticket to manage short-lived access control via the RTC passed in the ticket's authorization data field.
在该例子中,RTC可如公钥证书的例子中那样正确地工作。然而,在此某些优化是可能的。In this example, the RTC works correctly as in the example of the public key certificate. However, some optimizations are possible here.
使用上述的RTC带来大量可能的好处。这些包括(但不限于):Using the RTC described above brings a number of possible benefits. These include (but are not limited to):
1.容易管理1. Easy to manage
a.现在,SA肯定很少被涉及a. Now, SA is definitely rarely involved
b.代替相对较大的入场券,用户将需要获得非常小的RTCb. Instead of a relatively large entry ticket, the user will need to acquire a very small RTC
c.产生RTC可被委托给相应的机构c. The generation of RTC can be entrusted to the corresponding institution
d.收回控制是容易的:这可以至少两种方式实现。第一,更简单和自然的—在入场券期满时不需由SA更新。更精确的机制将使用两种RTC:由SA发出的RTC及由其它机构发出的RTC。接着,每天SA需要对每一机构发出单一的RTC,其保持(或者,其不得不为每一机构-门对发出RTC,其中机构被授权打开门)。每一机构还将为每一用户发出RTC(或者,为每一用户-门对,其中用户被授权打开门)。注意:更传统的Kerberos方法要求更多的入场券被产生并在在线协议这传递。d. Taking back control is easy: This can be accomplished in at least two ways. First, simpler and natural - no renewal by the SA when the ticket expires. A more precise mechanism would use two types of RTCs: RTCs issued by SA and RTCs issued by other agencies. Then, each day the SA needs to issue a single RTC for each establishment it keeps (or, it has to issue an RTC for each establishment-door pair where the establishment is authorized to open the door). Each establishment will also issue an RTC for each user (or, for each user-door pair where the user is authorized to open the door). NOTE: More traditional Kerberos methods require more tickets to be generated and passed over the wire protocol.
e.RTC允许清晰的角色分离,有助于管理和基础结构的许多方面。e.RTC allows for a clear separation of roles that facilitates many aspects of management and infrastructure.
2.效率2. Efficiency
a.空间:RTC大大小于相应的入场券。a. Space: The RTC is substantially smaller than the corresponding ticket.
b.时间:因为它们非常短(且它们较少且只有较少数量的通信巡回),通信将非常快,使用户能够在获得RTC的同时以合理的速度移动通过门。b. Time: Since they are very short (and they are few and only a small number of communication rounds), the communication will be very fast, enabling the user to move through the gate at a reasonable speed while getting the RTC.
c.负载分布:RTC可由非安全的响应者分发。RTC的复制既不昂贵也不危险。c. Load distribution: RTCs can be distributed by non-secure responders. Replication of RTC is neither expensive nor dangerous.
3.安全性3. Security
a.RTC对安全性不敏感,一旦它们被产生,即可被更容易地管理(如由不安全的响应者),并没有对安全性的任何威胁。a. RTCs are not security sensitive, once they are generated they can be more easily managed (eg by insecure responders) and do not pose any threat to security.
b.入场券和授权的分开(经RTC)在密钥管理中具有更多的安全性(当密钥/入场券被实际上产生和通信时)。b. Separation of tickets and authorization (via RTC) has more security in key management (when keys/tickets are actually generated and communicated).
c.SA隔离:SA永远不会真正需要具有与任何用户的直接通信线路。c. SA Isolation: An SA never really needs to have a direct line of communication with any user.
除Kerberos之外Except Kerberos
可以发现的是,上述机制从核心Kerberos特征获益甚少(这主要由于Kerberos被设计用于不同的应用的事实)。这样,在此我们探究我们可怎样使用基于RTC的机制,其不直接关于Kerberos。这些机制可类似于上面的私钥加密和私钥签名。It can be found that the above mechanisms benefit little from the core Kerberos features (this is mainly due to the fact that Kerberos is designed for different applications). Thus, here we explore how we can use RTC-based mechanisms, which are not directly about Kerberos. These mechanisms may be similar to private key encryption and private key signing above.
在这些机制中,特殊机构SA将与每一组织A(B,C,...)和每一门D共享秘密。例如,这可以通过使用上述方法使得SA需要仅保存单一的秘密s实现。在SA和A之间共享的秘密接着可以是SKA=Hash(s,A)。类似地,在SA和D之间共享的秘密为SKD=Hash(s,D)。注意,A和D也需要分别仅保存一密钥SKA或SKD。此外,另外的密钥SKAD=Hash(SKD,A)对应于每一组织-门对(A,D)。该密钥可由SK和D容易地计算。将SKAD给予A是必须的但可能不足以使A控制对门的访问。此外,A可能需要从SA(或从另一方)接收用于当前时间周期d的RTC。该RTC,称为RTCAD,不需要是秘密的,并可证明A还与SA保持良好的关系。In these mechanisms, the special agency SA will share secrets with each organization A (B, C, . . . ) and each door D. For example, this can be achieved by using the method described above such that the SA needs to keep only a single secret s. The secret shared between SA and A may then be SKA = Hash(s, A). Similarly, the secret shared between SA and D is SKD = Hash(s, D). Note that A and D also need to store only one key SKA or SKD respectively. Furthermore, an additional key SKAD=Hash(SKD, A) corresponds to each organization-gate pair (A, D). This key can be easily calculated from SK and D. Giving SKAD to A is necessary but probably not sufficient for A to control access to the door. Furthermore, A may need to receive an RTC from SA (or from another party) for the current time period d. This RTC, called RTCAD, need not be secret and can prove that A is also on good terms with SA.
由A雇用并被授权进入门D的每一用户U接着可从A接收密钥SKAUD=Hash(SKAD,U)。注意,SKAUD可由A和D在没有任何另外的密钥的情况下容易地计算。将SKAUD给予U是必须的但可能不足以使U能够打开门D。此外,U可能需要单独的用于当前时间周期d的RTC:RTCAUDd。Each user U hired by A and authorized to enter door D may then receive from A the key SKAUD=Hash(SKAD, U). Note that SKAUD can be easily computed by A and D without any additional keys. Giving SKAUD to U is necessary but probably not sufficient for U to be able to open door D. Furthermore, U may need a separate RTC for the current time period d: RTCAUDd.
注意,该方法已引人注目地简化了信息流:在每一时间周期d的开始,SA为每一组织A发出单一的RTCAD。每一组织A继而为每一用户-门对发送单一的TCAUDd。所有这些RTC均可由雇员在进入主门时获得。假定,用户U被授权进入设施内的100个门,用于所有门的RTCAUDd要求少于2KB-即使慢速连接也可管理的量(通常,其仅花不到1秒的时间)。Note that this approach already dramatically simplifies the information flow: at the start of each time period d, the SA issues a single RTCAD for each organization A. Each organization A then sends a single TCAUDd for each user-gate pair. All of these RTCs are available to employees upon entering the main gate. Assuming that a user U is authorized to access 100 doors in the facility, the RTCAUDd requirement for all doors is less than 2KB - a manageable amount even on slow connections (typically, it only takes less than 1 second).
要打开门D,用户U需要呈现RTCAd及RTCAUDd,并基于密钥SKAUD执行鉴别(该鉴别可以是挑战-响应型以保护密钥)。注意:由于相对少量的RTCAd凭证可能呈现在系统中,这些凭证的确认可能不需要在每用户的基础上进行。而是,每一门可确认其接收的每一RTCAd并缓存结果,以用于其它用户的确认。To open door D, user U needs to present RTCAd and RTCAUDd and perform authentication based on key SKAUD (the authentication can be of challenge-response type to protect the key). NOTE: Due to the relatively small number of RTCAd credentials that may be present in the system, validation of these credentials may not need to be done on a per-user basis. Instead, each gate may validate each RTCAd it receives and cache the results for validation by other users.
特殊机构SA可能希望对组织访问门进行更好的控制。要实现此,代替每组织凭证RTCAd,SA可发出每一组织门对(A,D)的RTC:RTCADd。接着,对于SA,授权并收回每一组织在每天的基础上对每一门的控制是可能的。注意,这至多使每一用户需要接收的RTC数据量翻倍(对于上述例子,依然保持所要求的过渡时间在不到1秒的时间内)。A special agency SA may wish to have better control over organizational access doors. To achieve this, instead of a per-organization credential RTCAd, the SA can issue an RTC for each organization door pair (A, D): RTCADd. Then, for SA, it is possible to delegate and reclaim control of each gate to each organization on a daily basis. Note that this at most doubles the amount of RTC data each user needs to receive (still keeping the required transition time under 1 second for the above example).
聚集RTCaggregate RTC
可以发现,访问控制权不会引人注目地天天改变。这样,上述机制的许多能力均未被使用。我们提出RTC聚集机制,其可被用在相对稳定的环境中以提高甚至另外的效率。It can be seen that access control rights do not change dramatically from day to day. As such, many of the capabilities of the mechanisms described above are unused. We propose an RTC aggregation mechanism that can be used in relatively stable environments to improve even additional efficiency.
例15:Example 15:
作为一个例子,有100个组织,每一组织有权使用1000个门。因此,有100000个组织-门对,因而,RTCADd凭证将由SA每天发出和分发。此外,如果每一组织雇用大约1000人,这将导致100000000个RTCAUDd凭证将由所有组织发出和分发。As an example, there are 100 organizations and each organization has access to 1000 doors. Thus, there are 100,000 organization-gate pairs, and thus RTCADd credentials will be issued and distributed by the SA on a daily basis. Furthermore, if each organization employs approximately 1000 people, this would result in 100 million RTCAUDd credentials to be issued and distributed by all organizations.
让我们将所有组织-用户-门三个一组的AUD分为按层级安排的组。例如按如下可很容易地想象这些。让所有AUD对应于对称的二进制树形网络的树叶(以优选方式排序的)。接着,树的每一节点n对应于一组所有AUD对应于在n的子树中的树叶的AUD。对于每一这样的节点和时间周期d,让其有一个对应凭证RTCnd。则对于任一AUD祖先n,AUD在周期d的有效性可由任一凭证RTCnd证明。因而,如果所有AUD组在天d保持有效,则单一的凭证RTCr足以用于整个系统,其中r为树的根。Let's group the AUD of all org-user-gate triplets into hierarchically arranged groups. These can be easily imagined, for example, as follows. Let all AUDs correspond to the leaves (ordered in a preferred way) of the symmetric binary tree network. Then, each node n of the tree corresponds to a set of AUDs where all AUDs correspond to leaves in the subtree of n. For each such node and time period d, let it have a corresponding credential RTCnd. Then for any AUD ancestor n, the validity of AUD in cycle d can be proved by any credential RTCnd. Thus, if all AUD groups remain valid on day d, a single credential RTCr is sufficient for the entire system, where r is the root of the tree.
总之,如果有100个AUD组变得无效的,则至多1500个凭证就足以证明整个系统(其代替100000000)。更一般地,如果有k组无效,至多k(26-lg k)个凭证被需要用于整个系统的证明。In conclusion, if 100 AUD groups become invalid, at most 1500 credentials are enough to justify the whole system (which replaces 100000000). More generally, if there are k groups invalid, at most k(26-lg k) credentials are required for the proof of the whole system.
该方法导致引人注目的改善,即使聚集RTC要求更多的值被保存在门和/或用户中:在上述例子中,这样的开销可至多导致存储器中的26开销的因素,而节约了通信中的巨大的定购(在上述例子中为4或5)。更一般地,如果将被授权的(在我们的例子中,这些是AUD组)一组实体保护N个成员,且其中的k个将被排除,则至多需要k(1g N-lg k)个凭证来证明整个系统,同时用于聚集的开销至多为lgN。甚至更有效的组表示法可能存在(如,在上述已被认知为子集覆盖方法时,我们还可使用子集区分覆盖及基于其的最新结果)。This approach results in a dramatic improvement, even though aggregated RTC requires more values to be kept in gates and/or users: in the above example, such overhead can result in at most a factor of 26 overhead in memory, saving communication Huge order in (4 or 5 in the example above). More generally, if a set of entities to be authorized (in our case, these are the AUD groups) protects N members, of which k are to be excluded, then at most k(1g N-lg k) are required Credentials are used to attest to the entire system, while the overhead for aggregation is at most lgN. Even more efficient group representations may exist (eg, while the above has been recognized as a subset covering method, we can also use subset distinguishing covering and state-of-the-art results based on it).
这样,该聚集凭证的确认可被优化,如通过缓存至少用于较大的组的结果。In this way, validation of the aggregated credentials can be optimized, such as by caching the results at least for larger groups.
RTC实施及最优化RTC implementation and optimization
实时凭证的许多不同的实施是可能的。这些RTC的实施还允许许多不同的优化。例如,实时凭证可被实施如下:x0为随机值,如20字节长。xi被定义为xi=Hash(xi)。xn为以某一方式(如由SA从SA安全通信到门D)固定的公开值。接着,Xn-d为时间周期d的实时凭证RTCd。其可通过应用Hash()到xn-dd次而被验证并验证结果是否等于xn。这实质上是RTC怎样被实施在公钥证书的情况中—例如,xn可被包括为证书的一部分。Many different implementations of real-time credentials are possible. The implementation of these RTCs also allows for many different optimizations. For example, real-time credentials can be implemented as follows: x 0 is a random value, such as 20 bytes long. x i is defined as x i =Hash( xi ). xn is a public value fixed in some way (eg securely communicated from SA to door D by SA). Next, X nd is the real-time credential RTCd of time period d. It can be verified by applying Hash() to x nd d times and verifying that the result is equal to x n . This is essentially how RTC is implemented in the case of public key certificates—for example, x n may be included as part of the certificate.
在此实质上使用同样的实施也是可能的。代替将xn包括在证书内,在此我们可将其包括为Kerberos入场券的一部分。或者,我们可通过其它一些安全方式通信它,如用门D的密钥SKD加密等。It is also possible to use essentially the same implementation here. Instead of including x n in the certificate, here we can include it as part of the Kerberos ticket. Alternatively, we can communicate it through some other secure means, such as encrypting with the key SKD of door D, etc.
RTCd的另一可能的实施是简单地将其设为等于Hash(SKD,RTC,d),其中RTC指凭证ID。例如,为了使组织A能够具有在天d对D的控制,凭证RTCADd应被使用,其中RTCADd可被设为RTCADd=Hash(SKAD,d)。用户U在天d访问门D的凭证,如由组织A发出,可以是RTCAUDd=Hash(SKAD,U,d)。该方法允许凭证正好提前特定的日期被预发出,且不授权在想要的时间周期外的任何天的访问(即使这些是非邻近的)。Another possible implementation of RTCd is to simply set it equal to Hash(SKD, RTC, d), where RTC refers to the credential ID. For example, to enable organization A to have control over D on day d, a credential RTCADd should be used, where RTCADd may be set to RTCADd=Hash(SKAD,d). The credential for user U to access door D on day d, if issued by organization A, may be RTCAUDd=Hash(SKAD, U, d). This method allows credentials to be pre-issued just a specific date in advance, and does not grant access for any days outside the desired time period (even if these are non-contiguous).
上述凭证的确认是直接的。注意,上述凭证实质上是具有适当密钥的对称的签名。在所有上述凭证中,加密可被用以代替Hash。Confirmation of the above credentials is straightforward. Note that the above credentials are essentially symmetric signatures with appropriate keys. In all of the above credentials, encryption can be used instead of Hash.
注意,我们已使系统在每一步更有效。设定机场具有1000个门、100个机构及10000个可能的工人,为了简单,并假设控制在每天的基础上给出。则中央机构被卷入计算每一门-用户密钥的Kerberos/Needham-Schroeder系统肯定每天涉及1亿个密钥。如上面所概述的系统,仅要求SA每天产生并递送少于100000个密钥给所有机构。Note that we have made the system more efficient at every step. Suppose the airport has 1000 gates, 100 establishments, and 10000 possible workers, for simplicity, and assumes that controls are given on a daily basis. Then a Kerberos/Needham-Schroeder system where the central authority is involved in computing each gate-user key must involve 100 million keys per day. The system as outlined above only requires the SA to generate and deliver less than 100000 keys per day to all institutions.
在OCSP中的实时凭证Live Credentials in OCSP
我们现在描述本发明的优选实施例的实时凭证确认技术在使用开放证书状态协议(OCSP)用于数字证书确认的环境中的使用。这表明本发明技术怎样保持与OCSP的兼容性,同时提供较传统OCSP实施质量上较高的安全性和可升级性。We now describe the use of the real-time credential validation technique of the preferred embodiment of the present invention in an environment using the Open Certificate Status Protocol (OCSP) for digital certificate validation. This demonstrates how the inventive technique maintains compatibility with OCSP, while providing qualitatively higher security and scalability than traditional OCSP implementations.
传统的OCSP实施Traditional OCSP implementation
CRL可能变得非常大,因为它们集中提供关于许多证书的废除证据(因而,及间接地,有效性证据)。比较地,OCSP为单个的证书提供有效性证据。OCSP服务通常由OCSP响应者实施。这样的响应者为服务器,其在从客户(aka证书信任方)接收关于由特定CA发出的特定证书的有效性的问题的基础上,提供指示证书状态和回答时间的数字签署的回答。为实现此,对于OCSP响应者而言,知道所有CA的证书的状态是必须的,因为只有CA可废除其自己的证书。如果OCSP响应者为CA自身,这样的知识被很一般地获得。否则,必须采用一些其它形式来使OCSP响应者保持关于CA的证书的状态的更新。例如(cfr,美国专利号5,717,758,基于证明的证书废除系统),CA可将其最近的CRL发送给响应者,且响应者可请教签署的文档以推断感兴趣的证书当前是有效还是已被废除,且在其签署的响应中,同样指明时间及下一更新的时间。(在此,该更新时间与CA的下一CRL的日期一致是自然的,因为CRL可触发不同的响应。)CRLs can become very large because they collectively provide proof of revocation (and thus, indirectly, proof of validity) on many certificates. In contrast, OCSP provides proof of validity for individual certificates. OCSP services are typically implemented by OCSP responders. Such a responder is a server that, upon receiving a question from a client (aka certificate relying party) about the validity of a particular certificate issued by a particular CA, provides a digitally signed answer indicating the status of the certificate and the time of the answer. To achieve this, it is necessary for the OCSP responder to know the status of all CA's certificates, since only a CA can revoke its own certificates. Such knowledge is obtained very generally if the OCSP responder is the CA itself. Otherwise, some other form must be employed to keep the OCSP responder updated on the status of the CA's certificate. For example (cfr, U.S. Patent No. 5,717,758, Certificate-Based Certificate Revocation System), the CA can send its most recent CRL to the responder, and the responder can consult the signed document to deduce whether the certificate of interest is currently valid or has been revoked , and in its signed response, also specify the time and the time of the next update. (Here, it is natural for this update time to coincide with the date of the CA's next CRL, since CRLs can trigger different responses.)
当然,怀恶意的响应者可提供关于特定CA的证书的假的签署的回答,有或没有请教后者的CRL。对于证书信任方,要安全地依赖于OCSP响应者关于特定CA的证书的数字签署的回答,OCSP设想CA提供一响应者证书给响应者,一特殊的数字证书—由CA签署—其实质上向其它方证明CA委托响应者提供关于其证书的准确证据。Of course, a malicious responder could provide a fake signed answer about a particular CA's certificate, with or without consulting the latter's CRL. For certificate relying parties, to safely rely on the OCSP responder's digitally signed answer regarding a particular CA's certificate, OCSP envisages that the CA provide a responder certificate to the responder, a special digital certificate—signed by the CA—that essentially Other parties certify that the CA entrusts the responder to provide accurate evidence about its certificate.
注意,对于该工作过程,每一OCSP响应者(及每一CA)必须具有秘密签署的密钥,且该密钥必须被保护(理想地,通过将其放置在电子库或服务器在电子库中使用它)。Note that for this to work, each OCSP responder (and each CA) must have a privately signed key, and this key must be protected (ideally, by placing it in an electronic vault or by the server in an electronic vault use it).
图2示出了在繁琐的OCSP环境中的事务处理顺序。秘密签署的密钥被保护的事实通过将它们置入粗的“边线”而被强调。在签署的数据的情况下,签署者的名字被立即指示在下面。该图示出了该事务处理的各个PKI敏感的组成,如阴影框所示。发证机构自身具有私钥SK1,其必须被保持安全的以防止未经授权的证书发出和废除。该密钥被用于签署CRL,其被公布给OCSP响应者。响应者1A的密钥也必须被保持安全的,并被用于签署响应者1A的OCSP响应。Figure 2 shows the sequence of transactions in a cumbersome OCSP environment. The fact that the secret signing keys are protected is emphasized by placing them in thick "borders". In the case of signed data, the name of the signer is indicated immediately below. The figure shows the various PKI-sensitive components of the transaction, as indicated by the shaded boxes. The issuing authority itself has a private key SK1 which must be kept secure to prevent unauthorized certificate issuance and revocation. This key is used to sign the CRL, which is published to OCSP responders. Responder 1A's key must also be kept secure and used to sign
OCSP的缺点Disadvantages of OCSP
缺点1:计算Disadvantage 1: Calculation
数字签名是计算集中的运算。由响应者基于每一响应创建的数字签名在请求时产生,且是到目前为止确认运算的计算最集中的部分:其可容易地在任何地方增加从50毫秒到1秒的时间到事务处理时间。Digital signatures are computation-intensive operations. The digital signature created by the responder based on each response is generated on request and is by far the most computationally intensive part of the validation operation: it can easily add anywhere from 50 milliseconds to 1 second to transaction time .
即使响应者缓存其关于数字证书C的数字签名,并接着当询问C时发送同一签名,直到下一更新,对询问C的第一用户的回答将被大大延迟。Even if the responder caches its digital signature on digital certificate C, and then sends the same signature when querying C until the next update, the answer to the first user of query C will be greatly delayed.
缺点2:通信(与集中的实施)Con 2: Communication (vs. centralized implementation)
假设单个确认服务器以集中的方式实施OCSP。则所有证书有效性询问将实际上不得不发送给它,且服务器将是导致相当的拥塞和延迟的主要“网络瓶颈”,如图3中所示。如果巨大数量的诚实用户突然询问服务器,则中断的“拒绝服务”将可能发生。Assume a single acknowledgment server implements OCSP in a centralized fashion. All certificate validity queries would then actually have to be sent to it, and the server would be the main "network bottleneck" causing considerable congestion and delay, as shown in FIG. 3 . If a huge number of honest users suddenly interrogates the server, disruptive "denial of service" will likely occur.
缺点3:安全性(如果是分布式的实施)Con 3: Security (if distributed implementation)
为防止集中的OCSP实施可能导致的瓶颈问题,CA可考虑分布由其证书产生的请求负载,其通过将它分布在几个OCSP服务器中(其适当地证明)。一般而言,分布单个服务器的负载到几个服务器(如100个),战略地位于全球各地,将减轻网络拥塞。然而,在OCSP情况下,负载分布产生比其解决的问题更坏的问题。为了将其响应加到其接收的证书询问,100个服务器的每一个均应有其自己的秘密签名钥匙。因而,危及100个服务器的任一服务器均将危及整个系统。To prevent bottleneck problems that a centralized OCSP implementation might cause, a CA may consider distributing the request load generated by its certificate by distributing it among several OCSP servers (which are properly certified). In general, distributing the load of a single server to several servers (say 100), strategically located around the globe, will alleviate network congestion. However, in the case of OCSP, load distribution creates problems worse than it solves. Each of the 100 servers should have its own secret signing key in order to add its response to the certificate challenge it receives. Thus, compromising any one of 100 servers will compromise the entire system.
如果传统的OCSP响应者被危及安全,攻击者可做下述三件事之一。第一,其可阻止响应者发出任何响应。这种类型的攻击在证书信任方是可检查的,因而不是太严重。第二,其可使用已发现的秘密签署的密钥签署响应,其指明合法的证书已被废除。第三,最具破坏性地,其可使响应者产生签署的响应,其指明废除的证书依然有效。这种类型的假肯定响应可允许已终止的雇员重新有权使用系统等。If a traditional OCSP responder is compromised, an attacker can do one of three things. First, it prevents the responder from issuing any responses. This type of attack is checkable on the certificate relying side, so it is not too serious. Second, it can sign a response using the discovered secret signing key, which indicates that the legitimate certificate has been revoked. Third, and most destructively, it can cause the responder to generate a signed response indicating that the revoked certificate is still valid. This type of false positive response may allow a terminated employee to regain access to the system, etc.
防止响应者被危及的最好办法是使其从安全的电子库运行,具有24×7的监视等。不幸地,这是成本高昂的选择。真正安全的电子库,满足财务CA需要的所有要求,可能需花费$1M以上来建立及$1M/年来运行。即使愿意付出这样的费用,电子库也不能在一夜建成!如果CA需要几个电子库来减轻其当前响应者的负载,在新电子库建成以前其不得不等上几月。The best way to prevent responders from being compromised is to have it run from a secure electronic vault, have 24×7 monitoring, etc. Unfortunately, this is a costly option. A truly secure electronic library, meeting all the requirements of a financial CA, may cost more than $1M to build and $1M/year to run. Even if one is willing to pay such a fee, electronic libraries cannot be built overnight! If a CA needs several e-banks to ease the load on its current responders, it has to wait several months before a new one is built.
此外,即使几个昂贵的电子库已在合适的位置,它们还可能是不安全的。这是因为OCSP机制要求响应者接收来自不信任的源的请求,并使用其秘密签署的密钥服务它们。因而存在这样的可能性,怀恶意的代理更喜欢探索操作系统下面的任何弱点并因而将秘密签署的密钥暴露以通过装甲的混凝土墙钻空子。总之,如果没有电子库或足够昂贵的周界保护响应者,则危及安全的可能性非常高,但即使真正安全的建筑容纳响应者,响应者还可能受软件攻击:对于老练的数字敌人,OCSP机制使电子库看起来非常像具有“窗口”的料仓。Furthermore, even if several expensive electronic libraries are in place, they may not be secure. This is because the OCSP mechanism requires the responder to receive requests from untrusted sources and serve them using its privately signed key. There is thus the possibility that a malicious agent would prefer to explore any weak spots beneath the operating system and thus expose the secret signing keys to exploit loopholes through armored concrete walls. In conclusion, without electronic vaults or sufficiently expensive perimeter protection responders, the potential for a security compromise is very high, but even if a truly secure building houses a responder, the responder can be vulnerable to software attacks: For sophisticated digital adversaries, OCSP Mechanisms make electronic vaults look very much like bins with "windows".
缺点4::信任流Disadvantage 4:: trust flow
OCSP在服务源自不同安全领域的证书有效性请求时有困难。在图4所示的想定中,由组织#1运行的响应者能够提供关于来自CA#1的证书的状态的响应,但由另一组织运行的响应者则可能没有足够的信息来提供关于“外来的”证书的响应。例如,由发证机构CA2运行的响应者2A不知道怎样回答关于CA1的证书的请求。OCSP has difficulty servicing certificate validity requests originating from different security domains. In the scenario shown in Figure 4, a responder run by
源自缺乏特定的知识的这个问题可以下述两种方式之一提出。This problem stemming from a lack of specific knowledge can be posed in one of two ways.
第一,来自组织#2的证书信任方可发现来自组织#1的响应者向它们询问来自CA#1的证书的状态。然而,这限制了性能,因为来自组织#1的响应者可能在地理上远离于组织#2中感兴趣的证书信任方,这样,网络时间可大大减慢整个确认过程。First, certificate relying parties from
第二是允许来自组织#2的响应者做出关于来自组织#1的证书的响应,通过使CA#1转发其CRL到“外来的”响应者。这确实不引起安全威胁,因为CRL是数字签署的,并因为CA希望通知最大可能的受众关于其自己的证书的有效性。这向组织#2的响应者提供了足够的信息以用于回答来自证书信任方的关于CA1的证书的请求。但对于证书信任方,要真地认真地采用响应者2A的数字签署的回答,CA1还应证明响应者2A对回答其自己的证书的有效性询问是可信赖的。整个过程如图5所示。The second is to allow a responder from
该方法提供了较好的可升级性和性能,但其弄混了两个组织之间的安全性和信任流。在上述例子中,响应者#2A权威地响应于证书信任方CA#1的证书#321还是有效的。因为任何原因(错配置、敌方攻击、或直接欺骗)做出不正确的响应,响应者2A可导致对来自组织#1的用户不利的结果。通过允许响应者#2A做出关于其自己的证书的权威声明,组织#1放弃其先前保有的某些信任。This approach provides better scalability and performance, but it confuses the security and trust flow between the two organizations. In the above example, responder #2A authoritatively responds that certificate #321 of certificate relying
作为例子,设想组织为信用卡发行者。银行#1废除了用户#321的卡证书,且其支付以确保其响应者是安全的和可靠的。来自银行#2的响应者被错配置,使得当商人证书信任方询问用户#321的有效性时,它们错误地响应该用户有效。商人接受该回答并允许被废除的用户的交易进行。As an example, consider an organization that is a credit card issuer.
组织之间的这种类型的信任委托在某些情况下是可接受的,但其对传统的OCSP的任何大规模按级调配不总是有用的。This type of trust delegation between organizations is acceptable in some circumstances, but it is not always useful for any large-scale leveling of traditional OCSP.
在OCSP中的实时凭证Live Credentials in OCSP
根据上述问题,我们希望提出另外的证书确认系统,实时凭证(RTC),其在保持与当前的OCSP标准的兼容性的同时,解决了传统OCSP的所有上述缺陷。RTC技术不同于传统的OCSP,因为:In light of the above problems, we wish to propose another certificate validation system, Real-Time Credentials (RTC), which addresses all the above-mentioned deficiencies of traditional OCSP while maintaining compatibility with the current OCSP standard. RTC technology is different from traditional OCSP because:
1.其不委托信任给外来的响应者;1. It does not delegate trust to external responders;
2.其将所有确认信任集中到单一机构(RTC机构);还有2. It centralizes all confirmation trusts to a single institution (the RTC institution); and
3.其将来自该单一机构的询问负载分布给任意数量的未受保护的响应者;3. It distributes the query load from that single institution to any number of unprotected responders;
4.即使在依赖于数千响应者的分布式实施中其也不降低安全性(即使这些响应者未受保护);4. It does not reduce security even in distributed implementations relying on thousands of responders (even if these responders are not protected);
5.其引人注目地改善了对询问的响应时间。5. It dramatically improves response time to inquiries.
这在安全性、性能、可升级性及非均匀性方面对传统OCSP提供了根本的改善。This provides fundamental improvements over traditional OCSP in terms of security, performance, scalability, and non-uniformity.
RTC系统包括下述步骤:The RTC system includes the following steps:
CA证明RTCA:新系统以RTC机构(RTCA)为中心。这是一个可以或可不与特定组织的CA一致的实体。优选地,每一CA提供其自己的具有特殊证书的RTC,RTCA证书。CA最好数字地签署该证书,指明其委托且确实授权RTCA提供关于其自己的证书的有效性信息。该证书可结合特定的验证密钥PK(对于其,RTCA拥有相应的秘密签署的密钥)到RTC机构(如由特定的标识符、OID号识别)并以某些方式指明证书实质上给予RTC状态,并可包括其它传统的证书信息和格式。在两个实体一致的情况中,具有不同的签署密钥对它们还是有利的,有效地使得在任何情况下,CA仅发出证书及RTC机构仅管理它们(即,证明它们有效或被废除)。存在这样的情况,即使CA和RTCA一致,RTCA证书依然可被采用。优选地,每一CA具有唯一一个RTC,尽管用于冗余的目的,具有一个以上可能是有利的,无论是否使用同一签署的密钥。CA Proof RTCA: The new system centers on the RTC Agency (RTCA). This is an entity that may or may not be aligned with a particular organization's CA. Preferably, each CA provides its own RTC with a special certificate, the RTCA certificate. The CA preferably digitally signs the certificate, indicating that it delegates and does authorize the RTCA to provide information about the validity of its own certificate. This certificate may bind a specific verification key PK (for which the RTCA holds a corresponding secret signed key) to the RTC authority (as identified by a specific identifier, OID number) and indicate in some way that the certificate essentially grants the RTC status, and may include other traditional certificate information and formats. In the case where two entities agree, it is still advantageous for them to have different signing keys, effectively such that in any case the CA only issues certificates and the RTC authority only manages them (ie certifies them as valid or revoked). There is such a situation that even if the CA and RTCA are consistent, the RTCA certificate can still be used. Preferably, there is only one RTC per CA, although for redundancy purposes it may be advantageous to have more than one, whether or not the same signing key is used.
RTCA保护其签署的密钥:RTCA必须保护其签署的密钥,例如,借助于电子库或安全设施。(然而,如我们将看到的,对于证书确认目的,没有必要需要另外的电子库)。RTCA可位于同一受保护的设施中,一个以上的服务器嵌入其秘密签署的密钥,或者安全地保存(如,在银行的安全保险箱中)密钥的拷贝,或招待一个以上的服务器,每一服务器具有由CA适当证明的秘密签署的密钥。RTCAs protect their signing keys: RTCAs must protect their signing keys, for example, by means of electronic vaults or secure facilities. (However, as we shall see, for certificate validation purposes, no additional electronic repository is necessary). The RTCA can be located in the same protected facility, with more than one server embedding its privately signed key, or keeping a copy of the key securely (e.g., in a bank's safe deposit box), or hosting more than one server, each The server has a secret signed key properly certified by the CA.
CA通知RTCA其证书的状态。例如,其以在线/实时的方式保持对证书有效性的任何变化的评价(发送消息通知RTCA证书状态的变化,只要其发生)。或者,当产生时,其可发送其CRL给RTCA。The CA notifies the RTCA of the status of its certificate. For example, it maintains an evaluation of any changes in certificate validity in an online/real-time manner (sends messages notifying RTCA certificate status changes whenever it occurs). Alternatively, it can send its CRL to the RTCA when generated.
RTCA独立于任何请求,单独签署给定时间间隔的每一证书的有效性状态:最好定期地(或在一连串日期的任何日期),基于其当前确认知识(如基于CA的最新CRL)并独立于任何证书信任方请求,RTCA处理其CA的每一显著地证书,并数字地签署陈述该证书状态的声明。因此,结果携载指明用于该证书的下一更新的时间组成。如果RTC的周期取决于发出CA发出的CRL,更新时间可以是下一CRL的时间。时间组成还可指明用于处理中的CRL的发出时间。因此,实质上,RTCA预计算数字签名,其指示每一证书在给定时间间隔T的状态(如从最新CRL的日期---或从足够近的日期---到下一CRL的日期---或到足够近的日期,在任一情况下,允许足够的时间来处理所有必要的信息)。该预计算独立于任何关于证书的证书信任方请求执行。事实上,优选地,RTCA在时间间隔中进行的任何关于证书状态的询问之前预计算所有签署的证书状态的声明,或完全在时间间隔之前。特别地,RTCA可早于T开始1分钟而预计算所有其签署的关于时间间隔T的声明。这样做将不与CRL“同步”的事实不太严重。CRL本身不是实时的,关于证书废除的信息及证书已被废除的原因可能需要相当多的时间。例如,用户可认识到,其密钥已被危及安全并因而在该事实之后1天请求其自己的证书被废除。因而,在任何情况下,证书以1天的延迟被废除。优选地,RTCA签署的证书有效性的声明为标准的OCSP格式。即,实质上,RTCA最好预计算OCSP-响应于尚未被产生的OCSP请求。这是重要的,因为OCSP软件已经在合适的位置,且其不需要修改任何现有的证书信任方软件的情况下可非常方便的利用RTC系统。RTCA independently signs the validity status of each certificate at a given interval, independently of any request: preferably periodically (or on any date in a sequence of dates), based on its current validation knowledge (e.g. based on the latest CRL of the CA) and independently At the request of any certificate relying party, RTCA processes each notable certificate of its CA and digitally signs a statement stating the status of the certificate. Thus, the result carries a time component indicating the next update for that certificate. If the period of the RTC depends on the CRL issued by the issuing CA, the update time can be the time of the next CRL. The time component may also indicate the issue time for the in-process CRL. So, in essence, RTCA precomputes a digital signature that indicates the status of each certificate at a given time interval T (eg, from the date of the latest CRL --- or from a sufficiently recent date --- to the date of the next CRL- -- or to a sufficiently recent date, in either case, to allow sufficient time to process all necessary information). This precomputation is performed independently of any certificate relying party requests for the certificate. In fact, it is preferred that the RTCA pre-computes all signed certificate state statements before any queries about certificate state made in the time interval, or completely before the time interval. In particular, the RTCA may precompute all of its signed statements about
RTCA发送其预计算的有效性状态的签名给未保护的响应者:在预计算该签名后,RTCA使其可用于其它方,包括证书信任方(如,响应于它们的请求),但是,特别地,发送给响应者。这些响应者不需要被保护。实际上,它们处理RTCA签署的消息,且这些不能以不可检测的方式而被实质上修改或改变。事实上,RTCA可容易地发送它们给外来的响应者(响应者属于其它组织)。RTCA可有助于响应者处理其签名,其通过将它们以适当组织的方式呈现给响应者。例如,其可根据证书序列号排序呈现其签署的证书有效性状态,或以任何方式,或确保每一签署的数据具有同一或适当接近的长度等。为确保所有有关的预计算的响应已被接收,RTCA可签署并注明其响应的整体的日期(如,所有这些关于同一时间间隔和CA)。RTCA sends a signature of its precomputed validity status to unprotected responders: After precomputing this signature, RTCA makes it available to other parties, including certificate relying parties (e.g., in response to their requests), but, in particular , sent to the responder. These responders do not need to be protected. In fact, they handle RTCA signed messages, and these cannot be substantially modified or changed in an undetectable way. In fact, RTCA can easily send them to external responders (responders belonging to other organizations). RTCA can assist responders in handling their signatures by presenting them to the responders in a properly organized manner. For example, it can present the validity status of its signed certificates sorted by certificate serial number, or in any way, or ensure that each signed data has the same or suitably close length, etc. To ensure that all relevant precomputed responses have been received, the RTCA may sign and date the entirety of its responses (eg, all of these with respect to the same time interval and CA).
此外,RTCA最好将其自己的RTCA证书发送给其响应者。该传输不必在每次更新时均发生。特别地,其可仅在开始的时候执行。Also, RTCA preferably sends its own RTCA certificate to its responders. This transfer does not have to happen every update. In particular, it can only be performed at the beginning.
响应者保存RTCA预计算的签名:响应者将所接收的预计算的RTCA的签名保存足够的时间。优选地,如果这些签名关于给定时间间隔T,它们保存它们至少直到T的结束。优选地,响应者(特别是那些与RTCA属于同一组织的响应者)可以是主动的并检查它们已正确和及时地接收适当的RTCA签名。例如,响应者可:Responder saves RTCA pre-computed signature: The responder saves the received pre-computed RTCA signature for a sufficient time. Preferably, if these signatures are for a given time interval T, they keep them at least until the end of T. Preferably, responders (especially those belonging to the same organization as the RTCA) can be proactive and check that they have received the appropriate RTCA signatures correctly and in time. For example, Respondents may:
(1)验证预计算的关于时间间隔T的响应已在T的开始被接收(或其它关于T的适当的时间);(1) Verify that the precomputed response for time interval T has been received at the beginning of T (or other appropriate time for T);
(2)验证所接收的RTCA签名(及可能适当的RTCA证书);(2) verify the received RTCA signature (and possibly the appropriate RTCA certificate);
(3)验证其是否已接收所有签名(如少于预期数量的签名,比最终传输的签名少等);(3) Verify that it has received all signatures (such as less than the expected number of signatures, fewer than the final transmitted signatures, etc.);
(4)验证其是否已接收先前被声明废除的证书的有效性的RTCA签署的声明;等。(4) Verify that it has received an RTCA-signed statement of the validity of a certificate previously declared revoked; etc.
如果任一问题均被检测,其可通知RTCA或另一适当的实体。If either problem is detected, it can notify the RTCA or another appropriate entity.
证书信任方向响应者询问有效性状态信息:证书信任方向响应者询问证书的有效性状态,它们使用OCSP格式用于它们的请求。The certificate trust asks the responder for validity status information: The certificate trust asks the responder for the validity status of the certificate, and they use the OCSP format for their requests.
响应者以预计算的响应回答询问:当询问给定证书的有效性时,响应者从存储器取回RTCA预计算的用于该证书的回答并将其返回。The Responder answers the query with a precomputed response: When asked about the validity of a given certificate, the Responder retrieves the RTCA precomputed answer for that certificate from memory and returns it.
响应者还可转发已签署预计算的响应的RTCA的适当证书。The responder may also forward the appropriate certificate of the RTCA that signed the precomputed response.
证书信任方验证预计算的回答(及RTCA证书):证书信任方处理接收响应以确认感兴趣的证书的有效性状态。优选地,如果响应为OCSP格式,它们使用OCSP软件用于该处理。优选地,它们验证适当的RTCA证书。The certificate relying party verifies the precomputed answer (and RTCA certificate): the certificate relying party processes the received response to confirm the validity status of the certificate of interest. Preferably, if the response is in OCSP format, they use OCSP software for this processing. Preferably, they verify the appropriate RTCA certificates.
通过该申请,应该理解的是,证书可以是不同类的证书,CA证书及CRTA证书的当前有效性的证据可被添加及验证,只要需要。By this application, it should be understood that certificates can be of different types, and evidence of the current validity of CA certificates and CRTA certificates can be added and verified as needed.
图6示出了RTC系统Figure 6 shows the RTC system
RTC系统的优点Advantages of the RTC system
RTCA定期产生CA的所有当前证书的数字签署的有效性声明(证据,因为该声明不能被伪造),并将它们分发给任何感兴趣的响应者。(每一证据最好被构建为句法正确的OCSP响应,由RTCA私钥签署。)当证书信任方询问证书的状态时,RTC响应者能够返回其已缓存的相应预产生的响应。证书信任方可验证RTCA的签名。(此外,其还可验证RTCA的证书,以确保其正与特定CA的可信RTC机构打交道。当然,这样的所有其它证书可以是不同类的。)RTCA periodically produces digitally signed validity statements (evidence, since the statement cannot be forged) of all current certificates of the CA and distributes them to any interested responders. (Each proof is preferably constructed as a syntactically correct OCSP response, signed by the RTCA private key.) When a certificate relying party asks for the status of the certificate, the RTC responder can return the corresponding pre-generated response it has cached. The certificate trustee can verify the signature of RTCA. (Additionally, it can also verify the RTCA's certificate to ensure that it is dealing with a trusted RTC authority for a particular CA. Of course, all other certificates like this could be of a different class.)
优点1:计算Advantage 1: Calculation
数字签名是计算几种的运算。但RTC系统将该困难集中于单一服务器(实体)上:RTCA。因此,非常容易和相对便宜的给给单一的实体装备以足够强大的计算机以处理所有要求的数字签名。对比地,RTC响应者仅执行微不足道的计算。它们实质地(1)保存RTCA签名及(2)仅响应于证书信任方询问执行取回-转发操作。因此,它们可被实施以非常便宜的硬件。因此,总RTC成本可显著地低于OCSP的成本。同时,响应时间非常快。事实上,非常便宜的RTC响应者用于取回并发送预计算的RTCA响应的时间相对于OCSP响应者所花的时间可以忽略不计,因为OCSP必须响应于证书信任方请求执行数字签名。A digital signature is a calculation of several types of operations. But the RTC system concentrates this difficulty on a single server (entity): RTCA. Therefore, it is very easy and relatively cheap to equip a single entity with a computer powerful enough to process all required digital signatures. In contrast, RTC responders perform only trivial computations. They essentially (1) store the RTCA signatures and (2) only perform fetch-forward operations in response to certificate relying party queries. Therefore, they can be implemented with very cheap hardware. Therefore, the total RTC cost can be significantly lower than that of OCSP. At the same time, the response time is very fast. In fact, the time taken by a very cheap RTC responder to retrieve and send a precomputed RTCA response is negligible relative to the time taken by an OCSP responder, since OCSP must perform digital signatures in response to certificate relying party requests.
优点2:通信Advantage 2: Communication
在RTC系统中,响应者可使用微不足道的硬件且不需要是安全的。结果,RTC响应者是非常便宜的,事实上,可被大量配置。即,可总是负担得起RTC系统的分布式实施。因此,即使在短时间内巨量的证书-有效性请求被产生,该负载可总是被扩展到许多RTC响应者,在不产生更多成本的情况下,消除了拥塞和良性拒绝服务的风险。(注意,RTCA的工作量仅取决于证书的量并受有效性状态请求的数量的影响。因而,单一的RCA可被使用,即使预期有数以亿计的有效性请求。)In an RTC system, responders can use trivial hardware and need not be secure. As a result, RTC responders are very cheap and, in fact, can be deployed in large numbers. That is, a distributed implementation of the RTC system can always be afforded. Thus, even if a huge number of certificate-validity requests are generated in a short period of time, the load can always be spread to many RTC responders, eliminating the risk of congestion and benign denial of service at no further cost . (Note that the workload of RTCA depends only on the number of certificates and is affected by the number of validity status requests. Thus, a single RCA can be used even if hundreds of millions of validity requests are expected.)
优点3:安全性Advantage 3: Security
在RTC系统中,只有RTCA(包括CA,如果其是不同位置的实体)被保护。事实上,响应者不保存任何密钥:它们仅保存RTCA的数字签名,但为了所有安全性的目的,在由RTCA计算之后其可被完全公开。对比地,每一OCSP响应者具有秘密签署的密钥,危及其可危及整个系统。因此,防护单点是首选的且较防护许多同等重要的点容易。In an RTC system, only the RTCA (including the CA if it is a differently located entity) is protected. In fact, the responders do not hold any keys: they only hold the RTCA's digital signature, but for all security purposes it can be fully disclosed after being computed by the RTCA. In contrast, each OCSP responder has a secret signing key, compromising which can compromise the entire system. Therefore, securing a single point is preferred and easier than securing many equally important points.
此外,不像在OCSP中,证书信任方不能容易地上演软件攻击。事实上,RTC响应者以非秘密的信息服务证书信任方的请求。实际上,它们没有任何密钥并仅需要保存预计算的数字签名。因而,即使证书信任方成功地嵌入某种特洛伊木马询问,其将不能暴露任何东西。其至多可暴露RTC响应者知道的所有东西,也就是说,其证书的全部和准确的账户是有效的且其在给定的时间间隔被废除。及这不仅是非秘密的信息,而且甚至是发证机构愿意大家普遍知道的信息,使得没有人会不正确地依赖于其证书之一。Also, unlike in OCSP, certificate relying parties cannot easily stage software attacks. In effect, the RTC responder serves the request for a certificate relying party with a non-secret message. In fact, they don't have any keys and only need to store precomputed digital signatures. Thus, even if a certificate relying party succeeds in embedding some kind of Trojan horse challenge, it will not be able to reveal anything. At most it can reveal everything that the RTC responder knows, that is, the full and exact account of its certificate is valid and it is revoked at a given time interval. And this is not only non-secret information, but even information that the issuing authority would like to be generally known so that no one can incorrectly rely on one of its certificates.
最后,注意,软件攻击不可容易地由RTCA上演。实际上,尽管用于秘密签署的密钥,RTCA不处理来自不信任源的请求。这是因为,RTCA不回答任何不信任的请求:其简单地从CA(非常可信的源)接收输入并定期输出数据(签署的有效性声明)。因此,插入特洛伊木马的能力将在RTC系统中丧失!换言之,在RTC系统中,不仅单一的电子库就足够了,而且没有任何“窗口”。Finally, note that software attacks cannot easily be staged by RTCA. In fact, despite the key used for secret signing, RTCA does not process requests from untrusted sources. This is because, RTCA does not answer any untrusted requests: it simply receives input from a CA (a very trusted source) and periodically outputs data (signed validity statements). Therefore, the ability to insert Trojan horses will be lost in the RTC system! In other words, in an RTC system, not only is a single electronic bank sufficient, but there are no "windows" of any kind.
优点4:信任流Advantage 4: Trust Flow
除了这些优点外,在OCSP上的RTC方法在涉及多个组织的不同类的PKI配置内能够有相当的灵活性。下面的图表示出了OCSP上的RTC可怎样被配置在跨CA环境中。In addition to these advantages, the RTC over OCSP approach enables considerable flexibility within heterogeneous PKI configurations involving multiple organizations. The diagram below shows how RTC over OCSP can be configured in a cross-CA environment.
图7示出了来自组织#2的响应者可怎样从组织#1接替响应,而不需要从组织#1传输任何信任到组织#2的响应者。由于RTC响应者是简单的、非委托的接替信息,它们可被广泛分布和镜像,并不降低整个系统的安全性。证书信任方询问组织2的响应者(响应者2B)关于组织#1的证书的有效性。注意,其得回的响应令人信服的,因为其是由组织#1(RTCA1)的RTCA数字签署的。此外,来自正确组织的直接数字签名最好由证书信任方也得到RTCA1的证书(最好由CA1签署)的事实确证,其保证RTCA1确实是组织1的适当的RTC机构。Figure 7 shows how a responder from
总之,组织#1使组织#2的响应者能够提供令人信服的有效性证据,其用于组织#1的证书,并不放弃任何量的对其自己的证书的有效性状态的控制。即,在RTC系统中,信任可从一组织流到另一组织,没有任何相关的安全性或控制损失。In summary,
优点5:安全的不均匀性Advantage 5: Security inhomogeneity
图7示出了极端的情况,其中响应者被对待为明显的网络基础结构而不是坚毅的信任点。其示出了使不同类的响应者能够安全构简单RTC的极端情况,其能够从许多源服务关于证书状态的请求。这类似于由因特网的DNS基础结构提供的服务,因为其允许不同类的命名服务器的收集,其显然地发现和缓存询问的有效响应。Figure 7 shows an extreme case where responders are treated as explicit network infrastructure rather than as resolute trust points. It shows the extreme case of enabling heterogeneous responders to securely construct a simple RTC that can service requests on certificate status from many sources. This is similar to the service provided by the Internet's DNS infrastructure in that it allows a collection of heterogeneous name servers that apparently find and cache valid responses to queries.
该非均匀性是RTC系统相对于传统的OCSP的一个显著优点。其允许很广范围的组织相互工作,使得来自不同组织的证书信任方可以安全的、可靠的、有效的方式交互确认来自其它组织的证书。This non-uniformity is a significant advantage of RTC systems over conventional OCSP. It allows a wide range of organizations to work with each other, so that certificate trustees from different organizations can mutually confirm certificates from other organizations in a safe, reliable, and effective manner.
实时凭证(RTC)是成本低的、安全的、可升级的、及完全有效的证书确认系统。RTC可(1)提供选择给开放证书状态协议(OCSP),及(2)在OCSP内工作并增强OCSP。RTC系统甚至在行使与OCSP标准保持兼容性的选择时,提供相对于OCSP的显著优点,以提供质量高的安全性和可升级性。Real Time Credentials (RTC) is a low-cost, secure, scalable, and fully valid certificate validation system. RTC may (1) provide an option to the Open Certificate Status Protocol (OCSP), and (2) work within and enhance OCSP. RTC systems offer significant advantages over OCSP even when exercising the option of maintaining compatibility with the OCSP standard to provide high quality security and scalability.
RTC最优化RTC optimization
2方对3方证书确认2-party to 3-party certificate confirmation
U为具有证书Cu的一方。作为与V方交易的部分,U可发送Cu给V(除非V已经有了),并可能执行另外的任务(如展示关于在Cu中证明的公开验证密钥的数字签名,其属于U或通过解密随机挑战加密识别)。为了交易安全,V可确认Cu的当前有效性并使有效性询问到达RTC响应者。响应者可回答该询问,其通过取回并返回最近的RTCA签署的关于Cu的声明。然而,询问RTC响应者使3方交易而不是2方交易,从而增加了所希望的U-V交易时间。U is the party with the certificate Cu. As part of the transaction with party V, U may send Cu to V (unless V already has one), and possibly perform additional tasks (such as revealing the digital signature on the public verification key attested in Cu, which belongs to U or passed Decrypt Random Challenge Encryption Identification). For transaction security, V can confirm the current validity of Cu and make the validity query reach the RTC responder. The Responder can answer this query by retrieving and returning the most recent RTCA signed statement on Cu. However, asking the RTC responder makes a 3-party transaction instead of a 2-party transaction, thereby increasing the desired U-V transaction time.
由于其是可预知的时间间隔,RTC可值得注意地帮助。RTC can help notably since it is a predictable time interval.
即,U方可在每一时间间隔T的开始接收Cu在T期间均有效的RTCA签署的声明Du。U可响应于到其的请求接收Du或可被推以Du。在每一情况下,在间隔T期间与V交易,U可转发Du给V,除了交易所必需的所有其它步骤或任务之外。因此,U-V交易被显著地加速,因为V为了确认U的证书的当前有效性,不必调用任何第三方。That is, party U may at the beginning of each time interval T receive an RTCA-signed declaration Du that Cu is valid for T. U may receive Du in response to a request to it or may be pushed with Du. In each case, transacting with V during the interval T, U may forward Du to V, in addition to all other steps or tasks necessary for the transaction. Thus, the U-V transaction is significantly accelerated, since V does not have to invoke any third party in order to confirm the current validity of U's certificate.
在某种意义上,尽管“全部时间”,其包括U获得Du,不可被加速,U-V交易将是。注意,不需要在全部时间中保存,仅加速U-V交易依然是有价值的。事实上,假定RTCA声明在午夜被计算并指明全天为它们的时间间隔。接着,U可在该天前期获得Du(当没有真正的压力存在时),并接着在工作小时期间进行的时间敏感的U-V交易期间将其转发给V,当节约时间可能是实质的时。此外,效率被获得,在获得和缓存Du之后,如果U在与几方(如100)交易时将其在全天转发。这种方式下,例如,单一证书信任方询问成功地替换100个证书信任方请求。In a sense, although "all time", which includes U acquiring Du, cannot be accelerated, U-V transactions will be. Note that saving does not need to be done all the time, only accelerating U-V transactions is still valuable. In fact, assume that RTCA statements are calculated at midnight and specify all day as their time interval. U can then obtain Du early in the day (when no real stress exists) and then forward it to V during time-sensitive U-V transactions during work hours, when time savings may be substantial. In addition, efficiency is gained, after obtaining and caching Du, if U forwards it throughout the day when transacting with several parties (eg 100). In this way, for example, a single certificate relying party query successfully replaces 100 certificate relying party requests.
注意,该优化还可由V方实现。即,在从RTC响应者获得响应Du之后,响应于关于U方的证书Cu的有效性的询问,V方可将Du给予U或使Du可用于其它方使用。Note that this optimization can also be implemented by the V side. That is, after obtaining the response Du from the RTC responder, the V party may give Du to U or make Du available to other parties in response to an inquiry about the validity of U's certificate Cu.
该优化也可应用于优选的、RTC的与OCSP相容的实施中。实际上,我们建议也应用类似的优化到传统的OCSP实施中。即,用户请求并获得关于其自己的证书的OCSP响应,接着将该OCSP响应作为其交易的部分在适当的时间间隔转发给其它交易方。或者,当由证书信任方第一次询问U方的证书Cu的有效性时,OCSP响应者计算其响应Ru,将其返回给询问的证书信任方,且还将其转发给U,使得U可缓存它,至少一段时间,及可将其作为其基于Cu的交易的部分转发。This optimization can also be applied in the preferred, OCSP-compatible implementation of the RTC. In fact, we propose to apply similar optimizations to traditional OCSP implementations as well. That is, a user requests and obtains an OCSP response for its own certificate, which is then forwarded to other transacting parties at appropriate intervals as part of its transaction. Alternatively, when the validity of U's certificate Cu is first queried by a certificate relying party, the OCSP responder computes its response Ru, returns it to the inquiring certificate relying party, and also forwards it to U so that U can Cache it, at least for a while, and may forward it as part of its Cu-based transaction.
有帮助的证书确认Helpful certificate confirmation
注意,RTC系统可使用在单个证书中发现的数据实施,从而节约另外的证书和/或响应长度。如我们已看到的,CA可发出RTCA证书,其授权特定RTCA提供关于其自己的证书的有效性的权威回答。理想地,该RTCA证书指明必需被用于验证RTCA签署的响应的公钥。然而,CA可将该RTCA嵌入在其自己的证书内。即,CA(具有适当的格式,OID等)可包括在证书Cu中,同样,应被用于验证关于Cu的有效性的数字签署的响应的公钥PK。这种方式下,证书信任方不需接收单独的RTCA证书。当向RTC响应者询问最新的Cu的有效性证据时,其仅可获得RTCA签署的响应。事实上,Cu在其内指明公开的验证密钥,证书信任方可使用其用于验证Cu的有效性证据。这可产生显著的传输节约及存储节约。Note that the RTC system can be implemented using the data found in a single certificate, saving additional certificates and/or response length. As we have seen, a CA may issue an RTCA certificate which authorizes a particular RTCA to provide an authoritative answer as to the validity of its own certificate. Ideally, the RTCA certificate specifies the public key that must be used to verify RTCA-signed responses. However, the CA may embed the RTCA within its own certificate. That is, the CA (with appropriate format, OID, etc.) can be included in the certificate Cu, as well as the public key PK that should be used to verify the digitally signed response as to the validity of Cu. In this way, the certificate relying party does not need to receive a separate RTCA certificate. When an RTC responder is queried for the latest Cu's proof of validity, it can only get a RTCA signed response. In fact, Cu indicates within it a public verification key that certificate relying parties can use to verify Cu's proof of validity. This can result in significant transmission and storage savings.
类似地,证书Cu可指明其自己的时间间隔。在这种情况下,RTCA响应不需指明间隔T的开始和结束。或者,如果证书具有包括全天的有效性间隔是清楚的,则不需要该信息在证书内指明,且在RTCA响应应用中也实现了同样的节约。Similarly, certificate Cu may specify its own time interval. In this case, the RTCA response need not indicate the beginning and end of the interval T. Alternatively, if it is clear that the certificate has a validity interval that includes a full day, then this information need not be specified within the certificate, and the same savings are achieved in the RTCA response application.
单独废除Repeal alone
在特定证书C的有效性或中止的RTC证据应指明时间间隔的同时,废除的证据不必指明任何时间间隔:其有能力及时指明单一的点。实际上,不像有效性和中止,传统的废除是不能取消的过程。因而,单一的废除时间rt可有能力用于证明废除的证书。且rt不必是任何时间间隔T的开始。因此,一旦被永久废除,RTCA不必在所有更新的日期发送C的废除证据。原则上,废除证据可被发送一次并接着由RTC响应者缓存并在证书信任方询问关于C时被返回。While RTC evidence of the validity or suspension of a particular certificate C should specify a time interval, the evidence of revocation need not specify any time interval: it has the ability to specify a single point in time. In fact, unlike validity and suspension, traditional revocation is an irreversible process. Thus, a single revocation time rt may be capable of proving a revoked certificate. And rt need not be the start of any time interval T. Therefore, once permanently repealed, RTCA does not have to send proof of repeal of C on all updated dates. In principle, the revocation proof could be sent once and then cached by the RTC responder and returned when the certificate relying party asks about C.
注意,RTCA在证书C已被废除时可被立刻通知。例如,在时间间隔T的中间,其中RTCA已经产生并转发C的有效性证据给RTC响应者。当然,在下一更新之前,不会为C计算这样的有效性证据。因而,较好的计数器测量包括使废除证据优先于有效性证据。即,诚实的证书信任方在某一时间间隔T既看到C的有效性证据,又看到C的废除证据(在时间t),并将C当作废除的(在时间t后)。然而,某些证据信任方可能永远不会看到这样的废除证据,因而C在T结束之前可能被认为依然有效。如我们所看到的,这样的问题是不可避免的,在这种意义上,及时在传统的OCSP中,C的废除新闻需要一定的时间才能到达响应者,且其可能需要花更长的时间来认识到C应被废除。但是,这些问题可通过使RTCA计算并发送C的废除证据给所有RTC响应者而被减轻,只要其获悉该废除。所有正常运行的RTC响应者接着将从存储器擦除C的任何有效性证据并用新近接收的废除证据代替。这种方式下,自那时起,它们将向证书信任方提供关于C的有效性的准确证据。Note that RTCA can be notified immediately when certificate C has been revoked. For example, in the middle of the time interval T, where the RTCA has generated and forwarded C's validity proof to the RTC responder. Of course, no such proof of validity will be computed for C until the next update. Thus, better counter measurement involves prioritizing proof of revocation over proof of validity. That is, an honest certificate relying party sees both C's validity proof and C's revocation proof (at time t) at some time interval T, and treats C as revoked (after time t). However, some proof-relying parties may never see such evidence of revocation, and thus C may be considered valid until T ends. As we can see, such problems are unavoidable in the sense that even in traditional OCSP, news of C's repeal takes a certain amount of time to reach responders, and it may take even longer Come to realize that C should be repealed. However, these problems can be mitigated by having RTCA compute and send proof of C's revocation to all RTC responders as long as they are aware of the revocation. All functioning RTC responders will then erase any validity evidence for C from memory and replace it with the newly received revocation evidence. In this way, they will provide credential relying parties with accurate proof of the validity of C from then onwards.
系统一般性System generality
CA/RTCA/响应者/参与方/用户可以是任何实体(如个人、组织、服务器、设备、计算机程序、计算机文件)或实体的集合。A CA/RTCA/Responder/Participant/User can be any entity (such as a person, organization, server, device, computer program, computer file) or collection of entities.
证书应被解释为包括所有种类的证书,及特别地,包括分级的证书及平面证书(cfr.美国专利号5,420,927,组合于此以供参考)。有效性状态和有效性状态证据卡包括用于分级的证书的有效性状态和有效性状态证据。验证证书C的有效性可包括验证CA证书的有效性,对于具有发出的C的CA而言,及验证CRTA证书的有效性,对于提供签署的关于C的有效性状态的响应的RTCA而言。Certificates should be construed to include all kinds of certificates, and in particular, graded and flat certificates (cfr. US Patent No. 5,420,927, incorporated herein by reference). Validity Status and Validity Status Evidence Cards contain the validity status and validity status evidence of certificates used for grading. Verifying the validity of the certificate C may include verifying the validity of the CA certificate, for the CA with the issuing C, and verifying the validity of the CRTA certificate, for the RTCA providing the signed response regarding the validity status of C.
尽管传统地,证书是数字签署的文档,其将特定的密钥结合到特定的用户,下面的美国专利5,666,416(组合于此以供参考),证书应包括所有种类的数字签署的文档。例如,充作CA的卖主可通过数字地签署其价格列表而证明它(可能连同日期信息)。该证书的有效性状态同样是至关重要的。例如,卖主可能想要证明价格列表的当前有效性。因而客户可能希望确认价格列表文档的当前有效性。特别地,对于证明网页的当前有效性,RTC系统是理想的选择。事实上,产生当前有效性证据的RTCA可在网页本身后面保存。(在这种情况下,则一方可被认为是计算机文件。)While traditionally a certificate is a digitally signed document that binds a specific key to a specific user, US Patent 5,666,416 below (hereby incorporated by reference), certificates shall include all kinds of digitally signed documents. For example, a vendor acting as a CA may certify its price list (possibly along with date information) by digitally signing it. The validity status of the certificate is also critical. For example, a seller may want to demonstrate the current validity of a price list. The customer may thus wish to confirm the current validity of the price list document. In particular, RTC systems are ideal for proving the current validity of web pages. In fact, the RTCA that produces proof of current validity can be stored behind the web page itself. (In this case, the party may be considered a computer file.)
发送数据D(给X方)应被解释为包括使D可用(或使X接收D)。Sending data D (to party X) should be construed to include making D available (or making X receive D).
具有实时确认的三因素鉴别Three-factor authentication with real-time confirmation
下述为具有实时确认和废除的有效的三因素鉴别,其被执行以没有在证书信任方连接基础结构。这可工作于物理访问应用如门或逻辑的应用如文件或应用访问。下面描述的一物理访问想定。其它应用很容易由本领域技术人员从该模型推及。The following is an efficient three-factor authentication with real-time confirmation and revocation, which is implemented to connect infrastructure without a certificate relying party. This works for physical access applications such as gates or logical applications such as file or application access. A physical access scenario is described below. Other applications are readily deduced from this model by those skilled in the art.
例16:Example 16:
1.用户具有保存在无线设备上的凭证(物理权标)。该权标最好具有安全保存数字证书和私钥的能力。优选地,权标具有长距离(WAN)连接方法(如GPRS、SMS、寻呼、CDMA、GSM等)及短距离(PAN)连接方法(如蓝牙、IR、RF等)。权标还可具有一个或多个另外的鉴别因素(用于PIN的键座或生物测定特征读取器)。该例子假定权标为蓝牙移动电话。1. The user has credentials (physical tokens) stored on the wireless device. The token preferably has the ability to securely store digital certificates and private keys. Preferably, the token has a long-range (WAN) connection method (such as GPRS, SMS, paging, CDMA, GSM, etc.) and a short-range (PAN) connection method (such as Bluetooth, IR, RF, etc.). The token may also have one or more additional authentication factors (keypad for PIN or biometric feature reader). This example assumes that the token is a Bluetooth mobile phone.
2.门具有带有能够执行标准PKI操作的小CPU的控制面板,且短距离(PAN)连接方法被用于该物理权标。这个例子假定蓝牙使能的计算机类似于我们的标准演示门。2. The door has a control panel with a small CPU capable of performing standard PKI operations, and a short range (PAN) connection method is used for the physical token. This example assumes a Bluetooth enabled computer similar to our standard demo door.
3.用户被提示将PIN号码输入到其移动电话内(或输入其自己的生物测定信息,如果生物测定信息读取器可用的话)。该提示可一天发生一次,用户试图第一次通过门时,每几个小时一次,随机地,基于特殊的SMS消息的接收。PIN(或生物测定信息)用作第二鉴别因素(第一因素为电话上的证书),并“解锁”电话以用在物理访问应用中。3. The user is prompted to enter a PIN number into their mobile phone (or enter their own biometric information, if a biometric information reader is available). This prompt can occur once a day, when the user is attempting to go through the door for the first time, every few hours, randomly, based on the receipt of a special SMS message. The PIN (or biometric information) is used as a second authentication factor (the first being the credentials on the phone) and "unlocks" the phone for use in physical access applications.
4.一旦用户在门的范围内(对于蓝牙,30英尺),电话及门相互认可并开始初始的鉴别及确认顺序:4. Once the user is within range of the door (30 feet for Bluetooth), the phone and door recognize each other and begin the initial authentication and validation sequence:
4.1(可选的)门通过经蓝牙将门的证书发送给电话而向电话确认其自己。电话使用我们的任一标准方法检查证书并确认门。这解决了“欺诈读卡机”的问题并在电话公开任何信息之前确保门是合法的读卡机。4.1 (Optional) The door identifies itself to the phone by sending the door's credentials to the phone via Bluetooth. The phone checks the certificate and confirms the door using any of our standard methods. This solves the "rogue reader" problem and ensures the door is a legitimate reader before the phone discloses any information.
4.2电话将用户的证书发送给门,其包含用户的生物测定信息细节。电话还发送RTC证据(优选地,或确认权标,即20字节有效性证据,或分布OCSP证据)以证明其当前有效性。证据先前已经WAN以正常的CoreStreet方式接收,如1997年9月9日授权的、题为“证书废除系统”的美国专利5,666,416所描述的。4.2 The phone sends the user's credentials to the door, which contains the user's biometric details. The phone also sends an RTC proof (preferably, or a confirmation token, ie a 20 byte validity proof, or a distributed OCSP proof) to prove its current validity. Evidence had previously been received by the WAN in normal CoreStreet fashion, as described in US Patent 5,666,416, issued September 9, 1997, entitled "Certificate Revocation System."
4.3门以正常的RTC方式鉴别并确认用户的证书。门可在当前范围内(多个雇员可能在门的附近)对多个(甚至所有)电话进行上述工作。4.3 The door authenticates and confirms the user's certificate in the normal RTC way. A door can do this for multiple (or even all) phones in the current range (multiple employees may be in the vicinity of the door).
5.在用户到达门时,先前的步骤已被完成。用户在安装在门上或门附近的读取器上扫描其指纹(或其它生物测定特征)。门将生物测定特征细节与保存在范围内的所有确认的证书中的数据进行匹配。如果生物测定特征匹配,则门打开。否则,门保持关闭。5. By the time the user reaches the door, the previous steps have been completed. The user scans their fingerprint (or other biometric feature) on a reader mounted on or near the door. The gate matches the biometric details with data held in all confirmed certificates in scope. If the biometric characteristics match, the door opens. Otherwise, the door remains closed.
其具有下述优点:It has the following advantages:
1.强大的鉴别(在该例子中为3因素,还可能更多)1. Strong discrimination (3 factors in this example, possibly more)
2.对用户很清楚的(仅走近门并打开它,没有卡或PIN号需被记住)2. Clear to the user (just approach the door and open it, no card or PIN number to remember)
3.实时废除和确认3. Real-time revocation and confirmation
4.在任何门没有连接基础结构被要求—可在30000英尺或在海洋的中间进行4. No connection to the base structure at any gate is required—may be done at 30,000 feet or in the middle of the ocean
5.可被建立以标准的硬件和软件组件5. Can be built with standard hardware and software components
步骤4.1是有单独的利益的独立发明,因为其解决了现有的问题(如由国防部识别),对于这些问题,除此之外尚无其它解决方案。该方案可被扩大,其通过使“废除证据或服务登录行进到和/或自其它人的卡/电话到分离的门”实现。Step 4.1 is an independent invention of separate interest because it solves an existing problem (as identified by the Department of Defense) for which there is no other solution. This scheme can be extended by having "revocation evidence or service logins travel to and/or from other people's cards/phones to separate doors".
保护移动计算资源Protect Mobile Computing Resources
本发明的优选实施例基于20字节的、不可伪造的、公开的“证据”。20字节证据通过使用称为散列的单向函数而密码地保护。该方法很简单,不需要加密且不使用数字签名。这些特性使该技术可理想的用于:大规模配置(规模上1亿);带宽有限的应用(如无线应用);离线确认(即不要求网络连接)。The preferred embodiment of the invention is based on a 20-byte, unforgeable, published "evidence". The 20-byte proof is cryptographically secured using a one-way function called a hash. The method is simple, does not require encryption and does not use digital signatures. These properties make the technology ideal for: large-scale deployments (up to 100 million); bandwidth-limited applications (such as wireless applications); offline validation (ie, no network connection is required).
膝上型电脑偷窃是一个严重的问题,其强加了置换成本、降低了生产率、丢失不可恢复的数据。失去对敏感/机密数据的控制(敏感的运行信息、对客户的建议、电子邮件、日历、联系表、未决的合并、新产品IP、战略、及投放计划、财务运算结果、秘密的赔偿信息),并丢失了网络和基础结构的细节(如用户名&密码、拨入号、IP地址配置、DNS命名规则、及主要的邮件服务)。Laptop theft is a serious problem imposing replacement costs, reduced productivity, and loss of irrecoverable data. Loss of control over sensitive/confidential data (sensitive operational information, advice to customers, emails, calendars, contact forms, pending mergers, new product IP, strategies, and launch plans, financial results, confidential compensation information ), and lost network and infrastructure details (such as usernames & passwords, dial-in numbers, IP address configuration, DNS naming rules, and major mail services).
在一实施例中,本发明提供用于租用,即许可使用指定的时间,其中租期是可配置的参数。本发明的技术加强了有效“租用”的出现。租用为20字节,不可伪造的“公开权标”:有效的权标,中止权标及废除权标。新租用被自动接收。计算机可以被暂时禁用,且系统管理员或用户可恢复膝上型电脑。计算机由系统管理员使用可能的防御可被永久的禁用。图8示出了根据本发明的一实施例的系统运行。In one embodiment, the present invention provides for leasing, ie a license to use for a specified time, where the lease duration is a configurable parameter. The technique of the present invention enhances the occurrence of effective "leases". Leases are 20 bytes, unforgeable "public tokens": valid tokens, suspension tokens, and revocation tokens. New leases are accepted automatically. The computer can be temporarily disabled and the system administrator or user can restore the laptop. Computers can be permanently disabled using possible defenses by the system administrator. Figure 8 illustrates system operation according to an embodiment of the present invention.
只要设备还有权,有效的租用权标由中央机构1天产生1次。在受保护的设备上得到有效的租用权标可以许多方式实现并对终端用户是非常清楚的。如果设备被窃取,将发生两件事:有效租用权标中止产生(没有办法能够延伸超出当天的使用);废除权标被传播到网络(任何连接实施设备立即不可用)。被偷窃的设备在以下时间内被关闭:几秒(最好的情况,如果实现推能力);几小时(一般情况,只要进行任何网络连接);一天(最坏的情况,没有连接可能)。As long as the device is still entitled, valid lease tokens are generated by the central authority once a day. Obtaining a valid lease token on a protected device can be accomplished in many ways and is very clear to the end user. If a device is stolen, two things will happen: valid lease tokens cease to be generated (there is no way to extend beyond the day's use); and revocation tokens are propagated to the network (any connected implementing device is immediately unavailable). The stolen device is turned off for: a few seconds (best case, if push capability is achieved); a few hours (general case, as long as any network connection is made); a day (worst case, no connection possible).
系统保护免遭任意的窃贼及内部窃贼的破坏。偷窃设备没有任何意义,因为:硬件不可用;软件不可用;及数据不可读。类似于某些卡式无线电品种,只要被偷窃其不再可用,因此阻止偷窃。The system is protected from both random thieves and insider thieves. There is no point in stealing the device because: the hardware is unusable; the software is unusable; and the data is unreadable. Similar to some cassette radio varieties, it is no longer usable as long as it is stolen, thus deterring theft.
有效性权标通过下述方法递送:有线网络;无线网络;SMS无线“推”;寻呼系统;经红外端口的手持电话/PDA;蓝牙设备;手动型的经另外的通道接收(如,″7G9L TC77 U8QL S2PS QK2Q EN9V PXXHXPUL″)如经传真、电子邮件、电话呼叫。图9为被偷窃的计算机时线的示意图。The validity token is delivered by the following methods: wired network; wireless network; SMS wireless "push"; paging system; hand-held phone/PDA via infrared port; bluetooth device; 7G9L TC77 U8QL S2PS QK2Q EN9V PXXHXPUL″) such as fax, email, telephone call. Figure 9 is a schematic diagram of a stolen computer timeline.
另外的保护方法可被使用,包括:用于保护的物理锚;用于重新获得并作为威慑的资产跟踪服务;运动敏感元件及警报以作为威慑;访问密钥作为威慑及访问控制;用于重新获得并作为威慑的跟踪软件;及其仅保护数据的数据加密,潜在的攻击及结果包括:Additional protection methods can be used, including: physical anchors for protection; asset tracking services for retrieval and as a deterrent; motion sensitive components and alarms as a deterrent; access keys as a deterrent and access control; Stalkerware obtained and used as a deterrent; and its data encryption to protect data only, potential attacks and consequences include:
移除/包围软件:如果有“管理特权”则可能的,但在废除后极难。可选的BIOS/硬件反措施,其提供几乎100%的保护。Removing/surrounding software: possible with "administrative privileges", but extremely difficult after repeal. Optional BIOS/hardware countermeasures which provide almost 100% protection.
替换/重新格式化硬盘:所有安全的数据丢失,及可选的BIPS/硬件钩以防止驱动器替换。Replacement/reformatting of hard drives: All data loss is safe, and optional BIPS/hardware hooks prevent drive replacement.
将硬驱移到另一机器以读数据:数据可被加密。Move the hard drive to another machine to read data: data can be encrypted.
阻止废除权标的接收:拖延膝上型电脑的运行,直到租用期满(最坏的情况)。Prevent Revocation Token Receipt: Delay the operation of the laptop until the lease expires (worst case).
根据在此公开的本发明的实践或说明,本发明的其它实施例对本领域的技术人员而言是显而易见的。说明书及其中的例子进应被视为示例性的,本发明具有的真实范围和实质将由下述的权利要求指出。Other embodiments of the invention will be apparent to those skilled in the art from practice or description of the invention disclosed herein. The specification and examples therein should be considered illustrative, with the true scope and spirit of the invention being indicated by the following claims.
Claims (21)
Applications Claiming Priority (24)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US37086702P | 2002-04-08 | 2002-04-08 | |
| US60/370,867 | 2002-04-08 | ||
| US37295102P | 2002-04-16 | 2002-04-16 | |
| US60/372,951 | 2002-04-16 | ||
| US37321802P | 2002-04-17 | 2002-04-17 | |
| US60/373,218 | 2002-04-17 | ||
| US37486102P | 2002-04-23 | 2002-04-23 | |
| US60/374,861 | 2002-04-23 | ||
| US42079502P | 2002-10-23 | 2002-10-23 | |
| US60/420,795 | 2002-10-23 | ||
| US42119702P | 2002-10-25 | 2002-10-25 | |
| US60/421,197 | 2002-10-25 | ||
| US42175602P | 2002-10-28 | 2002-10-28 | |
| US60/421,756 | 2002-10-28 | ||
| US42241602P | 2002-10-30 | 2002-10-30 | |
| US60/422,416 | 2002-10-30 | ||
| US42750402P | 2002-11-19 | 2002-11-19 | |
| US60/427,504 | 2002-11-19 | ||
| US44340703P | 2003-01-29 | 2003-01-29 | |
| US60/443,407 | 2003-01-29 | ||
| US44614903P | 2003-02-10 | 2003-02-10 | |
| US60/446,149 | 2003-02-10 | ||
| US10/395,017 US7337315B2 (en) | 1995-10-02 | 2003-03-21 | Efficient certificate revocation |
| US10/395,017 | 2003-03-21 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| CN1659597A true CN1659597A (en) | 2005-08-24 |
| CN100473002C CN100473002C (en) | 2009-03-25 |
Family
ID=29255792
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| CNB038132664A Expired - Lifetime CN100473002C (en) | 2002-04-08 | 2003-04-08 | Physical Access Control Methods |
Country Status (6)
| Country | Link |
|---|---|
| EP (1) | EP1493131A2 (en) |
| JP (1) | JP2005525731A (en) |
| CN (1) | CN100473002C (en) |
| AU (2) | AU2003228468B2 (en) |
| CA (1) | CA2479869C (en) |
| WO (1) | WO2003088166A2 (en) |
Cited By (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN101241610B (en) * | 2007-02-08 | 2011-03-23 | 黄金富 | Baggage checking system and method adopting wireless radio frequency recognition technology |
| CN104282068A (en) * | 2012-03-15 | 2015-01-14 | 江苏省电力公司常州供电公司 | Permission device for error prevention locks of substation |
| CN107004315A (en) * | 2014-12-02 | 2017-08-01 | 开利公司 | Utilize the metering-in control system of virtual card data |
Families Citing this family (16)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| EP1668617B1 (en) * | 2003-09-19 | 2009-12-09 | NTT DoCoMo, Inc. | Method and apparatus for efficient certificate revocation |
| EP1692596B1 (en) * | 2003-11-19 | 2016-03-09 | Assa Abloy Ab | Distributed delegated path discovery and validation |
| CN1922815B (en) * | 2004-01-09 | 2011-03-23 | 科尔街有限公司 | Signed Valid Live Credentials for OCSP and Distributed OCSP |
| US20050154879A1 (en) * | 2004-01-09 | 2005-07-14 | David Engberg | Batch OCSP and batch distributed OCSP |
| US8166532B2 (en) | 2006-10-10 | 2012-04-24 | Honeywell International Inc. | Decentralized access control framework |
| EP2043055B1 (en) | 2007-09-28 | 2020-08-26 | iLOQ Oy | Lock administration system |
| US9369285B2 (en) * | 2011-04-28 | 2016-06-14 | Qualcomm Incorporated | Social network based PKI authentication |
| US9807161B2 (en) * | 2013-09-16 | 2017-10-31 | Axis Ab | Distributed events in an access control system |
| EP3208777A1 (en) * | 2016-02-16 | 2017-08-23 | ILESO Engineering GmbH | Control panel, use, and process for the manufacture thereof |
| WO2018041904A1 (en) | 2016-09-02 | 2018-03-08 | Assa Abloy Ab | Key delegation for controlling access |
| US11263840B2 (en) | 2017-02-24 | 2022-03-01 | Assa Abloy Ab | Delegation and auxiliary condition for physical access |
| US10505917B2 (en) * | 2017-06-05 | 2019-12-10 | Amazon Technologies, Inc. | Secure device-to-device process for granting access to a physical space |
| US11410177B1 (en) | 2017-07-21 | 2022-08-09 | Zonar Systems, Inc. | System and method for facilitating investigation of expense card fraud |
| US11263711B2 (en) | 2018-03-22 | 2022-03-01 | Honeywell International Inc. | Revocable certificates for guestroom access and guestroom controls by mobile devices |
| CN110086623B (en) * | 2019-03-13 | 2022-06-03 | 捷德(中国)科技有限公司 | Firmware anti-counterfeiting method based on safety element and safety element |
| CN111127706B (en) * | 2019-11-28 | 2022-04-22 | 深圳指芯物联技术有限公司 | Intelligent lock control method, intelligent lock, cloud server and computing equipment |
Family Cites Families (16)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US4453074A (en) * | 1981-10-19 | 1984-06-05 | American Express Company | Protection system for intelligent cards |
| US4837822A (en) * | 1986-04-08 | 1989-06-06 | Schlage Lock Company | Cryptographic based electronic lock system and method of operation |
| JP2752097B2 (en) * | 1987-09-18 | 1998-05-18 | エヌ・ティ・ティ・データ通信株式会社 | Access control device |
| NL9300566A (en) * | 1993-03-31 | 1994-10-17 | Nedap Nv | Access granting system with decentralized authorizations. |
| FR2722596A1 (en) * | 1994-07-13 | 1996-01-19 | France Telecom | SYSTEM FOR CONTROLLING ACCESS LIMITED TO AUTHORIZED AND RENEWABLE TIME PLACES USING A PORTABLE MEMORY MEDIUM |
| EP0723251A3 (en) * | 1995-01-20 | 1998-12-30 | Tandem Computers Incorporated | Method and apparatus for user and security device authentication |
| DE19611632A1 (en) * | 1996-03-25 | 1997-10-02 | Deutsche Telekom Ag | Off-line data stations with virtual on-line capability |
| US5742035A (en) * | 1996-04-19 | 1998-04-21 | Kohut; Michael L. | Memory aiding device for credit card pin numbers |
| JP3907078B2 (en) * | 1996-12-26 | 2007-04-18 | ホーチキ株式会社 | Entrance / exit management system |
| US6038666A (en) * | 1997-12-22 | 2000-03-14 | Trw Inc. | Remote identity verification technique using a personal identification device |
| FR2774833B1 (en) * | 1998-02-09 | 2003-02-21 | France Telecom | PROTOCOL FOR ACCESS CONTROL BETWEEN AN ELECTRONIC KEY AND LOCK |
| JP3659791B2 (en) * | 1998-03-23 | 2005-06-15 | インターナショナル・ビジネス・マシーンズ・コーポレーション | Method and system for generating a small time key |
| ES2236973T3 (en) * | 1999-01-28 | 2005-07-16 | International Business Machines Corporation | METHOD AND CONTROL SYSTEM OF ELECTRONIC ACCESS. |
| CN1249589A (en) * | 1999-09-08 | 2000-04-05 | 北京龙安计算机技术开发有限公司 | Signature/verification method for nonshared key algorithm |
| JP2001148037A (en) * | 1999-11-19 | 2001-05-29 | Open Loop:Kk | Utilization system, issuing device, storage device, checking device and utilizing method for electronic ticket, and recording medium |
| JP2001257668A (en) * | 2000-03-14 | 2001-09-21 | Ntt Data Corp | Authentication system, mobile terminal, authentication method, and recording medium |
-
2003
- 2003-04-08 CN CNB038132664A patent/CN100473002C/en not_active Expired - Lifetime
- 2003-04-08 JP JP2003585029A patent/JP2005525731A/en active Pending
- 2003-04-08 CA CA2479869A patent/CA2479869C/en not_active Expired - Lifetime
- 2003-04-08 WO PCT/US2003/010748 patent/WO2003088166A2/en not_active Ceased
- 2003-04-08 EP EP03726222A patent/EP1493131A2/en not_active Ceased
- 2003-04-08 AU AU2003228468A patent/AU2003228468B2/en not_active Ceased
-
2010
- 2010-01-04 AU AU2010200020A patent/AU2010200020B2/en not_active Expired
Cited By (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN101241610B (en) * | 2007-02-08 | 2011-03-23 | 黄金富 | Baggage checking system and method adopting wireless radio frequency recognition technology |
| CN104282068A (en) * | 2012-03-15 | 2015-01-14 | 江苏省电力公司常州供电公司 | Permission device for error prevention locks of substation |
| CN107004315A (en) * | 2014-12-02 | 2017-08-01 | 开利公司 | Utilize the metering-in control system of virtual card data |
| CN107004315B (en) * | 2014-12-02 | 2020-08-04 | 开利公司 | Access control system using virtual card data |
Also Published As
| Publication number | Publication date |
|---|---|
| AU2003228468B2 (en) | 2009-10-01 |
| WO2003088166A2 (en) | 2003-10-23 |
| WO2003088166A3 (en) | 2004-04-01 |
| EP1493131A2 (en) | 2005-01-05 |
| AU2010200020B2 (en) | 2012-12-13 |
| CN100473002C (en) | 2009-03-25 |
| JP2005525731A (en) | 2005-08-25 |
| CA2479869A1 (en) | 2003-10-23 |
| AU2010200020A1 (en) | 2010-01-28 |
| WO2003088166A8 (en) | 2004-08-05 |
| CA2479869C (en) | 2013-07-09 |
| AU2003228468A1 (en) | 2003-10-27 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US12015716B2 (en) | System and method for securely processing an electronic identity | |
| CN1659597A (en) | Physical access control | |
| US6775782B1 (en) | System and method for suspending and resuming digital certificates in a certificate-based user authentication application system | |
| CN1152505C (en) | Token-free identification system for electronic transaction and electronic transmission authorization | |
| US7047414B2 (en) | Managing database for reliably identifying information of device generating digital signatures | |
| US9230375B2 (en) | Physical access control | |
| US7353396B2 (en) | Physical access control | |
| US8171524B2 (en) | Physical access control | |
| US6983368B2 (en) | Linking public key of device to information during manufacture | |
| CN100338907C (en) | Information processing system and method, information processing device and method | |
| US20030163686A1 (en) | System and method for ad hoc management of credentials, trust relationships and trust history in computing environments | |
| CN1579065A (en) | Method and system for the supply of data, transactions and electronic voting | |
| CN1492346A (en) | Electronic value authentication method, authentication system and device | |
| CN1826579A (en) | Controlling access to an area | |
| CN1894923A (en) | Method and system for establishing communications using improved privacy techniques | |
| CN1833398A (en) | Secure data parser method and system | |
| CN1675879A (en) | Data processing system, data processing device and its method and computer program | |
| KR102131206B1 (en) | Method, service server and authentication server for providing corporate-related services, supporting the same | |
| US20060117382A1 (en) | Method and system for delegating authority with restricted access right in an online collaborative environment | |
| US20060117179A1 (en) | Method and system for delegating authority in an online collaborative environment | |
| CN101036339A (en) | Disseminating additional data used for controlling access | |
| CA2814254C (en) | Physical access control | |
| Pillai | EARMARKED UTXO FOR ESCROW SERVICES AND TWO-FACTOR AUTHENTICATION ON THE BLOCKCHAIN | |
| AU2008203525B2 (en) | Linking public key of device to information during manufacturing | |
| KR20040098066A (en) | Physical access control |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| C06 | Publication | ||
| PB01 | Publication | ||
| C10 | Entry into substantive examination | ||
| SE01 | Entry into force of request for substantive examination | ||
| C14 | Grant of patent or utility model | ||
| GR01 | Patent grant | ||
| ASS | Succession or assignment of patent right |
Owner name: ASSA ABLOY CO., LTD. Free format text: FORMER OWNER: CORESTREET LTD. Effective date: 20150105 |
|
| C41 | Transfer of patent application or patent right or utility model | ||
| TR01 | Transfer of patent right |
Effective date of registration: 20150105 Address after: Stockholm Patentee after: ASSA ABLOY AB Address before: Massachusetts Patentee before: CORESTREET, Ltd. |
|
| CX01 | Expiry of patent term | ||
| CX01 | Expiry of patent term |
Granted publication date: 20090325 |