Тази статия е огледална статия за машинен превод, моля, кликнете тук, за да преминете към оригиналната статия.

Изглед: 2915|Отговор: 0

[Източник] ASP.NET Core (22) е базиран на защита на данни от IDataProtectionProvider

[Копирай линк]
Публикувано в 15.08.2023 г. 10:21:16 ч. | | | |
Изисквания: По време на процеса на разработка често може да се сблъскате с някои сценарии за криптиране и декриптиране, например удостоверяването на имейл може да носи криптиран низ, а когато потребителят кликне върху линка за преход към интерфейса, системата може нормално да декриптира съдържанието на низа, като по този начин реализира функцията за удостоверяване на имейла.

Генериране на елементи с помощта на PowerShell <machineKey>
https://www.itsvse.com/thread-10644-1-1.html

Криптиране на данни с ASP.NET machineKey
https://www.itsvse.com/thread-9535-1-1.html

ASP.NET Ролята на machineKey и как да го използвате
https://www.itsvse.com/thread-2705-1-1.html

ASP.NET Core предлага функции за защита на данните:Входът към хиперлинк е видим.

Основен пакет

Основните пакети, участващи в защитата на данните, са следните, които се цитират при необходимост:

  • Microsoft.AspNetCore.DataProtection.Abstractions стандарт. Именуване на пакети на компоненти на абстракция на NET CORE. Включва основни интерфейсни услуги като IDataProtectionProvider и IDataProtector.
  • Microsoft.AspNetCore.DataProtection, включително основни криптографски операции, управление на ключове, конфигурация и разширяемост.
  • Разширение Microsoft.AspNetCore.DataProtection.Extensions. Предоставя фабричен метод за създаване на инстанции и метод за разширение на съхранението на ключове. Този пакет се използва в не-DI режим.
  • Microsoft.AspNetCore.DataProtection.SystemWeb реализира <machineKey>съвместимост с механизмите за криптиране и декриптиране в ASP.NET 4.x.
  • Microsoft.AspNetCore.Cryptography.KeyDerivation предоставя реализация на рутината за хаширане на пароли PBKDF2. Използвайте го, когато трябва да използвате хеш криптиране.


IDataProtectionProvider срещу IDataProtector

IDataProtectionProvider е базиран на модела Provider на Microsoft и се използва за предоставяне на политики за създаване на инстанции. Създайте обект IDataProtector чрез извикване на метода IDataProtectionProvider.CreateProtector(purpose).
IDataProtector е услуга, отговорна за криптиране и декриптиране, която основно предоставя два типа методи: защита и премахване на защита (всеки тип има много методи за претоварване и разширение). Простото разбиране е, че protect се използва за криптиране, а unprotect – за декриптиране.
Параметърът на метода Create на IDataProtectionProvider е низ, който предоставя функционалност за изолация. IDataProtectors, създадени с непроходими низове, ще получат различни резултати от криптирането, дори ако криптират един и същ обект. Самият IDataProtector е и имплицитен IDataProtectionProvider, който предоставя и метода CreateProtector(цел). Това означава, че може лесно да се реализираМулти-наемателен режим на приложение



Ето няколко неща, които да имате предвид:

IDataProtectionProvider и IDataProtector инстанцииБезопасност на резбатаЦел.
Методът за премахване на защитата е да се информира обаждащият се, че декриптирането е неуспешно, като се хвърли изключение. Класът изключения е CryptographicException.

ASP.NET Core е лесен за използване защита на данни

Добавен е нов интерфейс за криптиране и декриптиране на данни, а кодът е следният:

Тестът е следният:



IDataProtectionProvider е сингълтон модел със следния код:Входът към хиперлинк е видим.



Управление на ключове

Ако потребителският профил е наличен, ключът се запазва до%LOCALAPPDATA%\ASP.NET\DataProtection-KeysПапка. Ако операционната система е Windows, ключът се криптира в покой чрез DPAPI. Както е показано по-долу:



Ключов живот

По подразбиране, ключътЖизненият цикъл е 90 дни。 Когато ключът изтече, приложението автоматично генерира нов ключ и го определя като активен ключ. Докато деактивираните ключове остават в системата, вашето приложение може да декриптира всякакви данни, защитени от тях. За повече информация вижте Управление на ключове.Входът към хиперлинк е видим.

Алгоритъм по подразбиране

Стандартните алгоритми за защита от натоварване са AES-256-CBC (за поверителност) и HMACSHA256 (за автентичност). 512-битовият главен ключ, който се променя на всеки 90 дни, се използва за извеждане на два подключа за тези алгоритми въз основа на всеки полезен товар.

ASP.NET доставчик на съхранение на ключове в Core

Файлова система: PersistKeysToFileSystem
Azure Storage: PersistKeysToAzureBlobStorage, which requires reference: Azure.Extensions.AspNetCore.DataProtection.Blobs
Redis storage: PersistKeysToStackExchangeRedis, изисква се референция: Microsoft.AspNetCore.DataProtection.StackExchangeRedis

Препратка:Входът към хиперлинк е видим.

Клъстерирани и разпределени

Ако сървърният ключ е несъвместим, например: криптиране на сървър A и декриптиране на сървър B, ще бъде хвърлено изключение (както е показано на фигурата по-долу) и трябва да се разположи същият ключ.



Конфигурирайте същия ключ по следния начин:

След като програмата започне, тя автоматично генерира файл с ключ-*.xml под папката publish_itsvse, дръж този файл постоянен на различни сървъри! Както е показано по-долу:



ASP.NET Конфигурация за защита на ядрото

ASP.NET CORE предоставя богата поддръжка на API, запазване на пароли, конфигурация и функции за персонализация.

  • PersistKeysToAzureBlobStorage、ProtectKeysWithAzureKeyVault。 Сценарий за облачно съхранение на Azure.
  • PersistKeysToFileSystem。 Схема за съхранение на локална файлова система, която записва алгоритми за криптиране, ключове и зависимости.
  • ProtectKeysWith*。 Криптирането се осигурява чрез разширения на този метод за именуване. Например, ProtectKeysWithCertificate
  • SetDefaultKeyLifetime。 По подразбиране настройте живота на ключа на 90 дни.
  • SetApplicationName。 Задайте името на приложението. По подразбиране механизмите за защита на данните са абсолютно изолирани от всяко приложение. Споделянето на ключове между приложенията може да се постигне чрез задаване на едно и също име на приложението.
  • DisableAutomaticKeyGeneration。 Предотвратете автоматичното връщане на ключа назад. Често не искаме паролите да се променят или да са в клъстерна услуга, имаме специализирана услуга, отговорна за връщане на ключови актуализации, а другите полезни товари просто трябва да ги получават от споделено място.
  • UseCryptographicAlgorithms。 Използвайте персонализирани алгоритми за криптиране и декриптиране


Препратка:Входът към хиперлинк е видим.





Предишен:Използвайте PowerShell за генериране на елемента &lt;machineKey&gt;
Следващ:Сравнете Tailscale, ZeroTier, WireGuard, OmniEdge и Ngrok за геомрежови решения
Отричане:
Целият софтуер, програмни материали или статии, публикувани от Code Farmer Network, са само за учебни и изследователски цели; Горното съдържание не трябва да се използва за търговски или незаконни цели, в противен случай потребителите ще понесат всички последствия. Информацията на този сайт идва от интернет, а споровете за авторски права нямат нищо общо с този сайт. Трябва напълно да изтриете горното съдържание от компютъра си в рамките на 24 часа след изтеглянето. Ако ви харесва програмата, моля, подкрепете оригинален софтуер, купете регистрация и получете по-добри услуги. Ако има нарушение, моля, свържете се с нас по имейл.

Mail To:help@itsvse.com