代码签名、文档签名、数字签名、代码签名证书?
文档签名和代码签名都属于数字签名
我们在之前发表过的 《数字签名? 电子签名? 傻傻分不清楚! 》 文章里就详细介绍了数字签名,它是一种技术手段,使用范围非常广。 而且在和互联网有关的大部分需要加密的文件中,都有数字签名的踪迹所在。
数字签名技术可以应用到:
- 文件及档案
- 电子邮件
- 软件
各类采用数字签名技术用于校验的数字证书包括– SSL /TLS证书,S / MIME证书,代码和文档签名证书。
数字签名
数字签名不仅仅可以验证签名者的身份并保护文件免遭篡改,还可以对Web服务器和应用程序进行身份验证,用于保护公司电子邮件系统的安全等,有无数种使用的方法。
当我们要分发数据并且要向收件人保证数据确实来自我们自己时,就需要使用到数字签名,它是生成可以与数据捆绑在一起的数字签名字符串。
数字签名是使用诸如RSA公钥密码之类的公钥签名算法创建的。公钥算法实际上使用两个不同的密钥:公钥和私钥(称为密钥对)。私钥只有其所有者才知道,而公钥则对任何人都可用。对于公钥算法的设计,如果将一个密钥用于加密,则将另一个密钥用于解密。此外,不能从加密密钥合理地计算出解密密钥。密钥是公钥算法的另一个特性。
在实践中,公钥算法对于签署长文档通常效率太低。为了节省时间,数字签名协议使用Cryptographic Digest(加密摘要),它是对文档的摘要而不是文档本身进行签名。散列算法和数字签名算法都已预先约定。以下该过程的摘要:
①发送报文时,发送方用一个哈希函数从报文文本中生成报文摘要;
②然后用发送方的私钥对这个摘要进行加密;
③这个加密后的摘要将作为报文的数字签名和报文一起发送给接收方;
④接收方首先用与发送方一样的哈希函数从接收到的原始报文中计算出报文摘要;
⑤接着再公钥来对报文附加的数字签名进行解密。
如果这两个摘要相同、那么接收方就能确认该报文是发送方的。则确保了签名有效且文档完整无缺。
这个原理,应用在任何一个签名都是一样的,就拿代码签名为例,当软件(代码)与发布者的唯一签名关联时,在Internet上分发软件不再是匿名活动。数字签名可确保问责制,就像制造商的品牌名称打包在软件上一样。如果组织或个人希望使用Internet分发软件,则他们应该愿意对此软件承担责任。这是基于这样一个前提,即问责制可以阻止有害代码的分发。
数字证书的种类包含众多
SL证书、代码签名证书、文档签名证书及邮件签名证书都是属于数字证书,都是由权威公证的第三方认证机构(CA)进行审核颁发的。虽然同为数字证书,但是他们之间还是有很大区别。
数字证书
证书是一组完全标识实体的数据,并且仅在证书颁发机构验证了实体的身份之后才由证书颁发机构颁发。数据集包括实体的公共加密密钥。
数字认证
数字证书实际是由证书签证机关(CA)签发的对用户的公钥的认证。
证书的内容包括:电子签证机关的信息、公钥用户信息、公钥、权威机构的签字和有效期等等。
典型的数字证书是涉及实现用于对证书进行签名的签名算法。大致的过程是:
①A向数字认证中心发送一个包含她的名字和公钥的认证请求。
②证书颁发机构根据A的请求创建一个特殊的消息(m),m构成了证书中大部分数据。证书颁发机构使用A的私钥对消息(m)进行数字签名,在这过程中又获得一个单独的签名(sig)。然后,认证中心将消息(m)和签名(sig)返回给A,这样两个部分在一起构成了一个证书。
③A将证书发送给B,表明A自己的公钥是可信的。
④B使用A证书颁发机构的公钥验证签名。如果签名通过验证,则他就接收到对A的公钥的信任。
所有数字签名都一样,任何人都可以随时验证证书是否由证书颁发机构签名的,而无需访问任何秘密信息。消息接收方B只需获取A证书中的证书颁发机构授权信息,即获取到证书颁发者的公钥。
证书仅在颁发证书的证书颁发机构指定的时间内有效。证书包含有关其开始日期和到期日期的信息。证书颁发机构还可以吊销已颁发的证书以及更新证书吊销列表。此列表称为证书吊销列表(CRL),由证书颁发机构发布,以便任何人都可以明确任何其颁发证书的有效性。