数字签名应满足以下要求:签名的产生必须使用对发送方来说是唯一的信息,以防止伪造和抵赖;数字签名的产生必须相对简单;数字签名的识别和验证必须相对简单;对已有的数字签名伪造一个新的报文或对已知的报文伪造一个虚假的数字签名,在计算上是不可行的。
数字签名算法的功能是实现鉴别和抗抵赖的功能,其具体的实现有时候可以采用对称加密算法或公开密钥算法实现,也有专门设计用于数字签名的算法。数字签名的执行方式有两种:直接数字签名和需仲裁的数字签名。
直接数字签名指数字签名的执行过程只有通信双方参与,并假定通信双方有共享的秘密密钥或接收方知道发送方的公开密钥。数字签名可通过使用发送方的私有密钥对整个报文进行加密,如EKRa(M);或通过使用发送方的私有密钥对报文的散列值进行加密来形成,如EKRa[H(M)]。保密性通过对整个报文和签名进行加密来实现:可采用接收方的公开密钥进行加密,如EKUb[EKRa(M)];或采用双方共享的秘密密钥进行加密,如EK[M||EKRa[H(M)]]。
需仲裁的数字签名方案按照如下方式进行:发送方X对发往接收方Y的报文签名后,将报文及其签名首先发往仲裁者A;仲裁者A对报文及其签名进行测试以检验其出处和内容,然后对报文注明日期,并附上一个已经经过仲裁证实属实的说明后发送给接收方Y。仲裁者A的存在使发送方X无法否认已发送过的报文。
2.6 数字证书
对于使用公钥密码学技术的用户主体必须向对方提供他们各自的公钥,在提供公钥的过程中自然面临着公钥本身的安全性和可信性的障碍。为此,人们提出了一种更好的解决方法:公钥证书[21]。
数字证书遵循X.509建议所规定的格式,因此称为X.509证书。持有此证书的用户就可以凭此证书访问那些信任CA的服务器。可信赖的第三方是称为CA(Certificate Authority)的证书权威机构(认证中心)。
2.6.1 X.509证书标准
目前最常用的公钥证书类型就是X.509证书。第三版X.509证书的标准如下:
表2 X.509证书标准
字 段 含 义
版 本
(Version) 指出证书格式与3种X..509标准种的哪一种一致,使解析证书的程序能够知道证书中会出现哪些域。
序 列 号
(Serial Number) 每个CA为证书指定独一无二的序列号。
签名算法
(Signature Algorithm) CA用来在证书上签名的加密算法。在X.509中是哈希算法和公钥算法的组合。
发行者名称
(Issuer Name) 标识签署和发行该证书的CA身份。任何两个CA都不能使用相同的发行者名称。
有 效 期
(validity Period) 指定了该证书有效的时间范围,不早于某一时间且不晚于某一时间。
主体名称
(Subject Name) 确定了证书的主体,即公钥的所有者。发布版本3证书的CA不应该发行相同主体的两份证书。
公 钥
(Public Key) 包含了一个标识符,指出了公钥的算法。比如RSA,公钥的格式取决于其类型
发行者的唯一ID
(Issuer Unique ID)
主体的唯一ID
(Subject Unique ID) 用来解决在独立的CA或主体使用相同DN情形下所发生的混乱问题。
扩 展 域
(Extension) 可包含大量扩展信息。
签 名
(Signature) CA所使用的数字签名,该签名中包含了证书中所有其他域。因此,CA会对证书中的所有信息进行认证。 安全中间件安全服务管理模块设计与实现(6):http://www.youerw.com/jisuanji/lunwen_9360.html