【问题标题】:Lockbox digital signature component problem密码箱数字签名组件问题
【发布时间】:2010-11-19 18:34:16
【问题描述】:

我正在评估 TurboPower LockBox 图书馆的数字签名。我创建了一个 1024 位 RSA 密钥并尝试用它签署一个 260 字节的文本。更改文本中的一两个字符后,签名仍然有效。那样可以么?或者也许这是这个库的问题。 即使改变一个角色也会产生至关重要的影响。我需要创建一个更大的密钥吗?

更新

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

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;

【问题讨论】:

  • 您使用的是哪个版本的 LockBox? “3.0”是一个人重写,看起来它并没有使用太多的原始代码,它的质量还有待评估。还是您使用的是 2.07(TurboPower 最新发布的版本)?
  • 我使用的是最新的(2010 年 10 月 22 日)版本 3.1.0.0。
  • @ldsandon。我现在尝试了旧的 2003 版本,它运行良好。所以好像新的有bug。你能把你的答案贴出来让我接受吗?
  • 感谢您提醒我注意这个错误。该错误已在 LB 3.1.1 中修复。签名和验证现在应该在 Lockbox 3.1.1 中正常工作。
  • LockBox3用什么来签名验证?带有 SHA-1 的 RSA-1024?

标签: delphi cryptography delphi-2010 digital-signature lockbox-3


【解决方案1】:

首先,我不会认为这个库有什么问题,因为它已经使用了多年。您不应该能够更改输入并使用相同的签名来验证它并且它可以工作。 Keysize 不会发挥作用。

要获得真正的答案,我会扩展您的问题 - 什么版本的 Delphi?你能显示一些代码吗?

【讨论】:

  • 我使用的是Delphi 2010。代码是库附带的演示应用程序。
  • "首先,我不会认为这个库有什么问题,因为它已经使用了多年" -- OpenSSL 也是如此。
【解决方案2】:

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

【讨论】:

  • 错误现已修复。顺便说一句,Lockbox 有一个支持论坛,您可以在其中发布您发现的任何错误。支持处于活跃状态,您的任何问题都应该很快得到解决。
  • 谢谢。我已经更改了 Lockbox 2.07,所以它适用于我,但我会尝试新的 Lockbox 3 版本。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-06-09
  • 2020-07-26
  • 1970-01-01
  • 1970-01-01
  • 2019-07-18
  • 2011-05-14
  • 1970-01-01
相关资源
最近更新 更多