informations sur l’API de protection des données (DPAPI)

J’écris actuellement une application Web c # mvc dans laquelle les mots de passe sont extraits d’un utilisateur et stockés dans une firebase database – serveur SQL. J’ai besoin d’un moyen de hacher les mots de passe.

Il a été recommandé d’utiliser l’API de protection des données (DPAPI). Je ne suis pas familier avec cela et d’après les recherches sur Internet, il existe très peu d’informations à ce sujet.

Quelqu’un peut-il indiquer la direction pour plus d’informations à ce sujet? OU donnez-moi un aperçu de la façon de le configurer et de l’utiliser, etc.

L’API de protection des données est principalement utilisée pour protéger les clés cryptographiques et les secrets sous les informations d’identification des utilisateurs. Si vous souhaitez stocker des mots de passe hachés dans une firebase database, le DAPI n’est pas vraiment ce que vous voulez.

Le fournisseur d’appartenance ASP.NET est utilisé pour gérer les utilisateurs, notamment pour le hachage de mots de passe avec un salt. Malheureusement, il ne semble pas exister de méthode permettant de simplement renvoyer un mot de passe haché. Par conséquent, si vous n’avez pas besoin de cette fonctionnalité supplémentaire, il peut être intéressant d’extraire le code correspondant à quelque chose comme CodeFirst Membership Fournisseur (voir Crypto.cs dans Source Code). L’avantage ici est que ce fournisseur d’adhésion utilise PBKDF2 pour obtenir le hachage, qui est plus résistant aux attaques par force brute compte tenu du nombre de tours. C’est aussi la méthode que StackOverflow utilise elle-même.

.Net a une classe wrapper pour le DPAPI appelée ProtectedData . Il est très facile à utiliser et ne contient que deux méthodes statiques: Protect et Unprotect . Un article sur les procédures à suivre peut être trouvé ici . La DPAPI ne nécessite pas de clé car elle utilise les informations d’identification de l’utilisateur connecté ou les informations d’identification de la machine pour effectuer le chiffrement, en fonction de l’étendue que vous choisissez lors de l’appel de Protect. Notez que si vous souhaitez stocker les données cryptées dans une firebase database, vous devez vous assurer de toujours utiliser le même compte d’utilisateur Windows ou le même ordinateur (là encore, selon l’étendue du cryptage), sinon vous ne pourrez pas décrypter les données. Ainsi, en fonction de votre application, cette API peut ne pas être optimale. Il est principalement conçu pour le chiffrement local sur un seul ordinateur plutôt que pour les applications dissortingbuées.