软件|为什么要给应用程序签名?

软件|为什么要给应用程序签名?

文章图片

软件|为什么要给应用程序签名?


1、为什么要给Android应用程序签名?
Android系统要求每一个Android应用程序必须要经过数字签名才能够安装到系统中 , 也就是说如果一个Android应用程序没有经过数字签名 , 是没有办法安装到系统中的!Android通过数字签名来标识应用程序的作者和在应用程序之间建立信任关系 , 不是用来决定最终用户可以安装哪些应用程序 。 这个数字签名由应用程序的作者完成 , 并不需要权威的数字证书签名机构认证 , 它只是用来让应用程序包自我认证的 。
将数字证书与软件连接时 , 需要输入一些软件的正确信息 。 通常 , 一个数字证书只能保护一个软件的安全 , 所以在填写软件的域名时需要准确 。 如果填写的信息有错漏 , 在一定程度上也会影响签名 。 签名时 , 需要更改软件中的相关设置 , 并将办理的数字签名设置为可以信任的证书 。

2、为什么我开发的Android应用程序没有做什么签名也能在模拟器和手机上运行?
你没有给Android应用程序签名并不代表Android应用程序没有被签名 。 为了方便我们开发调试程序 , ADT会自动的使用debug密钥为应用程序签名 。 debug密钥?它在哪?debug密钥是一个名为debug.keystore的文件 , 它的位置:
Ubuntu: ~/.android/debug.keystore (win10: c:/user/.Android/debug.keystore;  xp: C:/Documents and Settings/user/.Android/debug.keystore)
“user”对应于你自己的windows操作系统用户名 , 这也就意味着 , 如果我们想拥有自己的签名 , 而不是让ADT帮我们签名的话 , 我们也要有一个属于自己的密钥文件(*.keystore)
未使用数字签名的软件可能无法正常运行 , 以Windows系统为例 , 如果用户下载运行未签名的软件 ,Windows系统会发出红色安全警告;而未签名的ActiveX控件 , Windows会直接拦截不允许运行 。 因此 , 数字签名是软件发行前必不可少的一道工序 。

对软件进行数字签名的前提是需要申请一张代码签名证书 , 它可用于签署Adobe Air、Apple 平台、Java、Mozilla对象文件以及MS Office宏和VBA应用程序 。 为何要对软件进行数字签名呢?
1、应用程序数字签名不仅减少软件下载时弹出的安全警告 , 让用户可以放心下载软件
2、数字签名可以验证发行者的真实身份
当使用代码签名证书对软件进行数字签名之后 , 用户就能知道该软件的发行者是谁 , 不用担心是否是假冒软件 , 大大的增加了用户的可信度 , 从而建立良好的软件品牌信誉度 , 提升公司形象 。
3、数字签名可以防止软件被恶意篡改
数字签名就相当于一张“封条” , 可以防止软件发行之后被恶意篡改或被人非法捆绑一些间谍软件后用户下载 , 从而更有效地保护了软件开发商的切身利益和产品品牌 。
我们都知道 , 代码签名证书主要有OV和EV两种类型 , 为什么软件更需要EV代码签名证书呢?
1、EV代码签名证书执行的是更加严格的审核标准 , 它对于证书的申请者进行了严格的身份确认 , 确保证书的使用者身份真实可信 。
2、EV代码签名证书通常使用更加严格的证书载体来存储证书 , 即软件发布者在使用EV代码签名证书对软件进行数字签名的时候 , 需要拿到对应的eToken插入到电脑中 , 输入密码方可进行数字签名 , 这种方式减少了证书被恶意复制后滥用的风险 。
当软件使用了EV代码签名证书之后 , 无论是下载还是安装 , Windows皆对这个软件进行无条件放行 , 没有风险警告 , 没有安装拦截 , 也没有“发行者未知”的不友好提示 , 畅通无阻