问题标签 [digital-signature]

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 投票
4 回答
59287 浏览

xml - XML 签名:如何计算摘要值?

我有一个这样的 XML

参考文献中的摘要值(WqpRWHxXA0YgH+p3Sxy6hRo1XIk=)是如何创建的?我的意思是如何手动计算这个值?

0 投票
2 回答
4684 浏览

php - 如何对 PHP 动态创建的 PDF 进行数字签名?

我需要获取一个 PDF,向其中添加一些动态生成的许可证文本,然后对文档进行数字签名,然后再通过电子邮件将其发送给预期的收件人。在 PHP 中执行此操作的最佳方法是什么?

我对数字标牌的理解是将PDF的内容转换为哈希,并将文档的某些属性设置为该值。如果转换为散列时的内容与该属性中的散列不匹配,则文档已被更改。这个对吗?本页本页讨论的证书是什么?

我是否认为不可能使用 TCPDF 编辑现有 PDF,而只能创建一个新 PDF?SetaPDF StamperSetaPDF Signer是有效且好的选择吗?

非常感谢

0 投票
3 回答
2640 浏览

executable - 对我们的可执行文件进行数字签名有多重要?

我们制作了一个内容管理系统。它是一个基于数据库的系统,仅供企业和组织使用,永远不能从 Internet 下载。也就是说,它不是那种有人可能会偶然发现并想知道它是什么以及它是否可以安全运行的软件。在我们销售系统的 20 多年中,它的可执行文件从未经过数字签名。我们是时候开始签署它们了吗?

对于初学者,我可以想到一些优点和缺点:

  • Pro:如果使用 Verisign 证书,可以使用Windows 错误报告
  • 优点:当 Windows Vista 和 Windows 7 显示其中一个令人讨厌的UAC消息时,已签名的应用程序会更好地呈现
  • 缺点:证书要花钱。不是很多,但如果它们没用那就太多了
  • 缺点:签名有一些维护开销,我不知道有多少。
0 投票
2 回答
2526 浏览

python - 如何使用 DER 格式证书中的密钥使用 M2Crypto 对消息进行数字签名

我正在开发一个项目来实现传出消息的数字签名,并决定为此使用 M2Crypto。

我有一个证书(DER 格式),我从中提取密钥来签署消息。出于某种原因,当我调用“sign_update”方法时,我不断收到一个丑陋的分段错误错误。

鉴于我在这里读过的前面的例子,我显然遗漏了一些东西。

这是我正在处理的示例:

在此先感谢您的帮助,

巴勃罗

0 投票
3 回答
1499 浏览

git - 带有签名的 git 中的可信开发路径

我想为软件开发建立一条值得信赖的道路。这意味着代码的每一次更改都必须由作者和一名审阅者签名,然后才能被接受。这些更改的签名在发布时必须是可验证的,或者必须有一些其他方法来确保存储库不会被篡改,或者添加其他更改。

我期望为此使用的版本控制系统是 git,但也接受其他选项。可以通过 GnuPG 或 SSL 证书进行签名。

我想的工作流程大致是:

  1. 当前已验证的主干已分支
  2. 更改由一名或多名开发人员在分支中开发
  3. 一名或多名开发人员签署分支所做的更改
  4. 审阅者审查并测试更改
  5. Reviewer 对分支所做的更改进行签名
  6. 分支“合并”到当前已验证的主干中

合并不必是万无一失的,例如未经审查的更改需要不可合并到主干 - 只是在发布之前,需要有一种方法来检查主干中是否有任何未经审查(未签名)的更改。通常,不需要防止篡改,只需检测到即可。

我想要一份关于如何设置以及如何完成每个操作的简短指南。一旦我得到一些指示,我就可以自己弄清楚细节。

另外,我在技术上已经知道'git tag -s',但我不确定如何将它应用于这个特定问题。

0 投票
5 回答
383 浏览

c# - How can I know if a file has been changed in .NET C#?

I have an application that requires a secure way to store its configuration. There are users that can change the configuration. I need some sort of signature scheme where I can verify that the config file has not changed with out a valid user. I had thought about using RSA, where the private key is encrypted with the users password, and the public key is used to sign the config. However there is nothing to prevent someone from changing the user file and adding their own public key, thus circumventing my security. Any ideas?

0 投票
1 回答
934 浏览

visual-studio - 如何使用 Visual Studio 2008 对肥皂请求进行数字签名

我正在使用从 .wsdl 文件生成的 Web 参考。我还检查了 Amazon Web 服务示例,但无法使其正常工作。随附的是肥皂请求的示例。

0 投票
1 回答
132 浏览

java - 如何在 j2ee 应用程序中进行 pdf 数字签名

任何想法如何做到这一点?

0 投票
2 回答
1142 浏览

command-line - 为我的 firefox 扩展自动化 update.rdf 清单的签名

我正在开发一个 Firefox 扩展,我想为我的 beta 测试人员(不精通技术的人)提供自动更新。不幸的是,更新服务器不提供 HTTPS。根据关于签署更新的扩展开发指南,我必须签署我的 update.rdf 并在 install.rdf 中提供一个编码的公钥。

McCoy工具可以完成所有这些工作,但它是一个交互式 GUI 工具,我想使用 Ant 脚本自动执行扩展打包(因为这是一个更大的过程的一部分)。我找不到比下面更准确地描述签署 update.rdf 清单所发生的事情,而且 McCoy 的源代码是大量的 javascript。

医生说:

插件作者创建一个公共/私有 RSA 加密密钥对。密钥的公共部分经过 DER 编码,然后进行 base 64 编码,并作为 updateKey 条目添加到附加组件的 install.rdf 中。

(...)

粗略地说,更新信息被转换为字符串,然后使用 sha512 散列算法进行散列,并使用私钥对该散列进行签名。生成的数据经过 DER 编码,然后进行 base 64 编码,以作为签名条目包含在 update.rdf 中。

我不太了解 DER 编码,但它似乎需要一些参数。

所以会有人知道

  • 使用预定义的密钥对签署 update.rdf 和 install.rdf 的完整算法,或 McCoy 的可编写脚本替代方案
  • 像asn1coding这样的命令行工具是否足够
  • 一个好的/简单的关于 DER 编码的开发者教程
0 投票
2 回答
13092 浏览

java - 在 Java 中实现 RSA-SHA1 签名算法(创建用于 OAuth RSA-SHA1 签名的私钥)

如您所知,OAuth 可以支持 RSA-SHA1 签名。我有一个OAuthSignature具有以下方法的界面

我成功实现并测试了 HMAC-SHA1 签名(OAuth 支持)以及 PLAINTEXT“签名”。

我已经搜索了谷歌,如果我需要使用签名,我必须创建一个私钥SHA1withRSA:示例代码:

现在,我如何获取 OAuth 密钥(即 key = consumerSecret&tokenSecret)并创建一个PrivateKeySHA1withRSA签名一起使用的密钥?

谢谢


来自OAuth 核心

9.3. RSA-SHA1

RSA-SHA1 签名方法使用 [RFC3447] 中定义的 RSASSA-PKCS1-v1_5 签名算法(Jonsson, J. 和 B. Kaliski,“Public-Key Cryptography Standards (PKCS) #1: RSA Cryptography; Specifications Version 2.1, ” .) 第 8.2 节(更简单地称为 PKCS#1),使用 SHA-1 作为 EMSA-PKCS1-v1_5 的哈希函数。假设消费者已经以一种经过验证的方式向服务提供者提供了它的 RSA 公钥,这种方式超出了本规范的范围。

我现在使用这个(http://code.google.com/apis/gdata/docs/auth/oauth.html)作为做 RSA-SHA1 签名的参考。