行业新闻与博客
什么是 SSL 代码签名证书? SSL 代码签名证书有哪些优点?
SSL 代码签名证书介绍及优点:
今天,几乎所有东西都是电脑。 我们的主要运输方式? 汽车,公共汽车,火车......他们都是电脑。 我们用来沟通的工具? 手机和笔记本电脑...这些绝对是电脑。 即使我们的家,冰箱和电视机现在也是电脑。
在用户界面和所有这些计算机的人机工程学形状都是代码。 代码是每台计算机的基础,控制它的功能和操作方式。 对于现代设备,代码不再是静态的。 它不断更新。 有时候,你甚至不知
道。认为控制您的手机或汽车或炉灶的代码可能会在您不知情的情况下随时更新,这很奇怪。 无论如何,谁编写了这些代码? 你知道吗? 你的朋友知道吗?你的电脑知道吗?
这是一个重要的问题。 当我们都依赖运行代码的设备...他们知道代码来自哪里吗? 他们知道这是正确的代码吗? 这是安全的代码?
SSL 代码签名证书是知道何时拥有正确代码的解决方案的一部分。 使用一些惊人的数学,代码签名将一个身份附加到代码中,让我们知道谁创作了它,并保证它没有被篡改。 在本文中,
我们将向您介绍 SSL 代码签名证书,简要说明它们的工作原理,并解释为什么以及如何开始签署代码。
问题:
您是通过互联网分发软件的软件开发人员。 您拥有遍布全球的用户并享有适中的成功。 你有没有想过你的用户是否得到了与你分发的完全相同的代码?
如果您分发未签名的代码,可能很难知道。 也许其中一个“驱动通过下载”网站抓住了您的软件的副本,并开始与一些捆绑广告软件分发。 也许有人将您的软件免费上传到 warez 站点,
但在此过程中投入了一些恶意软件。 如果您的软件足够流行,恶意软件经销商可能会做出直接的诱饵和切换 - 并在您的文件名下隐藏恶意软件。
您的用户可能会想知道同样的事情。 这段代码是否合法? 我应该相信它吗?
这些是真正的风险和真正的攻击媒介。 历史上,将危险代码伪装成用户想要运行的安全产品一直是恶意软件的主要分发方法之一。 数百万人正在寻找 Photoshop,Microsoft Office 和
Adobe Acrobat,而恶意软件发行商也知道这一点。 我个人有罪,在可疑来源上在线运行软件; 每个人都知道至少有一个人在运行一些“免费”软件后最终感染了自己。
即使是知名的软件分发来源也是恶意应用程序的来源。 去年,“如何做好极客”测试了 CNet的Download.com 上的十个最受欢迎的程序,并最终导致了许多不必要的和烦人的事情 。
Sourceforge.com 曾经是许多开源应用程序的官方存储库,但未经原始作者的许可,已开始将恶意软件和不需要的软件与合法应用程序一起分发 。
因此,代码不仅存在模仿风险,而且还存在不必要的篡改和修改。
我们如何弥合声称的代码与真正的代码之间的差距?
代码签名证书通过将代码与身份关联来尝试解决这个问题。 当您运行签名代码时,您将清楚地看到创作者的身份。 这可能是非常强大的信息。 如果您信任该作者,您可以放心地运行该程序
SSL 代码签名是做什么的?
代码签名证书不签署任何代码 - 它们不用于签署 .PHP 文件或 IF 语句。 代码签名证书对可执行文件和脚本进行签名。 你知道这些文件:.exe,.app,.msi,.cab,.dll,.jar(还有更
多)。 通过签署这些文件,他们提供加密保护以防止修改,并识别软件的作者。
签名究竟意味着什么? 如果您熟悉公钥加密(也被 SSL 证书使用),那么您将了解代码签名如何提供可靠的身份。 如果不是,这是一个快速崩溃:
每个代码签名证书都有一个唯一的私钥,只有代码签名证书的所有者才拥有。 当代码被“签名”时,该唯一私钥正用于将数字签名附加到可执行脚本。
私钥将为其签署的每个可执行文件生成一个唯一的签名。 这是因为密钥正在对该可执行文件的“散列”进行签名。 哈希是一种数学工具,用于从任何给定的数据字符串中获取唯一值,在这种情况下是文件。 这就是阻止某人将附加到一个可执行文件的有效签名并将其应用于他们自己的非法软件的原因。 当计算机检查签名时,它可以说明签名不是用于相同的代码,因为哈希值将不同。 注意:签名和加密是不同的事情。 两者都很重要,并且广泛用于网络安全,通常它们一起使用。 加密是另一个数学过程,涉及修改数据,使其不能被除预期收件人之外的任何人阅读。 请注意,代码签名证书不会加密您的文件/数据。
当最终用户运行可执行文件时,他们使用的平台(Windows,iOS,Java等)将检查签名并将其显示给用户。 这让用户知道软件的起源,并允许他们做出有关运行的决定。
请记住,代码签名提供身份。 在一天结束时,当您运行可执行文件或脚本时,您必须自行决定是否信任该身份/作者(无论是个人还是组织)。 代码签名不会自动保证程序正常工作或不是故意恶意的(某人可以选择签名恶意软件,希望欺骗某人认为已知作者自动意味着安全)。 代码签名只能保证软件与签名者分发时的完全一致。
代码签名如何允许安全分发
当你需要做一个物理文件的官方,你签字。 您的签名是您独有的,并声明您已经认可,同意或撰写了一份实际工作。 在数字领域,我们有代码签名; 使用与传统物理签名一样的数字签名来确认身份。
数字签名是可执行加密的。 这意味着读取签名的计算机可以证明它们是合法的,还是伪造的。 计算机不只是读取签名并说,“这段代码说它是由 Craig 签署的,所以它必须是真实的。”计算机检查签名以证明 Craig 签署了它。
在此过程中,代码签名证书还可确保真实性和完整性 。 让我们仔细看看这些,因为它们都非常重要:
真实性 :这告诉用户(和计算机)软件来自哪里。 这就是“谁”。真实性将您的身份与您在软件上签名的公钥/私钥绑定在一起。 由于没有其他人拥有您的密钥,因此其他人不能签署声称来自您的软件。
完整性 :演示代码未被修改。 数字签名不仅仅告诉签署软件的设备,而且还记录他们签名的内容。 这允许计算机知道代码自签名以来是否已经改变。 这可以防止依赖修改合法可执行文件的攻击。 这还会提醒用户在下载过程中可能发生文件损坏。
代码签名可以防止大量依赖未经授权/恶意修改代码,欺诈软件和专用恶意软件的攻击。
还有第二种代码签名证书,称为“EV代码签名”,用于最高灵敏度的应用程序。 这些证书对密钥存储和签名有特殊要求,通常通过安全闪存驱动器邮寄给您。 虽然大多数人不需要使用电动代码签名,但我想简单地提一提。
时间戳
我想在这里快速绕道解释时间戳,这是一个可选的但是代码签名非常重要的部分。
代码签名证书具有有效期(如SSL证书)。 这是代码签名证书被视为“有效”的日期范围。代码签名有效期最长为 3 年,通常以年度增量销售。 当您购买代码签名时,您将有机会决定您要购买多少年。 一旦特定证书的有效期结束,证书就会过期。 那时,它已经死了。
一旦证书过期,它就不能用于签署任何新的可执行文件。 在那一天,现有的签名也将失效。 除非你有时间戳 。
时间戳是添加到签名中的附加信息,用于在签署代码时告诉设备。 像签名的其余部分一样,它具有密码安全性。 这允许设备在发生签名时与有效期进行比较。 如果签字是在证书有效期内完成的,一切都可以。 签名将永久有效(尽管偶尔密码标准会改变,签名最终会过时,但这种情况经常不会发生)。
这是如此重要的原因是由于人们使用可执行文件的方式。 如果您开发软件并开始分发它,您可能会继续提供相同的确切文件多年。 可执行文件不像网页和 HTTPS 连接那样短暂。 因此,有一天同一个软件被认为是有效的,而第二天则不是这样。 时间戳对于保持随时间的可用性至关重要。 它还为您节省了资金,因为您无需持续购买代码签名证书,除非您确实需要签署新的代码。
大多数主要 CA 都提供时间戳,如 Symantec,Comodo 和 DigiCert。 但请确保在购买证书之前检查它是否受支持。
多平台解决方案
代码签名几乎适用于所有平台。 认真。 如果您在 Windows,OS X,iOS,Android,Java,Linux,Adobe AIR 或任何其他主要平台上开发应用程序,则可以使用和签署代码签名。
越来越多的平台正在进行强制签名。 要在 iOS,Android 或 OS X 的官方应用商店中发布软件,您必须签署代码。 软件越接近低级功能,签名就越重要,签名越有可能是强制性的。 例如,所有 Windows 驱动程序都必须签名。 即使 Microsoft Office 和 Firefox 扩展也需要签名。
即使签名不是强制性的,我们也总是鼓励它。 它创造了更好的用户体验。 没有人希望看到关于“未知”或“不可信”出版商的警告。 安全性的好处是真实的。 考虑到运行可执行代码的风险,即使您认为自己不会成为攻击的媒介,您也不想留下任何妥协的余地。
过程
获取和使用 SSL 代码签名证书可以分为五个主要步骤:
购买您的证书 -选择您信任的 CA 并决定期限的长度(您的证书的有效年限)。 通常会要求您选择要登录的平台,但大多数情况下,如果花几分钟转换文件,则可以将代码签名证书用于多个平台。
验证你的身份 -到目前为止,我们已经讨论了很多关于身份的问题 - 但还没有完全解释代码签名证书是如何知道你是谁的。 在验证过程中,CA 在向您颁发证书之前确认您是您声称的人。 如果您以个人或公司的身份申请,这个过程会有所不同。每个 CA 都会做一些不同的事情,但对他们来说,大部分是一套依赖政府官方文件的标准化程序。 如果您以个人身份申请,这意味着提供公证的政府身份证复印件。 对于一家公司,您提供合法合并证明。 然后CA将通过其他渠道(例如,直接在您所在的州/国家/地区搜索您的公司记录)确认这些文件,以确保它们是合法的。您应该期望验证过程需要 5 个工作日或更短时间,尽管过程确实如此依靠您提供准确的信息,并且我们与一些由于信息或通信延迟而导致过程花费更长时间的客户合作。
安装代码签名证书 -根据您使用的平台,接下来的两个步骤可能完全分离,或者完全相同。 在某些平台上,签名工具可处理安装和签名。 在其他情况下,您需要明确地将您的代码签名证书导入“信任存储”,然后才能开始使用您的证书。
签署你的应用程序 -这是魔术发生的地方! 签署您的应用程序是您添加数字签名的地方。 每个平台都有不同的处理 检查您的开发环境或平台的文档以查看您的签名。 对于许多平台,有专门的工具可用于此。
分发您的应用程序 -您的软件已准备好发送给您的用户。 当他们运行该软件时,他们将被呈现您的身份 - 并且能够相信他们正在运行您提供的合法软件。您可以通过互联网,CD,闪存驱动器或任何方法分发您的软件选择。
结论
我知道我们覆盖了很多,所以让我们快速总结一下:
代码签名证书对可执行文件进行签名 - 从 .exe 到 .app 的任何内容以及中间的每个平台。 购买并申请证书后,您应该在收到证书之前等待大约一周的时间进行验证过程。
如果你开发或分发软件,你应该签署你的代码。 它已经在六个主要平台上强制执行,并在其他地方受到高度鼓励。 签署代码将确保最佳的用户体验,并防止那些讨厌的“不受信任的发布者”警告。 最重要的是,数字签名的加密保护可以防止对代码进行不必要的修改。
时间戳代码是至关重要的。 在大多数开发环境中,你必须单独设置它,并且你应该花费额外的时间来完成它。 这将确保您签名代码的长期可用性。
最后,请记住,当您开发和分发软件时,您将参与一个庞大的用户,设备,软件和不良演员生态系统。 生态系统最薄弱的环节总是受到攻击,对安全性的期望和要求将不断增加。 领先于威胁并开始签署代码 - 您的用户会感谢您,当攻击受挫时,您会放心。
今天,几乎所有东西都是电脑。 我们的主要运输方式? 汽车,公共汽车,火车......他们都是电脑。 我们用来沟通的工具? 手机和笔记本电脑...这些绝对是电脑。 即使我们的家,冰箱和电视机现在也是电脑。
在用户界面和所有这些计算机的人机工程学形状都是代码。 代码是每台计算机的基础,控制它的功能和操作方式。 对于现代设备,代码不再是静态的。 它不断更新。 有时候,你甚至不知
道。认为控制您的手机或汽车或炉灶的代码可能会在您不知情的情况下随时更新,这很奇怪。 无论如何,谁编写了这些代码? 你知道吗? 你的朋友知道吗?你的电脑知道吗?
这是一个重要的问题。 当我们都依赖运行代码的设备...他们知道代码来自哪里吗? 他们知道这是正确的代码吗? 这是安全的代码?
SSL 代码签名证书是知道何时拥有正确代码的解决方案的一部分。 使用一些惊人的数学,代码签名将一个身份附加到代码中,让我们知道谁创作了它,并保证它没有被篡改。 在本文中,
我们将向您介绍 SSL 代码签名证书,简要说明它们的工作原理,并解释为什么以及如何开始签署代码。
问题:
您是通过互联网分发软件的软件开发人员。 您拥有遍布全球的用户并享有适中的成功。 你有没有想过你的用户是否得到了与你分发的完全相同的代码?
如果您分发未签名的代码,可能很难知道。 也许其中一个“驱动通过下载”网站抓住了您的软件的副本,并开始与一些捆绑广告软件分发。 也许有人将您的软件免费上传到 warez 站点,
但在此过程中投入了一些恶意软件。 如果您的软件足够流行,恶意软件经销商可能会做出直接的诱饵和切换 - 并在您的文件名下隐藏恶意软件。
您的用户可能会想知道同样的事情。 这段代码是否合法? 我应该相信它吗?
这些是真正的风险和真正的攻击媒介。 历史上,将危险代码伪装成用户想要运行的安全产品一直是恶意软件的主要分发方法之一。 数百万人正在寻找 Photoshop,Microsoft Office 和
Adobe Acrobat,而恶意软件发行商也知道这一点。 我个人有罪,在可疑来源上在线运行软件; 每个人都知道至少有一个人在运行一些“免费”软件后最终感染了自己。
即使是知名的软件分发来源也是恶意应用程序的来源。 去年,“如何做好极客”测试了 CNet的Download.com 上的十个最受欢迎的程序,并最终导致了许多不必要的和烦人的事情 。
Sourceforge.com 曾经是许多开源应用程序的官方存储库,但未经原始作者的许可,已开始将恶意软件和不需要的软件与合法应用程序一起分发 。
因此,代码不仅存在模仿风险,而且还存在不必要的篡改和修改。
我们如何弥合声称的代码与真正的代码之间的差距?
代码签名证书通过将代码与身份关联来尝试解决这个问题。 当您运行签名代码时,您将清楚地看到创作者的身份。 这可能是非常强大的信息。 如果您信任该作者,您可以放心地运行该程序
SSL 代码签名是做什么的?
代码签名证书不签署任何代码 - 它们不用于签署 .PHP 文件或 IF 语句。 代码签名证书对可执行文件和脚本进行签名。 你知道这些文件:.exe,.app,.msi,.cab,.dll,.jar(还有更
多)。 通过签署这些文件,他们提供加密保护以防止修改,并识别软件的作者。
签名究竟意味着什么? 如果您熟悉公钥加密(也被 SSL 证书使用),那么您将了解代码签名如何提供可靠的身份。 如果不是,这是一个快速崩溃:
每个代码签名证书都有一个唯一的私钥,只有代码签名证书的所有者才拥有。 当代码被“签名”时,该唯一私钥正用于将数字签名附加到可执行脚本。
私钥将为其签署的每个可执行文件生成一个唯一的签名。 这是因为密钥正在对该可执行文件的“散列”进行签名。 哈希是一种数学工具,用于从任何给定的数据字符串中获取唯一值,在这种情况下是文件。 这就是阻止某人将附加到一个可执行文件的有效签名并将其应用于他们自己的非法软件的原因。 当计算机检查签名时,它可以说明签名不是用于相同的代码,因为哈希值将不同。 注意:签名和加密是不同的事情。 两者都很重要,并且广泛用于网络安全,通常它们一起使用。 加密是另一个数学过程,涉及修改数据,使其不能被除预期收件人之外的任何人阅读。 请注意,代码签名证书不会加密您的文件/数据。
当最终用户运行可执行文件时,他们使用的平台(Windows,iOS,Java等)将检查签名并将其显示给用户。 这让用户知道软件的起源,并允许他们做出有关运行的决定。
请记住,代码签名提供身份。 在一天结束时,当您运行可执行文件或脚本时,您必须自行决定是否信任该身份/作者(无论是个人还是组织)。 代码签名不会自动保证程序正常工作或不是故意恶意的(某人可以选择签名恶意软件,希望欺骗某人认为已知作者自动意味着安全)。 代码签名只能保证软件与签名者分发时的完全一致。
代码签名如何允许安全分发
当你需要做一个物理文件的官方,你签字。 您的签名是您独有的,并声明您已经认可,同意或撰写了一份实际工作。 在数字领域,我们有代码签名; 使用与传统物理签名一样的数字签名来确认身份。
数字签名是可执行加密的。 这意味着读取签名的计算机可以证明它们是合法的,还是伪造的。 计算机不只是读取签名并说,“这段代码说它是由 Craig 签署的,所以它必须是真实的。”计算机检查签名以证明 Craig 签署了它。
在此过程中,代码签名证书还可确保真实性和完整性 。 让我们仔细看看这些,因为它们都非常重要:
真实性 :这告诉用户(和计算机)软件来自哪里。 这就是“谁”。真实性将您的身份与您在软件上签名的公钥/私钥绑定在一起。 由于没有其他人拥有您的密钥,因此其他人不能签署声称来自您的软件。
完整性 :演示代码未被修改。 数字签名不仅仅告诉签署软件的设备,而且还记录他们签名的内容。 这允许计算机知道代码自签名以来是否已经改变。 这可以防止依赖修改合法可执行文件的攻击。 这还会提醒用户在下载过程中可能发生文件损坏。
代码签名可以防止大量依赖未经授权/恶意修改代码,欺诈软件和专用恶意软件的攻击。
还有第二种代码签名证书,称为“EV代码签名”,用于最高灵敏度的应用程序。 这些证书对密钥存储和签名有特殊要求,通常通过安全闪存驱动器邮寄给您。 虽然大多数人不需要使用电动代码签名,但我想简单地提一提。
时间戳
我想在这里快速绕道解释时间戳,这是一个可选的但是代码签名非常重要的部分。
代码签名证书具有有效期(如SSL证书)。 这是代码签名证书被视为“有效”的日期范围。代码签名有效期最长为 3 年,通常以年度增量销售。 当您购买代码签名时,您将有机会决定您要购买多少年。 一旦特定证书的有效期结束,证书就会过期。 那时,它已经死了。
一旦证书过期,它就不能用于签署任何新的可执行文件。 在那一天,现有的签名也将失效。 除非你有时间戳 。
时间戳是添加到签名中的附加信息,用于在签署代码时告诉设备。 像签名的其余部分一样,它具有密码安全性。 这允许设备在发生签名时与有效期进行比较。 如果签字是在证书有效期内完成的,一切都可以。 签名将永久有效(尽管偶尔密码标准会改变,签名最终会过时,但这种情况经常不会发生)。
这是如此重要的原因是由于人们使用可执行文件的方式。 如果您开发软件并开始分发它,您可能会继续提供相同的确切文件多年。 可执行文件不像网页和 HTTPS 连接那样短暂。 因此,有一天同一个软件被认为是有效的,而第二天则不是这样。 时间戳对于保持随时间的可用性至关重要。 它还为您节省了资金,因为您无需持续购买代码签名证书,除非您确实需要签署新的代码。
大多数主要 CA 都提供时间戳,如 Symantec,Comodo 和 DigiCert。 但请确保在购买证书之前检查它是否受支持。
多平台解决方案
代码签名几乎适用于所有平台。 认真。 如果您在 Windows,OS X,iOS,Android,Java,Linux,Adobe AIR 或任何其他主要平台上开发应用程序,则可以使用和签署代码签名。
越来越多的平台正在进行强制签名。 要在 iOS,Android 或 OS X 的官方应用商店中发布软件,您必须签署代码。 软件越接近低级功能,签名就越重要,签名越有可能是强制性的。 例如,所有 Windows 驱动程序都必须签名。 即使 Microsoft Office 和 Firefox 扩展也需要签名。
即使签名不是强制性的,我们也总是鼓励它。 它创造了更好的用户体验。 没有人希望看到关于“未知”或“不可信”出版商的警告。 安全性的好处是真实的。 考虑到运行可执行代码的风险,即使您认为自己不会成为攻击的媒介,您也不想留下任何妥协的余地。
过程
获取和使用 SSL 代码签名证书可以分为五个主要步骤:
购买您的证书 -选择您信任的 CA 并决定期限的长度(您的证书的有效年限)。 通常会要求您选择要登录的平台,但大多数情况下,如果花几分钟转换文件,则可以将代码签名证书用于多个平台。
验证你的身份 -到目前为止,我们已经讨论了很多关于身份的问题 - 但还没有完全解释代码签名证书是如何知道你是谁的。 在验证过程中,CA 在向您颁发证书之前确认您是您声称的人。 如果您以个人或公司的身份申请,这个过程会有所不同。每个 CA 都会做一些不同的事情,但对他们来说,大部分是一套依赖政府官方文件的标准化程序。 如果您以个人身份申请,这意味着提供公证的政府身份证复印件。 对于一家公司,您提供合法合并证明。 然后CA将通过其他渠道(例如,直接在您所在的州/国家/地区搜索您的公司记录)确认这些文件,以确保它们是合法的。您应该期望验证过程需要 5 个工作日或更短时间,尽管过程确实如此依靠您提供准确的信息,并且我们与一些由于信息或通信延迟而导致过程花费更长时间的客户合作。
安装代码签名证书 -根据您使用的平台,接下来的两个步骤可能完全分离,或者完全相同。 在某些平台上,签名工具可处理安装和签名。 在其他情况下,您需要明确地将您的代码签名证书导入“信任存储”,然后才能开始使用您的证书。
签署你的应用程序 -这是魔术发生的地方! 签署您的应用程序是您添加数字签名的地方。 每个平台都有不同的处理 检查您的开发环境或平台的文档以查看您的签名。 对于许多平台,有专门的工具可用于此。
分发您的应用程序 -您的软件已准备好发送给您的用户。 当他们运行该软件时,他们将被呈现您的身份 - 并且能够相信他们正在运行您提供的合法软件。您可以通过互联网,CD,闪存驱动器或任何方法分发您的软件选择。
结论
我知道我们覆盖了很多,所以让我们快速总结一下:
代码签名证书对可执行文件进行签名 - 从 .exe 到 .app 的任何内容以及中间的每个平台。 购买并申请证书后,您应该在收到证书之前等待大约一周的时间进行验证过程。
如果你开发或分发软件,你应该签署你的代码。 它已经在六个主要平台上强制执行,并在其他地方受到高度鼓励。 签署代码将确保最佳的用户体验,并防止那些讨厌的“不受信任的发布者”警告。 最重要的是,数字签名的加密保护可以防止对代码进行不必要的修改。
时间戳代码是至关重要的。 在大多数开发环境中,你必须单独设置它,并且你应该花费额外的时间来完成它。 这将确保您签名代码的长期可用性。
最后,请记住,当您开发和分发软件时,您将参与一个庞大的用户,设备,软件和不良演员生态系统。 生态系统最薄弱的环节总是受到攻击,对安全性的期望和要求将不断增加。 领先于威胁并开始签署代码 - 您的用户会感谢您,当攻击受挫时,您会放心。
最近新闻
软件漏洞需要近九个月才能修复
2025年03月03日
99% 的组织报告了与 API 相关的安全问题
2025年03月03日
DISA Global Solutions 确认数据泄露影响 330 万人
2025年03月03日
Proofpoint 发现一款新型 MacOS 信息窃取程序 FrigidStealer
2025年02月19日
Snake 键盘记录器变种不断演变,主要针对 Windows 用户
2025年02月19日
OpenSSH 漏洞使系统面临严重攻击
2025年02月19日
亲俄黑客 NoName057 (16) 袭击意大利银行和机场
2025年02月18日
独家:大规模物联网数据泄露,27 亿条记录遭泄露
2025年02月17日
需要帮助吗?联系我们的支持团队 在线客服