问题标签 [rfc3161]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
662 浏览

c# - 如何从 Bouncy Castle 中的时间戳响应中提取证书

使用 Bouncy Castle 和 C#,我请求一个包含证书的时间戳令牌 ( timestampRequestGenerator.SetCertReq(true)),并且我得到的响应比设置为时要大得多SetCertReqfalse因此我假设响应在某处具有用于生成时间戳的公钥证书。

如何使用 Bouncy Castle 访问这些证书?我在 Visual Studio 中探索了响应对象,但没有找到证书的位置。

0 投票
0 回答
1818 浏览

php - 使用 PHP 为 PDF 签名添加时间戳

使用 tcpdf 库,我可以向 pdf 添加签名,但时间戳(RFC3161)尚未在此库(applyTSA)中实现,我需要此功能。

根据 ISO 32000-1:2008:

作为无符号属性的时间戳信息 (PDF 1.6):时间戳记号应符合 RFC3161,并且应按照 RFC3161 的附录 A 中的描述计算并嵌入到 PKCS#7 对象中。时间戳的具体处理及其处理留给特定的签名处理程序来定义。

来自 RFC3161 附录 A

以下对象标识符标识签名时间戳属性:

id-aa-timeStampToken OBJECT IDENTIFIER ::= { iso(1) member-body(2) us(840) rsadsi(113549) pkcs(1) pkcs-9(9) smime(16) aa(2) 14 }

Signature 时间戳属性值具有 ASN.1 类型 SignatureTimeStampToken:

SignatureTimeStampToken ::= TimeStampToken

TimeStampToken 中的 messageImprint 字段的值应是 SignerInfo 中的签名字段值的哈希值,用于被标记的签名数据。

使用 openssl 生成时间戳非常容易,但我不清楚如何将其嵌入到 PKCS#7 对象中。我的问题是:

  1. 如何在我的签名中添加时间戳?
  2. 或者,是否有任何具有此功能的开源库(php 或其他)?

一个例子将不胜感激

0 投票
0 回答
604 浏览

java - Adobe - 签名带有时间戳,但无法验证时间戳

我正在努力在我的 pdf 文件上创建带有时间戳的签名。经过多次尝试,我们成功并签署了 PDF 文件。Adobe 验证了此文件,但时间戳有一个错误。有以下信息:

此签名是否创建不当?

有一个代码

0 投票
1 回答
1036 浏览

openssl - openSSL 验证使用自签名证书签名的 RFC 3161 TimeStampResp

我使用 openSSL 从 RFC 3161 TimeStampReq 生成了 RFC 3161 TimeStampResp。因此,我使用了自签名 CA 证书和自签名 CA 使用以下命令颁发的 TSA 证书:

响应已创建。

生成以下输出:

状态信息:
状态:授予。
状态描述:未指定
失败信息:未指定
TST 信息:
版本:1
策略 OID:tsa_policy1
哈希算法:sha256
消息数据:
0000 - 43 2c bb 03 28 48 42 06-c0 c8 95 ee d8 32 9d 29 C,..(HB ......2.)
0010 - 09 7c 10 be 68 2a 77 f6-6e 96 61 7c bf 8f e2 cd .|..h*wna|....
序列号:0x01
时间戳:2013 年 8 月 1 日:40:03 2018 GMT
精度:0x01 秒,0x01F4 毫秒,0x64 微秒
订购:是随机数
:未指定
TSA:DirName:/C=stuff/ST=Some-State/L=stuff/O=stuff/CN=stuff
扩展名:

当我尝试使用以下命令针对 TimeStampReq 验证 TimeStampResp 时:

我收到一条错误消息,指出我的 CAcert 是自签名的(这实际上是真的)

验证:失败
139727615005120:错误:2F06D064:时间戳例程:ts_verify_cert:证书验证错误:../crypto/ts/ts_rsp_verify.c:182:验证错误:自签名证书

有什么方法可以跳过证书验证或告诉 openSSL 这个 CA 可以信任?

0 投票
1 回答
1065 浏览

javascript - 解码以 ASN.1 编码的时间戳(javascript)

我正在尝试解码从 HTTP 发布请求中收到的时间戳,但这是一项非常复杂的任务,我什至对 ASN.1/RFC 3161 没有任何适当的了解,所以如果有人愿意帮助我出去,我真的会被激怒!

代码:

我正在尝试使用 asn1 npm 包(https://www.npmjs.com/package/asn1)。

这是我运行代码时得到的响应: 在此处输入图像描述

如果我改变我await response.arrayBuffer()await response.text()我得到这个:

在此处输入图像描述

我真的不知道如何解决这个问题,我尝试了很多不同的东西,但似乎没有任何效果,如果有人能指出我正确的方向,那就太好了!

0 投票
1 回答
304 浏览

encryption - 如何验证使用 RSASSA-PSS 的 RFC3161 时间戳记令牌

我的时间戳提供程序最近从使用rsaEncryption对时间戳令牌签名更改为rsassaPss请参阅此处的 asn1parse 的差异)。

在更改之前,我在 OpenSSL (v1.1.1a) 中使用以下命令来验证时间戳记令牌:

但是该命令不再起作用。

这可能是因为在使用 OpenSSL 的时间戳验证中尚不支持RSASSA-PSS 。

是否有任何其他选项可以使用 rsassaPss 验证 RFC3161 令牌?

如果您想查看文件,时间戳令牌(rsaEncryption 和 rsassaPss)和签名证书都在此 zip 中

0 投票
1 回答
265 浏览

java - 如何将 OnlineTSPSource 与 esig/dss 库一起使用?

我正在尝试将在线时间戳授权 (rfc3161) 与数字签名服务Java 库一起使用。但是,以下代码段(来自他们的测试用例,与他们的Cookbook中的类似):

总是以以下异常结束:

已经尝试过许多不同的公共 rfc3161 服务器(一些在此处列出)。当然那里出了点问题,但是,作为一个初学者,我不明白哪里出了问题(应该有什么方法)。

如果有人能让我找到正确的方向来让代码片段正常工作(或者甚至可以用 Java 的 bouncycastle 评论关于 cades/xades/pades 的可靠启动指南),我将不胜感激。

0 投票
0 回答
91 浏览

groovy - Groovy 脚本中 RFC3161 的实现

我需要Groovy在 SoapUI 项目中的脚本中从 TSA 获取时间戳。我尝试使用以下脚本来获取时间戳。

bcprov-jdk15on-1.62.jar我将、bcpkix-jdk15on-1.62.jar和依赖guice-4.2.2.jar项导入文件夹。我在执行过程中收到以下错误消息:javax.inject-1.jarSOAPUI_HOME/bin/ext

java.lang.NoClassDefFoundError:由于缺少依赖项 [Lorg/aopalliance/intercept/MethodInterceptor; 无法加载类 com.google.inject.AbstractModule;

代码来源:https ://github.com/carohadad/seginf/tree/master/Sinapuli-service/src/main/groovy/garantito/sinapuli/tsa

更新:

我添加了所有需要的依赖 jar 文件,但收到以下错误消息:

groovy.lang.GroovyRuntimeException:无法为类创建脚本实例:接口 TSAClient。原因:java.lang.InstantiationException: TSAClient

0 投票
0 回答
314 浏览

pdf - XAdES 等效于 PAdES 时间戳

XAdES 中是否存在与 TSA“签署”PDF 的 PAdES 时间戳的等效项?

我不是指 XAdES-T,如果我理解正确,时间戳会添加到现有签名中,我正在寻找这样的东西(A.2 第 15 页):

https://www.etsi.org/deliver/etsi_ts/102700_102799/10277804/01.01.01_60/ts_10277804v010101p.pdf

这看起来像这样: https ://1drv.ms/b/s!AlQKaiJaXUDNgxZwz3QxR2CaaORm?e=TnA0uX

例如,如果您下载 PDF 并使用 Adob​​e Reader 打开它,您会看到 TSA 制作的“签名”。

谢谢!

0 投票
1 回答
271 浏览

pdf - 您可以在不“签名”的情况下向 PDF 添加时间戳不可篡改吗?

使用数字签名对 PDF 进行签名时,可以使用受信任的时间戳服务添加由时间戳权威签名的时间戳令牌。然后在查看 PDF 的签名时,它会说它包含一个签名的时间戳,并且自那时以来它没有被篡改(如果没有的话)。

从技术上讲,发生的事情是 pdf 内容的哈希被发送到 TSA (RCF3161),该哈希与当前时间戳(由时间戳权威确定)以及一些元数据一起放入一个结构中,然后签名并发送背部。然后,这提供了自该时间点以来 PDF 未被更改的证据。

因此,从技术上讲,应该可以创建这样的时间戳证明,而无需使用附加签名对文档本身进行签名。尽管 PDF 标准以某种方式支持它(并且就 Acrobat Reader 而言,然后能够以某种方式显示此时间戳)?

当然我可以手动完成,获取文件二进制表示的 SHA-256 哈希,将其发送到 TSA 服务并将接收到的令牌存储在外部文件中,但最好我想嵌入防篡改证明到 PDF 中,以便 Acrobat Reader 可以显示它。

这可能吗?如果是这样,怎么做?