标签: timestamping

SignTool.exe错误后,Visual Studio中的PostBuild事件失败

我们在Visual Studio 2010中有一个项目,它在后期构建事件中运行批处理文件.该批处理从Microsoft SDK调用signtool.exe来对二进制文件进行签名和时间戳.

然而,时间戳服务器(我们使用http://timestamp.verisign.com/scripts/timstamp.dll)由于某种原因往往不可靠,有时会失败.这导致构建失败.

我们实现了更高级的批处理脚本(基于代码),拆分签名和时间戳,并允许重试时间戳操作(如果失败).

以下是批处理脚本(signfile.bat)的简化版本:

@echo off

REM sign the file...
signtool.exe /f Authenticode.pfx /p PASS %1

if %errorlevel% neq 0 exit /b %errorlevel%

set timestamp_server=http://timestamp.verisign.com/scripts/timstamp.dll

for /L %%a in (1,1,10) do (

    REM try to timestamp the file...
    signtool.exe timestamp /t %timestamp_server% %1

    if errorlevel 0 if not errorlevel 1 GOTO succeeded

    REM wait 2 seconds...
    ping -n 2 127.0.0.1 > nul
)

REM return an error code...
echo signfile.bat exit code is …
Run Code Online (Sandbox Code Playgroud)

build-process code-signing visual-studio-2010 errorlevel timestamping

15
推荐指数
1
解决办法
8708
查看次数

Linux套接字的Linux时间戳

我正在一个项目中工作,以便从文件Linux时间戳记中提到的用于TCP套接字的NIC获取接收和传输 时间戳.但所有文档和测试编码都是针对UDP套接字完成的.但我正在获取NIC的传输时间戳,而不是获取接收TCP数据包的时间戳.

我的界面支持以下时间戳

    Time stamping parameters for enp4s0:
Capabilities:
    hardware-transmit     (SOF_TIMESTAMPING_TX_HARDWARE)
    software-transmit     (SOF_TIMESTAMPING_TX_SOFTWARE)
    hardware-receive      (SOF_TIMESTAMPING_RX_HARDWARE)
    software-receive      (SOF_TIMESTAMPING_RX_SOFTWARE)
    software-system-clock (SOF_TIMESTAMPING_SOFTWARE)
    hardware-raw-clock    (SOF_TIMESTAMPING_RAW_HARDWARE)
PTP Hardware Clock: 3
Hardware Transmit Timestamp Modes:
    off                   (HWTSTAMP_TX_OFF)
    on                    (HWTSTAMP_TX_ON)
Hardware Receive Filter Modes:
    none                  (HWTSTAMP_FILTER_NONE)
    all                   (HWTSTAMP_FILTER_ALL)
Run Code Online (Sandbox Code Playgroud)

我启用网卡时间戳后bind()ioctl(sockfd, SIOCSHWTSTAMP, &net_device);

memset(&net_device, 0, sizeof(net_device));
strncpy(net_device.ifr_name, interface_name, sizeof(net_device.ifr_name));
net_device.ifr_data = (void *)&tstconfig;
memset(&tstconfig, 0, sizeof(tstconfig));

tstconfig.tx_type = HWTSTAMP_TX_OFF;
tstconfig.rx_filter = HWTSTAMP_FILTER_ALL;
Run Code Online (Sandbox Code Playgroud)

然后启用NIC中的时间戳 setsockopt()

int opt= 0;
opt |= SOF_TIMESTAMPING_RX_HARDWARE;
opt |= …
Run Code Online (Sandbox Code Playgroud)

sockets linux tcp timestamping linux-kernel

11
推荐指数
2
解决办法
3067
查看次数

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

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

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

(在Windows上,可以通过签名.exe查看该证书,然后在其Explorer Properties对话框中转到Digital Signatures选项卡,选择签名并单击Details,然后在Digital Signature Details对话框中单击counter签名并单击Details,然后在第二个"数字签名详细信息"对话框中单击"查看证书".如果"签名哈希算法"为"sha1",则证书为SHA-1证书.)

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

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

sha1 code-signing sha2 timestamping trusted-timestamp

10
推荐指数
1
解决办法
2420
查看次数

已签名和带时间戳的可执行文件执行失败,并且未显示正确的详细信息

请注意,此问题仅适用于Windows Server 2008 SP2

我开发了一个Windows应用程序.在分发之前,我已使用SHA1和SHA256对其进行了签名和时间戳.此应用程序由多个DLL组成.我在构建过程中签署每个DLL.我使用过VeriSign的证书.在执行时,启动应用程序时,它会验证每个DLL的签名和时间戳,以确保使用WinVerifyTrust API 完整性.验证期间我收到"E_CERT_EXPIRED - 签名者证书已过期"错误.

此外,我无法在可执行文件的属性页中看到时间戳细节.请看下面 -

在此输入图像描述

现在,该证书已过期但根据此SO文章代码签名证书到期时会发生什么?.可执行文件应该完美运行没有任何问题.

我还检查了这个KB怀疑原因,但已经应用了与此KB相关的修复.任何人都可以分享更多的亮点吗?

code-signing timestamping windows-server-2008 code-signing-certificate verisign

6
推荐指数
1
解决办法
55
查看次数

使用openssl创建tsa(时间戳)证书 - 在证书中添加extendedKeyUsage

我想为我的时间戳服务创建一个tsa证书.

首先,我创建一个根证书

openssl genrsa -out tsaroot.key 4096 -config openssl.cnf
openssl req -new -x509 -days 1826 -key tsaroot.key -out tsaroot.crt -config openssl.cnf
Run Code Online (Sandbox Code Playgroud)

然后我创建了tsa证书

openssl genrsa -des3 -out tsa.key 4096 -config openssl.cnf
openssl req -new -key tsa.key -out tsa.csr -config openssl.cnf
openssl x509 -req -days 730 -in tsa.csr -CA tsaroot.crt -CAkey tsaroot.key -set_serial 01 -out tsa.crt
openssl pkcs12 -export -out tsa.p12 -inkey tsa.key -in tsa.crt -chain -CAfile tsaroot.crt
Run Code Online (Sandbox Code Playgroud)

在我的openssl.cnf文件中,我添加以下行:

extendedKeyUsage = critical,timeStamping
Run Code Online (Sandbox Code Playgroud)

Howerver,创建的证书似乎不包括extendeKeyUsage(当我尝试用充气城堡阅读它时,我得到了"证书必须具有ExtendedKeyUsage扩展名."例外

如何生成有效的tsa证书(包含正确的extendedKeyUsage值)?

谢谢

openssl certificate timestamping

5
推荐指数
1
解决办法
5284
查看次数

bash - wget -N if else 值检查

我正在编写一个 bash 脚本,仅当远程时间戳与本地时间戳不同时,该脚本才会从 FTP 站点提取文件。放置文件后,它通过 samba (smbclient) 将文件复制到其他 3 台计算机。

一切正常,但即使 wget -N ftp://insertsitehere.com返回远程上的文件不是较新的值,文件也会复制。检查脚本输出的最佳方法是什么,以便仅在从 FTP 提取新版本时才进行复制?

理想情况下,我希望复制到计算机以保留时间戳,就像 wget -N 命令一样。

这是我所拥有的示例:

#!/bin/bash

OUTDIR=/cats/dogs

cd $OUTDIR
wget -N ftp://user:password@sitegoeshere.com/filename

if [ $? -eq 0 ]; then
   HOSTS="server1 server2 server3"
   for i in $HOSTS; do
      echo "Uploading to $i..."
      smbclient -A /root/.smbclient.authfile //$i/path -c "lcd /cats/dogs; put fiilename.txt"
      if [ $? -eq 0 ]; then
        echo "Upload to $i successful..."
      else
        echo "There was an issue uploading to host $i..."
      fi …
Run Code Online (Sandbox Code Playgroud)

linux ftp bash wget timestamping

5
推荐指数
1
解决办法
2442
查看次数

使用TSA URL和Java API进行时间戳

任何人都可以帮助我理解签名时间戳时使用的过程和Java API.

我需要使用TSA URL签名文件并对其加盖时间戳" http://timestamp.globalsign.com/scripts/timstamp.dll使用Java API ".

我能够使用java.security API对文件进行签名,但无法为其加时间戳.

java security digital-signature timestamping rfc3161

2
推荐指数
1
解决办法
4389
查看次数

我可以将公司的时间戳服务器与自签名证书一起使用吗?

我有兴趣使用自签名证书对我的 Silverlight XAP 进行签名,以便它可以自动更新。我还没有尝试过,但我想我可以使用我在 StackOverflow 上找到的这个问题/答案轻松创建证书。

但是我不清楚时间戳服务器的作用是什么,我可以使用公司的时间戳服务器(例如,来自 Comodo 的),即使我没有从他们那里购买证书,而是自签名我的证书?

certificate self-signed timestamping out-of-browser silverlight-oob

2
推荐指数
1
解决办法
1101
查看次数

如何在Python中同步函数调用的时间戳?

我在模块中有一个读取功能.

如果我同时执行该功能,我需要为其加时间戳.

我该怎么做呢?

python function-call timestamping simultaneous-calls

-1
推荐指数
1
解决办法
1262
查看次数