Share via


Übersicht über die Verwaltung der Sicherheitsrichtlinien

Wichtiger HinweisWichtig

In .NET Framework, Version 4 ist es nicht mehr die Aufgabe der CLR (Common Language Runtime), Sicherheitsrichtlinien für Computer bereitzustellen.Microsoft empfiehlt die Verwendung von Windows-Richtlinien für die Softwareeinschränkung anstelle der CLR-Sicherheitsrichtlinie.Die Informationen in diesem Thema gelten für .NET Framework, Version 3.5 oder früher, nicht für Version 4 oder höher.Weitere Informationen über diese und andere Änderungen finden Sie unter Änderungen der Sicherheit in .NET Framework 4.

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

  • Die 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

Konzepte

Codezugriffssicherheit

Weitere Ressourcen

Sicherheitsrichtlinien: Empfohlene Vorgehensweise

Konfigurieren der Sicherheitsrichtlinien

Verwaltung der Sicherheitsrichtlinien