Partager via


Stockage des informations sensibles à l'aide d'ASP.NET

Mise à jour : novembre 2007

Dans une application ASP.NET, vous êtes fréquemment tenus d'utiliser des informations très sensibles. Par exemple, vous pouvez devoir utiliser un ID d'utilisateur et un mot de passe pour vous connecter à une base de données ou stocker des ID d'utilisateur et des mots de passe utilisés par les clients pour accéder à votre application. Même si vous pouvez utiliser Secure Sockets Layer pour chiffrer les informations échangées sur le réseau, elles doivent également être protégées lorsqu'elles sont stockées sur le serveur et sur le client. Cette rubrique fournit des indications générales relatives au stockage des informations sensibles.

Remarque :

Pour plus d'informations sur le stockage des informations sensibles, consultez Improving Web Application Security: Threats and Countermeasures sur le site Web de MSDN.

Stockage minimal d'informations sensibles

Le meilleur moyen d'éviter d'exposer des informations sensibles dans une application est ne pas les stocker. Limitez les emplacements de stockage des informations sensibles. Évitez de stocker des informations sensibles pour votre application dans un cookie ou un contrôle qui est rendu persistant dans le navigateur et qui exposerait les informations sensibles aux clients de votre application. Évitez de stocker des informations sensibles dans votre logique d'application. Récupérez plutôt les informations sensibles d'un emplacement de configuration sécurisé ou du client.

Chiffrement des informations sensibles

Lorsque vous stockez des informations sensibles, évitez de les stocker dans du texte explicite ou dans un format facilement décodé, tel que le codage Base64. Chiffrez plutôt les informations afin qu'en cas d'exposition, l'intrus ne peut pas déterminer facilement le contenu des informations sensibles.

Si les informations sensibles doivent uniquement être vérifiées et non déchiffrées dans un format explicite, chiffrez les informations sensibles à l'aide d'un hachage unidirectionnel. Ensuite, lors de la comparaison des informations sensibles reçues d'une source qui est validée, hachez la valeur reçue et comparez les hachages pour la vérification. Par exemple, si vous utilisez l'appartenance d'ASP.NET et l'authentification par formulaire pour fournir l'authentification utilisateur à votre application, affectez la valeur Hashed au format du mot de passe afin de chiffrer les mots de passe à l'aide d'un hachage unidirectionnel lorsqu'ils sont stockés dans la source de données ou comparés pour validation.

Lors du stockage d'informations sensibles telles que les chaînes de connexion, les informations d'identification de l'utilisateur ou les clés de chiffrement dans le fichier Web.config d'une application, chiffrez les sections sensibles du fichier Web.config à l'aide d'un fournisseur de configuration protégé. Pour plus d'informations sur la configuration protégée, consultez Chiffrement des informations de configuration à l'aide de la configuration protégée.

Pour plus d'informations sur l'utilisation du chiffrement pour protéger des informations sensibles, consultez Modèle de chiffrement de .NET Framework.

Protection des informations sensibles à l'aide d'autorisations

Lors du stockage d'informations sensibles dans les fichiers, les bases de données, le Registre ou d'autres emplacements, utilisez les listes de contrôle d'accès NTFS et les autorisations de base de données pour restreindre l'accès aux informations uniquement aux sources requises et uniquement l'accès requis. Pour plus d'informations, consultez la documentation de la base de données ou Listes de contrôle d'accès requis par ASP.NET.

Voir aussi

Concepts

Sécurité des applications Web au moment de l'exécution