nFreezer

nFreezer

7 septembre 2021 0 Par jeremychn

nFreezer est un outil de sauvegarde crypté conçu spécifiquement pour le cas où le serveur de destination n’est pas fiable.

Avec nFreezer, les données sont en sécurité sur le serveur de destination même si un utilisateur malveillant y accède en tant que root.
Cas d’utilisation : vous pouvez stocker vos données privées sur l’ordinateur d’un ami, ou sur un serveur distant sur lequel vous n’avez jamais eu d’accès physique et en qui vous n’avez pas totalement confiance.

Fonctionnalités:

Encrypted-at-rest : les données sont cryptées localement (à l’aide d’AES), puis transitent cryptées et restent cryptées sur le serveur de destination. Le serveur de destination n’obtient jamais la clé de chiffrement, les données ne sont jamais déchiffrées sur le serveur de destination.

Incremental and resumable : si les données sont déjà présentes sur le serveur distant, elles ne seront pas renvoyées lors de la prochaine synchronisation. Si la synchronisation est interrompue au milieu, elle continuera là où elle s’est arrêtée (dernier fichier non entièrement téléchargé). Les fichiers supprimés ou modifiés entre-temps seront bien entendu détectés.

Graceful file moves/renames/data duplication handling : si vous déplacez /path/to/10GB_file vers /anotherpath/subdir/10GB_file_renamed, aucune donnée ne sera retransférée sur le réseau.

Ceci est pris en charge par certains autres programmes de synchronisation, mais très rarement en mode crypté au repos.

Note technique : les hachages SHA256 des fichiers non cryptés sont stockés cryptés sur la destination (ouf !). Ainsi, aucun hachage SHA256 n’est accessible (pour obtenir des informations sur vos données) en cas de brèche sur le serveur de destination.

Stateless : aucune base de données locale des fichiers présents sur la destination n’est conservée. Inconvénient : cela signifie que si la destination contient déjà 100 000 fichiers, l’ordinateur local doit télécharger la liste de fichiers distante (~15 Mo) avant de démarrer une nouvelle synchronisation ; mais c’est acceptable pour moi.

Does not need to be installed on remote : aucun binaire n’a besoin d’être installé sur la télécommande, pas de SSH « exécuter des commandes » sur la télécommande, seul SFTP est utilisé

Single .py file project : vous pouvez lire et auditer le code source complet en consultant nfreezer.py, qui contient actuellement < 300 lignes de code.

Comparaison avec logiciels similaire.

Installation

Nécessite d’avoir Python 3.6 d’installé minimum

pip install nfreezer

Utilisation

Backup vers un serveur distant:

import nfreezer
nfreezer.backup(src='test/', dest='user@192.168.0.2:/test/', sftppwd='pwd', encryptionpwd='strongpassword')

ou, via ligne de commande:

nfreezer backup test/ user@192.168.0.2:/test/          # Linux
nfreezer backup "D:\My docs\" user@192.168.0.2:/test/  # Windows

Restauration depuis un backup:

import nfreezer
nfreezer.restore(src='user@192.168.0.2:/test/', dest='restored/', sftppwd='pwd', encryptionpwd='strongpassword')

ou, via ligne de commande:

nfreezer restore user@192.168.0.2:/test/ restored/

Sources : nFreezer