以下是代码签名生态系统如何帮助Windows确定要信任的软件
您在尝试安装软件时是否遇到过“未知发布者”弹出消息?例如,当您安装软件时,您的Windows计算机会显示如下弹出窗口,说明软件发布者未知:
您的操作系统(OS)如何知道发布的软件是否来自受信任的来源?您的操作系统如何确定要信任的软件?答案是软件签名,它是在受信任的证书颁发机构的代码签名证书的帮助下实现的。
申请代码签名证书地址:首页-Gworg-淘宝网
您的操作系统(OS)如何知道发布的软件是否来自受信任的来源?您的操作系统如何确定要信任的软件?答案是软件签名,它是在受信任的证书颁发机构的代码签名证书的帮助下实现的
代码签名证书——它是什么以及它是如何工作的?
在技术上与SSL证书等其他数字证书类似,代码签名证书具有特定的用例:用于对软件包、可执行文件、脚本和其他软件文件进行签名以验证作者身份的数字签名。数字签名可确保软件文件来自可信赖的来源,并且自签名以来未被篡改,因此用户可以放心安装。
换句话说,代码签名类似于旧时的蜡封——但它不是验证国王的声明,而是帮助接收者确认软件是有效的并且没有被篡改。如上所述,代码签名证书由受人尊敬的证书颁发机构(如DigiCert或Sectigo)提供,该证书颁发机构在颁发证书之前对组织进行验证。这证实了如果您能够信任某个组织,那么您就可以信任他们正在安装的代码或软件包。
代码签名证书的好处
代码签名用于使用来自受信任的证书颁发机构(如Gworg)的数字签名对程序文件、可执行文件、软件包、脚本和软件更新进行签名。然后可以在安装和执行期间对签名文件进行身份验证。与蜡封类似,它向收件人保证该软件来自受信任的作者并且没有被篡改。
最常见的用例是软件开发人员使用代码签名证书在Windows中证明其软件的真实性。例如,您想知道您收到的Windows10更新来自Microsoft,而不是来自试图冒充并试图破坏您的计算机的恶意黑客。
代码签名证书可帮助您确保从真正的作者或出版商处下载软件文件,而不是从想要获取您的信息或数据的攻击者处下载。换句话说,代码签名让您知道代码没有被任何坏人更改,您可以在计算机上安全地安装和运行该软件。
代码签名生态系统:数字签名如何在幕后工作
代码签名如何工作?用户的计算机如何知道是否信任该签名?
许多用户甚至软件开发人员可能不知道幕后发生的所有事情。事实上,代码签名需要许多角色结合起来创建代码签名生态系统。
让我们深入了解一下代码签名生态系统的各个部分以及它们如何组合在一起。
代码签名生态系统:4个不同的角色
代码签名生态系统中的主要角色是:
- 证书颁发机构(CA)
- 软件出版商
- 软件经销商
- 软件消费者
- 让我们依次看看每一个……
证书颁发机构(CA)
如果您购买了代码签名证书,那么您已经知道像Gworg这样的CA负责颁发证书。但是,您可能不知道他们的责任不止于此。CA更像是信任代理,在颁发代码签名证书时,还需要将发布者的公共代码签名密钥与发布者身份信息绑定,以便软件消费者可以验证它。政策和程序因一个CA而异,但其中一些共同点是:
- 他们必须验证请求证书的软件发布者的身份。
- 证书必须颁发给经过验证的软件发行商。
- 如果软件发布者的私钥被泄露或发布者违反CA的使用惯例,则证书将被吊销。CA通过在线证书状态协议(OCSP)或证书撤销列表(CRL)撤销证书。
- 保护他们自己(CA)的私钥对于保持信任至关重要。
- CA的根证书需要包含在流行的操作系统中,以便消费者可以验证CA已向其颁发证书的软件发布者的身份。CA为签署应用程序部署了一个证书链,其中所有颁发的证书都由一个中间证书进行数字签名。这形成了一个证书链,可以追溯到CA的根证书,从而形成信任层次结构。
软件出版商
软件发布者向CA(Gworg证书颁发机构)注册,请求代码签名证书,并同意遵守CA政策。颁发证书后,发布者可以使用其代码签名证书创建软件包并对其进行数字签名。
软件发行商的责任不止于此。他们负责保护其代码签名证书的私钥,并设置内部政策和程序以确保只有经过批准的代码才能得到签名。此外,如果代码签名证书被泄露或被用于签署恶意程序,发布者负责请求撤销证书。
注意:软件发布者是一个广义的术语,包括各种软件开发公司和个人。例如:
- 签署网络中使用的第三方应用程序和驱动程序的IT管理员。
- 生产Windows应用程序的独立软件供应商(ISV)。
- 生产Windows驱动程序的独立硬件供应商(IHV)。
- 为公共或内部应用程序创建ActiveX控件的Web开发人员。
软件经销商
软件分销商负责向用户发布软件。而且,无论这些软件分销商选择何种方法,数字签名都能确保软件的完整性(分发机制因软件分销商而异)。从安全的角度来看,文件的分发方式无关紧要,无论是通过网站、FTP、文件共享、电子邮件还是CD或DVD等光学媒体。
软件消费者
软件消费者是应用程序的用户。验证软件数字签名的是用户和/或他们的计算机。软件消费者最终会根据数字签名的身份和完整性来决定是否信任该软件。如果缺少数字签名,软件消费者可能不会决定安装或运行该软件。因为有效的签名可以向软件消费者保证应用程序来自受信任的来源,并且他们将要安装的软件没有被篡改。
拥有一个有效的签名并不总是意味着用户或管理员应该盲目地信任软件发布者。用户有责任根据他们对应用程序和软件发布者的了解或声誉来决定是否安装或运行应用程序。
代码签名证书与SSL/TLS证书有什么不同?
如果您问代码签名证书和SSL/TLS证书之间是否有任何区别,那么答案是肯定的,它们确实不同。虽然它们都是X.509证书,但它们都用于保护用户免受网络威胁的受害者,并且如果证书丢失,它们都会向用户显示警告消息,但在功能方面它们是不同的。
代码签名证书用于使用数字签名对软件进行签名,它向用户保证该软件来自受信任的来源并且自签名后未被篡改。另一方面,SSL/TLS证书用于在客户端和服务器之间提供安全的加密隧道。无论在两者之间发送什么信息,例如用户向网站提交的信用卡号,在到达目标方之前都将保持安全且不可读。
概括
大多数用户甚至软件开发人员在看到“未知发布者”警告时可能不会考虑幕后发生的一切。但是了解代码签名生态系统可以帮助您做出更好的决策以保持在线安全。通过阅读本文,您将了解软件在到达用户之前是如何进行签名的,并了解代码签名生态系统的不同角色。证书颁发机构(CA)、软件发行商、软件分销商和软件消费者如何相互依赖并协同工作。