对代码签名另一种认识(下)

Posted wecloud1314

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了对代码签名另一种认识(下)相关的知识,希望对你有一定的参考价值。

代码签名与传统签名一样,是为了表明合法身份。为了实现数字签名证书的独一无二的特性,数字签名自带有加密。然后通过计算机对签名进行身份验证,辨别其是否合法。当计算机识别到代码签名为合法的,则表明该代码是由合法的签名者发布。

另外,代码签名证书还具有确保代码的真实性和完整性。具体表现为:

真实性-告诉用户软件代码的来源。代码签名证书由签名证书私钥和公钥证书两部分组成。私钥用于代码的签名,公钥用于私钥签名的验证和证书持有者的身份识别。

 

完整性-保护文件不被恶意修改。证书中的公钥解密散列创建下载的应用程序的新哈希值,将新哈希与原证书签名的哈希进行比较,如果两个哈希值相匹配,用户就可知道该应用程序自签署后尚未被修改。

因此,代码签名可以防止大量依赖未经授权,恶意修改代码,欺骗性软件和专用恶意软件的攻击。

时间戳

时间戳是代码签名证书的重要部分。

与SSL证书一样,代码签名证书也有时效性,一般以年为单位,最长的有效期为三年。当代码签名证书到最后期限,就会自动失效。证书过期后,不能用于签署任何新的可执行文件。ssl证书申请

时间戳是添加到签名的附加信息,在签署代码时通知设备的签名是否有效。与签名的其余部分一样,它也受密码保护。允许设备在签名时与有效期内进行比较。如果在证书有效期内完成签名,一切正常。签名将永久有效(因为加密标准会改变,因此签名最终失效。但这种情况并不经常发生。)

支持多平台

代码签名支持网络全平台,包括Windows,OS X,iosandroid,Java,Linux,Adobe AIR或任何其他主要平台上开发应用程序,皆可使用代码签名。

为了提升网络安全,越来越多的平台进行强制签名。开发者在iOS,Android或OS X的官方应用商店中发布软件,必须签署代码。例如,Windows要求所有的驱动程序签名,即Microsoft Office宏和Firefox扩展也需要签名。

当用户下载尚未签名的软件时,计算机系统就会向用户发出“未知”或“不可信”出版商的警告,大大降低用户体验。

以上是关于对代码签名另一种认识(下)的主要内容,如果未能解决你的问题,请参考以下文章

JAVA-初步认识-第六章-二维数组-另一种定义方式

离开职场2,3年的时间,渐渐稳定,聊聊对工作的一些认识。

认识CSS3特性之过渡

Babel的使用

在吗?认识一下JWT(JSON Web Token) ?

Android签名生成和互转