Section courante

A propos

Section administrative du site

 Langage  Elément  Tutoriel  Aide 
ABAP/4
Ada
Assembleur
Assembly & bytecode
ASP (Active Server Pages)
Basic
C
C++
C# (C Sharp)
Cobol
ColdFusion
Fortran
HTML
Java
JavaScript
LISP
Logo
LotusScript
Oberon
Pascal
Perl
PHP
PL/1
Prolog
Python
Rebol
REXX
Ruby
SAS
NoSQL
SQL
Swift
X++ (Axapta)
GNAT
SMALLAda
VHDL
Assembleur 370
Assembleur 1802
Assembleur 4004
Assembleur 6502
Assembleur 6800
Assembleur 68000
Assembleur 8080 et 8085
Assembleur 8089
Assembleur 80x86
Assembleur AGC4
Assembleur ARM
Assembleur DPS 8000
Assembleur i860
Assembleur Itanium
Assembleur MIPS
Assembleur PDP-11
Assembleur PowerPC
Assembleur RISC-V
Assembleur SPARC
Assembleur SuperH
Assembleur UNIVAC I
Assembleur VAX
Assembleur Z80
Assembleur Z8000
Assembleur z/Architecture
ASSEMBLER/MONITOR 64
Micol Assembler
GFA Assembler
A86
MASM (Macro Assembler)
TASM (Turbo Assembler)
CIL
Jasmin
LLVM
MSIL
Parrot
P-Code (PCode)
SWEET16
G-Pascal
ASP 1.0
ASP 2.0
ASP 3.0
ASP.NET
ASP.NET Core
ABasiC (Amiga)
Adam SmartBASIC
Altair BASIC
AmigaBASIC (Amiga)
AMOS Basic (Amiga)
Atari Basic (Atari 400, 600 XL, 800, 800XL)
Basic Apple II (Integer BASIC/APPLESOFT)
Basic Commodore 64 (CBM-BASIC)
Basic Commodore 128 (BASIC 7.0)
Basic Commodore VIC-20 (CBM-BASIC 2.0)
Basic Coco 1 (Color Basic)
Basic Coco 2 (Extended Color Basic)
Basic Coco 3 (Extended Color Basic 2.0)
BASICA (PC DOS)
Basic Pro
BBC BASIC
Blitz BASIC (Amiga)
DarkBASIC
Dartmouth BASIC
GFA-Basic (Atari ST/Amiga)
GWBASIC (MS-DOS)
Liberty BASIC
Locomotive BASIC (Amstrad CPC)
MSX-Basic
Omikron Basic (Atari ST)
Oric Extended Basic
Power Basic
Quick Basic/QBasic (MS-DOS)
Sinclair BASIC (ZX80, ZX81, ZX Spectrum)
ST BASIC (Atari ST)
Turbo Basic
Vintage BASIC
VBScript
Visual Basic (VB)
Visual Basic .NET (VB .NET)
Visual Basic pour DOS
Yabasic
BeckerBASIC
SIMONS' BASIC
Basic09 d'OS-9
Disk Extended Color Basic
Basic09 d'OS-9
Disk Extended Color Basic
Access
Excel
Visual Basic pour Windows
Visual Basic .NET pour Windows
C Shell Unix (csh)
C pour Amiga
C pour Atari ST
C pour DOS
C pour Falcon030
C pour GEMDOS (Atari ST)
C pour Linux
C pour PowerTV OS
C pour OS/2
C pour Unix
C pour Windows
Aztec C
CoCo-C
GNU C
HiSoft C
IBM C/2
Introl-C
Lattice C
Microsoft C
MinGW C
MSX-C
Open Watcom C
OS-9 C Compiler
Pure C
Quick C
Turbo C
HiSoft C for Atari ST
HiSoft C for CP/M (Amstrad CPC)
C++ pour OS/2
C++ pour Windows
Borland C++
C++Builder
IBM VisualAge C++
Intel C++
MinGW C++
Open Watcom C++
Symantec C++
Turbo C++
Visual C++
Visual C++ .NET
Watcom C++
Zortech C++
C# (C Sharp) pour Windows
Apple III Cobol
Microsoft Cobol
BlueDragon
Lucee
OpenBD
Railo
Smith Project
Microsoft Fortran
WATFOR-77
CSS
FBML
Open Graph
SVG
XML
XSL/XSLT
LESS
SASS
GCJ (GNU)
JSP
Jython
Visual J++
Node.js
TypeScript
AutoLISP
ACSLogo
LotusScript pour Windows
Amiga Oberon
Oberon .NET
Apple Pascal
Delphi/Kylix/Lazarus
Free Pascal
GNU Pascal
HighSpeed Pascal
IBM Personal Computer Pascal
Lisa Pascal
Maxon Pascal
MPW Pascal
OS-9 Pascal
OSS Personal Pascal
Pascal-86
Pascal du Cray Research
Pascal/VS
Pascal-XT
PURE Pascal
QuickPascal
RemObjets Chrome
Sun Pascal
THINK Pascal
Tiny Pascal (TRS-80)
Turbo Pascal
UCSD Pascal
VAX Pascal
Virtual Pascal
Turbo Pascal for CP/M-80
Turbo Pascal for DOS
Turbo Pascal for Macintosh
Turbo Pascal for Windows
CodeIgniter (Cadre d'application)
Drupal (Projet)
Joomla! (Projet)
Phalanger (PHP .NET)
phpBB (Projet)
Smarty (balise)
Twig (balise)
Symfony (Cadre d'application)
WordPress (Projet)
Zend (Cadre d'application)
PL360
PL/M-80
PL/M-86
Turbo Prolog
CPython
IronPython
Jython
PyPy
AREXX
Regina REXX
JMP
Btrieve
Cassandra
Clipper
CouchDB
dBASE
Hbase
Hypertable
MongoDB
Redis
Access
BigQuery
DB2
H2
Interbase
MySQL
Oracle
PostgreSQL
SAP HANA
SQL Server
Sybase
U-SQL
Introduction
Références des espaces de nom (Namespace)
Les composantes
ASP.NET Core Identity
Protection des données
SignalR
Structure typique du code et du projet
Préface
Notes légal
Dictionnaire
Recherche

Protection des données dans ASP.NET Core

La protection des données dans ASP.NET Core est un mécanisme conçu pour sécuriser les informations sensibles, telles que les cookies d'authentification, les jetons de vérification et d'autres données confidentielles. En encapsulant ces informations dans des protections cryptographiques, la Data Protection API permet aux applications de sécuriser leurs données durant le stockage ou la transmission.

À la base, cette protection repose sur des clefs de chiffrement chiffrant et déchiffrant les données selon des règles de sécurité définies. Ces clefs sont générées et entreposées par le système, mais pour des applications en production, il est recommandé de les configurer pour qu'elles soient stockées dans un emplacement persistant, comme un système de fichiers sécurisé, une base de données ou un service d'infonuagique (exemple Azure Blob Storage).

La configuration des clefs permet aussi de spécifier un nom d'application (avec SetApplicationName), ce qui garantit que les clefs de protection sont isolées entre différentes applications hébergées sur le même serveur. De plus, la durée de vie des clefs peut être ajustée pour en garantir une rotation régulière, limitant ainsi les risques en cas de compromission des clefs.

Pour une sécurité renforcée, ASP.NET Core offre la possibilité de protéger les clefs elles-mêmes en les chiffrant avec un certificat. Cette approche est particulièrement utile lorsque les clefs sont entreposées sur des supports externes ou accessibles dans des environnements partagés, car elle garantit qu'elles ne peuvent être déchiffrées que par des instances autorisées.

Enfin, la protection des données facilite la gestion de données sensibles dans des environnements distribués ou en cas de montée en charge (équilibreur de charge). Elle assure que toutes les instances d'une application partagent les mêmes clefs, rendant ainsi possible le déchiffrement de données protégées sur n'importe quelle instance.

Voici l'algorithme simplifier du mécanisme de protection de données :

MODULE ProtectionData
   Initialiser le constructeur de l'application web (WebApplicationBuilder).
   Accéder aux paramètres de configuration de l'application (Configuration).

   * Définir le chemin d'entreposage pour les clefs de protection des données :
   Lire la valeur de "DataProtectionKeysPath" depuis la configuration.
   Créer un objet représentant le répertoire (par exemple, DirectoryInfo).

   * Configurer les services de l'application (Services) / Ajouter la protection des données :
   Appeler `AddDataProtection` pour initialiser la protection des données.
   Spécifier le répertoire d'entreposage des clefs avec `PersistKeysToFileSystem`.
   Définir un nom d'application avec `SetApplicationName` pour isoler les clefs entre applications.
   SI des options supplémentaires sont présents ALORS
      Configurer d'autres options de protection, comme la durée de vie des clefs.
   FIN SI

   Dans les middlewares de l'application, ajouter des fonctionnalités nécessitant la protection des données (comme l'antiforgery ou la gestion des cookies sécurisés).
   Démarrer l'application (Run).

Voici un aperçu de la configuration de la protection des données dans ASP.NET Core :

Configurer la protection des données

Par défaut, ASP.NET Core configure automatiquement une clef pour protéger les données, mais pour des applications en production ou déployées dans des environnements partagés, il est souvent nécessaire de personnaliser cette configuration pour garantir la sécurité des données partagées entre plusieurs instances de l'application ou plusieurs serveurs (en cas de équilibreur de charge, par exemple).

Principales étapes de configuration

Entreposage des clefs de protection des données

La Data Protection API utilise des clefs de chiffrement pour protéger les données. Par défaut, ces clefs sont entreposées en mémoire, mais pour des scénarios de production, il est préférable de les entreposer dans un emplacement persistant comme :

Définir un nom d'application

La configuration du nom de l'application permet d'isoler la protection des données entre différentes applications hébergées sur le même serveur, en utilisant des clefs distinctes pour chaque application :

  1. services.AddDataProtection().SetApplicationName("MonNomApp");

Configurer la durée de vie des clefs

Par défaut, les clefs de protection sont renouvelées automatiquement, mais vous pouvez configurer leur durée de vie pour mieux contrôler leur rotation :

  1. services.AddDataProtection().SetDefaultKeyLifetime(TimeSpan.FromDays(90));

Utilisation de clefs de protection protégées par un certificat

Dans certains cas, il est possible de protéger les clefs elles-mêmes en utilisant un certificat :

  1. services.AddDataProtection().ProtectKeysWithCertificate("thumbprint-of-certificate");

Gestion et durée de vie des clefs de protection des données dans ASP.NET Core

La gestion et la durée de vie des clefs de protection des données dans ASP.NET Core impliquent le cycle de vie et la sécurisation des clefs cryptographiques utilisées pour protéger les données sensibles. Ces clefs sont essentielles pour chiffrer et déchiffrer les informations dans des fonctionnalités telles que les cookies, les jetons antifalsification, et d'autres données confidentielles :

Exemples d'utilisation

La protection des données est principalement utilisée pour chiffrer et déchiffrer des informations sensibles dans une application ASP.NET Core.

Voici un exemple de protection d'une chaîne de caractères :

  1. var protector = _dataProtectionProvider.CreateProtector("PurposeString");
  2. string protectedData = protector.Protect("SensitiveData");
  3. string unprotectedData = protector.Unprotect(protectedData);

Cas d'utilisation avancés

ASP.NET Core Data Protection API permet aussi :



PARTAGER CETTE PAGE SUR
Dernière mise à jour : Vendredi, le 6 septembre 2024