croc: Μεταφορά αρχείων από οποιοδήποτε υπολογιστή σε οποιοδήποτε υπολογιστή

Ένα σύνηθες πρόβλημα είναι πώς να μεταφέρεις αρχεία από ένα υπολογιστή σε ένα οποιοδήποτε άλλο υπολογιστή. Σε τοπικό δίκτυο τα πράγματα είναι σχετικά εύκολα – τουλάχιστον αν καταφέρεις να κάνεις το samba να δουλέψει – και στην τελική υπάρχουν και τα στικάκια :slight_smile: προσπάθησε να λύσει το πρόβλημα με το wrapinator αλλά αυτό περιορίζει τη χρήση ανάμεσα σε δυο υπολογιστές που τρέχουν Mint και είναι στο ίδιο τοπικό δίκτυο. Αν τρέχει κάποιο άλλο λειτουργικό σύστημα ή δεν είναι στο ίδιο τοπικό δίκτυο, δεν μας καλύπτει.

Για τη μεταφορά του backup αυτού εδώ του τόπου σε ένα τοπικό υπολογιστή, μέχρι τώρα χρησιμοποιούσαμε το MagicWormhole μια πολύ καλή λύση, αλλά πλέον χρησιμοποιούμε το croc . Και οι δυο λύσεις δουλεύουν το ίδιο, αλλά το πλεονέκτημα του croc είναι πως είναι γραμμένο σε γλώσσα go αντί για Python :python: και έτσι δε θέλει εξαρτήσεις.

Εγκατάσταση

Για εγκατάσταση ανοίγουμε ένα τερματικό και γράφουμε

curl https://getcroc.schollz.com | bash

Για εγκατάσταση σε Mac, Windows, ή για Arch :arch: βλέπουμε τις οδηγίες εγκατάστασης εδώ.

Χρήση

Στον υπολογιστή από τον οποίο στέλνουμε τα αρχεία ανοίγουμε ένα τερματικό και γράφουμε

croc send [αρχεία ή φάκελοι]

θα μας δώσει ένα τυχαίο κωδικό όνομα όπως το anita-price-quick του παραδείγματος. Οποιοσδήποτε γνωρίζει τη μυστική λέξη (αλλά μόνο ένας) μπορεί να το κατεβάσει γράφοντας

croc anita-price-quick 

Μπορούμε επίσης να βάλουμε τη δική μας κωδική λέξη

croc send --code parta-sto-kalo [αρχεία ή φάκελοι]

Πως λειτουργεί

Η μεταφορά γίνεται μεταξύ των δυο υπολογιστών κρυπτογραφημένα (και με δυνατότητα να συνεχίσεις από εκεί που σταμάτησε η μεταφορά) και δεν παρεμβαίνει κάποιος τρίτος server, ούτε απαιτείται κάποια ρύθμιση. Αν κάποιος κρυφοκοιτάξει τη μεταφορά, η μεταφορά θα σταματήσει.

Αλλά χρησιμοποιείται κάποιος server για να κλείσει το “ραντεβού” μεταξύ των δυο υπολογιστών. Ένα πλεονέκτημα του croc είναι πως είναι εύκολο να στήσεις και να χρησιμοποιήσεις το croc για να φτιάξεις τον δικό σου τέτοιο server (ακόμα και μέσα από το tor) για μέγιστη ασφάλεια. Για οδηγίες δείτε στην επίσημη του σελίδα.

Σημείωση: Για γρήγορες μεταφορές στο τοπικό δίκτυο απενεργοποιήστε το VPN όσο διαρκεί η μεταφορά

Πηγές:

5 Likes

Μια μικρη διορθωση. Δεν χρειαζεται να τρεχουν mint. Να τρεχουν το warpinator χρειαζεται…

Το θεμα με το croc αλλά και με το magic-wormhole, ειναι το πως μαθαινει ο άλλος τον κωδικο, αν θελεις να μαθει τον κωδικο μονο αυτος στον οποιο πρεπει να μαθευτει, γιατι το κατεβαζει μονο ενας μπορει να σημαινει οτι κατεβαζει μονο αυτος που δεν πρεπει. Ή κανω λαθος;

Πολύ ωραία εφαρμογή. Γνωρίζουμε αν υπάρχει και γραφικό περιβάλλον για τη χρήση της; Έψαξα λίγο αλλά δε βρίσκω κάτι.

Τεχνικά έχεις δίκιο στην πράξη όχι.

Για παράδειγμα στο Pop_OS δεν υπάρχει στα αποθετήρια. Η ομάδα του Mint δεν παρέχει πακέτα ούτε καν για Debian. Δεν τους κατηγορώ για αυτό, είναι υπόθεση της κάθε διανομής να πακετάρει ότι θέλει. Στην πράξη λοιπόν και μέχρι να υιοθετηθεί από άλλες διανομές περιοριζόμαστε στο Mint.

Και μάλιστα μάλλον στις τελευταίες εκδόσεις του Mint. Όταν είχε ανακοινωθεί προσπάθησα να το εγκαταστήσω στο υπάρχον Mint και λόγω κάποιου καινούργιου Python Depedency δεν μπορούσε να εγκατασταθεί ούτε στο ίδιο το Mint. Σήμερα νομίζω πως έχει γίνει backport.

Στο Arch υπάρχει, αλλά όχι σαν επίσημο πακέτο, αλλά στο AUR. Υπάρχει και σαν πακέτο Flathub βέβαια (πακεταρισμένο από τον ίδιο τον mtwebster που το έγραψε) αλλά και πάλι περιοριζόμαστε σε υπολογιστές που τρέχουν Linux. Επίσης είναι σημαντικό οι δύο υπολογιστές να τρέχουν την ίδια έκδοση

Όχι δεν υπάρχει κάποιο γραφικό περιβάλλον – είναι ένα ωραίο project btw – αλλά ίσως να μην έχει και τόσο νόημα, η συνήθης χρήση αυτών των εργαλείων είναι για μεταφορές από/σε servers

1 Like

Στην mx υπαρχει πακετο στο test repo και αυτο εγινε με τη βοηθεια καποιου developer του mint. Το οτι υπηρχε στην mx το ειχα αναφερει παλιοτερα συγκεκριμενα εδω → Warpinator, πρόγραμμα διαμοιρασμού αρχείων - #3 by raik
Δεν ηξερα ομως οτι πρεπει να εχουν και την ιδια εκδοση. Αυτο ειναι ακομα πιο περιοριστικο.
Παντως πολυ καλη επιλογη το croc, αν και πιο ευκολα βρισκεις στα αποθετηρια το magic-wormhole

1 Like

Η μεταφορά μπορεί να γίνει μόνο από ένα άτομο. Αν κάποιος μαντέψει τον κωδικό καλύτερα να παίξει ΛΟΤΤΟ. Αν το καταφέρει δεν θα μπορείς εσύ να το κατεβάσεις, οπότε μάλλον θα το καταλάβετε και οι δύο :slight_smile:

Σε αυτήν την περίπτωση, μάλλον έχεις ήδη ένα σοβαρότερο πρόβλημα :slight_smile:

PAKE additionally will prevent eavesdroppers. If anyone “listens in” on the information exchange, then all parties will end up with different strong keys and no one can decrypt anything between them, alerting the users that a eavesdropper is present

Αν η μεταφορά γίνει μεταξύ δυο διαφορετικών ατόμων, η μεταφορά του κωδικού πρέπει να γίνει από κάποιο ασφαλές κανάλι. Πάλι αν γίνει υποκλοπή του μέσου επικοινωνίας ο παραλήπτης δεν θα προλάβει να το λάβει, οπότε πάλι θα γίνει αντιληπτό. Αν αυτό είναι πρόβλημα, μπορείς να στείλεις κρυπτογραφημένο το ίδιο το αρχείο. Εδώ το croc πλεονεκτεί γιατί μπορείς να προ συμφωνήσεις μέρος ή όλη την λέξη κλειδί. Επιπλέον μπορείς εύκολα να έχεις τον δικό σου relay server σε κάποιο raspberry pi :raspberry: για παράδειγμα.

Περισσότερα PAKE και την ασφάλεια, απο την παρουσίαση του Magic Wormhole

Ναι αυτο ηθελα να πω. Οτι απο το ιδιο ασφαλες καναλι ενδεχομενως να μπορεις να στειλεις και το αρχειο εξαρχης. Το πλεονεκτημα του croc ομως (και του magic-wormhole) ειναι πως μπορει να γινει αντιληπτο (οπως σωστα λες) αν υπαρχει προβλημα (εστω και αργα). Για αυτο αν καποιος θελει να ειναι σιγουρος, στελνει κατι για δοκιμη πρωτα και μετα οτι πραγματικα θελει να στειλει. (νομιζω)

Αυτό δεν είναι πάντα εφικτό. Στο πρακτικό παράδειγμα χρήσης: Θέλω να μεταφέρω από τον server του linux-user.gr το αντίγραφο ασφαλείας τον υπολογιστή μου, για πάν ενδεχώμενο. Το αρχείο είναι της τάξης του 1GB (μεγαλώσαμε και έχουμε πολλές πολλές εικόνες). Και δεν μπορώ, αλλά και δεν θέλω να έχω κάποιο software να τρέχει μόνιμα εκεί. Εκεί είναι σχεδόν η μόνη λύση. Και δεν βλέπει και κανένας άλλος την λέξη κλειδί.

Δεν βλέπω κανένα πρόβλημα ασφάλειας, οι πιθανότητες να μαντέψει κάποιος την λέξη είναι εξαιρετικά μικρές, τις λες και αδύνατες. Μελέτησε τα Slides για να το διαπιστώσεις και μόνος σου.

Ναι δε διαφωνω σε κατι. Οπως το λες ειναι και πιστευω οτι τωρα ειναι πολυ ξεκαθαρο περι τινος προκειται. :+1:

Επισεις υπαρχουν deb πακετα στο github του croc. Για ριχτε μια ματια εδω:

Θα δειτε οτι υπαρχει το croc_8.6.8_Linux-64bit.deb.

Δεν το εχω δοκιμασει ακομα… αλλα μολις το ριξω στο Debian και το δοκιμασω… θα σας πω.

1 Like

Υπάρχει flatpak και δουλεύει καλά σε ubuntu 20.04

Bλεπω οτι υπαρχει και στο fdroid πλεον…

1 Like