以下实现的时间戳的反签名方法允许在代码签名证书过期或吊销后进行签名验证。 时间戳[1]使验证程序能够可靠地知道签名所贴的时间,从而信任签名(如果签名在当时有效)。 时间戳器应具有可靠且受保护的时间源。

一、PKCS #7 签名文档和反符号

PKCS #7 是加密数据的标准格式,包括签名数据、证书和 证书吊销列表 (CRL) 。 时间戳上下文中特定 PKCS #7 类型的兴趣是签名数据,对应于定义的 SignedData 内容类型的 PKCS #7。

PKCS #7 包由 SignedData 组成,用于标识实际内容及其特定信息以及 SignerInfo 签名块。 SignerInfo 本身可能包含计数器符号,递归方式是另一个 SignerInfo。 原则上,可能会存在一系列此类反签名。 countersignature 是与 SignerInfo 中的签名相关的未经身份验证的属性;也就是说,它可能会在原始签名后贴上。 在大纲窗体中:

1、SignedData (PKCS #7)

PKCS #7 的版本 (通常为版本 1)

DigestAlgorithms (SignerInfo 签名块使用的所有算法的集合,以便优化处理)

ContentInfo (contentType 等于 SignedData,以及内容或对内容) 的引用

可选证书 (收集使用的所有证书)

所有 CRL) 的可选 CRL (集合

SignerInfo 签名块 (实际签名,由一个或多个 SignerInfo 签名块组成)

2、SignerInfo (签名块)

PKCS #7 的版本 (通常为版本 1)

证书 (颁发者和序列号,用于在 SignedData) 中唯一标识签名者的证书

DigestAlgorithm 加上 DigestEncryptionAlgorithm 加上 Digest (哈希) ,以及 EncryptedDigest (实际签名)

OPTIONAL AuthenticatedAttributes (例如,此签名者)

可选 UnauthenticatedAttributes (例如,此签名者)

经过身份验证的属性的一个示例是签名时间 (OID 1.2.840.113549.1.9.5) ,因为它是时间戳服务签名的一部分。 未经身份验证的属性的一个示例是计数器签名 (OID 1.2.840.113549.1.9.6) ,因为它可以在签名后加贴。 在这种情况下,SignerInfo 本身包含 SignerInfo (Countersignature) 。

二、SignTool 和 Authenticode 进程

SignTool 可用于验证码签名和时间戳二进制数据。 该工具安装在 Microsoft Windows 软件开发工具包的 \Bin 文件夹中, (SDK) 安装路径。

使用 SignTool 对二进制数据进行签名和时间戳比较简单。 发布者必须从商业代码签名 CA 获取代码签名证书。 为方便起见,Microsoft 发布并更新公共 CA 列表,包括颁发 Authenticode 证书的 CA 列表。 准备好发布时,将使用带 SignTool 工具的相应命令行参数对对象文件进行签名和时间戳。 任何 SignTool 操作的结果始终为 PKCS #7 格式 的 SignedData。

SignTool 接受输入要签名的原始二进制数据和时间戳,或者将以前签名的二进制数据标记为时间戳。 以前签名的数据可以使用 signtool timestamp 命令来标记时间戳。

三、实现详细信息和线路格式

SignTool 依赖于 Windows Authenticode 实现来创建和时间戳签名。 Authenticode 对二进制文件(例如.cab、.exe、.dll或 .ocx)进行操作。 Authenticode 首先创建签名,生成 PKCS #7 SignedData。 这是必须反签名的 SignedData ,如 PKCS #9 中所述。

反签名过程采用四个步骤:

复制签名 (,即 PKCS #7 SignedData 的 SignerInfo 中的 encryptedDigest) 。

构造其内容为原始签名的时间戳请求。 将其发送到时间戳服务器 抽象语法表示法一 (ASN.1) 编码为 TimeStampRequest。

接收从时间戳服务器返回的第二个 PKCS #7 SignedData 格式的时间戳。

将 SignerInfo 从时间戳直接复制到原始 PKCS #7 SignedData 中,作为 PKCS #9 countersignature (即原始) 的 SignerInfo 中未经身份验证的属性。

参考

  1. ^可信时间戳 沃通可信时间戳服务_免费时间戳服务-沃通TSA可信时间戳服务中心

代码签名证书的时间戳验证码签名方法相关推荐

  1. EV代码签名证书对可执行文件进行签名

    根据最新的行业法规和政策,开发人员和组织必须对可执行文件进行数字签名.它帮助企业和用户分别提供和使用正版软件. 此外,大多数组织更喜欢将EV代码签名证书用于此类目的,以防止在安装过程中出现警告消息. ...

  2. thawte代码签名证书,comodo软件签名证书,symantec,digicert签名证书的区别

    代码签名证书区别 1. comodo thawte symantec代码签名证书仅支持SHA2(SHA256)加密算法 2. digicert代码签名证书支持SHA1和SHA2(SHA256)加密算法 ...

  3. 自签名证书和私有CA签名的证书的区别 创建自签名证书 创建私有CA 证书类型 证书扩展名

    自签名的证书无法被吊销,CA签名的证书可以被吊销 能不能吊销证书的区别在于,如果你的私钥被黑客获取,如果证书不能被吊销,则黑客可以伪装成你与用户进行通信 如果你的规划需要创建多个证书,那么使用私有CA ...

  4. 微软代码签名证书使用指南

    来源:http://***/support/signcode_guide.htm 本使用指南演示怎样使用WoSign代码签名证书来给微软代码签名,Thawte和VeriSign代码签名证书也是使用相同 ...

  5. EV代码签名证书,支持Windows 10预览版和正式版驱动签名

    DigiCert EV代码签名证书具有普通内核代码签名证书的所有功能,但不同的是采用更加严格国际标准扩展验证(EV验证),并且有严格的证书私钥保护机制--必须采用 USB Key来保护签名证书的私钥, ...

  6. 全面剖析VeriSign代码签名证书

    本文档由维瑞技术中心提供:VeriSign代码签名 www.willrey.com 什么是代码签名?我为什么需要代码签名证书? 用户在线下载应用程序.安装插件附件.与复杂的 网络应用程序交互时,出于安 ...

  7. 余承东:华为技术走在产业前列,别人想超越很难;理想销量夺冠后,员工不满年终奖打折;黑客窃取GitHub代码签名证书|极客头条

    「极客头条」-- 技术人员的新闻圈! CSDN 的读者朋友们早上好哇,「极客头条」来啦,快来看今天都有哪些值得我们技术人关注的重要新闻吧. 整理 | 梦依丹 出品 | CSDN(ID:CSDNnews ...

  8. GlobalSign即将停止签发SHA1代码签名证书

    关于GlobalSign即将停止签发SHA-1代码签名的公告 尊敬的客户/合作伙伴: GlobalSign的代码签名证书产品将面临两个主要变化,如下: 一,即将停止SHA-1代码签名的签发 Globa ...

  9. 沃通代码签名证书,保护物联网安全

    为什么80%的码农都做不了架构师?>>>    ​迅速发展的物联网(IoT)以及随之而来的连接设备激增,引发大量潜在的安全威胁.代码签名证书基于PKI技术,解决物联网设备在软件代码更 ...

最新文章

  1. javascript调试_如何提高JavaScript调试技能
  2. 游客功能怎么实现 php,php链式操作的实现方式分析
  3. MySQL 怎么给字符串字段加索引?
  4. 像证券交易员一样思考和行动_3纪律与心态
  5. 如何在 SAP Spartacus 自定义 UI 里使用标准 UI 的上下文数据 - let 关键字的用法
  6. MemoryCache 使用不当导致的一个 BUG
  7. display inline-block 垂直居中
  8. 一个复平面上的不等式
  9. 小程序UI库 iView Weapp
  10. vivado基本使用流程(详细版,一步步跟着来一定能成功)
  11. matlab2010b和7.0,Matlab的安装(以matlab2010b和matlab7.0的安装方法为例)
  12. 画虎画皮难画骨,编程编码难编译
  13. 微信小程序之个人界面编写(2023.5.9版)
  14. 求两点之间的夹角--两种方法
  15. 算法笔记之狄克斯特拉算法
  16. 电脑右击新建没有Word、Excel怎么办
  17. Linux-用户与组群
  18. 土木工程成功转行Python,月入13k,太香......
  19. 1069. The Black Hole of Numbers (20)
  20. Android商城开发----点击左侧分类列表右侧更新对应列表内容

热门文章

  1. 北理工嵩天的python_嵩天_北京理工大学计算机学院
  2. Python 求解e^(-x)/x函数在区间[0.01, ∞]上的定积分
  3. 使用flutter打造炫酷的list
  4. OPENCV的下载和安装
  5. AdapterView及子类
  6. 搜狗浏览器屏蔽广告插件_“云法庭”里“云勘验”,海淀法院开庭审理搜狗浏览器插件屏蔽优酷视频广告不正当竞争纠纷案...
  7. 解决asp.net FileUpload控件无法获取完整路径的问题 - 无序修改浏览器参数
  8. 面向全局搜索的自适应领导者樽海鞘群算法-附代码
  9. windows修改文件创建时间、修改时间以及最后访问时间
  10. JS - 日期 - 使用setDate(0)获取上个月的最大一天