Unterschreiben Sie in C # eine XML-Datei mit einem x.509-Zertifikat und überprüfen Sie die Signatur
Ich versuche, die Zeichen einer XML-Datei mit einem x.509 Zertifikat, kann ich mit dem privaten Schlüssel signieren Sie das Dokument, und verwenden Sie dann die CheckSignature-Methode (es hat eine überladung, erhält ein Zertifikat als parameter) um die Signatur zu überprüfen.
Das problem ist, dass der Benutzer, überprüft die Signatur muss das Zertifikat haben, meine Sorge ist, wenn der Benutzer das Zertifikat, dann hat er Zugriff auf den privaten Schlüssel, und so wie ich das verstehe, das ist privat und soll nur für den Benutzer, der sich anmeldet.
Was bin ich?
Vielen Dank für Ihre Hilfe.
InformationsquelleAutor der Frage willvv | 2009-07-28
Du musst angemeldet sein, um einen Kommentar abzugeben.
In .NET, Wenn Sie Ihre X509-cert aus .pfx-Datei, wie hier:
Dann können Sie Sie exportieren den öffentlichen Schlüssel Teil etwa so:
Den "falschen" Teil sagt, nur export der öffentlichkeit Stück, nicht exportieren des privaten Stück. (doc RSA.ToXmlString)
Und dann in der überprüfung der Anwendung, verwenden Sie
Und die VerifyXml Anrufe
CheckSignature()
. Es sieht wie folgt aus:InformationsquelleAutor der Antwort Cheeso
Jedes Zertifikat besitzt einen öffentlichen und einen privaten Teil. Sie senden nur um den öffentlichen Teil. Öffnen Sie einen SSL-fähigen website in Ihrem browser, klicken Sie auf das Vorhängeschloss-symbol und einen Blick auf Ihr Zertifikat.
InformationsquelleAutor der Antwort chris166
Zunächst einmal alles, was Sie brauchen, um sicher zu sein, dass das Zertifikat .pfx oder .cer
dass Sie mit ist bestimmt für die Unterzeichnung der Zweck.
Komplette Konsole-Anwendung Digital signieren/überprüfen von XmlDocument, die in C# geschrieben ist hier.
InformationsquelleAutor der Antwort Raj kumar