En C#, signer un document xml avec un x.509 certificat et vérifier la signature
Je suis en train de signer un fichier XML à l'aide d'un "x".509 certificat, je peux utiliser la clé privée pour signer le document, puis utiliser le CheckSignature méthode (il a une surcharge qui reçoit un certificat en tant que paramètre) pour vérifier la signature.
Le problème est que l'utilisateur ayant validé la signature doit avoir le certificat, ma préoccupation est que si l'utilisateur a le certificat, puis il a accès à la clé privée, et comme je le comprends, c'est privé et ne devraient être accessibles qu'à l'utilisateur qui se connecte.
Ce qui me manque?
Merci pour votre aide.
Vous devez vous connecter pour publier un commentaire.
Dans .NET, Si vous obtenez votre X509 cert à partir d'un .fichier pfx, comme ceci:
Vous pouvez ensuite exporter la partie de la clé publique de la sorte:
Le "faux" partie dit, seulement exporter les publics morceau de, ne pas exporter le privé morceau. (doc pour RSA.ToXmlString)
Puis dans la vérification de l'application, de l'utilisation
Et la VerifyXml appels
CheckSignature()
. Il ressemble à quelque chose comme ceci:Tout certificat a une publique et une partie privée. Vous n'envoyez autour de la partie publique. Il suffit d'ouvrir n'importe SSL site web dans votre navigateur, cliquez sur le cadenas et avoir un regard sur leur certificat.
D'abord tous vous avez besoin pour être sûr que le certificat .pfx ou .cer
que vous utilisez est prévu pour la signature de but.
Une console Complète de l'application pour signer numériquement/vérifier XmlDocument en C# est écrit ici.