分布式在线证书状态协议分析

时间:2022-07-28 01:06:23

分布式在线证书状态协议分析

摘 要 公钥基础设施(PKI)是现有网络中支持电子商务和数字通信的重要技术手段。在线证书状态协议(OCSP)是PKI中用于检索证书撤销信息的标准协议。本文介绍了一种基于隔离密钥签名模式的,使用单一公钥的新分布式OCSP,每个响应服务器都有不同的私钥,但对应的公钥是固定的。用户只需获得并保管一个证书,就可以使用这个单一公钥验证所有响应服务器。

关键词 公钥基础设施;认证中心;分布式在线证书状态协议;隔离密钥签名模式

中图分类号:TP393 文献标识码:A 文章编号:1671-7597(2013)11-0000-00

1 背景

在公钥基础设施(PKI)中,证书将一个实体的身份资料与相应的公钥绑定在一起。然而在失效日期前,证书会因为绑定关系破坏而被撤销。因此,验证证书不仅必须检查失效日期,还应检查证书的撤销信息。

常用的机制是能提供证书实时状态的在线证书状态协议(OCSP)。OCSP为证书状态查询不断提供新的应答,证书的状态由一个作为OCSP响应服务器的可信实体返回。在移动环境下,OCSP是一个不错的选择,因为用户可以仅使用适度的资源就能实时检索证书状态。不过,还存在以下两种威胁:

1)拒绝服务(DoS)攻击:在OCSP中,响应服务器对每个用户的请求产生一个签名响应。即对于每个攻击者发出的简单请求,响应服务器必须生成数字签名,这是一个计算密集型的操作。因此,响应服务器变得非常容易受到拒绝服务攻击。

2)私钥泄漏:如果攻击者获得了响应服务器的私钥,他可以产生伪造的响应。

针对这些威胁制定对策非常重要。如果OCSP响应服务器是集中式,整个系统会遭受DoS攻击和响应服务器的私钥泄漏,整个服务都将不可用。

由多方响应服务器组成的分布式OCSP(D-OCSP),可以减少这些损失。在每一个响应服务器都拥有相同私钥的情况下,任何响应服务器泄密都会造成整个系统泄密。相对地,如果每一个响应服务器都有不同的私钥,一个响应服务器泄密则不会影响到其他人。因此,本文分析每个响应服务器都是拥有不同私钥的D-OCSP。

本文提出了一种新的D-OCSP,基于离散对数问题的困难性,并使用单一公钥和隔离密钥签名模式(KIS)。KIS能减少因私钥泄漏所带来的损失。使用KIS功能的响应服务器,在私钥泄漏后,机器只会在短时间内可能受到攻击。本文关注KIS中可通过固定公钥验证所有签名的这种特性。KIS使用密钥更新算法产生多个私钥,认证机构(CA)将私钥分别派发给分散的响应服务器。因此,每一个响应服务器能拥有不同的私钥,但相应的公钥固定不变。另外,用户可通过使用单一公钥验证任何响应信息。用户获得响应服务器的证书后,他可以存储,并在证书有效时使用。因此,OCSP响应服务器不必将自己的证书附加到响应信息中。笔者的D-OCSP的通信成本比现有的D-OCSP更低。

2 分布式OCSP

2.1 预备知识

分布式OCSP 由3个实体组成。

2.1.1 认证机构(CA)

CA是一个值得信赖的第三方,有责任公布有关证书撤销的信息[2]。CA私钥的泄漏将影响整个系统,因此CA常与互联网隔离开来,以防止未经授权的访问。

2.1.2 响应服务器

响应服务器是一个将证书状态信息传给用户的,值得信赖的实体。在产生包含请求证书的状态的响应信息后,响应服务器使用自己的私钥对响应信息进行数字签名。在本文中,证书的状态都是“有效”或“撤销”的。

2.1.3 用户

假设用户信任一个CA和响应服务器。他们向响应服务器发送请求证书状态的消息。

如果每个响应服务器都拥有同样的私钥,任何响应服务器的泄密都会损害整个系统。因此,在笔者构建的D-OCSP中,每个响应服务器有不同的密钥对(PKi,SKi)。PKi和SKi分别表示响应服务器I拥有的公钥和签名私钥。

CA向每个响应服务器颁发用自己私钥签名的证书。用户应像检查传统证书般检查响应服务器证书的撤销信息。

2.2 验证过程

一旦用户收到响应服务器的响应,他按下列步骤验证:

1)用户在线获得响应服务器证书。在本文中,假定OCSP响应服务器随响应信息一起发送响应服务器证书。

2)用户使用CA的公钥验证响应服务器证书的数字签名。

3)用户使用响应服务器的公钥验证响应服务器的数字签名。

3 方法改进

本文提出一种使用单一公钥的新D-OCSP,使用了KIS。在笔者的方法中,响应服务器的私钥即时产生,用户可以使用单一公钥验证任何响应。

有许多数字签名模式被提出过,但它们没有对私钥泄漏提供安全保证。标准的数字签名模式中,用户开始注册一个能在协议规定的生存期内保持不变的单一公钥,而相应的私钥可以经常更换[3]。主密钥存储在安全的物理设备中。生存期被分为不同的周期1,2,…,N。在周期i的开始阶段,用户通过安全设备生成的临时私钥SKi进行交互。即使SKi暴露,攻击者也不能伪造其他周期的签名。此外,在一个健壮的(T,N)隔离密钥方案中,攻击者即使能得到t周期之前的所有私钥,也不能伪造任何剩余N-t周期的签名。使用KIS功能的响应服务器,在周期i时用响应服务器的私钥SKi签名响应信息。在这种情况下,如果SKi泄漏,攻击者只有能伪造i周期的响应。也就是说,响应私钥的泄漏只能影响那些泄漏时的响应信息。

本文使用不同于KIS功能响应服务器的步骤。假设D-OCSP中响应服务器的数量是n。使用KIS中的密钥更新算法生成n个私钥。CA将这些私钥分派给n个分散的响应服务器。每个响应服务器都有不同的私钥,但对应的公钥是不变的。在笔者的方法中,验证者可以使用单一公钥验证由任何响应服务器发出的响应。

3.1 预备知识

N是响应服务器总数目。

H是一个单向散列函数。

Ri是响应服务器。(i=1,2,……,n)

Xt是在周期t验证Ri的散列值。

PKres是响应服务器的公钥。

SKi是Ri的签名私钥。

SK+是用于生成响应服务器私钥的主密钥。SK+储存于安全物理设备中。

RM是包含响应服务器证书状态的响应信息。

Cres是响应服务器证书。

假设:CA和每个响应服务器间建立了安全通道;CA拥有安全物理设备,并将主密钥储存于其中;所有响应服务器和用户拥有同步时钟。

3.2 验证响应服务器的私钥

用户需要检查响应服务器证书以确保其还没被撤销。在笔者的D-OCSP中,每个响应服务器有不同的私钥,但相应的公钥固定不变。笔者的方式是使用一个满足以下属性的单向散列函数H。

1)H至少比基于公钥技术的数字签名运算速度快1000倍。

2)H产生20个字节的输出。

3)H是难以逆运算的,在H(x)=Y中,给出Y,要得到X是几乎不可能的事。

4)H是抵抗碰撞的散列函数。

步骤1:响应服务器证书的:

1)T是总的周期数。举例来说,如果每个响应服务器证书在颁发180天以后到期,则T是180。CA按照如下方法使用H产生T散列值。

CA根据不同的输入值XT,i,重复地产生n散列链。CA存储这些散列值。

……

2)CA使用私钥签发Cres。SN是证书序列号,V代表有效期。I和S分别代表发行者和证书主题。

步骤2:响应服务器私钥的认证

1)如果响应服务器SKi在t时间周期是有效的,CA传递散列值Xt, i给Ri,。如果SKi泄漏,CA会删除SKi的散列链。

2)当Ri在周期t返回响应给用户时,他同时传递散列值Xt, i给用户。

3)当用户从Ri处收到响应后,他使用PKres.验证数字签名。然后,用户可以使用Xt, i和X1, i,以及Cres,检查SKi的有效性。更深入地,用户检查以下公式。如果方程是满足的,用户可以证明SKi是有效的。

在这种方式下,用户可以验证响应服务器私钥的有效性。Cres在其有效期内不会撤销,除非所有的响应服务器私钥都泄漏了。

3.3 分散响应服务器的方法

笔者使用基于离散对数问题困难性的KIS来描述下列分散过程。

步骤1:响应服务器私钥的生成

1)产生密钥对。

设p和q是素数,使p=2q+1,设g,h是Zp组中的元素顺序q。PKres是由x,y∈Zq决定,同时使v=gxhy。

2)产生响应服务器私钥。

局部密钥SK’i使用如下的方法产生。SK’i用于计算Ri’s的私钥。

利用以上派生的局部私钥,产生n个私钥。一旦所有私钥都产生了,SKi和SK将被删除。

CA安全地将私钥SKi 传递给Ri。因此,每个响应服务器都有不同的私钥。

3)颁发响应服务器证书。

CA按照下列步骤颁发响应服务器证书Cres。

步骤二:签名和验证算法

1)签名算法。

当Ri返回响应值RM给用户时,他按照下面步骤使用SKi生成一个数字签名σi(RM)=。

2)验证算法。

用户可以按照下列方法使用PKres验证Ri的签名。

return “accept”

If

Else “reject”

4 评价

4.1 安全

假设一个攻击者偷窃了时间周期t的SKi散列值Xt, i。在这种情况下,他不能得出任何其他响应服务器的私钥,除非他取得SK+,而在生成响应服务器的私钥后SK+会被删除。如果攻击者可以得到散列值Xt, i,他不能推导出散列值Xt+1, i,正如H(Xt+1, i)=Xt, i,因为H是一个单向函数。因此在周期t+1后,攻击者不能欺骗SKi是有效的。

但是,任何人都可以通过向Ri发送请求得到最近的Xt, i。因此,偷窃了SKi的攻击者在某一个时期仍能伪造稍后时期的响应,直到CA检查出SKi 是伪造的,停止传递Xt, i 给Ri。传统的D-OCSP也有同样的问题。一般情况下是很难察觉到私钥的泄漏。KIS功能的D-OCSP可以最大限度地减少因为泄漏私钥所造成的破坏,因为私钥会在短时期内进行更新。因此,一个KIS功能的D-OCSP比传统的D-OCSP具有更高的安全性。

如果有些响应服务器泄密了,CA会停止传递散列值给泄密的响应服务器。一旦响应服务器泄密,它必须退出系统,直到响应服务器证书过期。笔者认为降级系统不是一个重要的问题。如果一些响应服务器泄密,其它响应服务器都不会受到损害。也就是说,用户可以利用另外的响应服务器。这种情况下,一些响应服务器泄密对系统造成的影响是最少的。

4.2 通信成本

在传统的D-OCSP中,OCSP响应服务器会随同响应信息发出自己的证书。而笔者提出的D-OCSP可以减少通信成本,因为响应服务器证书只有一个。如果用户存储响应服务器证书,OCSP响应服务器则无须随响应信息发送自己的证书。

4.3 验证响应服务器

在笔者的D-OCSP中,笔者使用散列链而非CRL验证响应服务器的私钥。如上所述,散列计算速度远远快过数字签名运算。要检查响应服务器证书状态,用户只需计算的t周期的散列值。

4.4 CA的效率

CA应安全地存放散列值。散列值的全部值大小等于20nT bytes。然而,CA无需储存所有的散列值,只需存储XT, i(20nT-bytes),因为散列计算是非常快的。在周期t,Xt, i由T-t次散列计算得出。

传统的D-OCSP,CA应该颁发短寿命的响应服务器证书。笔者的D-OCSP,CA可颁发长寿命响应服务器证书,因为用户可以验证响应服务器的私钥。

5 结论

为了尽量减少因响应服务器的私钥泄漏和DoS攻击所造成的损失,现实世界中的分布式OCSP模型由多个响应服务器组成。本文提出了新的使用隔离密钥签名模式的分布式OCSP模型。用户可以更高效地验证响应服务器的有效性。笔者构建的分布式OCSP,通信成本较低,用户可以验证任何响应服务器返回的响应信息。

参考文献

[1]谢冬青.PKI原理与技术[M].北京:清华大学出版社,2004:65-68.

[2]William Stallings.密码编码学与网络安全——原理与实践(第三版)[M].北京:电子工业出版社,2005:88-89.

[3]Andrew Nash,William Duane,Celia Joseph,Derek Brink.公钥基础设施(PKI)——实现和管理电子安全[M].北京:清华大学出版社,2002:110-111.

上一篇:电力系统新型保护与研究 下一篇:基于WMI技术的计算机自动化管理浅谈