用什么?电子签名?

时间:2009-01-25 17:01:40

标签: cryptography authorization digital-signature identification

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

我正在研究一个项目,该项目处理不同账户的大量资金交易。系统自动将资金转账到A,B,C等账户,但在此之前,A,B或C中的某个人应该(电子地)批准转账金额。

您认为最好的方法是什么?我希望系统发送一个数字签名的文件(某物的PDF)(?),A,B和C的授权人员应检查并确认数量是否正确。

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

4 个答案:

答案 0 :(得分:11)

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

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

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

答案 1 :(得分:2)

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

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

答案 2 :(得分:1)

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

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

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

  • 知识(密码)
  • 占有(可以接收短信的手机SIM卡,或带证书的USB拇指驱动器)
  • 位置(具有基于硬件的证书管理系统的计算机,CellID)
  • 时间(OTP到期,交易必须在特定时间发生)
  • 身份(指纹识别器 - 实际上是密码 - 但又长得太长)
  • 唯一性(以光子极化编码的光纤电缆)

据我所知,如果你有三个,你可以对你的安全感到满意。添加更多会以指数方式增加安全性,但也会增加不便因素。银行在南非使用知识,占有和时间 - 网络钓鱼确实对南非银行不起作用。

希望这能帮到你一点点。

答案 3 :(得分:0)

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