Le but ici est de transformer :
http://serveurthumbor/unsafe/fit-in/560x420/filters:fill(blue)/url/to/image.jpg
en :
http://serveurthumbor/lfcBvO4PIwuukgT6cY...QbAmH0Nl20U=/url/to/image.jpg
Pour que seul une webapp autorisée (par la connaissance de la clé) puisse exploiter le service de redimensionnement d'image thumbor.
Comme vous le dites, ici le but est d'authentifier, et non réellement de masquer les paramètres. L'article que j'ai mentionné est donc d'autant plus vrai : n'utilisez surtout pas uniquement le chiffrement des paramètres !
Il suffirait à un attaquant de relever une URL qui fonctionne, et de modifier des bits, il pourrait alors obtenir une autre URL qui sera bien évaluée par le serveur, mais qui contiendra des paramètres différents une fois déchiffrée. Pourquoi ? Parce que le chiffrement n'est pas une authentification.
Je vous conseille de hacher les paramètres et chiffrer le hachage (avec HMAC par exemple, qui est très commun (et disponible en Python)), le hachage chiffré agira comme une signature, une authentification.
Les paramètres peuvent être chiffrés si vous souhaitez les masquer, mais ce n'est pas nécessaire si tout ce que vous souhaitez est une authentification.
Vous pouvez aussi ajouter une date d'expiration aux paramètres (à signer), et ainsi empêcher quelqu'un de "rejouer" des URL qui étaient bien valides.
[^] # Re: openssl
Posté par BFG . En réponse au message Chiffrement en python déchiffrement par openssl. Évalué à 3.
Comme vous le dites, ici le but est d'authentifier, et non réellement de masquer les paramètres. L'article que j'ai mentionné est donc d'autant plus vrai : n'utilisez surtout pas uniquement le chiffrement des paramètres !
Il suffirait à un attaquant de relever une URL qui fonctionne, et de modifier des bits, il pourrait alors obtenir une autre URL qui sera bien évaluée par le serveur, mais qui contiendra des paramètres différents une fois déchiffrée. Pourquoi ? Parce que le chiffrement n'est pas une authentification.
Je vous conseille de hacher les paramètres et chiffrer le hachage (avec HMAC par exemple, qui est très commun (et disponible en Python)), le hachage chiffré agira comme une signature, une authentification.
Les paramètres peuvent être chiffrés si vous souhaitez les masquer, mais ce n'est pas nécessaire si tout ce que vous souhaitez est une authentification.
Vous pouvez aussi ajouter une date d'expiration aux paramètres (à signer), et ainsi empêcher quelqu'un de "rejouer" des URL qui étaient bien valides.