Laut einer aktuellen Umfrage von Positive Technologies sind 44 % der Web-Apps von Schwachstellen durch Datenlecks und Sicherheitsproblemen betroffen. Sensible Daten sind in allen Web-Apps vorhanden und Datendiebstahl geschieht, wenn diese Daten nicht ordnungsgemäß gesichert sind. Also, für angemessenen Datenschutz, ASP.NET Core verwendet neben dem Verschlüsselungsalgorithmus kryptografische APIs, um Daten zu schützen und Datenverluste zu vermeiden. Daten, die in einer gemeinsam genutzten Umgebung nicht für alle zugänglich sein sollen, können mit dem ASP.NET Data Protection Provider geschützt werden.
In diesem Blog behandeln wir die Funktionsweise des ASP.NET-Datenschutzanbieters und die Rolle von NCache als Anbieter von Schlüsselspeichern.
ASP.NET Core Datenschutzanbieter
Datenschutz ist eine Funktion von ASP.NET Core die es Ihnen ermöglicht, Ihre Daten mit verschiedenen Verschlüsselungsverfahren zu sichern. AES-256-CBC und HMACSHA256 sind die Standardalgorithmen zum Schutz der Nutzdaten, die jeweils für Vertraulichkeit und Authentizität verwendet werden. Die beiden für diese Methoden wesentlichen Unterschlüssel werden von einem 512-Bit-Hauptschlüssel abgeleitet, der alle 90 Tage pro Nutzlast geändert wird.
1 2 3 |
services.AddDataProtection() // use a 14-day lifetime instead of a 90-day lifetime .SetDefaultKeyLifetime(TimeSpan.FromDays(14)); |
Der generierte Schlüssel wird mithilfe von Schlüsselspeicheranbietern gespeichert/persistent.
Schlüsselspeicheranbieter
Das Datenschutzsystem verwendet einen Standarderkennungsmechanismus, um zu bestimmen, wo die kryptografischen Schlüssel bestehen bleiben sollen. Der Entwickler kann den standardmäßigen Erkennungsmechanismus überschreiben und den Speicherort manuell angeben.
1. Standard-Schlüsselspeicheranbieter
Standardmäßig bleiben die Schlüssel in einem angegebenen temporären Ordner in Windows in ASP bestehen.NET Core, aber das Speichern der Schlüssel am Standardspeicherort hat einen Nachteil – Schlüssel sind nicht für mehrere Webanwendungsinstanzen zugänglich. Um also Schlüssel auf mehreren Servern verfügbar zu machen und allen Webanwendungsinstanzen zugänglich zu machen, muss der Benutzer manuell einen Speicherort für die Schlüsselpersistenz angeben.
2. NCache als Anbieter von Schlüsselspeichern
Um Schlüssel über mehrere Server verfügbar zu machen, verwendet ASP.NET Core ermöglicht es Ihnen, Ihren Schlüsselspeicheranbieter zu konfigurieren. Hier können wir verwenden NCache Als Anbieter von Schlüsselspeichern bleiben die Schlüssel in einem Cache gespeichert und seitdem NCache ist ein clusterweiter gemeinsam genutzter Cache, der Schlüssel für alle Webanwendungsinstanzen verfügbar macht. Mit der Methode, PersistKeysToNCache
.
- PersistKeysToNCache
PersistKeysToNCache
ist der Einstiegspunkt, an dem der Benutzer den Cache-Namen und das Cache-Tag angeben kann, wo die Schlüssel während der Konfiguration bestehen bleiben NCache als Anbieter von Schlüsselspeichern.
Konfigurieren NCache als Anbieter von Schlüsselspeichern
NCache arbeitet als Anbieter von Schlüsselspeichern zum Speichern der Schlüssel für Datenschutzdienste, und seine Konfiguration ist einfach und unkompliziert. Konfigurieren NCache ASP.NET Core Datenschutzanbieter, befolgen Sie die nachstehenden Schritte.
Schritt 1: Datenschutzdienst konfigurieren
ASP.NET Core stellt Middleware für den Datenschutz bereit. Diese Middleware muss der Dienstsammlung mithilfe von hinzugefügt werden AddDataProtection()
Methode. Bieten DirectoryInfo
zeigt auf das Repository, in dem Schlüssel gespeichert werden sollen.
- Öffnen Sie den Microsoft Store auf Ihrem Windows-PC. Startup.cs Datei Ihres Projekts.
- Im
ConfigureServices()
Methode, fügen Sie den folgenden Dienst hinzu:
1 2 3 4 |
public void ConfigureServices(IServiceCollection services) { services.AddDataProtection(); } |
Schritt 2: Installieren Sie das NuGet-Paket
Der erste Schritt besteht darin, das NuGet-Paket zu installieren, das die gemeinsame Nutzung von ASP ermöglicht.NET Core Datenschutz greift ein NCache. Um das NuGet-Paket zu installieren, öffnen Sie zuerst Visual Studio und geh zu Tools
-> NuGet-Paket-Manager -> Package Manager-Konsole und suchen Sie dann nach dem NuGet-Paket AspNetCore.DataProtection.NCache
.
Schritt 3: Einrichtung NCache als Schlüsselspeicheranbieter für den Datenschutzdienst
Nach der Installation des NuGet-Pakets müssen Sie zunächst konfigurieren NCache als Schlüsselspeicheranbieter zum Speichern von Schlüsseln für Datenschutzdienste.
1 2 3 4 5 6 |
public void ConfigureServices(IServiceCollection services) { string cacheName = "demoCache"; string cacheTag = "encryptions_keys_tag"; services.AddDataProtection().PersistKeysToNCache(cacheName, cacheTag); } |
Zur weiteren Verwendung NCache als Schlüsselspeicheranbieter in ASP.NET Core Datenschutzanbieter, implementieren Sie die folgende Beispielanwendung:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 |
using System; using Microsoft.Extensions.DependencyInjection; using Microsoft.AspNetCore.DataProtection; using Alachisoft.NCache.AspNetCore.DataProtection; namespace DataProtectionSample { public class Program { static void Main(string[] args) { string cacheName = "demoLocalCache"; string cacheTag = "MyEncryptionKeys"; var serviceCollection = new ServiceCollection(); serviceCollection.AddDataProtection() .PersistKeysToNCache(cacheName,cacheTag); var services = serviceCollection.BuildServiceProvider(); // create an instance of MyClass using the service provider var instance = ActivatorUtilities.CreateInstance(services); instance.RunSample(); } } Public class MyClass { IDataProtector _protector; // the 'provider' parameter is provided by DI public MyClass(IDataProtectionProvider provider) { _protector = provider.CreateProtector("Contoso.MyClass.v1"); } public void RunSample() { Console.Write("Enter input: "); string input = Console.ReadLine(); // protect the payload string protectedPayload = _protector.Protect(input); Console.WriteLine($"Protect returned: {protectedPayload}"); // unprotect the payload string unprotectedPayload = _protector.Unprotect(protectedPayload); Console.WriteLine($"Unprotect returned: {unprotectedPayload}"); } } } |
Zusammenfassung
ASP.NET Core stellt sicher, dass die hinzugefügten Daten sicher sind, indem zusätzlich zu den ebenso wichtigen Verschlüsselungsalgorithmen kryptografische APIs verwendet werden. Im Wesentlichen, NCache fungiert als Schlüsselspeicheranbieter zum Speichern von Schlüsseln und macht sie dann für mehrere Webanwendungsinstanzen zugänglich. Laden Sie also jetzt eine voll funktionsfähige 60-Tage-Testversion herunter und verwenden Sie sie selbst.
Tolle Informationen. Danke für das Teilen