Optional: Einführung in allgemeine Anforderungen, Bedrohungen und Konzepte von sicheren Anwendungen
Überblick über die .NET-Sicherheitskonzepte
Sicherheitskonzepte in der .NET-Laufzeitumgebung "CLR"
- Managed Code
- Common Type System / Common Language Specification
- Validierung/Verifikation
- Safe/Unsafe Code
Schutz des Programmcodes/des geistigen Eigentums
- Obfuscation
- Verschlüsselung des Programmcodes
- Secure Virtual Machine
Sicherheitsklassen in der .NET-Klassenbibliothek (System.Security, System.DirectoryServices, System.IO)
- Kryptografie mit .NET
- Symmetrische Verschlüsselung
- Asymmetrische Verschlüsselung
- Hashverfahren
- XML Encyrption
- Rollenbasierte Sicherheit: Principals, Identities, Permissions
- Zugriff auf Zugriffsrechtelisten (ACLs) auf Dateien und Ordner
- Isolated Storage
- Authentifizierung gegen Windows/Active Directory
Sicherheit beim Datenbankzugriff
- Sicherheitsfunktionen in ADO.NET und Entity Framework/Entity Framework Core
- Authentifizierung beim Verbindungsaufbau
- Sichere Ablage von Verbindungszeichenfolgen (Connection Strings)
- Parametrisierte Befehle zum Schutz vor SQL-Injection
- Sicherheit in Verbindung mit Microsoft SQL Server (optional: Oracle und anderen Datenbanken)
Sicherheit in der Windows Communication Foundation (WCF)
- Herausforderungen der sicheren Kommunikation
- In den Bindings integrierte Sicherheitsverfahren und zusätzliche Optionen
- Authentifizierungsverfahren
- Verschlüsselungsverfahren
- Zugriffsrechte festlegen
- Integration mit der Windows-Sicherheit
- Sicherheit und Interoperabiliät (WS-Security)
Sicherheit in ASP.NET (Core)-Webanwendungen
- Zusammenspiel von Internet Information Server (IIS) und ASP.NET
- Authentifizierungsverfahren (Windows, Formular)
- Autorisierung
- Identität
- Impersonifizierung
- Code-Access-Security in ASP.NET
- Authentifizierung gegen Datenbanken
- Authentifizierung gegen Active Directory
- Membership-System/Rollensystem
- Integration von Desktop-Anwendungen mit dem Membership-System/Rollensystem für Single-Sign-On
- Eingabevalidierung
- Schutz vor Cross-Site-Scripting
Sicherheit in ASP.NET (Core) WebAPIs (REST-/HTTP-Services)
- Transport Layer Security (TLS)/Secure Socket Layer (SSL) / HTTPS
- Authentifizierung / Single-Sign-On
- OAuth
- OpenId Connect (OIDC)
- Implementierung in .NET Framework und .NET Core
- Implementierungen für ASP.NET MVC/ASP.NET Core, ASP.NET (Core) Web API und SignalR
Sicherheitssysteme für Blazor-basierte -Webanwendungen
- Sandbox
- Eingeschränkte Kommunikation
- Local Storage
Sicherheit in Desktop-Anwendungen
- Integration mit der Windows-Sicherheit
- Eigene Sicherheitssysteme
- Eingabevalidierung
Szenarien & Best Practices
- Typische Angriffe
- Vorsichtsmaßnahmen
- Erkennungsmaßnahmen
- Abwehrmaßnahmen
- Tipps & Tricks
Optional: Sandboxing mit Code Access Security (nur .NET Framework 1.0 bis 4.8, nicht in .NET Core 1.0 bis 3.1 und .NET ab Version 5)
- Grundidee des Sandboxing
- Code-Gruppen
- Zuordnung von Code-Gruppen zu Code durch Mitgliedschaftsbedingungen
- Berechtigungen (Permissions)
- Zuordnung von Berechtigungen zu Code-Gruppen
- Signierung von Assemblies
- Werkzeuge (caspol.exe, MMC)
- Anforderungen von Berechtigungen im Programmcode (deklarativ/imperativ)
- Sicherheit von Plug-ins/Add-ins (Application Domains)