Sécurité d'accès du code

De nos jours, du fait d'une interconnexion extrême, les systèmes informatiques sont fréquemment exposés à du code provenant de diverses sources parfois inconnues. Du code peut être attaché à un message électronique, contenu dans des documents ou téléchargé via Internet. Malheureusement, de nombreux utilisateurs d'ordinateurs ont personnellement fait l'expérience de code mobile malveillant, y compris de virus et de vers, qui peuvent endommager ou détruire des données et coûter du temps et de l'argent.

La plupart des mécanismes de sécurité courants accordent des droits aux utilisateurs en fonction de leurs informations d'identification de connexion (généralement un mot de passe) et limitent les ressources (souvent des répertoires et fichiers) auxquelles ils peuvent accéder. Cependant, cette approche ne parvient pas à répondre à plusieurs questions : les utilisateurs peuvent obtenir du code provenant de nombreuses sources dont certaines peuvent ne pas être fiables, le code peut contenir des bogues ou des vulnérabilités qui permettent à du code nuisible de l'exploiter et le code fait parfois des choses dont l'utilisateur n'a pas conscience. Les systèmes informatiques peuvent donc être endommagés et des données confidentielles peuvent être divulguées si des utilisateurs prudents et dignes de confiance exécutent un logiciel malveillant ou rempli d'erreurs. La plupart des mécanismes de sécurité des systèmes d'exploitation exigent que chaque partie du code ait un niveau de confiance suffisant afin de s'exécuter, sauf peut-être pour les scripts d'une page Web. Par conséquent, il est encore besoin d'un mécanisme de sécurité largement applicable qui permette à du code provenant d'un système informatique de s'exécuter en toute sécurité sur un autre système, même s'il n'existe pas de relations de confiance entre les systèmes.

Pour aider à protéger les systèmes informatiques contre du code mobile malveillant, pour permettre à du code d'origine inconnue de s'exécuter en toute sécurité et pour éviter que du code ayant un niveau de confiance élevé ne compromette la sécurité de manière intentionnelle ou accidentelle, le .NET Framework fournit un mécanisme de sécurité appelé sécurité d'accès du code. La sécurité d'accès du code permet au code d'avoir un niveau de confiance à différents degrés, en fonction de son origine et d'autres aspects de son identité. La sécurité d'accès du code applique aussi différents niveaux de confiance au code, ce qui réduit la quantité de code dont le niveau de confiance doit être suffisant pour s'exécuter. L'utilisation de la sécurité d'accès du code peut diminuer la probabilité que votre code soit utilisé de manière abusive par du code malveillant ou rempli d'erreurs. Elle peut réduire votre responsabilité puisque vous pouvez spécifier l'ensemble des opérations que votre code est autorisé à exécuter ainsi que celles qu'il ne doit jamais être autorisé à effectuer. La sécurité d'accès du code peut aussi aider à réduire les dommages qui peuvent résulter de la mise en danger de la sécurité dans votre code.

Tout le code managé qui cible le Common Language Runtime bénéficie de la sécurité d'accès du code, même si ce code ne fait aucun appel de sécurité d'accès du code. Cependant, toutes les applications doivent faire des demandes d'accès du code, comme cela est décrit dans Notions fondamentales de la sécurité d'accès du code.

Dans cette section

Rubriques connexes

  • Outils de sécurité
    Décrit les outils utilisés pour implémenter et gérer le système de sécurité .NET Framework.