X.509 数字签名/加密工作流程/库建议?

2023-11-30

我的具体用例是,我必须访问存储在客户端上的数字证书,并使用它们在客户端和服务器端执行签名、验证、加密和解密的任务。对于后一部分,解决方案有很多很多。症结在于访问客户端上存储的证书的能力。

请注意,我说的是“存储在客户端上的证书”,这是故意含糊其辞的。我不想将想法限制在系统存储、用户存储、浏览器存储、加密令牌、Java 密钥存储等任何地方。

多年来,我采用了以下方法。除了它们之外,我还给出了它们的优点和缺点。

  1. CAPICOM/ActiveX。虽然这是最容易使用的,但它限制用户只能使用 Windows 上的 IE。更糟糕的是,它现在已被弃用,并且只能在 32 位上运行。
  2. Java 小程序。这是跨平台和跨浏览器的,但是浏览器中的 java 并不像人们希望的那样常见,而且正在迅速消失(显然 Apple 最近删除了它)。因此,让用户下载并安装 JRE 会带来额外的麻烦。此外,用户必须执行相对技术性的任务,为签名者设置无限强度的加密扩展才能工作。

我听说过/想到过但还没有取得多大进展的事情

  1. 大多数 JavaScript 解决方案。他们实现了 RSA 算法,但没有办法访问客户端证书存储上的数字证书。他们中的大多数都会生成一个新的密钥对。
  2. 闪光/柔性。 Flash/flex 似乎是最普遍的客户端技术。他们已经可以访问摄像头和麦克风等客户端硬件。如果他们能够访问证书存储,那就太好了。
  3. 微软网站上给出的 CAPICOM 替代方案。它规定了 CAPICOM 的替代方案,这些方案主要使用 .NET 框架来做事情。这对于桌面客户端来说非常有用。但是对于“脚本”,他们在“重要说明”中非常明确地说,您必须编写自己的 ActiveX 控件。这让我们回到了第一个方面。

我正在寻找一种方法来克服/解决访问客户端上的证书存储的主要问题。我并不是在寻找有关 RSA 算法的讨论,或者为什么 PKI 很愚蠢,也不是非对称加密的替代方案,也不是使用 Web 应用程序或 Apple 以外的架构。


我最好的选择仍然是小程序,因为这可能是跨平台性最强的东西。 或者,我可以开发自己的 activeX 并限制我的范围。

请记住,客户端证书访问是一个重要的安全问题。

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

X.509 数字签名/加密工作流程/库建议? 的相关文章

随机推荐

  • 如何响应 UNUserNotification 上的点击?

    我正在使用新的UNUserNotificationiOS 10 中的框架 我可以看到如何添加操作按钮 但是当用户点击通知本身时我如何响应 就我而言 它将是带有一些文本的图像 默认行为是应用程序打开 我可以使用自定义代码来检测我的应用程序是否
  • 如何在pyodbc中使用executemany运行多个SELECT查询

    我使用 PYODBC 根据 pandas 数据帧列的值多次查询 SQL DB 如下所示为值列表 因为我使用 ToList 函数将该列转换为列表 the connection string cnxn pyodbc connect driver
  • 扫描随机数量的浮点数,直到 C 中出现新行

    我正在尝试从包含以下文本的文件中读取 502 601 596 465 464597 599 600 598602 591 596 601588 565 548 260 62 61 595583 595 61 558 561237 241 4
  • 分析 C# 中的方法以了解其运行时间

    我需要获取计时报告以了解在类中运行 C 方法需要多长时间 我考虑使用profiler要做到这一点 输入是类中方法的名称 输出是 什么方法 类调用这个方法 运行该方法的时间量 有哪些工具 商业产品可用于 Visual Studio 2010
  • 在 TypoScript 中获取 FlexForm 配置

    我需要从 pi flexform 获取 typescript 中的 page headerData 如何实现我的要求 page PAGE page headerData 10 TEXT 10 value 我不太确定你真正需要什么 我是gue
  • SlidingDrawer 动画速度

    我是 Android 编程和堆栈溢出的新手 我需要减慢应用程序中 SlidingDrawer 的动画速度 我已经像这样子类化了 SlidingDrawer import android content Context import andr
  • 最大化两个数组元素的乘积之和的算法

    竞赛中有一个问题需要计算仅包含数学和生物科目的班级的表现 所以 没有 数学学生 n 没有 的生物学生 每个学生都有一个单独的分数 数学学生和生物学生的分数分别存储在数组 mathScore 和 bioScore 中 全班成绩计算如下 mat
  • 从存储过程填充 DataGridView

    我使用 SQL Server 2008 创建了一个名为 MyStoreProc 的存储过程 它在管理工具中运行良好 在 VB Net 2008 中 我创建了一个新的数据集和一个新的 TableAdaptor 在此表适配器中 我创建了一个名为
  • 如何从树状数组创建 ul - li 菜单?

    我有一个数组title and children index title始终不为空 children是一个数组 空或非空 Any children have title and children等等 myArray 0 gt title g
  • JTable右键复制/粘贴菜单一键复制单元格数据

    我创建了我的JPopupMenu 它出现在我的JTable当我右键单击一个单元格时 但是 我无法复制单元格中的数据 除非我首先双击然后突出显示数据 然后右键单击当前单元格以外的任何位置以显示弹出菜单和复制选项 我想复制单元格中的数据 而不必
  • Perl - 子例程“Hash::Merge::merge”的深度递归

    下列的this问题 我在那里使用了答案 也发布在这里 现在我失败了 我知道失败可能来自于 return bless self gt merge left right class left 但我不明白可能是什么问题 My code usr b
  • 使用 Windows 服务和 SQL Server 在 OneWay WCF 消息中排队

    我需要为 WCF 服务请求实现一个排队机制 该服务将由客户端以单向方式调用 这些请求消息应存储在 SQL Server 数据库中 并且 Windows 服务对消息进行排队 处理请求的时间是可配置的 如果处理消息时发生错误 则需要重试最多10
  • MySQL 5.7 错误(1093:您无法在 FROM 子句中指定目标表 ___ 进行更新) - 通常的解决方案不起作用

    我有一个表 员工 我试图将一些属性 例如薪水 设置为与表中其他值相同的值 我对这个错误的理解是 可以通过以下解决方法来避免它 使用临时表 UPDATE employees SET salary SELECT salary FROM SELE
  • 当使用非虚拟析构函数“删除”基类时,Clang 和 GCC 会做什么?

    已经有一个问题询问 现实世界 的行为delete指向缺少虚拟析构函数的基类的指针 但问题仅限于非常有限的情况 派生类没有具有非平凡析构函数的成员 并且接受的答案只是说没有办法知道不检查每个编译器的行为 但这实际上并不是很有帮助 知道每个编译
  • authorize.net json返回额外字符

    我有这个代码 ch curl init curl setopt ch CURLOPT URL url curl setopt ch CURLOPT RETURNTRANSFER 1 curl setopt ch CURLOPT HTTPHE
  • Laravel 5 如何在保存时验证每个活动下的唯一客户名称

    我有三个模型 活动模型 客户模型和客户项目模型 如何在商店功能中进行验证检查 使每个活动中的客户名称应该是唯一的 以下是每个迁移文件 活动模型 public function up Schema create activities func
  • Angular Material 6 中用于自动完成的无限滚动

    我正在尝试在 Angular Material 6 中实现自动完成的无限滚动 我的场景很简单 我有一个启用了自动完成功能的输入字段 当用户键入时 我将使用输入字段中的文本进行 HTTP 调用 以将结果显示为建议 但我只想显示 25 条建议
  • 禁用优化后,演示代码未能显示出 4 倍快的 SIMD 速度

    我试图了解使用 SIMD 矢量化的好处 并编写了一个简单的演示代码 以了解利用矢量化 SIMD 的算法相对于其他算法的速度增益 这是2种算法 Alg A 无矢量支持 include
  • 让 Java 通过 HTTPS 接受所有证书

    我正在尝试让 Java 接受所有通过 HTTPS 的证书 这是出于测试目的 在我收到证书未找到错误之前 但是 在我的代码之前添加以下代码后 我得到了HTTPS hostname wrong should be
  • X.509 数字签名/加密工作流程/库建议?

    我的具体用例是 我必须访问存储在客户端上的数字证书 并使用它们在客户端和服务器端执行签名 验证 加密和解密的任务 对于后一部分 解决方案有很多很多 症结在于访问客户端上存储的证书的能力 请注意 我说的是 存储在客户端上的证书 这是故意含糊其