代码签名时是否/如何避免 SHA-1 签名时间戳?

2024-02-24

我们刚刚从 SHA-1 切换到 SHA-2 代码签名证书。 (作为背景信息,我们使用 COMODO 代码签名证书,使用signtool.exe 在 Windows 上对 .exe 和 .xap 文件进行签名。)我们使用经过认证的时间戳来执行此操作,以确保 Windows 在代码签名证书之后继续信任代码签名过期。

现在我注意到了时间戳证书仍然是 SHA-1 证书,当使用http://timestamp.comodoca.com/authenticode http://timestamp.comodoca.com/authenticode。 (详细信息:它是 df946a5...,主题为“CN=COMODO 时间戳签名者,O=COMODO CA Limited,L=索尔福德,S=大曼彻斯特,C=GB”。)

(在 Windows 上,可以通过签名的 .exe 来查看该证书,然后在其“资源管理器属性”对话框中转到“数字签名”选项卡,选择签名并单击“详细信息”,然后在“数字签名详细信息”对话框中单击反签名并单击“详细信息”,然后在第二个“数字签名详细信息”对话框中单击“查看证书”。如果“签名哈希算法”为“sha1”,则该证书是 SHA-1 证书。)

这会是一个问题吗?换句话说,在我们当前的代码签名证书过期之后,并且在 Microsoft Windows 将 SHA-1 视为损坏的算法之后(最晚是 2020 年),我们当前的签名是否仍然可信?或者 Windows 会说“时间戳在代码签名证书的有效范围内,但时间戳是用 SHA-1 证书签名的,所以我不会信任时间戳,因此我不会信任这个签名”?

我们可以/应该使用其他服务吗? (不是威瑞信的http://timestamp.verisign.com/scripts/timstamp.dll http://timestamp.verisign.com/scripts/timstamp.dll,因为他们仍然使用 SHA-1 时间戳证书,即。 6543992...)


自2017年1月1日起 http://social.technet.microsoft.com/wiki/contents/articles/32288.windows-enforcement-of-authenticode-code-signing-and-timestamping.aspx,您不能再在 Windows 7 及更高版本上使用 SHA-1(如果时间戳在 2016 年 1 月 1 日之后)。

本文 https://support.globalsign.com/customer/portal/articles/1698751-ev-code-signing-for-windows-7-and-8描述如何使用时间戳 URL 获取 SHA-256 时间戳证书http://timestamp.globalsign.com/?signature=sha2 http://timestamp.globalsign.com/?signature=sha2。作为替代方案,请参阅这个时间戳服务器列表 https://gist.github.com/fd754e402d98430243455713efada710您也可以使用它。

The signtool https://msdn.microsoft.com/en-us/library/8s9b9yaz(v=vs.110).aspx /td标志也很重要(并且记录很少)。

签名是这样的:

signtool sign /fd SHA256 /tr http://timestamp.globalsign.com/?signature=sha2 /td SHA256 /a filename.exe

生成带有代码签名证书和时间戳证书(采用 SHA-256 签名哈希算法)的可执行文件。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

代码签名时是否/如何避免 SHA-1 签名时间戳? 的相关文章

  • 为什么我在 Yosemite 上的 Xcode 6 中收到错误“Command /usr/bin/codesign failed with exit code 1”?

    我使用的是 Xcode 6 1 OS X Yosemite 预览版 8 在对我的应用程序进行代码签名时遇到以下错误 命令 usr bin codesign 失败 退出代码 1 在谷歌上阅读 它似乎与过期的证书 配置文件相关联 我删除了所有证
  • 在导出 Android 应用程序向导中为 Android 应用程序生成密钥库?

    我正在尝试在 Eclipse 中导出已签名的 Android 应用程序 我认为我正朝着正确的方向前进 右键单击项目 gt 安卓工具 gt 导出已签名的申请包 将出现 导出 Android 应用程序 向导 选择我要导出的项目 点击Next 出
  • 如何让 Install4j 对所有内容进行签名?

    如何更改 Mac OS X 上 install4j 的协同签名对哪些文件进行签名 具体来说 我的应用程序的所有文件 包括其 jar 文件 都没有经过签名 这完全违背了代码签名的目的 所以 我想解决这个问题 我也想在 Windows 上做同样
  • 使用 GoDaddy 的 spc 文件签署 java 小程序

    我正在尝试使用 godaddy 的 spc 文件签署 java 小程序 这是我正在使用的命令 keytool import keystore codesignstore storepass pass alias alias file fil
  • as3crypto 的 sha1 哈希值与 PHP 生成的哈希值不同

    使用 as3 中的 as3crypto 从字符串 12345 生成 SHA1 哈希 与示例中的操作方式相同 var sha1 SHA1 new SHA1 var src ByteArray Hex toArray 12345 var dig
  • 并行计算大文件的哈希码

    我想提高散列大文件的性能 例如大小为数十 GB 的文件 通常 您使用散列函数 例如 SHA 256 尽管我很可能会使用 Skein 顺序对文件的字节进行散列 因此与从 读取文件所需的时间相比 散列会更慢快 SSD 我们将此称为方法 1 这个
  • 验证/提交错误:应用程序未通过协同设计验证

    我有许多几乎相同的应用程序 除了一些常量 图像和 sqllite 数据库文件 我之前提交它们时从未遇到过任何问题 但是今天其中一个更新在验证 提交时出现以下错误 注意 我过去已经更新过此应用程序 没有任何问题 应用程序未通过协同设计验证 签
  • Flutter - 获取 SHA-1 证书 - Android Studio 3.2.1

    我正在尝试检索我的 Flutter 项目的 SHA 1 指纹证书 这通常可以通过进入 Android Studio 右侧的 Gradle 面板并单击signingReport 然而问题是 在 Flutter 中 它根本不显示 Gradle
  • 如何防止应用程序被标记为可疑

    我有一个使用 Visual Studio 2012 用 C 编写的 NET 应用程序 我通过自己的网站推广该应用程序并提供下载 在 Chrome 中下载它时 我收到一条消息 指出我的应用程序 不常下载 可能很危险 此外 当我下载自己的应用程
  • Java AES/CBC/PKCS5Padding 的 C# 加密/解密

    我在尝试解密已在 Java 中使用以下属性 Java 代码 加密的字符串时遇到问题 public static Builder getDefaultBuilder String key String salt byte iv return
  • Windows Phone 8 上“无法安装公司应用程序”

    我为 Windows Phone 8 开发了一个公司应用程序 并完成了所有建议的步骤来设置它进行安装 我拥有 Symantec 代码签名证书 并且已生成应用程序注册令牌和签名的 XAP 并将其托管在 OneDrive 上的公共文件夹中 我使
  • SHA 足以检查文件重复吗? (PHP 中的 sha1_file)

    假设您想创建一个文件托管站点 供人们上传文件并向他们的朋友发送链接以供稍后检索 并且您想确保文件在我们存储文件的位置重复 那么 PHP 的 sha1 file 是否足以完成该任务 有什么理由不使用 md5 file 来代替吗 对于前端 它将
  • 将 Python 中的 SHA 哈希计算转换为 C#

    有人可以帮我将以下两行 python 代码转换为 C 代码吗 hash hmac new secret data digestmod hashlib sha1 key hash hexdigest 8 如果您有兴趣 其余的看起来像这样 us
  • Authenticode 的替代时间戳服务

    我们为所有生产版本执行代码签名和时间戳 偶尔 通常是当我们即将 RTM Verisign 的时间戳服务器 http timestamp verisign com scripts timstamp dll http timestamp ver
  • 正确签名的 JNLP 应用程序无法在 Java 7 中运行

    我有一个 JNLP 应用程序 由于证书过期需要更新 我有一个经过 CA 验证的新证书 我已将新证书导入到我的密钥库中 我已导入完整的证书链 我的构建文件对构建中的 jar 进行签名和时间戳
  • Codesign:什么是未密封内容?

    我刚刚升级到 XCode 6 并尝试构建我的开发者 ID 签名的 Mac 应用程序 但是 我现在收到以下协同设计错误 unsealed contents present in the root directory of an embedde
  • 如何检查文件是否有数字签名

    我想以编程方式检查文件是否经过数字签名 目前 我发现了一个相当晦涩的微软代码 https learn microsoft com en us windows win32 seccrypto example c program verifyi
  • App Store Connect 上传错误“您尚未获得云管理分发证书的访问权限”

    使用 Xcode 将 iOS 应用程序上传到 App Store Connect 自动管理签名 并收到此错误 查找和生成签名资产时发生以下错误 与苹果通讯失败 您尚未获得云管理分发证书的访问权限 请联系您团队的帐户持有人或管理员以授予您访问
  • 提交的代码签名应用程序无效

    我尝试向应用程序商店提交应用程序 但收到以下错误 我见过类似的问题 并提出了 2 个不同的解决方案 但都没有解决问题 无效的代码签名权利 您的应用程序包的签名包含不受支持的权利值 具体来说 不支持密钥 com apple developer
  • 修改代码以从 Windows 中的 PE 可执行文件检索双重签名信息?

    我已经挣扎了一段时间想要修改这段代码示例 https support microsoft com en us help 323809 how to get information from authenticode signed execu

随机推荐

  • JDK8与Windows XP兼容吗? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我发现可以在 Windows XP 上安装 JDK8 为了避免安装错误 我们必须更改jdk 8u11 windows i586 exe使用
  • 仅获取存储桶的顶级对象

    我的问题与此类似如何使用node js获取谷歌云存储文件夹中的文件列表 https stackoverflow com questions 49684942 how to get a list of files in a google cl
  • C++ 中使用 #include 和 #include 的区别

    使用有什么区别 include
  • PopOver 自动调整位置

    我遇到了 PopOver 的问题 我希望它能够在所有位置自动调整 如果右侧找不到空间 则会从左侧打开 但我希望它对顶部 底部做同样的事情 即 如果顶部找不到空间 则应在底部打开 反之亦然 难道我就没有什么办法可以为各方做到这一点吗 data
  • 错误:尝试解析模块 @apollo/client React Native 时

    安装新版本的 apollo 客户端后出现此错误 我尝试了其他版本并降级但没有任何结果 我还尝试在 Metro config js 中指定解析 cjs 类型的文件 apollo client main cjs 但什么也没有 Error err
  • 具有 PCLMULQDQ 的快速 CRC *未反映*

    我正在尝试写一个PCLMULQDQ 优化的 CRC 32 https www intel com content dam www public us en documents white papers fast crc computatio
  • 在 UserDetailsS​​ervice 中使用 @Cacheable 时编码密码为空

    在授权期间遇到缓存问题 我无法弄清楚 因此 在授权期间 每次不向数据库发出请求时 我都想缓存该方法 在第一次请求时缓存为空 一切都很好 直到缓存在一段时间后被删除 但是当缓存存在时 我得到 401 因为 o s s c bcrypt BCr
  • 增加 ServicePointManager.DefaultConnectionLimit 的缺点

    我正在多线程环境中调用网络服务 我的很多调用由于操作超时或错误请求而失败 但如果我以线性方式执行 则没有一个调用会失败 这意味着使用多个线程调用 Web 服务存在问题 经过大量分析 我发现并发连接的限制导致了这些异常 因此我通过添加以下代码
  • 双重否定-(-n)的原因是什么?

    我正在查看一些遗留代码 我看到了类似的东西 char n 65 char str 1024 sprintf str d n 为什么作者 不再在场 写了 n 而不仅仅是n 不会 n够了吗 首先要注意的是 n实际上减少 n加 1 并计算出新值
  • 尝试导入张量流时出现非法硬件指令

    我刚刚使用以下说明安装了tensorflowvirtualenv方法 安装过程很顺利 所以我认为没有任何问题 安装后 我继续尝试导入它以验证一切正常 我收到以下消息 1 4492 illegal hardware instruction c
  • html 中指定的图像宽度单位是什么?

    我对 html 语言完全陌生 在html中附加的图像中 我们需要通过以下标记指定图像的宽度 img width 350 src var tmp jpg 那么这里的宽度单位是什么 我猜它是以像素为单位的 如果以像素为单位 是否意味着图像的大小
  • 从 xcode 命令行生成 ipa

    从命令行生成 IPA 文件的最佳方法是什么 我使用的是 xcode 4 2 并使用以下命令生成存档 xcodebuild scheme AppStore clean archive 协同设计后 这会在构建输出目录中生成 dSYM 和 app
  • XAML 中的字符串格式

    我正在尝试格式化我的string每 3 个位置有一个逗号 如果不是整数则有一个小数 我检查了大约 20 个例子 这是我得到的最接近的例子
  • 如何在 iTunes 上获取我的应用程序统计信息?

    我最近发布了一款 iPhone 应用程序 但我没有看到任何方法可以像在 Google Play 中一样检查应用程序统计信息 您能告诉我该怎么做吗 你可以从iTunes连接 https itunesconnect apple com 登录您的
  • Java 贪吃蛇游戏避免使用 Thread.sleep

    我用 Java 制作了我的第一个游戏 贪吃蛇 它的主循环看起来像这样 while true long start System nanoTime model eUpdate if model hasElapsedCycle model up
  • 通过代码使卸载注册表项成为有条件的

    如何禁用 Inno SetupCreateUninstallRegKey http www jrsoftware org ishelp index php topic setup createuninstallregkey通过代码 My 安
  • 在每个“X”React 组件之后插入一个元素

    我有一个 React 组件 它使用 Bootstrap 将项目列表呈现为三列col col md 4风格 但是 我需要插入一个clearfix div http getbootstrap com css grid responsive re
  • git 无法执行任何任务

    我在 Windows 7 上使用 Git 我是从那里下载的http git scm com download http git scm com download 无论我重新安装 Git 并尝试执行某些操作 甚至克隆都不起作用 多少次 它都无
  • ant sql insert 语句在“--”字符串上失败。解决方法?

    Context 我们正在更改安装脚本以使用 ant 的 sql 任务和 jdbc 而不是专有的 sql 客户端 sqlplus oracle 和 osql msft 更新 添加了更多上下文 我们的 基础数据 种子数据 由一组 sql 文件组
  • 代码签名时是否/如何避免 SHA-1 签名时间戳?

    我们刚刚从 SHA 1 切换到 SHA 2 代码签名证书 作为背景信息 我们使用 COMODO 代码签名证书 使用signtool exe 在 Windows 上对 exe 和 xap 文件进行签名 我们使用经过认证的时间戳来执行此操作 以