Best practices für die Unterzeichnung .NET-assemblies?
Habe ich eine Lösung, bestehend aus fünf Projekten, von denen jede kompilieren, um separate Baugruppen. Jetzt bin ich code-Unterschreiben Sie, aber ich bin mir ziemlich sicher, ich mache es falsch. Was ist die best practice hier?
- Zeichen jedes mit einer anderen Taste; stellen Sie sicher, dass die Passwörter unterschiedlich sind
- Zeichen, jede mit einem unterschiedlichen Schlüssel; das gleiche Kennwort verwenden, wenn Sie möchten,
- Zeichen jeweils mit dem gleichen Schlüssel
- Etwas ganz anderes
Grundsätzlich bin ich nicht ganz sicher, was "Unterschreiben" mit Ihnen macht, oder, was die best practices sind hier, also ein allgemeiner Diskussion wäre gut. Alles, was ich wirklich weiß, ist, dass FxCop mich angebrüllt, und es war leicht zu beheben, indem Sie die "Zeichen dieser Versammlung" aktivieren und generieren .pfx-Datei, die mit Visual Studio (2008).
InformationsquelleAutor Domenic | 2008-08-29
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn Ihr einzige Ziel ist, zu stoppen FxCop von Sie anzuschreien, dann haben Sie gefunden, die beste Praxis.
Die besten Praxis für das signieren von Assemblys ist etwas, das ist völlig abhängig von Ihren Zielen und Bedürfnissen. Würden wir mehr Informationen benötigen, wie Sie Ihre beabsichtigte Bereitstellung:
In der Regel, die Sie signieren von code, um zu überprüfen, dass die Baugruppen kamen von einem bestimmten vertrauenswürdigen Quelle stammt und nicht modifiziert wurde. So dass jeder mit dem gleichen key in Ordnung ist. Nun, wie das Vertrauen und die Identität ermittelt, ist eine andere Geschichte.
UPDATE:, Wie diese Vorteile, die Ihre end-Benutzer, wenn Sie die Bereitstellung über das web, wenn Sie erhalten haben, eine software-signing-Zertifikat von einer Zertifizierungsstelle. Wenn Sie dann laden Sie Ihre Baugruppen Sie überprüfen können, Sie kamen aus Domenic ' s Software Emporium, und Sie wurde noch nicht geändert oder beschädigt, auf dem Weg. Sie wollen auch Zeichen der installer, wenn es heruntergeladen wird. Dies verhindert, dass die Warnung, dass einige Browser zeigen, dass es abgerufen wurde von einer unbekannten Quelle.
Hinweis, Sie bezahlen für eine software-Signatur-Zertifikat. Was Sie bekommen, ist die Zertifizierungsstelle werden die vertrauenswürdigen 3rd-party-wer überprüft Sie, wer Sie sagen, Sie sind. Dies funktioniert, weil ein web-of-trust, dass Spuren den Weg zurück zu einem root-Zertifikat installiert ist, in das Betriebssystem. Es gibt einige Zertifizierungsstellen, zum von zu wählen, aber Sie wollen, stellen Sie sicher, dass Sie unterstützt werden, durch die root-Zertifikate auf dem Ziel-Betriebssystem.
InformationsquelleAutor Jim McKeeth
Der offensichtlichste Unterschied zwischen signierten und nicht signierten Assemblys in eine ClickOnce-Anwendung. Wenn Sie nicht Unterschreiben, dann erhalten die Nutzer einen beängstigend "Unbekannten Herausgeber" warn-dialog das erste mal, dass Sie Ihre Anwendung ausführen. Wenn Sie sich angemeldet haben es mit einem Zertifikat von einer vertrauenswürdigen Zertifizierungsstelle, dann sehen Sie einen dialog, der weniger beängstigend. Soweit ich weiß, signieren mit einem Zertifikat, das Sie selbst erzeugt hat keinen Einfluss auf den "Unbekannten Herausgeber" Warnung. Instant SSL von Comodo hat Beispiele für die Dialoge.
Gibt es einige subtilere Unterschiede. Sie haben zum signieren einer assembly, bevor es installiert werden kann, die im global assembly cache (GAC), wo es sein kann, von mehreren Anwendungen gemeinsam genutzt. Die Unterzeichnung ist ein wesentlicher Bestandteil von code access security (CAS), aber ich habe niemanden gefunden, der könnte get CAS arbeiten. Ich bin mir ziemlich sicher, dass der GAC-und CAS-funktioniert mit Zertifikaten, die Sie selbst erzeugt.
InformationsquelleAutor Don Kirkby
Hilft es, weil die EXE erwartet wird eine assembly mit starkem Namen. Hört es jemand in böser Absicht, das in einer anderen Baugruppe für einen von Euch. Auch der Benutzer kann die Erteilung einer Baugruppe CAS-Berechtigungen basiert auf der starken Namen.
Ich glaube nicht, sollten Sie sich verteilen .pfx-Datei, die Sie halten, die sicher für den Austritt der Montage.
InformationsquelleAutor Martin Clarke
Ist es wichtig, halten Sie Ihre PFX-Datei Geheimnis, wie es den privaten Schlüssel enthält.
Wenn dieser Schlüssel ist für andere verfügbar gemacht dann kann jeder Unterschreiben, Baugruppen oder Programme, die maskerade als Sie.
Zuordnen, Ihre Namen mit Ihren Baugruppen (in den Augen von Windows) benötigen Sie ein digitales Zertifikat (der Teil der PFX-Datei, die Ihren Namen), signiert von einer vertrauenswürdigen Stelle.
Tatsächlich wirst du ein neues Zertifikat, aber mit den gleichen Informationen.
Werden Sie zu zahlen haben für dieses Zertifikat (wahrscheinlich jährlich), aber die certificate authority effektiv bürgen für Ihre Existenz (nachdem Sie gefaxt Ihnen Kopien von Ihren Reisepass oder Fahrer, Genehmigung und einem inländischen bill).
InformationsquelleAutor koregan
Unterzeichnung wird verwendet, um eindeutig eine Montage. Weitere details sind in Gewusst wie: Signieren einer Assembly (Visual Studio).
Im Sinne von best practice, es ist gut, den gleichen Schlüssel verwenden, solange die Versammlungen haben verschiedene Namen.
InformationsquelleAutor Martin Clarke