Décrypter une archive codée en EAS256 IV dyn

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Décrypter une archive codée en EAS256 IV dyn

Re: Décrypter une archive codée en EAS256 IV dyn

par je-sais-pas-coder » 19 mars 2021, 16:39

Bonjour,

Alors j'avance un peu.
J'ai ajouté une partie pour traiter l'upload du fichier. J'ai préféré GET parce que je voyais pas l'intérêt du POST dans le formulaire.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" >

<!-- Le type d'encodage des données, enctype, DOIT être spécifié comme ce qui suit -->
<form enctype="multipart/form-data" action="<?php $_SERVER['PHP_SELF']; ?>" method="get">
  <!-- MAX_FILE_SIZE doit précéder le champ input de type file -->
  <input type="hidden" name="MAX_FILE_SIZE" value="30000" />
  <!-- Le nom de l'élément input détermine le nom dans le tableau $_FILES -->
  Décrypter ce fichier : <input name="fichier" type="file" />
  <input type="submit" value="Envoyer le fichier" />
</form>
<?php
// Extrait les 16 premiers octets du fichier pour lire l’IV
$iv = file_get_contents($fichier, FALSE, NULL, 0, 16);
// mot de passe
$passphrase = 'a-preciser-en-dur-plus-tard' ;
// décrypte le fichier dans le même répertoire et y ajoute le suffixe ' .dec '
openssl_decrypt ($fichier, 'aes-256-cbc', $passphrase, $options = 0, $iv = var_dump($iv), OPENSSL_RAW_DATA, $aad = "" , $fichier . '.dec')
?>
Mes questions à ce stade sont les suivantes :
  1. Comment définir la valeur $path au fichier que j'obtiens avec le formulaire ? Il faut que je précise que c'est bien lui que je vais traiter après tout. Quand je charge le formulaire je vois bien que j'ai la valeur $fichier apparait dans l'URI. J'ai tout bon ?
  2. Pour extrait les 16 premiers octets du fichier j'utilise la fonction :
    $iv = file_get_contents($fichier, FALSE, NULL, 0, 16);
    Pour récupérer la valeur, dois-je utiliser un simple :
    echo $iv;
    Et du coup je supprime mon truc tordu qui marche pas :
    $iv = var_dump($iv)
  3. Quelle fonction utiliser pour utiliser le résultat de la fonction openssl_decrypt() ? Mon souhait c'est d'avoir un lien de téléchargement, ou un téléchargement automatique du fichier une fois décrypté.
  4. D'autres pistes pour faire avancer ce script ?
Merci d'avance :)

Re: Décrypter une archive codée en EAS256 IV dyn

par je-sais-pas-coder » 19 mars 2021, 12:15

Bonjour, vous leur avez demandé si c'est possible de vous les envoyer non chiffré ?
C'est un script sur leur site. Il n'y a que cette option à moins de générer le fichier manuellement, ce que je ne compte pas faire (trop de PDL à surveiller).

Merci.

Re: Décrypter une archive codée en EAS256 IV dyn

par je-sais-pas-coder » 19 mars 2021, 12:14

Ouh la... j'ai l'impression que tu pars de très très loin !
C'est un peu ce que je pensais clarifier en prenant ce pseudo je crois.

Pour les guillements typo, je crois que c'est quand j'ai envoyé ce code via Outlook à qqn que la conversion s'est produite. Je l'ai recopié du message sortant.
L'oubli du point virgule final, ça c'est moi en revanche :roll:

Je me renseigne sur ce truc de variable path à renseigner...

Merci.

Re: Décrypter une archive codée en EAS256 IV dyn

par two3d » 19 mars 2021, 11:38

Bonjour, vous leur avez demandé si c'est possible de vous les envoyer non chiffré ?

Re: Décrypter une archive codée en EAS256 IV dyn

par @rthur » 19 mars 2021, 11:37

Ouh la... j'ai l'impression que tu pars de très très loin !

Avant de te lancer dans du décryptage de fichier il faut tout de même avoir les bases de PHP, ou alors il faut que tu embauches un développeur PHP.

En vrac :
- Tu ne renseignes nulle part ta variable $path, alors que logiquement c'est là que tu devrais avoir ton fichier.
- tu utilises des guillemets typographiques, rassure moi tu ne code pas sous Word tout de même ?
- $iv = var_dump($iv) en paramètre de ta fonction ne peux pas fonctionner
- tu ne fais rien de la valeur retour de la fonction openssl_decrypt()
- les lignes de codes PHP doivent se terminer par un point-virgule

Décrypter une archive codée en EAS256 IV dyn

par je-sais-pas-coder » 19 mars 2021, 11:11

Bonjour tout le monde, et merci d'avance à mes futurs sauveurs,

Je reçois par mail d'ENEDIS des fichiers cryptés contenant des fichiers XML détaillant nos consommations électriques au pas de 10 minutes.
Je ne sais pas pourquoi ENEDIS a prévu de chiffrer ces données alors qu'il aurait été plus simple de les télécharger directement déchiffrées à partir de leur site, mais passons.

Ils ont mis en place toute une documentation nous expliquant comment faire pour décrypter ces fichiers (https://www.enedis.fr/sites/default/fil ... F_107E.pdf). Sauf qu'après lecture on se gratte autant la tête qu'au début, car ils ne livrent pas un exécutif qui nous mâche le travail. Ils détaillent une solution en JAVA, mais dans mon environnement professionnel c'est interdit. Alors que le PHP en local ne l'est pas (et j'espère être autorisé à héberger le script sur les serveurs de mon employeur, comme cela n'importe qui dans le service pourra décrypter ces archives dans le futur).

Au sein de PHP il y a une fonction qui fait tout cela très bien normalement : https://www.php.net/manual/fr/function. ... ecrypt.php
Mais je n'ai pas les connaissances pour faire fonctionner le script.

En donnée entrante, j'ai mon archive 7z adressée par mail.
On doit alors lire l'IV dans les 16 premiers octets du fichier.
Le mot de passe m'a été communiqué par ENEDIS, et je peux l'écrire en dur dans le script, car il ne changera pas.

J'ai besoin d'avoir un script qui de demande où se trouve le fichier, le décrypte, et le sauvegarde dans le même répertoire.

Avec mes humbles compétences j'ai commencé à balancer tout cela dans le script suivant, mais c'est un échec cuisant ;)
Si vous pensez pouvoir me sortir de ce mauvais pas je suis preneur. Déjà, a aucun moment le script ne me demande où est le fichier...
<?php
// Extrait les 16 premiers octets du fichier pour lire l’IV
$iv = file_get_contents($path, FALSE, NULL, 0, 16);
// mot de passe
$passphrase = ‘a-preciser-en-dur-plus-tard’ ;
// décrypte le fichier dans le même répertoire et y ajoute le suffixe ‘ .dec ‘
openssl_decrypt ($path, ‘aes-256-cbc’, $passphrase, $options = 0, $iv = var_dump($iv), OPENSSL_RAW_DATA, $aad = "" , $path . ‘.dec’)
?>
Merci de vos contributions !