2012-04-11 5 views

Antwort

0

Zunächst müssen Sie beim Erstellen einer freigegebenen Assembly mit kryptografischen Schlüsseln arbeiten. Beim Erstellen der Assembly wird nur der öffentliche Schlüssel benötigt. Compiler, die auf .NET Framework abzielen, bieten Befehlszeilenoptionen (oder verwenden benutzerdefinierte Attribute) zum Bereitstellen des öffentlichen Schlüssels beim Erstellen der Assembly. Es ist üblich, eine Kopie eines allgemeinen öffentlichen Schlüssels in einer Quelldatenbank zu speichern und Build-Skripte auf diesen Schlüssel zu verweisen. Bevor die Baugruppe versandt wird, muss die Baugruppe vollständig mit dem entsprechenden privaten Schlüssel signiert sein. Dies geschieht mithilfe eines SDK-Tools namens SN.exe (Strong Name).

Starke Signierung beinhaltet keine Zertifikate wie Authenticode. Es sind keine Drittorganisationen beteiligt, keine Gebühren zu zahlen und keine Zertifikatsketten. Darüber hinaus ist der Aufwand für die Überprüfung eines starken Namens viel geringer als für Authenticode. Starke Namen geben jedoch keine Aussagen über das Vertrauen eines bestimmten Herausgebers. Mit starken Namen können Sie sicherstellen, dass der Inhalt einer bestimmten Assembly nicht manipuliert wurde und dass die in Ihrem Auftrag zur Laufzeit geladene Assembly vom selben Publisher stammt, für den Sie auch entwickelt haben. Aber es macht keine Aussage darüber, ob Sie der Identität dieses Herausgebers vertrauen können.

Hoffe, das hilft.

1

Sie benötigen eine Assembly signieren, wenn Sie es an die Global Assembly Cache einsetzen möchten:

im globalen Assemblycache bereitgestellt Baugruppen muss einen starken Namen haben.

In anderen Bereitstellungsszenarien sind starke Namen (die Signierung impliziert) nicht erforderlich, aber erwünscht.

0

Eigentlich nein. .NET zwingt Sie nicht, Assemblys zu signieren. Außerdem werden alle Assemblierungen in .NET gemeinsam verwendet. Sie können statische Bibliotheken nicht so erstellen, wie Sie es mit C++ oder einer anderen Sprache können.

Die einzige Situation, in der Sie eine Baugruppe signieren müssen, ist, wenn Sie sie in Globall Assembly Cache bereitstellen müssen.

0

Nein, es ist nicht erforderlich.
Signieren kann verwendet werden, um entweder das Vertrauen zu erhöhen, wenn mit z. ein gültiges Zertifikat oder verhindert, dass die Baugruppe geändert wird, wenn Sie die Baugruppe mit starkem Namen signieren.
Nur Baugruppen im GAC müssen signiert werden.

Verwandte Themen