2010-03-26 4 views
0

J'ai une question à propos du cryptage des disques.crypter les serveurs apache et mysql

J'ai 2 serveurs: 1 est apache pour web/frontend et il parle au serveur 2 qui est mysql. Ils sont tous pour intranet seulement; pas d'accès externe. Je cherchais à utiliser PGP ou GnuPG pour crypter les disques. Cependant, je ne sais pas exactement comment cela fonctionnerait.

Où les clés seraient-elles stockées? Sur le client? Sur apache? S'il y a une clé sur apache pour accéder à mysql, faut-il une clé pour chaque utilisateur? Si oui, si la clé 1 est utilisée pour modifier certaines données, ces données seraient-elles inaccessibles à un utilisateur utilisant la clé 2? Et la clé apache, serait-elle seulement accessible aux utilisateurs avec des clés locales?

Le chiffrement est-il effectué à la volée? Est-ce que cela dégrade les performances?

Quelle serait la meilleure approche pour chiffrer les données sur ces serveurs, mais les rendre accessibles aux utilisateurs?

Merci!

+0

Il serait utile si vous affinez votre question. En passant, PGP et GPG sont principalement utilisés pour la signature de courriels et de progiciels. –

Répondre

1

Dans la configuration que vous décrivez, il peut y avoir de nombreux endroits et de nombreuses façons de chiffrer les données. Si vous voulez chiffrer toutes les données transférées entre les serveurs, la mise en place d'un réseau privé virtuel (VPN) entre eux serait l'affaire. Si vous souhaitez crypter les données réelles sur le disque, vous pouvez utiliser un système de fichiers crypto comme CFS sur Linux. Si vous êtes un peu plus paranoïaque, vous pouvez également chiffrer l'espace de swap.

Il n'est probablement pas efficace de chiffrer toutes les données tout le temps, étant donné que les opérations de chiffrement peuvent être très lourdes pour le processeur. Je suppose que le chiffrement de tout n'est pas nécessaire et que vous voulez juste chiffrer certaines de vos données qui sont sensibles. Je pense que la façon la plus directe de le faire serait d'utiliser le mot de passe de l'utilisateur plus un salt aléatoire (généré une fois pour chaque utilisateur) comme une clé et utiliser un symmetric key algorithm comme AES. Votre application Web doit stocker et récupérer les données dans la base de données sous une forme cryptée, et veiller à ne pas garder les données non cryptées en mémoire plus longtemps que nécessaire. Pour (essayer de) s'assurer qu'il reste secret lorsque vous l'envoyez au client après cela, vous devez utiliser TLS.

Questions connexes