Tout ce que vous pouvez faire pour utiliser vos informations d'identification, un attaquant peut également
Qu'est-ce que l'obscurcissement vous achète réellement? Temps. Les données sont là après tout, tout comme votre schéma pour l'utiliser vous-même. Ce n'est qu'une question de temps pour quelqu'un de comprendre quel est votre plan. Tout cela dépend de votre niveau de paranoïa ainsi que d'une évaluation du niveau de risque avec lequel vous êtes à l'aise. En particulier, la façon dont vous stockez des informations d'identification devrait dépendre de qui a accès à la machine exécutant la base de données.
Finalement, le caoutchouc doit prendre la route, alors allez-y et conquérir. Ne frappez pas complètement l'obscurcissement. Faites juste pour assurer le couple avec des pratiques intelligentes.
Approches et suggestions
Générer des clés API par application pour chaque compte, à utiliser par la machine
Si vous pouvez générer des clés API à partir des comptes tiers, cela vous donnerait la possibilité de révoquer l'accès aux comptes sans éliminer toutes les applications potentielles. Beaucoup de services ont ces types de clés API (Google, Twitter, StacKExchange, Facebook et bien d'autres).
Vous configurez simplement une "application", puis utilisez une clé de consommation et un secret ainsi qu'un jeton d'accès et un secret d'accès. La machine n'a qu'à stocker ces références. Si un compromis se produit, il vous suffit de révoquer cet ensemble de clés. De plus, ceux-ci vous permettent de spécifier les autorisations par compte.
Utilisez un mot de passe par utilisateur pour leur ensemble d'identification
Lorsqu'un utilisateur se connecte, ce n'est qu'alors que vous déverrouillez son ensemble de mots de passe. Pour ce faire, vous généreriez une clé basée sur un schéma de hachage approprié et une vérification de vérification qui se produit plusieurs étapes de hachage devant la clé.
Crypter de toute façon sur disque
Vous pouvez toujours crypter les informations d'identification avec une seule clé. Ensuite, vous n'avez qu'une seule clé à protéger (qui protège tous les autres secrets). Vous devrez alors décrypter avant d'accéder à vos autres informations d'identification.
Stockez les secrets dans le clés du système
Sur Linux, utilisez le gnome-keyring. Ensuite, vous pouvez effectuer des appels simples à la création de read-update, en le traitant comme une base de données de mot de passe. Le clés GNOME est basé sur la norme PKCS # 11.
La gnome-keyring a une API pour économiser sur les articles de clés et de récupération.
/* A callback called when the operation completes */
static void
found_password (GnomeKeyringResult res, const gchar* password, gpointer user_data)
{
/* user_data will be the same as was passed to gnome_keyring_find_password() */
// ... do something with the password ...
/* Once this function returns |password| will be freed */
}
static void
find_my_password()
{
gnome_keyring_find_password (GNOME_KEYRING_NETWORK_PASSWORD, /* The password type */
found_password, /* callback */
NULL, NULL, /* User data for callback, and destroy notify */
"user", "me",
"server", "gnome.org",
NULL);
}
Sur Windows 7+, utilisez la fonction "Système de fichiers chiffrées" (EFS). Tous les fichiers sont cryptés avec un certificat avec sont à leur tour protégés par votre mot de passe Windows.
Ne laissez pas cela vous endormir dans un faux sentiment de sécurité. S'il s'agit d'un serveur sur lequel il s'exécute, si quelqu'un a accès au réseau à la boîte, il a également accès aux données de clés.
Configurez une machine distante qui accorde un accès
Pouvez-vous configurer une machine qui accorderait l'accès aux informations d'identification ou à une clé de déverrouillage en utilisant des paires de clés publiques et privées?
Sur hachage
Si vous hachez les noms d'utilisateur et les mots de passe, vous ne les récupérez pas. Les hachages sont conçus pour être des fonctions unidirectionnelles.
Vous pourriez encoder Les données pour l'obscurcissement, mais je ne le recommande pas.