Drucksache: Windows Developer 2.18 - .NET-Sicherheitsklassen im Überblick
Im Windows Developer 2.18 ist ein Überblick über die .NET-Sicherheitsklassen erschienen: Welche Funktionen gibt es, und wie kann man sie wofür nutzen?
Die .NET-Klassenbibliothek enthält mit System.Security, System.DirectoryServices und System.IO drei Klassen, die Funktionalitäten zum Lösen klassischer Sicherheitsaufgaben bereit stellen. In diesem Artikel erfahren Sie, welche Funktionen das sind.
Eine mögliche Nutzung der Klassen könnte so aussehen:
Nehmen wir mal an, Sie müssen größere Datenmengen für die Übertragung übers Internet verschlüsseln. So große Datenmengen, dass nur eine hybride Verschlüsselung in Frage kommt:
- Zuerst werden die Daten mit einem effektiven symmetrischen Verfahren aus dem Namespace System.Security.Cryptography mit einem Zufallswert als Schlüssel verschlüsselt.
- Danach wird dieser symmetrische Schüssel mit einem langsameren asymmetrischen Verfahren aus dem gleichen Namespace mit dem öffentlichen Schlüssel des Empfängers verschlüsselt.
- Dass das auch wirklich der Schlüssel des Empfängers ist, wird durch die Prüfung des zugehörigen Zertifikats mit Hilfe des Namespace System.Security.Cryptography.X509Certificates sichergestellt.
- Und damit der nur temporär benötigte symmetrische Schlüssel nicht ausgespäht werden kann, können Sie ihn in einem SecureString speichern, den sie nach Gebrauch löschen.
Wahrscheinlich möchten Sie die Daten auch auf dem eigenen Rechner sicher speichern. Dafür können Sie den vom Namespace System.IO.IsolatedStorage bereitgestellten Isolierten Speicher verwenden. Oder auch die Daten selbst als Stream in eine Datei schreiben, dabei verschlüsseln und dann nur den verwendeten Schlüssel im isolierten Speicher sichern.
Vielleicht möchten Sie die Daten ja auch an einen anderen Benutzer im lokalen Netzwerk weiterleiten oder diesem den Zugriff auf die gespeicherte Datei ermöglichen. In beiden Fällen finden Sie die benötigten Funktionen zur Lokalisation und Identifikation des Benutzers in den System.DirectoryServices Namespaces.
Und falls Sie einem anderen Benutzer oder einer anderen Anwendung des aktuellen Benutzers den Zugriff auf die gespeicherte Datei ermöglichen wollen, können Sie die Zugriffsrechte über den Namespace System.Security.Permissions passend ändern.
Es gibt so viele nützliche Namespaces und Klassen rund um die Sicherheit, damit sollten Sie eigentlich jedes denkbare (und vermutlich auch jedes undenkbare) Problem lösen können.
Und hier noch die Links und Literaturverweise aus dem Artikel:
- [1] System.Security Namespaces
- [2] System.DirectoryServices Namespaces
- [3] System.IO Namespaces
- [4] System.Security-Namespace
- [5] AllowPartiallyTrustedCallersAttribute Klasse
- [6] CodeAccessPermission Klasse
- [7] PermissionSet Klasse
- [8] ReadOnlyPermissionSet Klasse
- [9] SecureString Klasse
- [10] System.Security.AccessControl-Namespace
- [11] FileSystemSecurity Klasse
- [12] RegistrySecurity Klasse
- [13] System.Security.Authentication-Namespace
- [14] CipherAlgorithmType-Enumeration
- [15] Carsten Eilers: "Sicherheit von Kryptoverfahren"; Windows Developer 1.2018
- [16] ExchangeAlgorithmType-Enumeration
- [17] HashAlgorithmType-Enumeration
- [18] SslProtocols-Enumeration
- [19] System.Security.Authentication.ExtendedProtection-Namespace
- [20] Integrated Windows Authentication with Extended Protection
- [21] System.Security.Authentication.ExtendedProtection.Configuration-Namespace
- [22] System.Security.Claims-Namespace
- [23] System.Security.Cryptography-Namespace
- [24] System.Security.Cryptography.Pkcs-Namespace
- [25] System.Security.Cryptography.X509Certificates-Namespace
- [26] Carsten Eilers: "Verfahren der Kryptographie, Teil 11: Hybride Verschlüsselungsverfahren"
- [27] System.Security.Cryptography.Xml-Namespace
- [28] W3C Recommendation: "XML Signature Syntax and Processing Version 1.1"
- [29] System.Security.Permissions-Namespace
- [30] DataProtectionPermission Klasse
- [31] FileDialogPermission Klasse
- [32] FileIOPermission Klasse
- [33] System.Security.Policy-Namespace
- [34] System.Security.Principal-Namespace
- [35] Role-Based Security
- [36] WindowsIdentity-Klasse
- [37] WindowsPrincipal-Klasse
- [38] System.Security.RightsManagement-Namespace
- [39] Active Directory Rights Management Services SDK
- [40] Package-Klasse
- [41] XpsDocument-Klasse
- [42] System.DirectoryServices Namespaces
- [43] System.DirectoryServices Namespace
- [44] DirectoryEntry Klasse
- [45] DirectorySearcher Klasse
- [46] System.DirectoryServices.AccountManagement Namespace
- [47] System.DirectoryServices.ActiveDirectory Namespace
- [48] System.DirectoryServices.Protocols Namespace
- [49] System.IO Namespaces
- [50] System.IO.IsolatedStorage Namespace
- [51] IsolatedStorageScope-Enumeration
- [52] Isolated Storage
- [53] IsolatedStorageFileStream Klasse
- [54] System.IO.Log Namespace
- [55] OWASP Top 10 - 2017 - The Ten Most Critical Web Application Security Risks (PDF)
- [56] System.IO.Packaging Namespace
- [57] EncryptedPackageEnvelope Klasse
- [58] PackageDigitalSignature Klasse
- [59] PackageDigitalSignatureManager Klasse
- [60] System.IO.Pipes Namespace
- [61] PipeSecurity Klasse
- [62] PipeAccessRule Klasse
- [63] PipeAuditRule Klasse
Trackbacks