Mise en œuvre de la sécurité.net avec MS Visual Studio.NET 2005. Plan



Documents pareils
Sécurisation d une application ASP.NET

Gestion de l authentification et des autorisations

La double authentification dans SharePoint 2007

Interagir avec le SharePoint. Version 1.0

Qu est ce que Visual Guard. Authentification Vérifier l identité d un utilisateur

Urbanisation des SI Conduite du changement IT 20/03/09. Patrick CHAMBET

MEGA Web Front-End Installation Guide MEGA HOPEX V1R1 FR. Révisé le : 5 novembre 2013 Créé le : 31 octobre Auteur : Noé LAVALLEE

OWASP Open Web Application Security Project. Jean-Marc Robert Génie logiciel et des TI


Authentification et contrôle d'accès dans les applications web

Signature électronique. Romain Kolb 31/10/2008

WorkflowGen 6.0 Guide de mise à jour

Préparer la synchronisation d'annuaires

Tech-Evenings Sécurité des applications Web Sébastien LEBRETON

Microsoft infrastructure Systèmes et Réseaux

Chapitre 2 Rôles et fonctionnalités

Le rôle Serveur NPS et Protection d accès réseau

Single Sign On. Nicolas Dewaele. Single Sign On. Page 1. et Web SSO

Chapitre 7. Sécurité des réseaux. Services, attaques et mécanismes cryptographiques. Hdhili M.H. Cours Administration et sécurité des réseaux

S28 - La mise en œuvre de SSO (Single Sign On) avec EIM (Enterprise Identity Mapping)

Espace Numérique Régional de Santé Formation sur la messagerie sécurisée. Version Auteur : Nathalie MEDA

Un exemple d'authentification sécurisée utilisant les outils du Web : CAS. P-F. Bonnefoi

Gestion du cache dans les applications ASP.NET

AccessMaster PortalXpert

SafeGuard Enterprise Web Helpdesk. Version du produit : 6.1

Principales failles de sécurité des applications Web Principes, parades et bonnes pratiques de développement

27/11/12 Nature. SDK Python et Java pour le développement de services ACCORD Module(s)

Cours 14. Crypto. 2004, Marc-André Léger

Déploiement d'une application Visual Studio Lightswitch dans Windows Azure.

Business Sharepoint Contenu

Procédure d'installation complète de Click&Decide sur un serveur

Sage CRM. 7.2 Guide de Portail Client

Oauth : un protocole d'autorisation qui authentifie?

Web Front-End Installation Guide HOPEX V1R2-V1R3 FR. Révisé le : 17 août 2015 Créé le : 12 mars Olivier SCHIAVI

Windows Server Chapitre 3 : Le service d annuaire Active Directory: Concepts de base

Déployer une application Web avec WebMatrix et Ma Plateforme Web

Joomla! Création et administration d'un site web - Version numérique

Authentifications à W4 Engine en.net (SSO)

Gestion des Clés. Pr Belkhir Abdelkader. 10/04/2013 Pr BELKHIR Abdelkader

Sécurisez votre serveur Web Internet Information Services de Microsoft (MS IIS) avec un certificat numérique de thawte thawte thawte thawte thawte

LemonLDAP::NG / SAML2. Xavier GUIMARD (Gendarmerie Nationale) Clément OUDOT (Groupe LINAGORA)

Configuration de l'accès distant

HP ProtectTools Manuel de l'utilisateur

Guide de configuration pour accès au réseau Wifi sécurisé 802.1X

Le modèle de sécurité windows

LES ACCES ODBC AVEC LE SYSTEME SAS

CIBLE DE SECURITE CSPN DU PRODUIT PASS. (Product for Advanced SSO)

Manuel des logiciels de transferts de fichiers File Delivery Services

<Insert Picture Here> La GRC en temps de crise, difficile équilibre entre sentiment de sécurité et réduction des coûts

Tutoriel: Création d'un Web service en C++ avec WebContentC++Framework

Documentation de produit SAP Cloud for Customer (novembre 2013) Nouveautés de SAP Cloud for Customer pour les administrateurs

Service d'authentification LDAP et SSO avec CAS

Authentification unique Eurécia

Construire une application marketing Facebook sur la plateforme Windows Azure

Sauvegardes par Internet avec Rsync

Corrigé de l'atelier pratique du module 8 : Implémentation de la réplication

OASIS Date de publication

Sécurisation des architectures traditionnelles et des SOA

SQL Server Installation Center et SQL Server Management Studio

Flexible Identity. authentification multi-facteurs. authentification sans token. Version 1.0. Copyright Orange Business Services mai 2014.

Projet Viticulture - TP 3 : bases de données distantes BTS Services informatiques aux organisations

Table des matières 1 Accès distant sur Windows 2008 Server Introduction...2

Configuration Et Résolution Des Problèmes Des Services De Domaine Active Directory Windows Server Référence Cours : 6238B

INSTALLATION DE L APPLICATION DU CONTEXTE ITASTE

SafeGuard Enterprise Web Helpdesk. Version du produit : 5.60

API SMS HTTP REST. Intégrer facilement le service Envoyer SMS Pro avec votre application métier. Version : Révision : 03/09/2014 Page 1/31

Politique de Référencement Intersectorielle de Sécurité (PRIS)

Module 6 : Gestion de données à l'aide du système de fichiers NTFS

Documentation CAS à destination des éditeurs

Guide d'installation. Release Management pour Visual Studio 2013

Bee Ware. Cible de Sécurité CSPN. Validation Fonctionnelle Validation Fonctionnelle Bon pour application AMOA BEEWARE BEEWARE

1. Présentation de WPA et 802.1X

PDO : PHP Data Object 1/13

Guide de configuration de SQL Server pour BusinessObjects Planning

Aspects techniques : guide d interfaçage SSO

SafeGuard Easy Aide administrateur. Version du produit : 6

La sécurité dans les grilles

1 / Introduction. 2 / Gestion des comptes cpanel. Guide débuter avec WHM. 2.1Créer un package. 2.2Créer un compte cpanel

Paramètres WebConfig pour MOS Chorus

Rafraichissement conditionné d'une page en.net

L identité numérique. Risques, protection

Restriction sur matériels d impression

Pré-requis pour les serveurs Windows 2003, Windows 2008 R2 et Windows 2012

A. À propos des annuaires

Solutions Microsoft Identity and Access

Formateur : Jackie DAÖN

Sophos SafeGuard Disk Encryption, Sophos SafeGuard Easy Aide administrateur. Version du produit : 5.60

sshgate Patrick Guiran Chef de projet support

Protocoles utilisant des mécanismes d'authentification: TACACS+, RADIUS et Kerberos

contact@nqicorp.com - Web :

Journées MATHRICE "Dijon-Besançon" DIJON mars Projet MySafeKey Authentification par clé USB

contact@nqicorp.com - Web :

Manuel d'utilisation du client VPN Édition 1

SYNC FRAMEWORK AVEC SQLITE POUR APPLICATIONS WINDOWS STORE (WINRT) ET WINDOWS PHONE 8

L'AAA, késako? Bruno Bonfils, fr.org>, Novembre Sous ce terme d'apparence barbare est regroupé l'ensemble des concepts suivants :

Installation et utilisation d'un certificat

Transcription:

Mise en œuvre de la sécurité.net avec MS Visual Studio.NET 2005.NET Sécurité Avancée Jihene Benneri Imen Bou Salem INSAT, GL5 Plan Introduction Notion de base relatives à la sécurité Nouvelles Fonctionnalités desécurité de.net 2.0 Framework Sécurité d'accès au code Sécurité basée sur les rôles Cryptographie

Introduction De nos jours, les applications Web font l'objet de tentatives d'attaque. Si des utilisateurs inconnus peuvent y accéder, il est plus que probable que quelqu'un essayera d'y effectuer une opération non autorisée, voire nuisible. Les applications Web permettent aux utilisateurs d'accéder à une ressource centrale (le serveur Web) et via celui-ci, à d'autres ressources, telles que les serveurs de bases de données. Maîtriser et implémenter les mesures de sécurité appropriées pour protéger nos propres ressources. Les Bases de la sécurité La Non répudiation L intégrité des données L habilitation La confidentialité La disponibilité La traçabilité ou preuve

Notions de base Cryptographie : Transformation réversible de données en un format illisible. Symétrique : une seule clef. Asymétrique : double clefs. Solution hybride : échange de clefs. Hachage : conversion de données en un format non réversible. Signature Numérique = Hachage + Cryptage Plan Introduction Notion de base relatives à la sécurité Nouvelles Fonctionnalités desécurité de.net 2.0 Framework Sécurité d'accès au code Sécurité basée sur les rôles Cryptographie

Objectifs d ASP.NET 2.0 Augmenter la productivité Réduction du code par 70% Améliorer les outils Rendre possible de nouveaux scénarios Administration et Configuration Faciliter la configuration Séparer le développement Performances Intégrer les nouvelles architectures matérielles Les applications Web les plus rapides Nouvelle Architecture Briques fonctionnelles abstraites ASP.NET Building Block APIs Membership Role Manager Personalization Site Navigation Database Caching Management Implementation du modèle Provider Providers Windows SQL Server Access Autre

Nouvelle Architecture Nouveaux Contrôles (plus de 50) Security Data Navigation Web Parts Framework des fonctionnalités de page Master Pages Themes/Skins Localization API de briques logicielles Membership Role Manager Personalization Site Navigation Caching Management Nouveautés ASP.Net 2.0 Contrôles Contrôles de données Contrôles de Login Web Parts Page Framework Pages Master Thèmes et Skins Mobilité et Localisation Compilation Services et APIs Membres Plan de Sites Gestion des Membres Monitoring Profils Configuration

Nouveautés sur la sécurité Service de gestion d utilisateur Gérer les utilisateurs et la sécurité Provider de stockage ouvert (sql, access, autre) Contrôles spécifiques de login Création, connexion, mot de passe oublié, Gestion des rôles Combiner l authentification et les rôles sans écrire de code Nouveautés sur la sécurité Extension des facilités d authentification Provider Pattern utilisé pour l abstraction de données Membership API de gestion et stockage des utilisateurs Nombreux contrôles simplifiant l utilisation de la brique Membership RoleManager API de gestion des rôles et droits utilisateurs Administration Site Web d administration de l application

Sécurité SQL Server 2005 Plan Introduction Notion de base relatives à la sécurité Nouvelles Fonctionnalités desécurité de.net 2.0 Framework Sécurité d'accès au code Sécurité basée sur les rôles Cryptographie

Sécurité de l'exécution managée.net Les fonctionnalités de sécurité de.net Vous aident à développer des applications sûres Comprennent de nombreux composants, dont : Vérification de type Gestionnaire d'exceptions Moteur de sécurité Complètent la sécurité de Windows Système de type sécurisé Un code de type sécurisé : Empêche le débordement de mémoire tampon Limite l'accès à des emplacements de mémoire autorisés Permet à plusieurs assemblage de s'exécuter dans le même processus Les domaines d'application permettent : AppDomain : Notion de sous processus De meilleures performances Une plus grande sécurité du code par isolation

Protection contre le débordement de mémoire tampon La vérification du type empêche les remplacements arbitraires dans la mémoire Les objets de classe System.String.NET sont immuables La classe System.Text.StringBuilder.NET vérifie les limites du tampon Assemblages avec nom fort Les noms forts sont Des identificateurs uniques (contenant une clé publique) Utilisés pour signer numériquement des assemblys sn k Ma_Clé_Complète.snk Les assemblages avec nom fort Empêchent la falsification Confirment l'identité de l'éditeur de l'assembly

Assemblies et Signature [assembly: AssemblyKeyFile(@"Cle.snk")] Metadonnées Fichier Haché Valeur de hachage Signé avec La clé privée Signature Numérique Clé publique En-Tête CLR Signature numérique Intégré dans le fichier Signature d une Assembly

Le stockage isolé Fournit un système de fichiers virtuel Met en œuvre l'isolation du système de fichiers en fonction : De l'identité de l'application De l'identité de l'utilisateur IsolatedStorageFile isostore = IsolatedStorageFile.GetUserStoreForAssembly(); Sécurité basée sur les preuves Les preuves Sont évaluées au chargement d'un assembly Servent à déterminer les autorisations de l'assembly Peuvent comprendre les éléments suivants de l'assembly : Informations de nom fort URL Zone Signature Authenticode

Stratégies de sécurité Entité de sécurité Stratégie Description Définie par les administrateurs Appliquée au moment de l'exécution Simplifie l'administration Contient des autorisations Contient des groupes de codes Groupe de codes Associe des composants similaires Basé sur les preuves Lié à un ou plusieurs jeux d'autorisations Jeu d'autorisations Est un ensemble d'autorisations accordées Parcours de pile et vérification de la sécurité Pile des appels AssemblyA Accorder : Execute Appel à ReadFile Votre_AssemblyB Accorder : ReadFile 1. Un assemblya demande l'accès à une méthode de votre assembly 2. Votre assemblyb transmet la demande à un assembly.net Framework 3. Le système de sécurité vérifie que les appelants de la pile disposent des autorisations requises 4. Le système de sécurité accorde l'accès ou lève une exception Appel à ReadFile Assembly.NET Framework Accorder : ReadFile Demande d'autorisation Système de sécurité Exception de sécurité Accorder l'accès? Accès refusé

Types de vérifications de sécurité Les vérifications de sécurité impératives Créent des objets Permission Appellent des méthodes Permission Les vérifications de sécurité déclaratives Utilisent des attributs Permission S'appliquent à des méthodes ou à des classes Plan Introduction Notion de base relatives à la sécurité Nouvelles Fonctionnalités desécurité de.net 2.0 Framework Sécurité d'accès au code Sécurité basée sur les rôles Cryptographie

Authentification et Autorisation L'authentification demande : «Qui êtes-vous?» «Êtes-vous vraiment la personne que vous prétendez être?» L'autorisation demande : «Êtes-vous autorisé à?» Identités et entités desécurité Une identité contient des informations sur un utilisateur, comme son nom de connexion Une entité de sécurité contient des informations de rôle sur un utilisateur ou un ordinateur.net Framework propose : Les objets WindowsIdentity et WindowsPrincipal Les objets GenericIdentity et GenericPrincipal

Création d'identités et d'entités de sécurité Windows Utiliser les objets WindowsIdentity et WindowsPrincipal : WindowsIdentity mon_ident = WindowsIdentity.GetCurrent(); WindowsPrincipal mon_ent = new WindowsPrincipal(mon_Ident); Création d'identités et d'entités de sécurité génériques Créer un objet GenericIdentity et un objet GenericPrincipal GenericIdentity mon_ident = new GenericIdentity("Utilisateur1"); string[] roles = {"Directeur", "Caissier"}; GenericPrincipal mon_ent = new GenericPrincipal(mon_Ident, roles); Attacher l'objet GenericPrincipal au thread actuel System.Threading.Thread.CurrentPrincipal = mon_ent;

Réalisation de vérifications de sécurité Utiliser les membres identité et entité dans du code Par exemple, en utilisant la propriété Name de l'objet Identity pour vérifier le nom de connexion de l'utilisateur if (String.Compare(mon_Ent.Identity.Name, "DOMAINE\\Fred", true)==0) { // Effectuer une action } Par exemple, en utilisant la méthode IsInRole de l'objet Principal pour vérifier l'appartenance à un rôle if (mon_ent.isinrole("builtin\\administrateurs")) { // Effectuer une action } Vérifications de sécurité impératives et déclaratives Utiliser des autorisations pour effectuer des vérifications de sécurité basées sur les rôles Vérifications impératives PrincipalPermission aut_ent = new PrincipalPermission("Caissier", Directeur, true); try { aut_ent.demand(); //Les éléments ci-dessus correspondent-ils à ceux de l'entité de sécurité active? } Vérifications déclaratives [PrincipalPermission(SecurityAction.Demand, Role="Caissier", Authenticated=true)]

Service des gestion des membres Services pour gérer les utilisateurs : En utilisant le site d administration A partir du code Les données relatives aux membres peuvent être stockées dans différents providers : Services pour gérer les utilisateurs : Base de données SQL Base de données Access Schéma services de gestion des membres Contrôles Login LoginStatus LoginView API de gestion des membres Membership MembershipUser Providers pour la gestion des membres SqlMembershipProvider Données membres SQL Server

Classe Membership Fournit des méthodes pour effectuer les tâches les plus importantes pour la gestion des utilisateurs : Création & suppression des utilisateurs Récupération d information sur les utilisateurs Génération de mots de passe Validation des credentials (login/mot de passe) des utilisateurs Quelques méthodes de la classe Membership CreateUser : Crée un utilisateur dans le data store DeleteUser : Supprime un utilisateur du data store GeneratePassword : Génère un mot de passe GetAllUsers : Retourne la liste des utilisateurs GetUser : Retourne les informations relatives à un utilisateur UpdateUser : Met à jour les informations relatives à un utilisateur ValidateUser : Authentifie et Valide le Login/Mot de passe d un utilisateur

Création d utilisateur try { Membership.CreateUser ( alitah", dimadima", alitah@microsoft.com"); } catch (MembershipCreateUserException e) { // Find out why CreateUser failed switch (e.statuscode) { } case MembershipCreateStatus.DuplicateUsername:... case MembershipCreateStatus.DuplicateEmail:... case MembershipCreateStatus.InvalidPassword:... default:... } Authentification if (Membership.ValidateUser (UserName.Text, Password.Text)) FormsAuthentication.RedirectFromLoginPage (UserName.Text, RememberMe.Checked); Pour activer un service d'authentification ASP.NET, on configure l'élément <authentication> dans le fichier de configuration de l'application. <configuration> <system.web> <authentication mode="forms"/> </system.web> </configuration>

Classe MembershipUser Représente les utilisateurs inscrits dans le data store Inclut de nombreuses propriétés pour récupérer/modifier les attributs des utilisateurs Inclut des méthodes pour récupérer/modifier les mots de passe Propriétés : CreationDate : Date de création de l utilisateur Email : Email de l'utilisateur LastLoginDate : Date de dernière connexion Quelques méthodes de MembershipUser ChangePassword : Modifie le mot de passe de l utilisateur ChangePassword-QuestionAndAnswer : Modifie la question et réponse pour Retrouver mot de passe GetPassword : Récupère le mot de passe ResetPassword : Régénère le mot de passe

Suspension des privilèges pour un Login if (Membership.ValidateUser (UserName.Text, Password.Text)) { MembershipUser user = Membership.GetUser (UserName.Text); user.comment = "0"; // Reset the count of failed login attempts RedirectFromLoginPage (UserName.Text, RememberMe.Checked); } else { MembershipUser user = Membership.GetUser (UserName.Text); if (user!= null) { // Get a count of consecutive failed login attempts string count = Convert.ToInt32 (user.comment) + 1; // If the count equals or exceeds 5, suspend login privileges if (count >= 5) user.isapproved = false; } } // Update the count of consecutive failed login attempts user.comment = count.tostring (); Providers pour la classe Membership Le Provider est l interface entre les services de gestion des membres et le data store 2 providers en natif (dans les beta) : AccessMembershipProvider (Access) SqlMembershipProvider (SQL Server) Vous pouvez utiliser vos propres providers et vos propres data stores Utilisation du Provider SQL Server : <configuration> <system.web> <membership defaultprovider= "AspNetSqlProvider" /> </system.web> </configuration>

Configuration du Provider Le provider est configurable : Comment stocker les mots de passe (en clair, cryptés, ) Modification du Provider : Autoriser la récupération des mots de passe? <membership> Combien d adresses mail par utilisateur? <providers> <remove name="aspnetsqlprovider" /> <add name="aspnetsqlprovider" type="system.web.security.sqlmembershipprovider, System.Web,..." connectionstringname="remotesqlserver" enablepasswordretrieval="false" enablepasswordreset="true" requiresquestionandanswer="false" applicationname="/" requiresuniqueemail="false" passwordformat="hashed" description="stores and retrieves membership data" /> </providers> </membership> Configurable à partir des fichiers de config Contrôles de Login ChangePassword : Contrôle pour changement de mot de passe CreateUserWizard : Contrôle pour créer un utilisateur Login : Contrôle pour l authentification LoginName : Contrôle pour afficher le nom de l utilisateur LoginStatus : Contrôle pour afficher le statut de connexion PasswordRecovery : Contrôle pour récupérer le mot de passe

Le contrôle d authentification Contrôle pour permettre aux utilisateurs de se loger Personnalisation du contrôle d authentification : Peut s intégrer avec les services de gestion des membres : appelle la méthode ValidateUser <asp:login ID="LoginControl" RunAt="server" Utilise CreateUserText="Create les RequiredFieldValidators new account" CreateUserUrl="CreateUser.aspx" DisplayRememberMe="false" Utilisation du contrôle d authentification : PasswordRecoveryText="Forgotten your password?" PasswordRecoveryUrl="RecoverPassword.aspx" <html> SubmitButtonText="Do It!" <body> TitleText="Please Log In" <form runat="server"> /> <asp:login RunAt="server" /> </form> </body> </html> Quelques événements du contrôle d authentification Authenticate : S exécute quand l utilisateur clique sur le bouton Login LoggedIn : S exécute quand l utilisateur a été authentifié LoginError : S exécute quand le login/mot de passe est incorrect

Validation du format des credentials <asp:login ID="LoginControl" RunAt="server" OnLoggingIn="OnValidateCredentials"... />... <script language="c#" runat="server"> void OnValidateCredentials (Object sender, CancelEventArgs e) { if (!Regex.IsMatch (LoginControl.UserName, "[a-za-z0-9]{6,}")!regex.ismatch (LoginControl.Password, "[a-za-z0-9]{8,}")) { LoginControl.InstructionText = "User names and passwords " + "must contain letters and numbers only and must be at " + "least 6 and 8 characters long, respectively"; e.cancel = true; } } </script> Services de gestion de Rôles Deux façons de gérer les Rôles : Via l outil d Administration Via le code Les services contiennent des méthodes pour ajouter/modifier/supprimer les Rôles Associe un utilisateur à son Rôle à chaque connexion Les informations sont gérées via un provider (les données peuvent être stockées dans le format de data store voulu)

Schéma de gestion des Rôles Contrôles Login LoginStatus LoginView API de gestion de Rôles Roles Providers de gestion de Rôles SqlRoleProvider Données de Rôles SQL Server La classe Roles Fournit des méthodes pour effectuer les tâches les plus importantes pour la gestion des Rôles : Création & suppression des Rôles Récupération d information sur les Rôles Ajout d utilisateurs aux Rôles Suppression d utilisateurs des Rôles Quelques méthodes de gestion des Rôles : AddUserToRole : Ajoute un utilisateur à un Rôle CreateRole : Crée un Rôle GetRolesForUser : Retourne la liste des Rôles auxquels un utilisateur appartient IsUserInRole : Indique si l utilisateur appartient à un Rôle RemoveUserFromRole : Supprime un utilisateur d un Rôle

Création de rôles Créer un nouveau Rôle if (!Roles.RoleExists ("Développeurs")) { Roles.CreateRole ("Développeurs"); } Ajout d un utilisateur à un Rôle Autoriser le gestionnaire de Rôle La gestion des Rôles est désactivée par défaut Configurable via le fichier de config string name = Membership.GetUser (). Username; Roles.AddUserToRole (name, "Développeurs"); <configuration> <system.web> <rolemanager enabled="true" /> </system.web> </configuration> La mise en cache des données des Rôles Le gestionnaire de Rôles peut mettre les données en cache dans les cookies : Moins d accès au data store Meilleures performances Configurable via les attributs du gestionnaire des Rôles (fichier Autorisation de config) de ou modifiable la mise en via cache le code des : données des Rôles : Mise en cache des données dans les cookies <configuration> Crypter les <system.web> données Durée de validité <rolemanager des données enabled="true" du cache cacherolesincookie="true" /> <!-- Other rolemanager attributes (and their defaults) include: cookiename=".aspxroles // Cookie name cookietimeout="30" // Cookie lifetime cookiepath="/" // Cookie path cookierequiressl="false" // Restrict cookie to SSL? cookieslidingexpiration="true" // Renew expiring cookies? createpersistentcookie="false" // Issue persistent cookie? cookieprotection="all" /> // Cookie protection level --> </system.web> </configuration>

Providers de gestion des Rôles Providers par défaut : SqlRoleProvider (SQL Server) WindowsTokenRoleProvider (Windows) Possibilité d utiliser d autres providers pour vos propres data stores Utilisation du Provider SQL Server <configuration> <system.web> <rolemanager enabled="true" defaultprovider= "AspNetSqlRoleProvider" /> </system.web> </configuration> Sécurité basée sur les rôles

Plan Introduction Notion de base relatives à la sécurité Nouvelles Fonctionnalités desécurité de.net 2.0 Framework Sécurité d'accès au code Sécurité basée sur les rôles Cryptographie Rappels concernant la cryptographie Terme de cryptographie Cryptage symétrique Cryptage asymétrique Hachage Signature numérique Description Cryptage et décryptage des données avec une clé secrète Cryptage et décryptage des données avec une paire clé publique/clé privée Mappage d'une longue chaîne de données à une chaîne de données courte, de taille fixe Hachagededonnées et cryptage de la valeur de hachage avec une clé privée.net Framework fournit des classes qui implémentent ces opérations

Cryptographie et Framework.NET Plusieurs namespaces.net consacrés à la cryptographie System.Security.Cryptography Fournis les services cryptographiques : Encodage/Décodage sécurisé des données hashing, random number, message authentication. System.Security.Cryptography.X509Certificates Authenticode X.509 v.3 certificate. Le certificat est signé avec une «private key» qui identifie explicitement et de manière unique le propriétaire du certificat. System.Security.Cryptography.Xml Réservé a données XML Permet de signer les «objets» XML avec une signature digitale Signature de données et vérification de signatures Action Signature des données Vérification de signatures Procédures Hacher les données Crypter la valeur de hachage avec une clé privée Décrypter la signature en utilisant la clé publique de l'expéditeur Hacher les données Comparer la signature décryptée avec la valeur de hachage

Résumé de la session Notion de base relatives à la sécurité Nouvelles Fonctionnalités de sécurité de.net 2.0 Framework Sécurité d'accès au code Sécurité basée sur les rôles Cryptographie Étapes suivantes 1. Être informé sur la sécurité S'inscrire aux bulletins de sécurité : http://www.microsoft.com/security/security_bulletins/alerts2.asp (en anglais) Obtenir l'aide la plus récente de Microsoft sur la sécurité : http://www.microsoft.com/france/securite/default.asp 2. Obtenir des activités de formation supplémentaires sur la sécurité Trouver des séminaires de formation : http://www.microsoft.com/france/events/default.asp Trouver un centre de formation local agréé Microsoft (CTEC) pour des cours pratiques : http://www.microsoft.com/france/formation/centres/recherche.asp

Ressources Livre : Maîtrisez C# [Karli Walson] http://www.labo-dotnet.com/news/default.aspx http://www.aspmagazine.com/zactus/go.html?id=10766 http://www.dotnetfr.org/article.php3?sid=1229&mode=thread&order=0 &thold=0 liens : http://www.dotnet-fr.org/links.php3 http://fr.gotdotnet.com/quickstart/ http://www.microsoft.com/france/securite/evenement s/salonsconferences/journeessecurite/pg04mai.aspx http://www.aspnetpop3.com/ Pour plus d'informations Site Microsoft sur la sécurité (tout public) http://www.microsoft.com/france/securite/default.asp Site MSDN sur la sécurité (développeurs) http://msdn.microsoft.com/security (en anglais) Site TechNet sur la sécurité (informaticiens) http://www.microsoft.com/france/technet/themes/ secur/default.asp

Annexes

Génération des clés et Cryptage Asymétriques Symétriques Décryptage Symétrique Asymétrique

Signature digitale et.net Signature d un HashValue Verification de la signature Hash value et vérification Création du Hash Value