抱歉,我找不到这个问题的最佳标题。以下是我的要求。
我正在研究一个项目,该项目处理不同账户的大量资金交易。系统自动将资金转账到A,B,C等账户,但在此之前,A,B或C中的某个人应该(电子地)批准转账金额。
您认为最好的方法是什么?我希望系统发送一个数字签名的文件(某物的PDF)(?),A,B和C的授权人员应检查并确认数量是否正确。
由于金额很高,我必须确保系统发出的文件没有被篡改,同时我也想确保A,B或C发送的文件(回复)也没有被篡改。实现它的最佳方法是什么?有什么想法吗?
答案 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,然后我们需要输入任何导致资金离开我们账户的交易。
强有力的安全形式(提高效率)包括(我不是专家,但我确实知道一些):
据我所知,如果你有三个,你可以对你的安全感到满意。添加更多会以指数方式增加安全性,但也会增加不便因素。银行在南非使用知识,占有和时间 - 网络钓鱼确实对南非银行不起作用。
希望这能帮到你一点点。
答案 3 :(得分:0)
要对文件进行数字签名,您可以使用Microsoft的任何合作伙伴。例如,Arx为您提供了一个名为CoSign的工具,您可以免费使用它(或者至少是他们的试用版)。这样您就可以将electronic signatures添加到大多数可用格式(word,pdf,xml等')。