2010-12-28 2 views
1

J'utilise crypto.signText() et CAPICOM pour signer du texte. Donc, maintenant je suis en texte signé Base64Encoded.Comment faire correspondre une clé publique est le même ou pas

puis j'utilise BouncyCastle pour vérifier la signature. jusqu'à ce que cela soit ok.

maintenant ce que je veux faire est,

lors de la connexion de l'utilisateur dans le système pour le 1er fois que je veux vérifier que la signature puis stocker publicKey dans la base de données. Et à partir de la prochaine connexion, je veux faire correspondre le publicKey strored dans la base de données contre cet utilisateur avec le texte signé nouvellement obtenu.

Si la clé publique dans le texte signé et celle qui est stockée dans DB est la même, seul l'utilisateur est autorisé à se connecter au système.

comment implémenter cela? (J'utilise JAVA lang)

Répondre

0

Les premières signatures sont créées à l'aide de la clé privée et non de la clé publique. Ensuite, la signature peut être vérifiée à l'aide de la clé publique. C'est ce que vous pouvez faire, utilisez la clé publique de la base de données et vérifiez la signature du "texte signé". En Java, vous n'avez plus besoin de Bouncycastle. Le runtime contient déjà tout ce dont vous avez besoin.

Exemple comment vérifier une signature: http://download.oracle.com/javase/tutorial/security/apisign/vstep4.html

Pour éviter rejeu attaque le « texte signé » doit contenir le temps et la date système ou un compteur monotone. Par conséquent, le texte doit également être vérifié pour que son contenu soit à jour.

Questions connexes