问题标签 [digital-certificate]

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 投票
2 回答
2874 浏览

.net - 通过 .NET 对文件进行数字签名的标准化方法

我正在构建一个用于分发由不同组织创建的包(.zip 档案)的系统。我想要一种方法来验证一个包的发布者确实是他们声称的那个人,并且该文件没有被篡改。

为了验证发布者,需要一个类似于 Web 浏览器使用的系统 - 例如,我的应用程序联系根证书颁发机构,后者验证身份。换句话说,“绿条”:)

我猜包创建会像这样工作:

  1. 作者创建 zip 包
  2. 作者哈希包并签名哈希
  3. 它被重新包装,带有:
    • 包含签名哈希和公共证书的标头
    • 包含 zip 文件内容的正文

包装打开将像这样工作:

  1. 获取数据主体
  2. 使用相同的算法对其进行散列
  3. 使用证书中的公钥解密包的哈希
  4. 比较两个哈希 - 我们现在有完整性
  5. 联系根 CA 以验证身份

这样,我验证了身份,也验证了内容(内容本身不需要加密——目的是验证,不是隐私)。

所以我的问题是:

  1. 以上是处理它的正确方法吗?
  2. 人们通常使用什么哈希算法?我认为它应该是单向的。你会选择一个(MD5、SHA1、SHA2?)还是更正常的支持多种,让包作者告诉你他们使用的是哪一个(例如,文档的标题包含散列函数的名称)。
  3. 您如何使用根 CA?这是 X509Store 类的工作,还是涉及其他步骤?
  4. 这里涉及什么样的证书?用于签署 .NET 程序集的相同类型的证书?(代码签名证书?)

最后,如果一个组织没有付费证书,而是决定使用自行颁发的证书,我假设我仍然可以验证哈希(为了数据完整性),而无需将东西安装到计算机的证书存储中或任何类似的魔法(在这些情况下,我只会显示:“由 XYZ 公司发布(未验证)”。这是正确的吗?

我找到了很多关于如何使用 X509 和 RSACryptoServiceProvider 的链接,所以我大概可以弄清楚代码,我想我对这个过程更感兴趣,并且知道我正在使用正确的技术。

0 投票
2 回答
557 浏览

iis - IIS 上的客户端证书 - 不确定我是否明白 - 请体验一下?

寻找一些关于使用客户端证书来改进现有应用程序的访问控制的建议。

我们公司有一个现有的 Intranet 应用程序(经典的 ASP/IIS),我们将其授权给其他人。到目前为止,它托管在每个使用它的组织中,安全性包括“如果您能够访问 Intranet,您就能够访问应用程序”。

我现在正在寻找一种在外部托管此应用程序的方法,以便其他不想自己托管它的组织可以使用它(每个新客户端都有自己的安装)。

新组织中的所有用户都将拥有一个客户端证书,所以我想做的是在 IIS 中使用“需要客户端证书”的东西。它允许您说“如果 Organisation=BigClientX 则假装他们是本地用户”。

我更喜欢的是“如果 Organisation=BigClientX 则让他们访问 virtualdirectoryZ 中的资源,否则忽略它们”。

如果这是最好的方法,我会很乐意购买一个插件(也许是一个 ISAPI 过滤器?),它会为我做这件事。欢迎任何建议/战争故事

0 投票
2 回答
7195 浏览

c# - 如何以编程方式删除受信任的根证书颁发机构中的证书?

我需要能够从组织中的每台 PC 中删除特定证书。是的,我可以逐座进行,但我要到星期四才能完成,而且我没有人力来逐座进行。

是否有使用 C# 的编程方式来执行此操作?

0 投票
1 回答
608 浏览

authentication - SSL 和客户端证书

一个独立于我自己的内部团队表示,他们更喜欢基于客户端证书进行传入身份验证。这对我来说听起来不错,除了我以前没有搞砸过它们并且不太确定从哪里开始研究(维基百科直接进入了很多细节,我不确定是否与我需要找出的内容相关)。如果我有一个带有在 AD 用户帐户下运行的 Web 应用程序的 IIS6 服务器,我应该采取哪些步骤来最终通过 .NET 触发从该 Web 应用程序到远程服务器的请求(我猜是 HttpWebRequest)?我确实看到我们有一个内部受信任的证书颁发机构等等。远程服务器在 Linux 机器上运行 Apache。

我基本上处于学习模式,不一定要寻找需要发生的事情的详细清单(尽管如果我可以在学习如何做的同时了解它是如何工作的,那也很好:) .. .你有什么我可以开始研究的资源,以便弄清楚如何通过 SSL 与这个远程服务器安全地进行身份验证并通过客户端证书与它通信?可能从创建客户端证书开始,尽管我想更全面地了解它首先是如何工作的。

0 投票
3 回答
964 浏览

c# - 无效的数字证书

我正在尝试将 SSL 添加到我的服务器,以便将客户详细信息发送给客户端。

它似乎在服务器端工作,数字证书 (.pfx) 已成功加载。

当我尝试与客户端连接时,问题就来了。抛出 AuthenticationException 说明远程证书无效。该证书是自签名测试证书 - 这可能是问题吗?

如果没有,我没有想法!

编辑:证书位于双方 MMC 中受信任的根证书文件夹中(服务器和客户端出于开发目的在同一台机器上运行)。

0 投票
1 回答
1132 浏览

printing - 打印 X.509 数字签名

我正在使用数字证书签署交易结果,另外,我需要打印一张带有信息和数字签名的单据。

我想知道是否有专门为印刷媒体设计的 X.509 数字签名的更短表示?也许某种哈希或类似的东西......

非常感谢!

0 投票
1 回答
5235 浏览

active-directory - 查明用户的证书何时到期

有谁知道我如何才能找出用户证书何时到期?我知道我可以使用以下代码获取给定用户的所有证书:

但是,我该如何轮询给定证书的到期日期呢?我确实在这里看到了这个 java 代码:http ://forums.novell.com/novell-developer-forums/dev-ldap/364977-q-retrieving-users-public-key-over-ldap.html ,

但我不确定我是否可以getNotAfter在 VB 中使用该方法,或者我将如何去做。有没有人有任何想法?如果可能的话,我希望帮助在 VBScript/VB.Net/VBA 等中进行此查询。

我确实在这里找到了这个 VBScript 代码,它似乎正在做我想要完成的事情,但看起来相当复杂,而 java 代码看起来要简单得多。有没有一种更简单的方法可以在某种 VB 中进行此查询?

从克鲁托网站:

更新我确实看到我可以将证书导入到 CAPICOM对象中以返回ValidToDate属性,但是根据这里的帖子,显然它存储在 AD 中的格式是错误的格式:http://www.powershellcommunity。 org/Forums/tabid/54/aff/4/aft/1639/afv/topic/Default.aspx

有谁知道 CAPICOM 导入功能需要什么格式?

0 投票
1 回答
2051 浏览

c# - smime 带有附件的 C# 加密电子邮件

我需要使用 C# 发送加密电子邮件而不使用任何第三方组件。只要我不需要电子邮件附件,这几乎可以工作,但是一旦我添加附件,我就会面临与http://social.msdn.microsoft.com/forums/en-US/中描述的相同的问题netfxnetcom/thread/74e4711e-1f66-43a7-9e3b-bc9cfbcd1b73/

这里发布了一个使用attchment.rawdata 和attachment.filename 的解决方案,这是一些我一无所知的问题。什么可以是原始数据?

0 投票
1 回答
604 浏览

httpwebrequest - 需要http post + 数字证书

我想将一些 xml 发布到外部服务器并被告知:

“使用的传输协议是https(SSL)。这要求您的启动服务器具有有效的数字证书。”

我在哪里可以得到其中之一?我有一个 Thwate 个人电子邮件证书,但不确定是否可以?

谢谢,

0 投票
1 回答
336 浏览

wcf - 仅允许经过数字签名的应用程序访问 wcf 服务

我一直在网上搜索如何以及是否可以验证调用应用程序是否使用正确的证书进行数字签名。

这是供我公司内部使用的。我们希望对我们的应用程序进行数字签名,并且只让我们的数字签名应用程序访问我们的 wcf 服务。这是 iis 的配置还是 wcf 应用程序中的配置?如何?

谢谢马里奥斯