Forum général.général Cryptage ou protection de données avant sauvegarde?

Posté par  .
Étiquettes : aucune
0
2
nov.
2006
Bonjour,

Je souhaiterais pouvoir crypter un dossier juste avant de l'envoyer par FTP sur une espace de sauvegarde qui m'est réservé.

J'utilise actuellement une compression légère RAR avec option de mot de passe. C'est vraiment une solution de secours et j'aimerais pouvoir utiliser rsync.

Je voudrais également qu'aucun des noms de mes fichiers et arborescence soit visible...

Merci pour votre aide.
  • # Cryptage ou protection de données avant sauvegarde?

    Posté par  (site web personnel) . Évalué à 3.

    Sous linux tu as cryptsetup.
    Il y a un guide pour ubuntu, qu'on peux extrapoler.
    http://doc.ubuntu-fr.org/securite/cryptsetup

    Le principe est d'initialiser un fichier, avec une certaine taille (ici 64M)
    dd if=/dev/urandom of=myfile.crypt bs=1M count=64

    Ensuite, myfile.crypt est utilisé comme un périphérique disque dans le guide du dessus.

    Sinon, tu as truecrypt ( http://www.truecrypt.org/), qui est compatible Windows en plus, si l'espace est formaté en FAT.

    Dans les 2 cas, il faut fabriquer un container d'une taille fixe, pas moyen de crypter un dossier "à la volée".

    Il existe "encfs" qui encrypte a la volé, mais il ne cache pas l'arborescence, comme tu le voulais.

    Enfin, une solution que j'ai utilisé un jour est de se servir de GPG:
    Tu crée une archive de ton dossier normallement (tar -czf .), et ensuite tu utilise gpg pour crypter le fichier résultat en ligne de commande comme si c'etait un message.
    GPG permet de faire de la crypto symétrique, et la ou c'est intéréssant c'est de crypter en assymétrique: Tu encodes avec la clé publique, seul le détenteur de la clé privée pourra relire l'archive.
    Je m'était écrit un script pour automatiser cela, je pourrais le retrouver si ca t'interesse. (enfin, je stockais directement sur une bande magnétique, mais ca reviens au même)
    Un seul bémol: ne *jamais* perdre le fichier de clé privée dans ce cas, ni la passphrase servant à la protéger, sinon c'est mort (il n'y a pas de crack possible, a la winrar...)
    • [^] # Re: Cryptage ou protection de données avant sauvegarde?

      Posté par  . Évalué à 2.

      Merci pour tes informations ;)

      La création d'un container m'embêtes un peu...
      Mais par contre, archive + GPG, ça peut vraiment me convenir!
      Si tu retrouves tes scripts ça m'intéresse pas mal ;)

      Merci.
    • [^] # Re: Cryptage ou protection de données avant sauvegarde?

      Posté par  . Évalué à 1.

      Salut,

      Je viens d'essayer GPG, c'est vraiment nikel pour ce que je veux faire, mais j'ai un soucis pour le décryptage :

      "Vous avez besoin d'une phrase de passe pour déverrouiller la
      clé secrète pour l'utilisateur: « Gothico <gothico@....fr> »
      clé de 1024 bits ELG-E, ID 3B02A89C, créée le 2006-11-02 (ID clé principale A9278BA1)

      gpg: Phrase de passe invalide ; réessayez ..."

      En fait, le mot de passe que je met pour faire la clé ne fonctionne pas, je comprend vraiment pas, j'ai même rééssayer d'en faire d'autre avec des mots de passes simple, mais c'est pareil...

      Qu'est-ce que je peux faire?

      Merci.
      • [^] # Re: Cryptage ou protection de données avant sauvegarde?

        Posté par  . Évalué à 1.

        Ok, en fait c'est bon, c'est parceque je ne supprimais pas la clé avant de la regénérer...
        • [^] # Re: Cryptage ou protection de données avant sauvegarde?

          Posté par  (site web personnel) . Évalué à 1.

          Voila mes scripts, pour référence:
          (le fichier crypt_backup.conf permettait de définir les variables)

          En fait, c'etait assez poussé parceque ca permettais de sauver sur ISO ou bien sur bande, et ca utilisait Tar+gzip pour la compression, GPG pour la crypto et PAR pour l'archivage (PAR permet de sauvegarder des infos redondantes pour supporter la perte d'un segment de données, par exemple si l'une des bandes s'averais foutue)
          C'était pour des grosses archives (10-20Go) sur des bandes de 2Go.

          Je me rapelle que la crypto via GPG était horriblement lente (plusieurs dizaines d'heures), surtout a cause de l'utilisation de crypto asymmétrique.

          Bref, ca a très bien marché jusqu'au jour ou j'ai paumé le fichier de clé privé, et la je me suis retrouvé avec 200 K7 inutilisable.
          => A bon entendeur...

          ***************************
          **** crypt_backup.sh ***
          ***************************

          #!/bin/bash
          source ~/.crypt_backup.conf
          # Renice myself (and so all the childs) to avoid hitting the machine when in a backup
          renice +20 $$
          if [ "$tape_host" ] ; then
          if [ "$tape_user" ] ; then
          tape_device=$tape_user@
          fi
          tape_device=$tape_device$tape_host%ssh:$tape_file
          else
          tape_device=$tape_file
          fi
          ### Functions ###
          function backup_to_tape {
          ls $* | afio -o -b $tape_bloc -z $tape_device
          if [ $tape_host ] ; then
          ssh $tape_user@$tape_host mt -f $tape_file eject
          else
          mt -f $tape_file eject
          fi
          }
          ### End of functions ####
          ### Main ###
          if [ -z $1 ] ;then
          echo "Usage : $0 <archive name> [] ..."
          exit
          fi
          target=$1
          shift
          for d in $* ; do
          if [ ! -r $d ] ; then
          echo "Error, target $d unreadable"
          exit
          fi
          targets="$targets $d"
          done
          if [ -z $targets ] ; then
          echo "Error : nothing to backup"
          exit
          fi
          echo "Device = $tape_device"
          echo -n "Backup to tape or iso ? (t or i) : "
          read media
          if [ $media != "t" -a $media != "i" ] ; then
          echo "Error, reply by t or i"
          exit
          fi
          real_tmp_dir=`mktemp -d -p $tmp_dir`
          tar -cvf - $targets | gpg -e -r $gpg_fingerprint | split -b $tape_size -d - "$real_tmp_dir/$target.gpg."
          cd $real_tmp_dir/
          count=`ls $target.gpg.[0-9][0-9] | wc -l`
          echo "Number of volume : $count"
          par2 c -n$count -u $target.gpg.[0-9][0-9]
          par_targets=(`ls $target.gpg.??.vol*.par2`)
          count=0
          if [ $media = "t" ] ; then
          # Then backup files, one per tape
          for f in $target.gpg.[0-9][0-9] ; do
          if [ $count != 0 ] ; then
          echo "Insert next tape...."
          read
          fi
          backup_to_tape $f ${par_targets[$count]}
          let count+=1
          done
          fi
          if [ $media = "i" ] ; then
          for f in $target.gpg.[0-9][0-9] ; do
          mkisofs -o $iso_dir/$f.iso -R -l ./$f ./${par_targets[$count]}
          let count+=1
          done
          fi
          echo -n "Remove temporary directory ? (Y/n) : "
          read r
          if [ $r != "n" -a $r != "N" ] ; then
          rm -rd $real_tmp_dir
          fi


          ************************
          *** crypt_restore.sh ***
          ************************

          #!/bin/bash
          source ~/.crypt_backup.conf
          ### Functions ###
          function copy_files_from_tape {
          afio -iz $tape_device
          mt -f $tape_device rewind
          mt -f $tape_device eject
          }
          function copy_files_from_cd {
          mount $mnt_dir
          cp -a $mnt_dir/* .
          eject $mnt_dir
          }
          ### Main ###
          echo -n "Restore from tape or directory ? (t or d) : "
          read media
          if [ $media != "t" -a $media != "d" ] ; then
          echo "Error, reply by t or d"
          exit
          fi
          real_tmp_dir=`mktemp -d -p $tmp_dir`
          cd $real_tmp_dir
          echo -n "Insert PAR-files media and press enter"
          read
          if [ $media = "t" ] ; then
          copy_files_from_tape
          elif [ $media = "m" ] ; then
          copy_files_from_cd
          fi
          e=""
          while [ "$e" != "q" ] ; do
          echo -n "Insert next data media and press enter when ready, or q to exit"
          read e
          if [ $e != "q" ] ; then
          if [ $media = "t" ] ; then
          copy_files_from_tape
          elif [ $media = "m" ] ; then
          copy_files_from_cd
          fi
          fi
          done
          # Repair archive if necessary (and possible)
          par2 r *.par2
          echo -n "Please verify that the archive is not corrupted and press enter...."
          read
          archive=`basename *.gpg.00 .00`
          count=`ls $archive.[0-9][0-9] | wc -l`
          if [ $count = 0 ] ; then
          echo "Error : Cannot find archive $archive."
          exit
          else
          for f in $archive.[0-9][0-9] ; do
          cat $f >> $archive
          done
          fi
          # return in cwd to untar
          cd -
          gpg < $real_tmp_dir/$archive | tar -xvf -
          echo -n "Remove temporary directory ? (Y/n) : "
          read r
          if [ $r != "n" -a $r != "N" ] ; then
          rm -rd $real_tmp_dir
          fi

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.