2010-11-20 24 views
1

Je suis à la recherche d'un moyen sécurisé pour stocker les mots de passe FTP dans une base de données qui ne sont utilisables que par des utilisateurs spécifiques. Les détails FTP doivent être stockés de telle manière que si toute la base de données est exposée, le mot de passe FTP n'est pas exposé. Cela devrait probablement s'appuyer sur le mot de passe de l'utilisateur pour temporairement décrypter le mot de passe FTP uniquement lorsque l'utilisateur demande une action FTP. Je suis à la recherche d'une solution qui pourrait implémenter cela. Probablement utile pour l'ajouter, il s'agit d'une application web utilisant javascript et php.Comment stocker en toute sécurité les mots de passe pour une utilisation côté serveur?

Il ne s'agit pas de savoir comment utiliser le sel, les hachages, md5, sha1, etc. Il s'agit de sécuriser les mots de passe FTP que le serveur devrait pouvoir utiliser, par ex. se connecter à un serveur FTP avec. Ce n'est tout simplement pas possible avec les hachages parce que ceux-ci ne sont qu'un moyen. Une méthode de mot de passe symétrique doit être utilisée.

Exemple de cas d'utilisation:

  • utilisateur se connecte au serveur
  • utilisateur dit serveur pour télécharger le fichier depuis ses détails FTP stockées en toute sécurité sur le serveur
  • Server recherche les détails FTP et supprime le cryptage (éventuellement avec le mot de passe de l'utilisateur) Cette question concerne la façon dont vous mettez en œuvre cette étape efficacement
  • Le serveur fait ce qu'il a à faire puis supprime le mot de passe non crypté
+0

Je vous recommande de chiffrer les informations d'identification avec une clé fournie par l'utilisateur, et demandant à l'utilisateur de cette touche chaque fois que vous devez accéder aux informations ... Tout système vous ou Je peux concevoir où la clé et les données sont sur le même système est lié à être vulnérable. – grossvogel

Répondre

-1

Il semble que ce que vous recherchez soit un hachage MD5.

http://en.wikipedia.org/wiki/MD5

Ils sont fréquemment utilisés lors de l'enregistrement des mots de passe dans une base de données, pour plus de sécurité, vous pouvez également regarder en salaison le mot de passe ainsi.

http://en.wikipedia.org/wiki/Salt_(cryptography)

+0

MD5 doit être évité dans la plupart des situations; utilisez SHA1 ou 'crypt()' – meagar

+0

Ce n'est pas ce que je cherche. L'idée est que vous avez des détails de connexion FTP stockés sur le serveur et que l'utilisateur se connecte et est capable d'utiliser mon serveur d'applications pour se connecter au serveur FTP avec les informations de connexion FTP stockées sur le serveur. Probablement, une sorte de cryptage symétrique peut être utilisé, mais je ne sais pas quelle méthode sert bien mon but. Je vais mettre à jour ma question pour être plus détaillée. – Joost

+0

@meagar, à quelle crypte() faites-vous référence? –

1

Edit: Bien que les éléments suivants ne semble plus d'appliquer à la question (ce qui semble maintenant vouloir lancer une action FTP en raison d'un utilisateur (non connecté via un mécanisme d'authentification universel) , ce qui nécessite un schéma réversible), je le quitte car je pense qu'il contient des informations précieuses.

Je recommande de lire Enough With The Rainbow Tables: What You Need To Know About Secure Password Schemes. Il répondra probablement à un certain nombre de questions, y compris ce qu'est le sel (comment prévenir les attaques arc-en-ciel), pourquoi MD5 n'est pas une solution idéale pour un mot de passe (c'est trop rapide et ne nécessite plus de percée cryptographique significative). "), ce qui peut arriver si les données sont compromises (pourquoi le texte brut n'est pas stocké), etc. Il fournit des informations précieuses.

Je aime vraiment cette citation:

Non, vraiment. Utilisez le système de mot de passe de quelqu'un d'autre. Ne construis pas le tien.

Il est tellement vrai, même si la langue dans la joue.

+0

Veuillez lire ma question mise à jour, qui devrait clarifier pourquoi ce n'est pas ce que je cherche. – Joost