数字签名证书是数字证书的重要应用功能之一。所谓数字签名证书是指证书用户(甲)用自己的签名私钥对原始数据的杂凑变换后所得消息摘要进行加密所得的数据。信息接收者(乙)使用信息发送者的签名证书对附在原始信息后的数字签名进行解密后获得消息摘要,并对收到的原始数据采用相同的杂凑算法计算其消息摘要,将二者进行对比,即可校验原始信息是否被篡改。数字签名可以完成对数据完整性的保护,和传送数据行为不可抵赖性的保护。 使用数字证书完成数字签名功能,需要向相关数字证书运营机构申请具备数字签名功能的数字证书,然后才能在业务过程中使用数字证书的签名功能。
签名发送方(甲)对需要发送的明文使用杂凑算法,计算摘要;
甲使用其签名私钥对摘要进行加密,得到密文; 甲将密文、明文和签名证书发送给签名验证方乙;
乙一方面将甲发送的密文通过甲的签名证书解密得到摘要,另一方面将明文采用相同的杂凑算法计算出摘要; 乙对比两个摘要,如果相同,则可以确认明文在传输过程中没有被更改,并且信息是由证书所申明身份的实体发送的。 如果需要确认甲的身份是否和证书所申明的身份一致,则需要执行身份认证过程,如前一节所述。 在上述流程中,签名私钥配合杂凑算法的使用,可以完成数字签名功能。在数字签名过程中可以明确数据完整性在传递过程中是否遭受破坏和数据发送行为是签名证书所申明的身份的行为,提供数据完整性和行为不可抵赖功能。数字证书和甲的身份的确认,需要通过身份认证过程明确。
数字签名证书的使用?
当使用一个程序对信息进行数字签名时,至少要将数字证书的公共部分和其它信息加在一起,才能确认邮件信息的完整性。
在邮件信息和数字证书发送之前,信息要经过散列算法的加密,就是将所要发送的信息经过算术处理产生一个特征序列,这个序列是的,只能由原文产生。产生的序列叫做信息摘要。 必须知道散列算法只能单向快速的运行,但很难逆向运算恢复原文。这就是说,电子邮件程序可以将邮件信息经过散列算法快速产生的信息摘要。然而,如果只有信息摘要,要数年的时间才能解密得到原文。 程序产生信息摘要之后,就用发送者的私钥对信息摘要加密,这是特别重要的。如果只发送邮件和信息摘要,别人可以很容易的修改信息原文,重新产生一个信息摘要,并以你的身份发送出去。
如果只对邮件进行数字签名而不进行加密,电子邮件应用会将数字证书和签名后的信息摘要作为附件随邮件明文一起发送,因此,别人仍然能阅读信息的内容(有效的解决方法是在签名后加上加密选项)。 当接受方收到邮件时,用发送方的数字证书(公钥)解密信息摘要进行验证。然后程序用相同的散列算法计算邮件的信息摘要,并比较结果。如果产生了的信息摘要和邮件所含的信息摘要是相同的,那么说明邮件在传输过程中没有被篡改,由此保证了信息确实是由验证该信息对应的公钥持有着(证书持有着)发送的。