2013-08-04 8 views
1

Si vous créez une application dans laquelle envoyer une série d'e-mails, l'application doit stocker temporairement le mot de passe de l'utilisateur, quelle est la pratique la plus sûre, le cas échéant? Sinon, que recommanderiez-vous?Comment enregistrer temporairement un mot de passe en toute sécurité?

+0

Je ne pense pas qu'il y en ait. Le mot de passe doit être quelque part dans la mémoire à utiliser, et est donc vulnérable dans une certaine mesure. Si vous parlez de stockage sur disque, vous pouvez utiliser un algorithme de chiffrement, comme AES ou Blowfish, et décrypter plus tard. – Jori

+0

Qu'est-ce que c'est temporairement? Si vous le stockez sur un stockage interne, il peut rester là pour toujours - il vous suffit de tuer l'application avant de la supprimer. – zapl

+1

Pouvez-vous changer le serveur ou est-ce que le nom d'utilisateur/mot de passe est la seule authentification disponible? Si vous pouvez changer le serveur, utilisez le mot de passe une fois pour obtenir un jeton d'accès et l'utiliser pour l'authentification des courriers uniques. Le jeton d'accès peut être invalidé du côté serveur, alors qu'un mot de passe ne peut pas (sans impact d'utilisabilité). Crypter le mot de passe en mémoire ne vous donne pas beaucoup d'avantages car vous devez également stocker la clé sur l'appareil ... aussi, vous pouvez limiter le jeton à l'envoi de mails seulement, donc d'autres fonctionnalités importantes sont sécurisées (changement du mot de passe , etc). – dst

Répondre

1

Tant que vous n'envoyez pas le mot de passe sur Internet, cela ne devrait pas vraiment avoir d'importance. Si vous voulez être plus sûr, vous pouvez stocker le mot de passe dans une chaîne et ensuite, après qu'il n'est plus nécessaire, remplacez-le par une chaîne de longueur identique.

+0

Pourquoi spécifiquement avec une chaîne de longueur identique? Ne pas affecter la variable chaîne à une chaîne de travail? – mark

+0

L'enregistrement du mot de passe est important. Si le périphérique est perdu, il est crucial que le vol reçoive les mots de passe en texte brut de votre utilisateur, car ils sont généralement utilisés sur d'autres services par les utilisateurs réguliers (triste fait), l'utilisateur réel devrait pouvoir révoquer son authentification sans accès physique. il. – dst

+0

Mes excuses. Je croyais qu'en le stockant temporairement, il signifiait le stocker dans la mémoire, où il ne serait pas persisté. Quant à l'écraser, vous auriez besoin d'une chaîne de longueur supérieure ou égale. De préférence, le serveur accepterait une version hachée du mot de passe, et en tant que tel, vous pourriez le stocker à la place du texte en clair. – bjc2406

1

Vous pouvez utiliser les préférences partagées du périphérique pour stocker et récupérer le mot de passe sous forme de chaîne. Cette chaîne peut être supprimée des préférences une fois que vous en avez fini avec elle.

+0

Les autres applications ne peuvent-elles pas y accéder? – mark

+0

Pas que je sache que chaque application a son propre répertoire dans l'appareil pour stocker les données de l'application, cela ne devrait pas d'importance, vous ne stockez les données que pour une courte période –

Questions connexes