Übersicht über die Verwaltung der Sicherheitsrichtlinien
Aktualisiert: November 2007
Das Sicherheitssystem von .NET Framework wird von einer konfigurierbaren Menge von Regeln gesteuert, die als Sicherheitsrichtlinien bezeichnet werden. Diese Richtlinien ermöglichen es dem Endbenutzer oder Administrator, die Einstellungen anzupassen, die die Ressourcen bestimmen, auf die Code Zugriff gewährt wird, und so letzten Endes entscheiden, welcher Code ausgeführt werden darf.
Angenommen, Sie sind Administrator in einer Organisation und vertrauen der Software einer bestimmten Firma nicht. Möglicherweise stellt diese Firma Software her, die der Unterhaltung dient, jedoch erhöhten Netzwerkverkehr oder Instabilität von Arbeitsstationen verursacht. Sie können Sicherheitsrichtlinien auf Organisationsebene festlegen, die den Zugriff von Software mit einem bestimmten kryptografischen starken Namen (einem eindeutigen Bezeichner eines Programms) auf die Computerressourcen einschränkt. Sie können auch Richtlinien festlegen, die die Ausführung von Software dieses Herstellers gänzlich verhindern.
Dieses Thema gibt eine Übersicht über die Verwaltung von Sicherheitsrichtlinien. Weitere Informationen finden Sie unter Verwaltung der Sicherheitsrichtlinien.
Beweise, Codegruppen und Berechtigungssätze
Code für die Common Language Runtime wird in Einheiten bereitgestellt, die als Assemblys bezeichnet werden. Beim Laden überprüft die Laufzeit jede Assembly auf Beweise, d. h., sie identifiziert Informationen über die Assembly wie etwa die digitale Signatur des Codeautors und den Ursprungsort des Codes. Entsprechend dem Beweis ordnet der Sicherheits-Manager der Common Language Runtime die Assembly gemäß den Sicherheitsrichtlinien einer Codegruppe zu. Codegruppen werden definiert, um besondere Beweisformen zu finden und ihnen Berechtigungssätze zuzuordnen. Assemblys, die zu einer Codegruppe gehören, erhalten die durch die zugeordneten Berechtigungssätze definierten Berechtigungen. Weitere Informationen über Beweise, Codegruppen und Berechtigungssätze finden Sie im Abschnitt Sicherheitsrichtlinienmodell.
Berechtigungen
Berechtigungen sind einfach Objekte, die das Recht auf den Zugriff auf eine geschützte Ressource darstellen. Berechtigungen sind konfigurierbar, und ein einzelnes Berechtigungsobjekt kann verschiedene Formen annehmen. FileIOPermission stellt z. B. das Recht dar, auf Dateien auf der lokalen Festplatte zuzugreifen und diese zu erstellen, zu lesen, zu schreiben oder zu ändern. Eine Berechtigung hat erst dann eine Bedeutung, wenn sie bestimmte Informationen über den von ihr dargestellten Zugriffstyp enthält. Sie können FileIOPermission konfigurieren, um das Recht darzustellen, eine bestimmte Datei zu lesen, eine bestimmte Datei zu lesen und in diese zu schreiben oder die Dateien eines gesamten Verzeichnisses zu lesen. Die von einer Berechtigung dargestellten und die Assemblys gewährten Rechte können vom Administrator vollständig konfiguriert werden. Zwar können Anwendungen Berechtigungsobjekte wie andere Objekte erstellen und konfigurieren, einer Anwendung kann eine Berechtigung aber nur über Sicherheitsrichtlinien erteilt werden. Letztlich steuern Administratoren die Berechtigungsvergabe. Eine Liste häufig verwendeter Berechtigungen finden Sie unter Codezugriffsberechtigungen.
Sicherheitsrichtlinienebenen
Durch das Sicherheitsmodell werden vier Ebenen von Sicherheitsrichtlinien definiert, die den verschiedenen Verwaltungs- und Hostingszenarien entsprechen. In der folgenden Tabelle werden die einzelnen Ebenen beschrieben. Die höchste Ebene ist die Ebene der Unternehmensrichtlinien, und die Ebene der Anwendungsrichtlinien ist die niedrigste.
Richtlinienebene |
Beschreibung |
---|---|
Unternehmensrichtlinien |
Definition durch Organisationsadministratoren, die Richtlinien für Domänen der Organisation festlegen. |
Computerrichtlinien |
Definition durch Computeradministratoren, die Richtlinien für einen Computer festlegen. |
Benutzerrichtlinien |
Definition durch Benutzer, die Richtlinien für ein einzelnes Anmeldekonto festlegen. |
Anwendungsdomänenrichtlinien |
Definition durch den Laufzeithost (jede Anwendung, die als Host für die Common Language Runtime fungiert) zum Festlegen der Ladezeitrichtlinien. Diese Ebene kann nicht verwaltet werden. |
Jede Richtlinienebene besteht aus einer Hierarchie von Codegruppen. Die Administratoren der einzelnen Richtlinienebenen können ihre eigenen Codegruppen sowie zugeordnete Berechtigungssätze erstellen. Zur Ladezeit überprüft das Sicherheitssystem für den Codezugriff sämtliche Richtlinienebenen. Die als Ergebnis gewährten Berechtigungen sind die Schnittmenge aller gewährten Berechtigungen auf jeder einzelnen Ebene. Administratoren einer niedrigeren Richtlinienebene können auf höheren Ebenen festgelegte Richtlinienentscheidungen nicht lockern, jedoch können Sie die Richtlinien nach Bedarf einschränken. Die Standardsicherheitsrichtinien sind auf der Ebene der Computerrichtlinien definiert.
Die Standardsicherheitseinstellungen lauten wie folgt:
Die Benutzer- und Organisationsebenen sind auf uneingeschränkten Zugriff festgelegt.
Die Computerebene enthält die spezifischen Richtlinieneinstellungen und -einschränkungen.
Die auf allen drei Ebenen definierten Einstellungen bilden die Standardeinstellungen.
Beachten Sie, dass Benutzer- und Computerebenen ohne Einschränkungen nicht zu uneingeschränkten Berechtigungen für Assemblys führen. Da auf Computerebene verschiedene Einschränkungen definiert werden und alle drei Ebenen als Ganzes betrachtet werden, ist die resultierende Berechtigung nicht uneingeschränkt. Weitere Informationen finden Sie unter Sicherheitsrichtlinienmodell.
Zuordnen von Codegruppen zu Berechtigungssätzen
Richtlinien werden verwaltet, indem auf den verwalteten Richtlinienebenen Codegruppen Berechtigungssätzen zugeordnet werden.
Codegruppen enthalten eine Mitgliedschaftsbedingung, die Zuordnung zu einem Berechtigungssatz sowie Codegruppenattribute. Die Beweise, die der Laufzeit von einer Assembly bereitgestellt werden, werden mit der für eine Codegruppe angegebenen Mitgliedschaft verglichen. Wenn eine Assembly Beweise bereitstellt, die die Mitgliedschafsbedingung erfüllen, wird ihr Zugang zur Codegruppe gewährt. Administratoren bestimmen und kategorisieren Assemblys in Codegruppen, indem sie Mitgliedschaftsbedingungen angeben und diesen Codegruppen Berechtigungssätze zuweisen. Optional kann mit Codegruppenattributen angegeben werden, dass bei der Zuweisung von Berechtigungen keine Richtlinienebenen unterhalb der aktuellen Ebene beachtet werden soll oder dass ausschließlich die aktuelle Codegruppe beachtet werden soll.
Die folgenden Typen integrierter Beweise können als Mitgliedschaftsbedingungen verwendet werden:
Das Installationsverzeichnis der Anwendung
Der kryptografische Hash der Assembly
Die digitale Signatur des Herausgebers der Assembly
Die Ursprungssite der Assembly
Der kryptografische starke Name der Assembly
Der Ursprungs-URL der Assembly
Die Ursprungszone der Assembly
Über beliebige Kombinationen von Mitgliedschaftsbedingungen können Sie die Berechtigungen für Assemblys einschränken oder erweitern. Da benutzerdefinierte Mitgliedschaftsbedingungen erstellt werden können, stellt die oben stehende Liste keine vollständige Auflistung aller Möglichkeiten dar. Weitere Informationen finden Sie unter Beweise.
Siehe auch
Weitere Ressourcen
Sicherheitsrichtlinien: Empfohlene Vorgehensweise