Je traite d'un concept pour un projet qui invente des données absolument critiques.Webserver à la volée décryptage?
La partie la plus importante est qu'elle doit être stockée cryptée.
Un système de fichiers chiffré monté à partir duquel le serveur Web dessert les fichiers ne suffit pas.
La clé pour déchiffrer les données doit être transmise dans l'URI de la requête sur une connexion sécurisée avec un hachage et un horodatage.
Le hachage, basé sur l'horodatage, la clé et le nom de fichier valide l'URI et le stocke sur une liste, de sorte qu'il ne peut être consulté qu'une seule fois. La partie importante maintenant est que le serveur web doit prendre le fichier du disque, et le servir déchiffré en utilisant la clé qu'il a obtenue de l'URI de la demande.
Il devrait également être efficace et rapide. Cela nécessite également une méthode de chiffrement qui n'exige pas l'analyse du fichier entier. afin que le fichier puisse être décrypté progressivement. Je pense qu'AES peut le faire avec des tailles de blocs spécifiées qui sont atomiques cryptées. Donc, une option serait de lire le fichier source dans un script PHP en morceaux de quelques megs où je décrypte en utilisant aes et imprimer le contenu déchiffré. Le script oublie alors les données précédentes et continue avec le morceau suivant jusqu'à ce que eof.
Si aes ne supporte pas que je peux simplement crypter des morceaux de taille définie du fichier séparément, les concaténer et faire la même chose lors du service des fichiers. Cependant, je voudrais m'en tenir à une norme que je n'ai pas à réinventer, donc je peux aussi utiliser des bibliothèques standard pour crypter les fichiers.
Cependant, ce sera très inefficace.
Connaissez-vous un module apache/lighttpd/nginx ou une meilleure méthode?
Eh bien ... qu'en est-il de l'utilisation de 'mcrypt_decrypt()'? // EDIT: mais ne connais pas les problèmes de performances ;-) – thedom
bien sûr, si je le fais dans le script. mais je voudrais les fichiers utilisant le serveur web, pas les tampons de sortie php .... –
Seule la solution que je peux penser maintenant est de valider le hachage, l'horodatage en php et passer le décodage à l'application externe avec http://php.net/manual /fr/function.passthru.php –