4

我正在评估TurboPower LockBox数字签名库。我创建了一个1024位的RSA密钥,并试图用它来签署一个260字节的文本。在文本中更改一个或两个字符后,签名仍然有效。这可以吗?或者这可能是这个库的问题。 改变即使是一个字符也有至关重要的作用。我是否需要创建一个更大的密钥?Lockbox数字签名组件问题

UPDATE

为了测试我使用其附带的演示应用程序库。我生成了1024个RSA密钥对,然后尝试了数字签名功能。首先,我尝试了一个真正的260位文本文件,发现我可以更改其中的一些字符,并且签名仍然有效。然后我缩小一点到followinf字符串:

AAAAAAAAAAAAAAAAAAAAAAAAA 
AAAAAAAAAAAAAAAAAAAAAAAAA 
AAAAAAAAAAAAA 8 

而且它仍然工作时,我改变'8'字符。我大概可以缩小它的范围。

执行验证的代码是:

Signatory1: TSignatory; 
.... 

var 
    DocumentStream, SignatureStream: TStream; 
.... 

DocumentStream := TFileStream.Create(edtRSADocumentFile.Text, fmOpenread); 
try 
SignatureStream := TFileStream.Create(edtRSASignatureFile.Text, fmOpenread); 
try 
Res := Signatory1.Verify(DocumentStream, SignatureStream) 
finally 
    SignatureStream.Free 
end; 
finally 
    DocumentStream.Free; 
end; 
+2

您正在使用哪种版本的LockBox? “3.0”是一个单人重写,它看起来并没有使用很多原始代码,它的质量还有待评估。或者你使用2.07(TurboPower发布的最新版本)? – 2010-11-19 22:25:22

+0

我使用的是最新版本(2010年10月22日)3.1.0.0版。 – Max 2010-11-19 22:38:52

+0

@ldsandon。我现在已经尝试了旧的2003版本,它运行良好。所以看起来新的有一个错误。你能发布你的答案,以便我可以接受它吗? – Max 2010-11-20 13:47:21

回答

0

LockBox 3在数字签名组件的实现中存在一个bug。 LockBox 2.07可以正确签名和验证签名,但加载/保存密钥在Delphi 2010中不起作用。

+0

Bug现在已修复。顺便说一下,Lockbox有一个支持论坛,您可以在其中发布有关您发现的任何错误的信息。支持是主动的,你应该迅速解决任何问题。 – 2010-11-26 01:02:39

+0

谢谢。我已经改变了Lockbox 2.07,所以它适用于我,但我会尝试新的Lockbox 3版本。 – Max 2010-11-26 11:43:14

1

首先,我不会因为它已经使用了多年承担什么毛病库。您不应该能够更改输入并使用相同的签名来验证它并且工作。 Keysize不会参与其中。

为了得到真正的答案,我会扩大你的问题 - 什么版本的德尔福?你能显示一些代码吗?

+0

我正在使用Delphi 2010.该代码是随库一起提供的演示应用程序。 – Max 2010-11-19 19:27:17

+0

我更新了我的问题 – Max 2010-11-19 20:08:57

+0

“*首先,我不会因为它已经使用多年而认为该库有任何问题*” - OpenSSL也是如此。 – JensG 2016-03-22 11:48:25