7

抱歉,我找不到这个问题的最佳标题。以下是我的要求。

我正在从事一个项目,该项目将大量资金交易到不同的账户。系统会自动将资金转入 A、B、C 等账户,但在此之前,A、B 或 C 中的某个人应批准(电子方式)要转帐的金额。

你认为最好的方法是什么?我希望系统发送一个经过数字签名(?)的文件(某些东西的 PDF),来自 A、B 和 C 的授权人员应检查并确认金额是否正确。

由于金额很高,我必须确保系统发出的文件没有被篡改,同时我还要确保A,B或C发送的文件(回复)也没有被篡改。实现它的最佳方法是什么?有任何想法吗?

4

4 回答 4

11

数字签名是您正在寻找的。Adobe PDF(因为您提到了 pdf)允许您在免费的 Adob​​e Reader 版本中签署 pdf,并且一旦您打开 pdf 文档,验证也会自动完成。

Noldorin 发布的 DigSig 和 (H)MAC 之间的区别在于,MAC 使用对称加密,您需要安全通道来交换密钥,而在PKI环境中则不需要安全通道。

这取决于您希望如何分配密钥。

于 2009-01-25T17:15:39.500 回答
2

您需要查看MAC(消息身份验证代码)。有许多用于实现通用算法(例如HMAC )的各种语言的库。

编辑:另请参阅 DSA(http://en.wikipedia.org/wiki/Digital_Signature_Algorithm),它是一种流行的数字签名算法,在标准 .NET 框架(System.Cryptography 命名空间)中完全实现。

于 2009-01-25T17:07:01.967 回答
1

我的第一反应是数字签名——但它们有一个致命的缺陷:它们是可能被粗心的用户破坏的数字数据。

如果这是一个问题,您可以使用南非银行使用的过程,即一次性密码。此密码通过不涉及交易的方式传输给他们(在南非,这是通过短信,我强烈推荐)。我们首先输入用户名和密码,然后通过 SMS 获取 OTP,然后我们需要为任何导致资金离开我们账户的交易输入该 OTP。

强大的安全形式(提高有效性)包括(我不是专家,但我知道一些):

  • 知识(密码)
  • 拥有(可以接收短信的手机 SIM 卡,或带有证书的 U 盘)
  • 位置(具有基于硬件的证书管理系统 CellID 的计算机)
  • 时间(OTP 到期,交易必须在特定时间发生)
  • 身份(指纹读取器 - 实际上是密码 - 但非常长)
  • 唯一性(在光子偏振中编码的光纤电缆)

据我所知,如果您拥有其中任何三个,您可以对自己的安全性感到满意。添加更多会以指数方式提高安全性,但也会增加不便因素。银行在南非使用 Knowledge、Possession 和 Time,而网络钓鱼对南非银行确实不起作用。

希望这对您有所帮助。

于 2009-01-26T14:58:14.753 回答
0

要对文件进行数字签名,您可以使用 Microsoft 的任何合作伙伴。例如,Arx 为您提供了一个名为 CoSign 的工具,您可以免费使用它(或者至少是他们的试用版)。这将允许您将电子签名添加到大多数可用格式(word、pdf、xml 等)。

于 2011-01-27T08:36:23.583 回答