Frage

Ok, ich muss stumm Ursache sein ich das schon gelesen haben: http://www.csharp411.com/ net-Montage-FAQ-Teil-3-starke-Name-und-Signierung /

Und ich es immer noch nicht bekommen ...

Lassen Sie uns sagen, dass ich mein Projekt Eigenschaften öffnen und auf die „Signing“ -Reiter gehen, dann „Zeichen der Baugruppe“ Ich prüfe und erzeugen eine neue Baugruppe mit einem Passwort. Ein starker Name Schlüsseldatei mit der PFX-Erweiterung, sowohl die öffentlichen und privaten Schlüssel wurde, erstellt und VS wird meine Montage bei der Zusammenstellung digital signieren, nicht wahr?

Was ist mit dem privaten Schlüssel? Sollte nicht privat und mir, der Entwickler, sei der einzige, es zu haben? Sollte nicht die Montage nur mit dem öffentlichen Schlüssel signiert werden?

Kann mir jemand erklären, das für mich? Grundsätzlich möchte ich mein Projekt der Versammlung unterzeichnen und mir erlauben Benutzern zu überprüfen, ob die Versammlung wirklich von mir entwickelt wurde, wo ich der einzige bin, den privaten Schlüssel zu halten (was ich denke, ich soll).

War es hilfreich?

Lösung

Sie sind im Grunde richtig.

Sie erstellen ein Schlüsselpaar und es zum Signieren verwenden. Aber versenden nicht die pfx (oder snk-Datei), ist es sowohl öffentliche als auch private Schlüssel enthält und sollten sicher aufbewahrt werden.

Der öffentliche Schlüssel wird an die Anordnung als Teil der Signierung hinzugefügt.

Diese Signatur wird geprüft, wenn eine Baugruppe in eine Anwendung geladen wird. Endbenutzer kann auch die Public-Key-Token im GAC überprüfen, aber das ist nicht wirklich ein geeignetes Verfahren. Und Sie haben sie Ihren öffentlichen Schlüssel-Token in gewisser Weise zu erzählen.

Und das Ganze ist nur so zuverlässig wie Ihre Fähigkeit, die Schlüsseldatei privat zu halten.

Beachten Sie auch, dass Sie im Idealfall nur 1 Schlüssel pro Unternehmen haben sollen. Wenn Sie teilen es mit (vielen) Mitarbeiter kümmern, untersuchen verzögerungs Unterzeichnung.

Andere Tipps

Digitale Unterzeichnung eines Hash Ihrer binären beinhaltet die Berechnung und dann den erzeugten Hash-Verschlüsselung des privaten Schlüssels aus dem Schlüsselpaar, die Sie erzeugt. Zusätzlich dazu, den öffentlichen Schlüssel als auch auf die Anordnung hinzufügen VS wird. Nun, wenn diese auf der Clientseite ausgeführt wird, wird die Laufzeit den öffentlichen Schlüssel in der Anordnung verwenden, um die Signatur (hash) zu entschlüsseln, und werden diese dann an dem Client mit dem berechneten Hash-Wert der binären entsprechen. Wenn sie übereinstimmen, bedeutet dies, das binäre nicht manipuliert wurde.

Montage Unterzeichnung basiert auf Public-Key-cryptogrpahy (PKI). Das allgemeine Konzept auf dem Punkt ist, dass, wenn Sie etwas mit kryptografisch PKI unterschreiben, wird der private Schlüssel verwendet, um die Unterzeichnung zu tun, aber der öffentliche Schlüssel verwendet wird, um die Signatur zu verifizieren. Ein privater Schlüssel kann nicht verwendet werden, um die Signatur zu verifizieren, ist es nur schaffen. Ein öffentlicher Schlüssel kann nicht verwendet werden, um eine Signatur zu erstellen, überprüfen Sie ihn nur.

Da es sehr wichtig ist, dass Sie Ihr privater Schlüssel sicher und privat. Wenn Sie das höchste Maß an Sicherheit erhalten und den höchsten Grad an Authentizität Ihrer Kunden anbieten, wäre es wahrscheinlich am besten, verzögerungs Unterzeichnung zu verwenden, und hat eine einzelne Person oder Abteilung für die Verwaltung Ihrer vollen öffentlichen / privaten Schlüsselpaaren verantwortlich . Entwickler sollten keinen Zugriff auf den privaten Schlüssel und kann die Verzögerung-Zeichen-Option noch Assemblys mit starkem Namen zu entwickeln, ohne die Sicherheit und Authentizität zu beeinträchtigen.

Signing = Verschlüsseln der SHA1-Hash der Versammlung des privaten Schlüssels
mit Verification = Vergleicht man die PublicKey-entschlüsselten Signatur mit dem berechneten Hash der Versammlung

So kann jeder mit PublicKey kann die Montage überprüfen, sondern nur der Autor mit PrivateKey kann eine Baugruppe unterschreiben.

PublicKey token = letzte 64 Bits von SHA1 Hash PublicKey in Little-Endian Byte-Reihenfolge.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top