Positive Technologies による最近の調査によると、データ漏えいの脆弱性とセキュリティの問題は、Web アプリの 44% に影響を与えています。 機密データはすべての Web アプリに存在し、そのデータが不適切に保護されているとデータの盗難が発生します。 したがって、適切なデータ保護のために、ASP.NET Core 暗号化アルゴリズムに加えて、暗号化 API を使用してデータを保護し、データ損失を回避します。 共有環境で誰もがアクセスできないデータは、ASP.NET データ保護プロバイダーを使用して保護できます。
このブログでは、ASP.NET データ保護プロバイダーのしくみと役割について説明します。 NCache キー ストレージ プロバイダーとして。
ASP.NET Core データ保護プロバイダー
データ保護は ASP の機能です.NET Core これにより、さまざまな暗号化方法を使用してデータを保護できます。 AES-256-CBC と HMACSHA256 は、それぞれ機密性と信頼性のために使用される標準のペイロード保護アルゴリズムです。 これらのメソッドに不可欠な 512 つのサブキーは、ペイロードごとに 90 日ごとに変更される XNUMX ビットのマスター キーから派生します。
1 2 3 |
services.AddDataProtection() // use a 14-day lifetime instead of a 90-day lifetime .SetDefaultKeyLifetime(TimeSpan.FromDays(14)); |
生成されたキーは、キー ストレージ プロバイダーを使用して保存/永続化されます。
キー ストレージ プロバイダー
データ保護システムは、デフォルトの検出メカニズムを使用して、暗号化キーを保持する場所を決定します。 開発者は、デフォルトの検出メカニズムをオーバーライドして、場所を手動で指定できます。
1. デフォルトのキー ストレージ プロバイダー
デフォルトでは、キーは ASP の Windows の指定された一時フォルダーに保持されます。.NET Coreただし、キーをデフォルトの場所に保存することには欠点があります。複数の Web アプリケーション インスタンスからキーにアクセスすることはできません。 そのため、キーを複数のサーバー間で使用可能にし、すべての Web アプリケーション インスタンスからアクセスできるようにするには、キーの永続化の場所をユーザーが手動で指定する必要があります。
2. NCache キー ストレージ プロバイダーとして
複数のサーバーでキーを使用できるようにするには、ASP.NET Core キー ストレージ プロバイダーを構成できます。 ここで使用できます NCache キー ストレージ プロバイダーとして、キーはキャッシュに保持されます。 NCache はクラスタ全体の共有キャッシュであるため、すべての Web アプリケーション インスタンスでキーを使用できるようになります。 メソッドを使用して、 PersistKeysToNCache
.
- PersistKeysToNCache
PersistKeysToNCache
構成中にキーが保持されるキャッシュ名とキャッシュ タグをユーザーが指定できるエントリ ポイントです。 NCache キー ストレージ プロバイダーとして。
設定 NCache キー ストレージ プロバイダーとして
NCache として働く キー ストレージ プロバイダー データ保護サービスのキーを格納するためのものであり、その構成はシンプルで簡単です。 構成するには NCache ASP.NET Core データ保護プロバイダーは、以下の手順に従ってください。
ステップ1: データ保護サービスの構成
ASP.NET Core データ保護のためのミドルウェアを提供します。 このミドルウェアは、を使用してサービス コレクションに追加する必要があります。 AddDataProtection()
方法。 提供 DirectoryInfo
キーを保存する必要があるリポジトリを指します。
- Video Cloud Studioで スタートアップ.cs プロジェクトのファイル。
-
ConfigureServices()
メソッド、次のサービスを追加します。
1 2 3 4 |
public void ConfigureServices(IServiceCollection services) { services.AddDataProtection(); } |
ステップ 2: NuGet パッケージをインストールする
最初のステップは、ASP の共有を可能にする NuGet パッケージをインストールすることです.NET Core のデータ保護キー NCache. NuGet パッケージをインストールするには、まず Visual Studioの そしてに行く ツール -> NuGetパッケージマネージャー -> パッケージ マネージャー コンソール 次に、NuGet パッケージを検索します AspNetCore.DataProtection.NCache
.
ステップ3: 構成 NCache データ保護サービスのキー ストレージ プロバイダーとして
NuGet パッケージをインストールしたら、まず構成する必要があります NCache データ保護サービスのキーを格納するためのキー ストレージ プロバイダーとして。
1 2 3 4 5 6 |
public void ConfigureServices(IServiceCollection services) { string cacheName = "demoCache"; string cacheTag = "encryptions_keys_tag"; services.AddDataProtection().PersistKeysToNCache(cacheName, cacheTag); } |
さらに使用するには NCache ASP のキー ストレージ プロバイダーとして.NET Core データ保護プロバイダーは、以下のサンプル アプリケーションを実装します。
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}"); } } } |
まとめ
ASP.NET Core 同様に重要な暗号化アルゴリズムに加えて、暗号化 API を使用することで、追加されたデータが安全であることを保証します。 本質的に、 NCache キーを格納するキー ストレージ プロバイダーとして機能し、複数の Web アプリケーション インスタンスからアクセスできるようにします。 したがって、完全に機能する 60 日間の試用版を今すぐダウンロードして、自分で使用してください。
素晴らしい情報です。 共有してくれてありがとう