为什么代码签名需要添加时间戳?

news2025/2/24 3:24:19

如果您是软件发行商或开发人员,那么您就会知道软件的成功通常取决于下载次数,这部分取决于用户对它的信任程度。因此,为了向用户保证并避免在下载或安装时出现不必要的警告消息,您采取了主动步骤,例如使用受信任的代码签名证书对代码进行签名。当您对代码进行签名时,如果您不使用时间戳选项,您可能会在几个月或几年后遇到一些大问题。

简而言之,时间戳是签名过程的可选部分,它允许用户和软件识别应用的代码签名签名是否有效,即使在代码签名证书过期后也是如此。

为什么时间戳很重要?

让我们看一个现实生活中的情况,以了解代码签名时间戳的重要性。假设您签名并发布了软件。一切都很好,直到您的代码签名证书在一年后过期。现在,您的安装程序显示有关不受信任签名的警告。当然,您可以重新辞职并重新发布安装程序包,但您将无法更新网络空间中已有的安装程序。

或者,让我们再举一个例子,其中使用代码签名来验证软件更新。如果推送更新,但客户端在证书过期之前不安装更新,会发生什么情况。您的软件是否会因代码签名证书过期而突然停止运行?想想它会对你的软件用户产生多大的影响,以及你将如何能够为它提供即时帮助。您是否可以更新软件,或者更新是否会因签名过期而中断?另外,开发和部署此紧急补丁的成本是多少?如果软件无法运行,用户的业务将受到多大影响?

您可能会想:这些都是由代码签名证书过期引起的问题。是的,时间戳是此类方案的解决方案。

时间戳还提供了另一个好处:如果您由于私钥丢失等情况而必须吊销代码签名证书,那么此时间戳将通过保持所有签名的可执行文件和软件包正常运行来节省您,只要它们在吊销日期之前签名。但是,在证书被吊销后完成的任何新签名都将被视为无效。

让我们介绍一下代码签名过程中时间戳的背景,并了解一些应遵循的最佳实践,以确保您不会因软件签名而遇到任何问题。

什么是时间戳?

时间戳是一项保留应用于软件包签名的功能。它允许操作系统和其他客户端软件接受您的软件(签名),即使在代码签名证书过期后也是如此。

每当执行已签名的软件时,都会验证其签名,例如由用户的操作系统进行验证。如果您已为软件添加时间戳,则用户的计算机将根据签名时间(而不是执行软件的当前时间)验证签名。

 

当然,如果软件没有时间戳,则根据当前时间评估其签名。您可能在几个月或几年前分发了已签名的软件,在这种情况下,用于对该软件包进行签名的代码签名证书可能已过期,并且签名可能不再被视为有效。例如,您用于签名的代码签名证书的有效期为整个 2019 年(2019 年 1 月 1 日至 2019 年 12 月 31 日),并且您在 2019 年 11 月对软件进行了签名并添加了时间戳。现在,用户下载了您签名的软件包并尝试立即运行它 - 如果没有时间戳,用户将收到错误警告。添加时间戳的情况下,操作系统将使用时间戳来评估代码签名证书在签名时是否有效,而不是接受签名时的今天日期。此外,时间戳由 CA 签名和保护,它可以阻止针对软件代码的篡改或任何其他恶意活动,同时保持安全性。

代码签名时间戳中使用的技术

时间戳由经过认证的时间戳颁发机构 (TSA) 提供,该机构使用一系列基于 PKI(公钥基础结构)技术的加密和解密技术来应用可验证的时间戳。在代码签名中,在对程序进行签名时使用时间戳来验证签名的日期和时间,时间戳是通过 URL 使用时间戳服务器完成的。购买沃通代码签名证书,可提供支持微软的Authenticode技术的时间戳服务网址,以及支持国际标准RFC3161的时间戳服务网址,由权威CA机构运行,提供给代码签名用户使用。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/619384.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

uniapp和springboot微信小程序开发实战:开发环境准备以及技术选型

文章目录 开发工具STSHBuilder X其他工具技术选型前端开发vueelementUI后端springbootmybatisplusJWT和shiro开发工具 STS STS是开发springboot项目的利器,是Eclipse的一个版本,全称是SpringToolSuite STS下载地址 HBuilder X 下载地址

WWDC2023|苹果iOS 17系统更新:可共享AirTag

苹果正在召开的 WWDC 2023 开发者大会上,宣布推出了 iOS 17 系统。包含一些功能上的更新。 共享 AirTag iOS 17 引入了一项备受期待的 AirTag 功能,即与他人共享 AirTag。自推出以来,AirTag 只能由一个人拥有和使用,但在 iOS 17…

如何做架构设计? | 京东云技术团队

也许您对软件设计存在一些疑惑,或者缺乏明确思路,那么本文将非常适合您。 1、设计很重要 我们可以看一下周边的事物,那些好的东西,他们并不会天然存在,都是被设计出来的,因此设计就是创造和改善事物的重要…

基于BP神经网络对MNIST数据集检测识别

基于BP神经网络对MNIST数据集检测识别 1.作者介绍2.基于BP神经网络对MNIST数据集检测识别2.1 BP神经网络介绍2.2 神经元模型2.3 激活函数2.4 BP神经网络基础架构2.5 BP神经网络正向传播反向传播 3.基于BP神经网络对MNIST数据集检测识别实验3.…

三分钟,教你3种前端埋点方式!

目录 前言 埋点方式 基于ajax的埋点上报 介绍 代码实现 缺点 基于img的埋点上报 script及link的缺陷 基于img做埋点上报 基于Navigator.sendBeacon的埋点上报 介绍 作用 补充 例子 优势 总结 常见埋点行为 点击触发埋点 页面停留时间上报埋点 错误监听埋点…

人工电场算法(AEFA)(含MATLAB代码)

先做一个声明:文章是由我的个人公众号中的推送直接复制粘贴而来,因此对智能优化算法感兴趣的朋友,可关注我的个人公众号:启发式算法讨论。我会不定期在公众号里分享不同的智能优化算法,经典的,或者是近几年…

8种Python异常检测算法总结

异常检测是通过数据挖掘方法发现与数据集分布不一致的异常数据,也被称为离群点、异常值检测等等。本文为大家整理了8个常见的Python异常检测算法,希望对大家有所帮助 一、异常检测简介 异常检测是通过数据挖掘方法发现与数据集分布不一致的异常数据&…

Centos7系统部署搭建Kafka集群

kafka集群搭建 一、环境准备1.1 服务器准备1.2 版本信息1.3 启动kafka环境1.3.1 获取kafka1.3.2 启动kafka1.3.2.1 kafka && ZooKeeper1.3.2.2 kafak && KRaft 1.4 创建主题1.5 事件写入主题1.6 事件读取1.7 停止kafka环境 二、搭建 kafka 集群2.1 ZooKeeper 集…

chatgpt赋能python:Python如何读取照片

Python如何读取照片 介绍 Python是一种高级编程语言,其简单易用、可扩展性强等特点,使其在数据分析、机器学习等领域得到了广泛应用。而在图像处理领域,Python同样也有着较为优异的表现。本文将介绍Python读取照片的方法,并探讨…

普通2本,去过字节外包,到现在年薪30W+的测试开发,我的2年转行心酸经历...

个人简介 我是一个普通二本大学机械专业毕业,17年毕业,19年转行,目前做IT行业的软件测试已经有3年多,职位是高级测试工程师,坐标上海… 我想现在我也有一点资格谈论关于转行这个话题;希望你在决定转行之前…

Linux下面安装jdk和tomcat

1、jdk的安装 1、上传jdk到 opt目录下面 2、解压jdk tar -xvf jdk-8u281-linux-x64.tar.gz3、一般把jdk放到/usr/local (软件的安装都是放到usr下面) mv jdk1.8.0_281 /usr/local/4、配置环境变量 找到 /etc/profile 进行编辑修改 export JAVA_HOM…

速下载 | 200页幻灯片图解新版《商用密码管理条例》

国家高度重视商用密码工作。2023年4月14日,国务院常务会议审议通过了《商用密码条例》(以下简称《条例》)修订草案。5月24日中华人民共和国中央人民政府网站正式公开修订后的正式稿全文。本次《条例》在密码法框架下进行了全面修订&#xff0…

面试“我“又踩坑了,高频软件测试面试题,项目经验板块(付答案)...

目录:导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜) 前言 问题1&#xff1a…

(学习日记)2023.06.07

写在前面: 由于时间的不足与学习的碎片化,写博客变得有些奢侈。 但是对于记录学习(忘了以后能快速复习)的渴望一天天变得强烈。 既然如此 不如以天为单位,以时间为顺序,仅仅将博客当做一个知识学习的目录&a…

基于ChatGPT使用报告 (针对嵌入式领域测试及心得)

目录 1、基于驱动的日志解析提问 错误日志分析【100%】 报错日志分析【90%】 错误日志分析【60%】 2、基于安卓设备调试提问 adb调试i2c【效率50%】 adb调试gpio【50%】 3、基于高通代码的提问 基于高通代码含义的解析【效率80%】 基于高通新增TP驱动提问【效率50%】…

【区块链 | L2】详解Layer 2扩展解决方案Optimism(OP)是如何工作的?

Optimism是一个快速、稳定、可扩展和低成本的以太坊Layer 2区块链。这意味着它在以太坊区块链(Layer1)之上运行,以帮助缓解拥塞,进而降低交易成本和处理时间。作为现有以太坊软件的最小扩展,Optimism的EVM-equivalent 架构可以扩展以太坊应用程序。如果它能在以太坊上工作…

移动端的加解密

目录 引言 算法分类 密钥介绍 模式介绍 算法介绍 小结 写在最后 引言 今天给大家分享一篇有关移动端加解密的文章。随着移动设备的普及,加密技术在保护用户数据方面变得越来越重要。 本文将为您介绍Android加解密算法的分类、优缺点特性及应用,…

前端Vue实现国际化

国际化实现原理 假设我们有一个变量 msg,但是这个 msg 有两个值,一个是 hello,一个是 你好,现在需要我们根据需要切换 msg 的值,如何做呢? // 定义 msg 值的数据源 const msgList {en: {msg: hello},zh:…

智能批量复制文件,轻松实现文件批量复制并实现编号

您有没有遇到过需要将相同类型的多个文件复制到不同文件夹的情况?这个过程可能会非常耗时,尤其当文件的数量很大且需要进行重复编号时,更是一项非常烦琐的工作。细有一个快手的方法可以实现,如下: 首先,第…

基于spring boot框架访问zookeeper

本地部署zookeeper: 进入zookeeper-3.3.6/conf目录下,将zoo_sample.cfg文件改名为zoo.cfg,再用文本编辑器打开这个文件,修改如下红框位置的内容,改成本地一个可以访问的已有目录: 打开命令行窗口&#xff…