.NET Security

Veröffentlicht: 10. Mai 2004 | Aktualisiert: 15. Nov 2004

Von Jürgen Mauerer

Computerviren, geknackte Codes oder der Diebstahl von sensiblen Daten bestimmen zunehmend die Schlagzeilen. Die Sicherheits-Anforderungen an ein System wachsen. Microsoft .NET bietet gute Rahmenbedingungen, um sicheren Code zu schreiben und das System vor unberechtigtem Zugriff zu schützen.

Das Internet hat die Welt verändert, auch in punkto Sicherheit. Während im Prä-Web-Zeitalter alles auf dem lokalen System ablief, holen sich Programme heutzutage Updates oder Zusatzfunktionen dynamisch aus dem Web oder sind via Internet komplett zu installieren. Über RAS lassen sich Programme auf einem entfernten PC ausführen, Webanwendungen oder Web Services erhöhen das Sicherheitsrisiko weiter. Da Rechner im Internet weltweit vernetzt sind, sind vor allem die Entwickler gefordert: Sie müssen das System sicher halten.

Die Hauptaspekte von Datensicherheit sind Virenschutz, Authentifizierung und Autorisierung, Datenintegrität sowie Verschlüsselung. Authentifizierung stellt die Identität von Benutzern sicher und gewährleistet, dass nur berechtigte Personen Programme nutzen oder auf bestimmte Daten zugreifen können (Autorisierung). Bei der Datenintegrität wird geprüft, ob die Daten während und nach der Übertragung noch in ihrer ursprünglichen Form vorliegen. Die Verschlüsselung über kryptografische Methoden verhindert, dass unberechtigte Personen Einblick in den Dateninhalt erlangen. Näheres zu diesem Thema erfahren Sie im Feature "Kryptografie", das am 28. Mai erscheint.

Das .NET Framework bietet viele Werkzeuge zum Schutz des Programmcodes und integriert per se bereits zahlreiche Security-Funktionen. Das .NET-Sicherheitsmodell steht zudem nicht isoliert, sondern setzt auf dem Sicherheitsmodell des Betriebssystems auf. Letzteres kann Anfragen (z.B. Zugriffswunsch) an das .NET Framework weiterleiten und dort beurteilen lassen. Verantwortlich für die Kontrolle ist die .NET-Laufzeitumgebung Common Language Runtime (CLR).

Wir haben es hier mit so genanntem Managed Code (verwaltetem Code) zu tun. Die Ausführung des Programmcodes läuft kontrolliert samt Berechtigungskonzept im Rahmen der Standardsicherheitsrichtlinie ab, da die CLR zwischengeschaltet ist. "Alte" Win32-Anwendungen hingegen sind Unmanaged Code, da sie ohne "Kontrollstation" direkt auf der Hardware-Plattform ablaufen.

pfeilrechts.gif Das .NET Sicherheitsmodell
pfeilrechts.gif Sichere ASP.NET Webservices
pfeilrechts.gif Authentifizierung und Autorisierung