Croc, partage de fichiers/répertoires en pair à pair

Pour échanger entre deux PC un(des) fichier(s) (éventuellement gros1)) ou un(des) répertoire(s), voici une solution efficace en peer2peer (ou pair à pair), CROC.

Il permet :

  • de chiffrer le transfert de bout en bout (en utilisant PAKE)
  • des transferts entre PC multi-platformes (Linux, Windows, Mac)
  • de transférer plusieurs fichiers/répertoires
  • de reprendre le transfert après une interruption
  • d'être plus rapide que wormhole, rsync, scp grâce à de la compression et du multiplexage (gain de 1,5× à 4×)

Avec snap, il suffit de lancer:

snap install croc

Cette installation est évidemment nécessaire sur le PC émetteur et récepteur (+ sur un serveur si vous souhaitez avoir votre propre relais)

Si snap ne passe pas (focal, jammy) :

snap install croc
erreur : snap "croc" non trouvé

Vous pouvez l'installer à partir du paquet :

wget https://github.com/schollz/croc/releases/download/v9.6.0/croc_9.6.0_Linux-64bit.deb | sudo dpkg -i
# ou utilisez le script défini par son développeur :
curl https://getcroc.schollz.com | bash

Pour les autres OS, reportez-vous à la page installation de croc (en)

Principe: cette outil léger (Croc fait moins de 1 Mo !) permet d'émettre un envoi de fichier(s) ou répertoire(s) avec une commande très simple:

croc send <Fichier(s)OuRépertoire(s)Àenvoyer>

exemple "réel":

croc send /home/bcag2/Documents/doc-croc.pdf

À ce moment, croc contacte le serveur relay, lui donne les infos identifiant l'émetteur (adresse IP essentiellement) et un code-phrase2) associé qu'il a généré, dans l'exemple ci-dessous flute-vibrate-cyclone
Ce code-phrase est retourné:

On the other computer run
croc flute-vibrate-cyclone

pour vous permettre de le communiquer au destinataire oralement (avantage du code-phrase sur un mot de passe), par email, messagerie instantanée…
Le destinataire n'a plus qu'à le coller dans son terminal en argument de la commande croc, dans notre exemple:

croc flute-vibrate-cyclone

La communication s’établit alors directement entre les 2 PC, qui échangent la clé de chiffrement PAKE utilisée pour sécuriser le transfert, puis le transfert commence.

Étant en peer2peer, il est clair que le PC émetteur doit rester allumé tant que le fichier/répertoire n'est pas récupéré!
Un seul destinataire peut récupérer le fichier/répertoire, si vous devez l'envoyer à plusieurs personnes, il faut recommencer l'opération!

Il est possible d'utiliser son propre code-phrase 3) qu'on aura inventé ou généré avec un autre outil (minimum 6 caractères):

croc send --code mon-code-phrase mon_fichier
le code-phrase ne sert pas au chiffrement du transfert mais simplement à l'identification de l'émetteur sur le serveur relais

Pour accéder à l'aide: sur la liste des sous-commandes (send, relay) et options globales:

croc help

pour les options d'une <sous-commande>, send par exemple:

croc send --help

La mise en relation entre le PC émetteur et le PC destinataire se fait via un serveur (le relais) qui, un peu comme un DNS, va mémoriser la correspondance code - adresse IP de l'émetteur qu'il va transmettre au destinataire.
Ce relais, par défaut, est public (hébergé à New-York, par défaut IP:142.93.177.120:9009)
Il est possible de se créer son propre relais avec la commande4)

croc relay

1)
il est toujours conseillé d'en limiter la taille… avec notre OS préféré, vous pouvez utiliser la commande split
2)
comme un mot de passe ou phrase secrète, mais organisé en mots plutôt qu'en caractères. Croc génère des codes-phrases de 3 mots séparés pas des tirets
  • croc.txt
  • Dernière modification: Le 11/09/2022, 11:57
  • par moths-art