数字内容不断地在线分发。 每天,我们都会为各种商业和个人活动下载可执行脚本、应用程序和文件。 最终用户和开发人员都需要一种安全的方式来了解所分发的软件是可靠且安全的,不会被篡改。
这是哪里 代码签名 进来了。大多数计算平台,如 Windows,对于哪些内容可以通过他们的渠道分发或在他们的系统上运行有严格的规定。 为了遵守这些规则并确保他们发送给世界的代码不会受到损害,软件开发人员有多种解决方案。
此外,现代工作空间环境集成了远程工作、异步合作以及对分布式团队共享选项的日益增长的需求。 结合这些现代趋势的最强大、最方便的代码和文档签名解决方案之一是 SSL.com 电子签名者 云签名服务。
代码签名要点
代码签名 是将数字签名应用于应用程序或驱动程序等软件的过程。 此签名有双重目的,以确保 真实性 和 诚信 代码:
- 它提供开发者身份(真实性)的加密证明。
- 它确保软件的内容从创建到使用为止都没有被篡改(完整性)。
签名者的证书和身份的有效性本身由信誉良好的、公共信任的证书颁发机构 (CA) 的数字签名确认,例如 SSL.com,从而构建 信任链 到平台信任库中的 CA 根证书。 建立此信任链后,操作系统和最终用户可以确定您是值得信赖的开发人员,并且在他们的系统中安装您的软件是安全的。
当用户尝试安装您的软件时,不使用代码签名证书会导致警告消息和错误,例如“Windows 无法验证此驱动程序软件的发布者”。 没有人愿意成为这种情况的接收端,尤其是开发人员。 事实上,遵守许多平台标准需要代码签名; 例如,如果没有 Windows 内核模式驱动程序,您根本无法发布 EV代码签名证书.
防止篡改
数字签名通过以下方式保护消息(在本例中为一段代码)的完整性 加密哈希函数. 这些是将数据映射到预先安排大小的位数组的数学算法,称为 哈希值 or 信息摘要. 加密哈希函数是单向函数,即使原始消息的微小变化也会导致哈希值发生重大变化。 因此,当用户收到包含在数字签名中的哈希值的消息时,他们的操作系统将对收到的消息应用相同的哈希函数并比较两个摘要。 如果它们相同,则他们可以确信收到的消息与原始消息没有区别。 如果没有,系统会警告他们文件以某种方式损坏。
代码签名选项
代码签名有许多技术选项,每个选项在提供的安全级别、定价、适用性和易用性方面都有自己的优缺点。 下面我们将看看这些选项及其提供的功能。
本地安装的 OV/IV 证书
第一个也是最简单的选择是让本地安装的组织验证 (OV) 或个人验证 (IV) 代码签名证书 和你机器上的私钥。 这些类型的证书由 SSL.com 以 PKCS#12/PFX 文件格式分发,并且可能安装在您计算机的证书存储区或某些云服务中,例如 Azure Key Vault. 有关从 SSL.com 订购 OV/IV 代码签名证书的更多信息,请阅读 这个方法.
这种类型的代码签名的优点是相对容易实现,也是可用选项中最便宜的。 但是,它不授予 USB 令牌、HSM 或云签名服务(见下文)的安全级别,并且这种类型的安装对于扩展验证 (EV) 代码签名是不可接受的。 由于某些应用程序(特别是 签署 Windows 10 驱动程序) 需要 EV 证书。
USB令牌
更安全的代码签名选项是使用具有物理形式的硬件安全模块 (HSM)。 用于代码签名的最常见 HSM 是 USB 令牌,例如FIPS 140-2 验证的安全密钥 USB 令牌 SSL.com 用于分发 EV 代码签名证书。 该令牌负责存储用户的证书和密钥,并且由于其硬件架构和封装,还可以安全地防止篡改和密钥泄露。 USB 令牌用作需要物理插入计算机的密钥,以便对软件进行数字签名。 该令牌还需要访问 PIN 以提高安全性。
这种方式是目前EV代码证书最常用的方式,安全性高,用户容易实现。 这些小型硬件令牌也很容易携带,可以从任何地方签名。
但是,这种方法有其缺点。 首先,组织购买和更换这些代币可能非常昂贵。 尤其是在当今的远程工作环境中,分发和管理硬件令牌对于 IT 部门来说可能是一个相当大的后勤挑战,既要耗费财力又要耗费人力资源。 此外,这些代币可能会被盗或丢失,从而造成安全漏洞和潜在的高风险,以及高昂的更换成本。 最后,与用于在开发人员之间共享的基于云的选项相比,它们不方便。
联网HSM
更进一步,另一种选择是使用 联网HSM 在云中托管代码签名证书和密钥。 此类选项的示例是 云服务 像 Azure、AWS 和谷歌云。 在这种情况下,HSM 位于云中而不是开发人员的口袋中。
这种方法提供了与物理设备相同的高级别安全标准,因为私钥不能从 HSM 导出,并且访问数字签名需要使用上述服务进行用户身份验证。 数字签名可以在任何地方应用,EV 代码签名可用于此选项。 这种方法还可以轻松扩展以合并组织的新成员和/或在丢失凭据的情况下替换数字证书。
另一方面,实施此方法可能需要额外的费用和专业知识,因为它需要对技术有一定程度的熟悉。 有关更多详细信息,请阅读此 指南 SSL.com 支持云 HSM 服务的各种方式。
eSigner:云代码签名即服务
最后,一种现代且非常方便的方法是将代码签名作为服务处理。 SSL.com 的 电子签名者 云签名服务是这种代码签名方法的一个例子。
使用 eSigner,SSL.com 可以处理公钥基础设施(PKI) 和用于代码签名的 HSM。 不可导出的签名密钥存储在 eSigner 的 HSM 中,客户和 SSL.com 都无法查看它们。 这样,安全标准与令牌和云 HSM 一样高,但客户端无需直接处理它们。
eSigner 使用 OAUTH TOTP 进行安全的两因素身份验证,从而提供了从任何连接互联网的设备进行代码签名的机会,无论位置如何。 eSigner 支持 EV 代码签名,因此开发人员可以使用它来签署 Windows 10 内核模式驱动程序。
电子签名者还使 共享代码签名证书 队友之间轻松安全。 通过使用 SSL.com 仪表板,可以轻松共享代码签名证书,并且每个成员都有自己的 PIN。 eSigner 的这一功能允许分散在全球的团队快速、异步地工作,而不会危及组织的安全。 有关此选项的更多详细信息,请参阅此 如何做.
电子签名者选项
eSigner 环境包括许多企业签名选项,可满足从个人开发人员到复杂组织的各种客户的需求。
- 电子签名者快递: 顾名思义,此选项对于需要快速方便地对文件进行远程签名的情况非常有用。 电子签名者快递 是一个基于 Web 的 GUI 应用程序,使代码签名非常 易 通过拖放代码文件。
- 代码签名工具: CodeSign工具 是一个命令行实用程序 EV代码签名 可跨各种平台使用的证书,包括 Windows、macOS 和 Linux。 它对于签署敏感文件特别有用,因为只有文件的哈希值被发送到 SSL.com 进行签名,而不是代码本身。 CodeSignTool 也是创建 自动化 流程,例如批量签署多个文件或持续集成/持续交付 (CI/CD) 管道工作流。 关于 CodeSignTool 使用的更多细节,请参考这个 指南.
- 蜜蜂: SSL.com 的企业客户可以访问相同的 云签名联盟 (CSC) 和 代码签名 API 为 eSigner Express 和 CodeSignTool 开发自己的前端代码签名应用程序提供支持。
总结
EV 代码签名已成为许多开发人员的必需品。 随着当今对远程工作和异步合作的依赖日益增加,一种快速、可靠且安全的远程 EV 代码签名工具还强调团队共享,是任何开发人员和软件发行商武器库的重要补充。 eSigner 以最方便、通用、可扩展和功能强大的方式满足这些需求,同时符合行业最高的安全标准。
我如何试用 eSigner?
目前,所有 SSL.com EV 代码签名和文档签名客户都可以使用 eSigner 作为具有服务层的订阅服务,以支持各种规模的组织和企业。 请检查 主电子签名页面 价格详情。 有关 eSigner 云代码签名的更多信息,请查看这些 SSL.com 指南和操作方法,或使用下面的信息表联系 SSL.com 的企业销售团队。
电子签名者代码签名指南和操作方法
eSigner信息申请表