delphi - Problema del componente de firma digital Lockbox
cryptography delphi-2010 (2)
Estoy evaluando la biblioteca TurboPower LockBox para la firma digital. Creé una clave RSA de 1024 bits e intenté firmar con ella 260 bytes de texto. Después de cambiar uno o dos caracteres en el texto, la firma aún es válida. ¿Eso esta bien? O tal vez es un problema con esta biblioteca. Cambiar incluso un personaje tiene un efecto crucial. ¿Necesito crear una clave más grande?
ACTUALIZAR
Para probar la biblioteca, utilicé la aplicación de demostración que viene con él. He generado un par de claves RSA 1024 y luego intenté las funciones de firma digital. Primero probé con un archivo de texto real de 260 bit y descubrí que puedo cambiar algunos caracteres y la firma todavía era válida. Luego lo reduje un poco a la siguiente cadena:
AAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAA 8
Y todavía funciona cuando estoy cambiando el carácter ''8''. Probablemente podría reducirlo aún más.
El código que realiza la validación es:
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;
Primero, no asumiría nada malo con la biblioteca, ya que se ha utilizado durante años. No debería poder cambiar las entradas y usar la misma firma para validarlo y funcionar. Keysize no jugaría un papel.
Para obtener respuestas reales, ampliaría su pregunta: ¿qué versión de Delphi? ¿Puedes mostrar un código?
LockBox 3 tiene un error en la implementación del componente de firma digital. LockBox 2.07 puede firmar y verificar firmas correctamente, pero cargar / guardar claves no funciona en Delphi 2010.