Je suis en citant un article sur le DPAPI qui est utilisé pour dériver la clé. Cela devrait répondre à la plupart des questions que vous avez au sujet de SecureString.
Et oui, SecureString a des inconvénients et n'est pas complètement sûr, il existe des moyens pour accéder à des données, par exemple, l'injection de Hawkeye dans le processus est mentionné sur MSDN comme un moyen d'extraire le SecureString. Je n'ai pas personnellement vérifiée cette assertation.
DAPI de Gestion des Clés
DAPI est symétrique de chiffrement basé sur la technique, ce qui signifie qu'il utilise la même clé pour chiffrer et déchiffrer les données. Avant d'arriver à quelques exemples de la façon d'utiliser DAPI il vaut la peine couvrant comment DAPI gère ses clés. Pour la plupart DAPI processus de gestion des clés est invisible et vous n'avez généralement pas besoin de s'inquiéter à ce sujet, qui est la principale raison pour laquelle DAPI est une bonne approche.
Dans l'introduction, j'ai écrit que le maître de la clé est générée à partir de l'identifiant de l'utilisateur mot de passe. Ce n'est pas l'image complète. Ce qui se passe réellement est que Windows utilise le login de l'utilisateur mot de passe pour générer une clé maître. Cette clé principale est protégée à l'aide de l'utilisateur, mot de passe, puis stockés avec le profil de l'utilisateur. Cette master key obtient alors utilisée pour dériver un certain nombre d'autres touches et ces autres touches, qui sont utilisées pour protéger les données.
La raison pourquoi Windows n'est qu'il permet des applications pour ajouter des informations supplémentaires, appelée entropie, le processus de production de la individul clés. Vous verrez que si chaque application en cours d'exécution en vertu de l'utilisateur du compte de connexion utilisé la même clé de toutes les applications pourraient ôter la protection de la DAPI données protégées. Parfois, vous voudrez applications pour être en mesure de partager DAPI données protégées; cependant, parfois, vous ne serez pas. En laissant l'application de contribuer de l'entropie à la génération d'une clé alors que la clé devient spécifiques à l'application et toutes les données qui sont protégés par cette application ne peut pas être protégés de nouveau si ils savent de l'entropie.
Bien que la génération d'une clé maître, et puis en utilisant la clé principale pour générer d'autres touches pour effectuer le chiffrement, peut sembler une longue haleine approche elle possède un avantage majeur. Puisqu'il y a un niveau supplémentaire d'abstraction entre l'utilisateur protégé par mot de passe de la clé principale et les véritables clés utilisés pour protéger les données cela signifie que lorsque l'utilisateur modifie son mot de passe alors que le maître de la clé doivent être protégés; aucune des données protégées doit être re-protégé. Car la clé principale est beaucoup plus petit en taille que les données, puis de façon significative les performances de l'enregistrement est effectué.
Lorsque l'utilisateur modifications de mot de passe puis, bien sûr, une nouvelle clé est générée. Cette nouvelle clé maître est ensuite utilisée pour générer de nouvelles clés individuelles. Cependant, puisque tous les déjà généré des touches ont été calculées à partir de l'ancien maître de la clé alors que Windows a besoin de stocker toutes les précédentes maître des clés, à qui il ne. Windows n'oublie jamais un maître de la clé et de la protection des données est marqué par un GUID qui indique la clé maître était utilisé pour protéger les données. Donc, en termes d'adaptabilité DAPI est en mesure de faire face aux changements de l'utilisateur et des mots de passe, tout en assurant une) que les données protégées n'a pas besoin d'être re-protégé, et b) que les clés utilisées précédemment protéger les données comme toujours disponible, et c) il fait tout cela automatiquement pour vous.
Sauf si l'ordinateur est membre d'un domaine DAPI ne peut que données non protégées sur la même machine que celle qui a été utilisée pour la protéger.
Ainsi que pour permettre à l'utilisateur de niveau de protection, et que le maître clés sont basées sur les mots de passe utilisateur et les données protégées par un utilisateur ne peut pas être protégé par un autre utilisateur, DAPI fournit également de la machine de niveau de protection, que le maître clés sont basées sur la machine de l'information spécifique. Machine de niveau master touches de permettre à des applications de stocker à l'abri de données de sorte qu'il peut être protégé par tous les utilisateurs de l'application. La seule différence dans le processus déjà décrit, c'est la clé principale est généré à partir de la machine de l'information spécifique pas de données propres à l'utilisateur.