软件数字签名一点基础知识整理

 

主要参考《MSDN:Introduction to Code Signing》,没有直译,算是自己的理解整理的。

 

为什么要对软件进行数字签名?

现在软件都是通过Internet发布,由于Internet上病毒和黑客技术的泛滥,你要让用户相信你的软件,是来自可靠的公司和组织,

并确保软件在下载过程中不被恶意修改。利用数据签名,可以做到这一点。但要注意,不是说有数字签名的软件就是安全的软件。

 

数字签名?

通常是非对称加密算法,例如RSA加密算法,包括一个公钥和私钥,私钥用来加密,也就是生成签名,公钥用来解密。

 

数字签名的工作过程?

直接对文件进行加密,在遇到文件很大时,速度很慢。因此实际数字签名协议是用的Cryptographic Digest(加密摘要)。具体步骤:

1、根据文件生成一个单向的哈希值(one-way hash,哈希可见的形式是16进制字符串)

2、用私钥加密哈希值,这样就实现对文件签名了。

3、发布、传输带签名的文件。

4、接受人根据文件生成一个哈希值。

5、用公钥解密文件的签名,得到原始哈希值

对比4和5的结果,如果相同就证明签名是有效的。

 

数字证书?

一个文件,包含了软件发布人的公钥。一般随软件一起发布。证书由CA机构在验证了发布人后发布的。

至少包含以下信息:

Owner's public key

Owner's name or alias

Expiration date of the digital certificate

Serial number of the digital certificate

Name of the certification authority that issued the digital certificate

Digital signature of the certification authority that issued the digital certificate

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值