J'évalue la bibliothèque TurboPower LockBox pour la signature numérique. J'ai créé une clé RSA de 1024 bits et j'ai essayé de signer 260 octets de texte avec. Après avoir changé un ou deux caractères dans le texte, la signature est toujours valide. Est-ce correct? Ou peut-être que c'est un problème avec cette bibliothèque. Changer même un caractère a un effet crucial. Ai-je besoin de créer une clé plus grande?Problème de composant de signature numérique de la boîte aux lettres
MISE À JOUR
Pour tester la bibliothèque je l'application de démonstration qui vient avec elle. J'ai généré une paire de clés RSA 1024 puis essayé les fonctions de signature numérique. J'ai d'abord essayé avec un vrai fichier texte de 260 bits et j'ai découvert que je pouvais changer certains caractères et que la signature était toujours valide. Ensuite, je plissant un peu à la chaîne followinf:
AAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAA 8
Et il fonctionne encore quand je change le caractère « 8 ». Je pourrais probablement le réduire encore plus.
Le code qui effectue la validation est:
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;
Quelle version de LockBox utilisez-vous? Le "3.0" est une réécriture d'un seul homme, il semble qu'il n'utilise pas beaucoup du code original et sa qualité doit encore être évaluée. Ou utilisez-vous 2.07 (Le dernier publié par TurboPower)? –
J'utilise la dernière version (22-Oct-2010) 3.1.0.0. – Max
@ldsandon. J'ai maintenant essayé l'ancienne version de 2003 et cela a bien fonctionné. Il semble donc qu'il y ait un bug dans le nouveau. Pourriez-vous poster votre réponse afin que je puisse l'accepter? – Max