Erstellen sicherer ASP.NET-Anwendungen

Veröffentlicht: 12. Mrz 2003 | Aktualisiert: 23. Jun 2004

Von J.D. Meier, Alex Mackman, Michael Dunner, und Srinath Vasireddy

Das Handbuch "Erstellen sicherer ASP.NET-Anwendungen" gibt Ihnen einen umfassenden Überblick über das Entwickeln sicherer ASP.NET-Anwendungen. Die Autoren erläutern Schritt für Schritt alle relevanten Vorgehensweisen.

Dieses Handbuch ist eine Übersetzung aus dem Englischen. Alle Kapitel sind als PDF online lesbar oder ladbar. Zu jedem Kapitel finden Sie unten eine Zusammenfassung und den Link zum PDF. Viel Spaß beim Schmökern wünscht Ihnen Ihre MSDN Online Redaktion.

Erstellen sicherer ASP.NET-Anwendungen

In diesem Handbuch finden Sie einen praktischen, szenariogesteuerten Ansatz zum Entwerfen und Erstellen sicherer ASP.NET-Anwendungen für Windows 2000 und die Version 1.0 des .NET Frameworks. Es konzentriert sich dabei auf die Hauptelemente der Authentifizierung, Autorisierung und der sicheren Kommunikation auf und über Ebenen verteilter .NET-Webanwendungen.

Auf dieser Seite

 Sicherheit
 How To: So gehen Sie vor
 Anhang

Sicherheit

Auf einen Blick
Informieren Sie sich auf einen Blick über die Themen, die die einzelnen Kapitel dieses Handbuchs behandeln.

Kapitel 1 - Einführung
Worum geht es in dem Handbuch? Das Kapitel 1 gibt Ihnen grundlegende Informationen darüber. Sie werden die Struktur, Anwendungsbereiche sowie die Ziele kennen lernen. Darüber hinaus stellt es die grundlegenden Terminologieaspekte vor und stellt mehrere wichtige Richtlinien dar, die für die in den späteren Kapiteln beschriebenen Informationen gelten.

Kapitel 2 - Sicherheitsmodell für ASP.NET-Anwendungen
Die verschiedenen Authentifizierungs- und Autorisierungsoptionen, die von den verschiedenen .NET-relevanten Technologien bereitgestellt werden, stellt das Kapitel 2 vor. Darüber hinaus erhalten Sie Informationen über Kernimplementierungstechnologien, mit denen sichere .NET-Webanwendungen erstellt werden.

Kapitel 3 - Authentifizierung und Autorisierung
Der Entwurf von Authentifizierungs- und Autorisierungsverfahren für verteilte Anwendungen stellt eine anspruchsvolle Aufgabe dar. Das Kapitel enthält hilfreiche Informationen für die Entwicklung einer geeigneten Autorisierungsstrategie für das jeweilige Anwendungsszenario.

Kapitel 4 - Sichere Kommunikation
Mit Hilfe einer Kombination aus SSL, IPSec und RPC-Verschlüsselung bauen Sie eine durchgehend sichere Lösung für verteilte Anwendungen auf.

Kapitel 5 - Intranetsicherheit
Dieses Kapitel informiert Sie darüber, wie häufige Intranetanwendungsszenarien gesichert werden. Darüber hinaus enthält es eine Darstellung der Merkmale verschiedener Szenarien sowie Informationen über die erforderlichen Schritte um ein Szenario zu sichern.

Kapitel 6 - Extranetsicherheit
Wie sichere ich eine Extranetanwendung? In zwei häufig auftretenden Szenarien beantwortet das Kapitel diese Frage. Darüber zeigt es die erforderlichen Schritte auf, um die Szenarios sicher zu machen.

Kapitel 7 - Internetsicherheit
Der Sicherheit von Internetanwendungen widmet sich dieses Kapitel. Es enthält eine Darstellung der Merkmale der einzelnen Szenarien und eine Beschreibung der erforderlichen Schritte, um die Anwendung zu sichern.

Kapitel 8 - ASP.NET-Sicherheit
Das Kapitel stellt Ihnen eine Vielzahl von Verfahren und Ansätzen zum Sichern von ASP.NET-Webanwendungen zur Verfügung. Viele der in diesem Kapitel bereitgestellten Anleitungen und Empfehlungen gelten auch für die Entwicklung von ASP.NET-Webdiensten und .NET Remoting-Objekten, die von ASP.NET verwaltet werden.

Kapitel 9 - Sicherheit bei Enterprise Services
Erfahren Sie, wie sichere Serviced Components innerhalb einer Enterprise Services-Anwendung erstellt werden. Außerdem zeigen wir Ihnen, wie eine webbasierte ASP.NET-Clientanwendung konfiguriert wird, die Serviced Components aufruft.

Kapitel 10 - Webdienstsicherheit
Wir informieren Sie in diesem Artikel über die Sicherheit auf Plattformebene für Webdienste unter Verwendung der zugrunde liegenden Features von IIS und ASP.NET. Mit dem Web Services Development Kit können Sie Sicherheitslösungen für Webdienste auf Nachrichtenebene aufsetzen.

Kapitel 11 - .NET Remoting-Sicherheit
Das .NET Remoting bietet kein eigenes Sicherheitsmodell. Jedoch können durch das Hosting von Remoteobjekten in ASP.NET und durch Verwenden des HTTP-Kanals für die Kommunikation Remoteobjekte von den zugrunde liegenden Sicherheitsdiensten profitieren, die von IIS und ASP.NET bereitgestellt werden.

Kapitel 12 - Datenzugriffssicherheit
Wie Sie eine sichere Datenzugriffsstrategie entwickeln, zeigt Ihnen dieses Kapitel. Hilfreiche Empfehlungen und ausführliche Anleitungen helfen Ihnen bei der Umsetzung.

Kapitel 13 - Problembehandlung bei der Sicherheit
Dieses Kapitel befasst sich mit dem Thema der Problembehandlung bei der Sicherheit. Wir stellen Ihnen eine Reihe von interessanten Tipps und nützlichen Tools vor, die Ihnen beim Erkennen und Vermeiden von Problemen mit der Sicherheit behilflich sein werden.

 

How To: So gehen Sie vor

Index
Das Handbuch enthält unter der Überschrift "Vorgehensweisen" eine Reihe von schrittweisen Anleitungen. Diese sollen Ihnen helfen, die verschiedenen Schlüsselverfahren zu verstehen und zu implementieren, die bei der Entwicklung von sicheren Lösungen zum Einsatz kommen. In diesem Index finden Sie eine Liste der enthaltenen Vorgehensweisen.

1. Erstellen eines benutzerdefinierten Kontos zum Ausführen von ASP.NET
Dieses Kapitel zeigt Ihnen, wie Sie ein mit minimalen Rechten ausgestattetes lokales Konto zum Ausführen von ASP.NET-Webanwendungen erstellen können.

2. Verwenden der Formularauthentifizierung mit Active Directory
Implementieren Sie Schritt für Schritt eine Formularauthentifizierung für einen Active-Directory-Speicher für Anmeldeinformationen.

3. Verwenden der Formularauthentifizierung mit SQL Server 2000
Lernen Sie alle relevanten Vorgehensweisen kennen, um die Formularauthentifizierung anhand eines SQL-Server-Speichers für Anmeldeinformationen zu implementieren. Darüber hinaus wird gezeigt, wie Kennwortdigests in der Datenbank gespeichert werden.

4. Erstellen von GenericPrincipal-Objekten bei der Formularauthentifizierung
Das Kapitel informiert Sie über die Verwendung von GenericPrincipal und FormsIdentity. Sie erfahren, wie diese Objekte in Verbindung mit der Formularauthentifizierung erstellt und gehandhabt werden. Des Weiteren zeigen wir Ihnen, wie eine formularbasierte Webanwendung aufgesetzt wird, die den Benutzer authentifiziert und ein benutzerdefiniertes Formularauthentifizierungsticket erstellt, das Benutzer- und Rolleninformationen umfasst.

5. Implementieren der Kerberos-Delegierung unter Windows 2000
Wir erklären Ihnen die Konfiguration der Kerberos-Delegierung. Diese ermöglicht die Weitergabe einer authentifizierten Identität durch mehrere physikalische Schichten einer Anwendung für die nachgeordnete Authentifizierung und Autorisierung.

6. Implementieren von Iprincipal
Wie generieren Sie ein benutzerdefiniertes Principalobjekt, das eine erweiterte rollenbasierte Funktionalität bereitstellt? Das Kapitel zeigt Ihnen, wie Sie das Objekt erzeugen um es für die .NET-Autorisierung verwenden zu können.

7. Erstellen einer DPAPI-Bibliothek
In diesem Kapitel erhalten Sie Infomationen, um eine C#-Klassenbibliothek zu erzeugen, die DPAPI-Funktionen für Anwendungen bereitstellt, in denen Daten wie Datenbank-Verbindungszeichenfolgen und Kontoanmeldeinformationen verschlüsselt werden sollen. Des Weiteren erfahren Sie, wie das Zuweisen eines starken Namens für die Assembly vor sich geht.

8. Verwenden von DPAPI (Computerspeicher) von ASP.NET
Schritt für Schritt erläutert Ihnen das Kapitel, wie die DPAPI von einer ASP.NET-Webanwendung oder einem ASP.NET-Webdienst zum Verschlüsseln von vertraulichen Daten verwendet werden.

9. Verwenden von DPAPI (Benutzerspeicher) von ASP.NET aus mit Enterprise Services
In Webanwendungen müssen häufig sicherheitsrelevante Daten wie Datenbank-Verbindungszeichenfolgen und Anmeldeinformationen von Dienstkonten in Konfigurationsdateien gespeichert werden. Das Kapitel beschreibt, wie die DPAPI von einer ASP.NET-Webanwendung oder einem ASP.NET-Webdienst zum Verschlüsseln von vertraulichen Daten verwendet werden.

10. Erstellen einer Verschlüsselungsbibliothek
Wie erzeugen Sie eine verwaltete Klassenbibliothek für die Bereitstellung von Verschlüsselungsfunktionen? Auf der Basis dieser Klassenbibliothek sind Anwendungen in der Lage, den jeweils geeigneten Verschlüsselungsalgorithmus auszuwählen.

11. Speichern von verschlüsselten Verbindungszeichenfolgen in der Registrierung
Eine mögliche Position zum Speichern von Datenbank-Verbindungszeichenfolgen ist die Registrierung. Da es sich bei manchen Anwendungen als zweckmäßig erweist, verschlüsselte Daten wie Verbindungszeichenfolgen und Kontoinformationen in der Windows-Registrierung zu speichern, zeigen wir Ihnen in diesem Artikel wie es funktioniert.

12. Verwenden von rollenbasierter Sicherheit mit Enterprise Services
Enterprise Services (COM+) stellt Rollen zum Zwecke der Autorisierung bereit. Dieser Artikel erläutert Ihnen, wie eine einfache Serviced Component erstellt wird, die Enterprise Services-Rollen für die Autorisierung verwendet.

13. Aufrufen eines Webdienstes mit Clientzertifikaten von ASP.NET
Webdienste müssen häufig über die Möglichkeit verfügen, ihre Aufrufer zu authentifizieren, um eine Autorisierung durchzuführen. Das Kapitel zeigt Ihnen, wie Sie einen Webdienst für die Clientzertifikatsauthentifizierung konfigurieren, diesen aufrufen und im Anschluss ein Zertifikat einer ASP.NET-Webanwendung erhalten.

14. Aufrufen eines Webdienstes unter Verwendung von SSL
Das Kapitel zeigt Ihnen, wie Sie einen Webdienst so konfigurieren, dass SSL (Secure Sockets Layer) gefordert wird, um die vertraulichen Daten zu schützen, die zwischen einem Client und dem Dienst ausgetauscht werden.

15. Verwenden eines Windows-Dienstes als Host für ein Remoteobjekt
Verwenden Sie einen Windows-Dienst als Host für ein Remoteobjekt und rufen Sie das Remoteobjekt von einer ASP.NET-Anwendung aus auf.

16. Einrichten von SSL auf einem Webserver
Damit HTTPS-Verbindungen von Clientanwendungen unterstützt werden, muss ein Webserver für SSL konfiguriert werden. Das Kapitel erläutert Ihnen, wie Sie SSL auf einem Webserver konfigurieren können.

17. Einrichten von Clientzertifikaten
Webdienste müssen häufig über die Möglichkeit verfügen, ihre Aufrufer zu authentifizieren, um eine Autorisierung durchführen zu können. IIS unterstützt die Authentifizierung per Clientzertifikat. In diesem Kapitel zeigen wir Ihnen, wie Sie eine Webanwendung für die Anforderung von Clientzertifikaten konfigurieren können.

18. Verwenden von IPSec zum Sichern der Kommunikation zwischen zwei Servern
IPSec ist eine von Windows 2000 bereitgestellte Technologie, mit der Sie IP-Datenverkehr filtern und Server authentifizieren können. Konfigurieren Sie es für die Bereitstellung eines sicheren Kommunikationskanals .

19. Verwenden von SSL zum Sichern der Kommunikation mit SQL Server 2000
Dieses Kapitel zeigt Ihnen, wie Sie SSL zum Sichern der Kommunikation mit SQL Server 2000 verwenden können. Dies geschieht mithilfe eines Zertifikates das auf dem Datenbankserver installiert wird.

 

Anhang

Glossar
Das Handbuch führt eine Vielzahl von Fachbegriffen ein. Das Glossar erklärt sie.

ASP.NET-Identitätsmatrix
Die Tabellen zeigen für eine Reihe von IIS-Authentifizierungseinstellungen die hieraus resultierende Identität, die aus den jeweiligen Variablen abgerufen wird, die ein IPrincipal- und/oder ein IIdentity-Objekt verwalten.

Die technischen Grundlagen
Wie verarbeitet ASP.NET eine Anforderung? Welche Prozesse wirken bei der Abarbeitung einer Anforderung mit? Diese und weitere Fragen über die Internas von ASP.NET werden geklärt.

Grundkonfiguration
Die Tabelle zeigt die Softwarekonfiguration, die bei der Entwicklung und in der Testphase des Handbuchs "Erstellen sicherer ASP.NET-Anwendungen" zugrunde gelegt wurde.

Konfigurationsspeicher und -tools
In dieser Übersicht finden Sie eine Zusammenfassung der Dienste und Dienstkombinationen für Authentifizierung, Autorisierung und sichere Kommunikation, die für .NET-Webanwendungen zur Verfügung stehen.

Schaubild Sicherheit von .NET-Webanwendungen
Das Schaubild zeigt die Technologien, die bei sicheren Webanwendungen zum Einsatz kommen können.

Schlüssel und Zertifikate
Kryptografie ist eine wichtige Technologie für sichere Webanwendungen. Der Abschnitt vermittelt grundlegendes Wissen über Zertifikate und Verschlüsselung. Darüber hinaus stellt er einige Klassen vor, die vom System.Security.Cryptography-Namespace bereitgestellt werden und mit denen Sie in der Lage sind, Sicherheitslösungen in Ihre .NET-Anwendungen einzubinden.

Quellenangabe
In der Sammlung finden Sie Links zu Artikeln, Supportplänen und Technologieportalen, die sich auf die im Handbuch "Erstellen sicherer ASP.NET-Anwendungen" besprochenen Kernbereiche beziehen.