La sécurité du Framework Microsoft .NET

Date :29 Juin 2005

Publication: Article

Faisant suite à l'article d'un précédent Bulletin (bulletin n°57 - juin 2002) sur Solaris 9 et la sécurité, cet article présente la sécurité telle qu'envisagée par Microsoft pour son architecture .NET (rappelons que Solaris 9 se veut concurrent de Microsoft .NET).

La plate-forme Microsoft .NET est la plate-forme proposée par Microsoft pour développer ses services Web XML (http://www.microsoft.com/net/). Les services Web XML sont des applications écrites dans ce langage, pouvant être utilisées comme des blocs pour construire des fonctions spécifiques.

Elle est composée de plusieurs technologies :

  • Les clients "Smart" : applications permettant à des clients d'utiliser des services XML.

  • Les services Web XML : applications écrites en XML, pouvant être combinées à d'autres services XML ou directement utilisées par les clients "Smart".

  • Les serveurs : serveurs Windows 2000 et .NET Enterprise permettant de déployer les services XML.

  • Les outils de développement : Microsoft Visual Studio .NET et Microsoft .NET Framework.

Microsoft .NET Framework :

Le Framework .NET est l'outil de base pour les technologies de développement .NET (comme Microsoft Visual Studio), permettant de déployer les services Web XML, les applications Web standard et les clients "Smart".

Il permet aux développeurs, administrateurs et utilisateurs d'implémenter les mécanismes de sécurité suivants :

  • "Role-based security" : remplit les fonctions d'authentification et d'autorisation des utilisateurs.

  • "Evidence-based security" : permet aux administrateurs d'attribuer certaines permissions à un code donné, selon une politique donnée et selon les attributs de ce code.

  • "Code access security" (CAS) : contrôle que le code n'outrepasse pas les permissions qui lui sont accordées.

  • Processus de vérification : vise à empêcher les erreurs de programmation classiques, pouvant entraîner des accès mémoire non autorisés et des débordements de pile.

  • Cryptographie : inclut les fonctions de cryptographie standard : chiffrement, signatures numériques, hachage et génération de nombres aléatoires.

  • Domaines d'application : permet de faire exécuter le code dans un certain domaine d'application, avec la politique de sécurité qui s'y applique, en l'empêchant d'accéder à des zones mémoire arbitraires. Habituellement, les systèmes d'exploitation isolent les applications en exécutant chaque application dans un processus séparé, ce qui peut diminuer les performances. Le Framework .NET permet à un seul processus de contenir plusieurs domaines d'application, sans que le code s'exécutant dans un domaine donné n'interfère avec d'autres domaines de ce même processus.

Global XML Web Services Architecture (GXA) :

Pour faire face au développement des services Web XML, Microsoft a décidé de concevoir un ensemble de spécifications, appelé Global XML Web Services Architecture (GXA).

Dans le cadre de cette architecture, Microsoft a travaillé conjointement avec IBM et VeriSign pour spécifier un modèle de sécurité pour les services Web : "WS-Security" (Web Services - Security). Ce modèle définit les mécanismes permettant d'implémenter les notions d'intégrité et de confidentialité dans les applications Web. Parmi les spécifications proposées, on peut citer "WS-Policy", "WS-Trust", "WS-Privacy", "WS-Secure Conversation", "WS-Federation", "WS-Authorization".

Microsoft, IBM et VeriSign souhaitent standardiser ce modèle et le faire implémenter par différents distributeurs.

Récentes vulnérabilités affectant l'architecture .NET :

Des failles de sécurité ont déjà été découvertes dans l'architecture .NET, avant et après sa sortie officielle (début 2002) :

Pour plus d'information :