La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

Sécurisez vos applications à l'aide de Microsoft.NET Framework Eric Mittelette & Eric Vernié & Pascal Belaud Relation Technique Développeurs Microsoft.

Présentations similaires


Présentation au sujet: "Sécurisez vos applications à l'aide de Microsoft.NET Framework Eric Mittelette & Eric Vernié & Pascal Belaud Relation Technique Développeurs Microsoft."— Transcription de la présentation:

1 Sécurisez vos applications à l'aide de Microsoft.NET Framework Eric Mittelette & Eric Vernié & Pascal Belaud Relation Technique Développeurs Microsoft France

2 Ce que nous allons é tudier Fonctionnalit é s de s é curit é du.NET Framework En quoi une code.NET est plus s é curis é par d é faut qu un code natif S é curit é bas é e sur les rôles (Role Based) Gestion de rôles applicatifs bas é s ou non sur le log-on Windows S é curit é d'acc è s au code (CAS) V é rification de « qui fait quoi » dans le code Cryptographie En quoi le.NET Framework simplifie t il les codes n é cessitant de la cryptographie. SQL Server 2005 : quoi de neuf ?

3 Programme Fonctionnalit é s de s é curit é de.NET Framework S é curit é bas é e sur les rôles S é curit é d'acc è s au code Cryptographie

4 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 sans la remplacer la s é curit é de Windows

5 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

6 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 void CopyString (string src) { stringDest = src; }

7 Interception des erreurs arithm é tiques L'interception des erreurs arithm é tiques est activ é e en utilisant : Le mot cl é checked Les param è tres du projet byte b=0; while (true) { Console.WriteLine (b); checked { b++; } }

8 Vérification du code Possibilité de vérifier son code : Option du compilateur : Csc / checked[+;-] Instruction checked/unchecked Opérateur checked(….)

9 Saisie infos Fabrique de Classe Validation mot de passe BD Chargement des rôles Comment éviter la saisie du mot de passe en clair ? Affecter les politiques de sécurité en fonction des rôles Comment faire confiance aux dlls chargées dynamiquement ? Comment éviter que nimporte qui appel ma fabrique de classe ? Sous quelle forme dois-je stocker le mot de passe ? Sous quelle forme dois-je stocker la chaîne de connexion ? Architecture simplifiée de la démo Quest-ce qui peut me garantir la sécurité daccès de mes objets de base de données ?

10 D é monstration 1 S é curit é des types Buffer overrun vs.NET Gestion des secrets vs string

11 Assemblages avec nom fort Les noms forts sont Des identificateurs uniques (contenant une cl é publique) Utilis é s pour signer num é riquement des assemblys Les assemblages avec nom fort Empêchent la falsification Confirment l'identit é de l' é diteur de l'assembly Autorisent les composants côte à côte sn –k Ma_Clé_Complète.snk

12 Assemblies et Signature [assembly: IL Metadonnées Manifeste En-Tête CLR Signature numérique RSA Clé publique Fichier PE Haché Valeur de hachage Signé avec La clé privée Signature Numérique RSA Intégré dans le fichier PE

13 Le stockage isol é Fournit un syst è me de fichiers virtuel Autorise les quotas 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();

14 Programme Fonctionnalit é s de s é curit é de.NET Framework S é curit é bas é e sur les rôles S é curit é d'acc è s au code Cryptographie

15 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 é à … ? »

16 Identit é s et entit é s de s é 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

17 Cr é ation d'identit é s et d'entit é s de s é curit é Windows Utiliser les objets WindowsIdentity et WindowsPrincipal pour : Une validation Plusieurs validations WindowsIdentity mon_Ident = WindowsIdentity.GetCurrent(); WindowsPrincipal mon_Ent = new WindowsPrincipal(mon_Ident); AppDomain.CurrentDomain.SetPrincipalPolicy(PrincipalPolicy.WindowsPrincipal); WindowsPrincipal mon_Ent = System.Threading.Thread.CurrentPrincipal;

18 Cr é ation d'identit é s et d'entit é s de s é curit é g é n é riques Cr é er un objet GenericIdentity et un objet GenericPrincipal Attacher l'objet GenericPrincipal au thread actuel GenericIdentity mon_Ident = new GenericIdentity("Utilisateur1"); string[] roles = {"Directeur", "Caissier"}; GenericPrincipal mon_Ent = new GenericPrincipal(mon_Ident, roles); new GenericPrincipal(mon_Ident, roles); System.Threading.Thread.CurrentPrincipal = mon_Ent;

19 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 Par exemple, en utilisant la m é thode IsInRole de l'objet Principal pour v é rifier l'appartenance à un rôle if (String.Compare(mon_Ent.Identity.Name, "DOMAINE\\Fred", true)==0) true)==0){ // Effectuer une action // Effectuer une action} if (mon_Ent.IsInRole("BUILTIN\\Administrateurs")) { // Effectuer une action // Effectuer une action}

20 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 ? aut_Ent.Demand(); //Les éléments ci-dessus correspondent-ils à ceux de l'entité de sécurité active ?} [PrincipalPermission(SecurityAction.Demand, Role="Caissier", Authenticated=true)] V é rifications d é claratives

21 D é monstration 2 S é curit é bas é e sur les rôles

22 Programme Fonctionnalit é s de s é curit é de.NET Framework S é curit é bas é e sur les rôles S é curit é d'acc è s au code Cryptographie

23 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 URLZone Signature Authenticode

24 Strat é gies de s é curit é Entit é de s é curit é Description Strat é gie 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

25 Parcours de pile et vérification de la sécurité Pile des appels Système de sécurité Votre_AssemblyB AssemblyA Assembly.NET Framework Appel à ReadFile Accorder : Execute 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 Accorder : ReadFile Demande d'autorisation Exception de sécurité Accès refusé Accorder l'accès ?

26 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 Les v é rifications de s é curit é de substitution Utilisent la m é thode Assert Empêchent le parcours de la pile

27 Demandes d'autorisations Utilis é es par les d é veloppeurs pour indiquer les autorisations requises Impl é ment é es sous forme d'attributs Empêchent le chargement d'un assembly en cas d'absence des autorisations minimales //Je ne m'exécuterai que si je peux appeler du code non managé [assembly:SecurityPermission (SecurityAction.RequestMinimum, (SecurityAction.RequestMinimum, UnmanagedCode=true)] UnmanagedCode=true)]

28 D é monstration 3 S é curit é d'acc è s au code R é alisation de v é rifications de s é curit é Demandes d'autorisations

29 Programme Fonctionnalit é s de s é curit é de.NET Framework S é curit é bas é e sur les rôles S é curit é d'acc è s au code Cryptographie

30 Rappels concernant la cryptographie Terme de cryptographie Description Cryptage sym é trique Cryptage et d é cryptage des donn é es avec une cl é secr è te Cryptage asym é trique Cryptage et d é cryptage des donn é es avec une paire cl é publique/cl é priv é e Hachage Mappage d'une longue cha î ne de donn é es à une cha î ne de donn é es courte, de taille fixe Signature num é rique Hachage de donn é es et cryptage de la valeur de hachage avec une cl é priv é e.NET Framework fournit des classes qui impl é mentent ces op é rations

31 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

32 Model objet du namespace Cryptography Algorithme Type : (abstract class) Algorithmes Symétrique et Hash Algorithme Class : (abstract class) RC2, SHA1… Implémentation des « Algorithmes Class » RC2CryptoServiceProvider, SHA1Managed… Grâce a ce « design pattern » il est possible de faire ses propres ajouts/implémentations aux algorithmes aux différents niveaux. Les algorithmes symétriques et de hash sont implémentés « stream- oriented » La Configuration Cryptographique Permet de résoudre les implémentations spécifiques de certains algorithmes Cryptographie et Framework.NET

33 Utilisation d'algorithmes sym é triques Choisir un algorithme TripleDESCryptoServiceProviderRijndaelManaged G é n é rer une cl é secr è te Utiliser la même cl é secr è te pour crypter et d é crypter les donn é es : FileStreamMemoryStreamNetworkStream

34 Utilisation d'algorithmes asym é triques Choisir un algorithme RSACryptoServiceProviderDSACryptoServiceProvider G é n é rer une paire cl é priv é e/cl é publique Crypter ou d é crypter les donn é es

35 Signature de donn é es et v é rification de signatures Action Proc é dures Signature des donn é es Hacher les données Crypter la valeur de hachage avec une clé privée V é rification de signatures 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

36 DPAPI Data Protection API API Windows de cryptage décryptage Wrapper.NET 1.0 et 1.1 nécessaire Accessible dans la CLR 2.0 :

37 Crytography Application Block y/en-us/dnpag2/html/crypto1.asp Cryptography Application Block : Réduit le temps de développement sur le code standard de cryptographie Aide à maintenir les bonnes pratiques en terme de cryptographie Apprentissage aisé car le modèle darchitecture est constant quelque soit les fonctionnalités. Fournis une implémentation standard de lutilisation des techniques de cryptographie. Code extensible; supportant daddinitionnelles implémentation et providers de cryptographie.

38 D é monstration 4 Cryptage.NET Framework Cryptage des donn é es PAG Security

39 Programme Fonctionnalit é s de s é curit é de.NET Framework S é curit é bas é e sur les rôles S é curit é d'acc è s au code Cryptographie SQL Server 2005 : quoi de neuf ?

40 SQL Server 2005 Conférence SQL DAYS 2005 Paris, le 9 juin 2005 Marseille, le 14 juin 2005 Toulouse, le 16 juin 2005 Une journée gratuite

41 D é monstration 5 SQL Server 2005 Execution Context Encryption.NET Assemblies

42 R é sum é de la session Fonctionnalit é s de s é curit é de.NET Framework S é curit é d'acc è s au code S é curit é bas é e sur les rôles Cryptographie SQL Server 2005

43 É tapes suivantes Être inform é sur la s é curit é Être inform é sur la s é curit é S'inscrire aux bulletins de s é curit é : S'inscrire aux bulletins de s é curit é : (en anglais) Obtenir l'aide la plus r é cente de Microsoft sur la s é curit é : Obtenir l'aide la plus r é cente de Microsoft sur la s é curit é : Obtenir des activit é s de formation suppl é mentaires sur la s é curit é Obtenir des activit é s de formation suppl é mentaires sur la s é curit é Trouver des s é minaires de formation : Trouver des s é minaires de formation : Trouver un centre de formation local agr éé Microsoft (CTEC) pour des cours pratiques : Trouver un centre de formation local agr éé Microsoft (CTEC) pour des cours pratiques :

44 Pour plus d'informations Site Microsoft sur la s é curit é (tout public) p p Site MSDN sur la s é curit é (d é veloppeurs) (en anglais) Site TechNet sur la s é curit é (informaticiens) secur/default.asp secur/default.asp

45 Questions et r é ponses

46

47 Saisie infos Fabrique de Classe Validation mot de passe Chargement des rôles Affecter les politiques de sécurité BD Comment éviter la saisie du mot de passe en claire ? Comment faire confiance dans les dlls chargées dynamiquement ? Comment faire confiance qui appel ma fabrique de classe ? Sous quelle forme dois-je stocker le mot de passe ? Sous quelle forme dois-je stocker la chaînes de connexion ?


Télécharger ppt "Sécurisez vos applications à l'aide de Microsoft.NET Framework Eric Mittelette & Eric Vernié & Pascal Belaud Relation Technique Développeurs Microsoft."

Présentations similaires


Annonces Google