[NEXTCLOUD 13] End to End Encryption

Με την έλευση της νέας έκδοσης του Nextcloud 13 ήρθε και ένα νέο χαρακτηριστικό, αυτό του End-to-End Encryption για περισσότερη ασφάλεια και ιδιωτικότητα. Αυτό ας μη το μπερδεύουμε με το Server Side Encryption το οποίο είναι διαθέσιμο εδώ και κάμποσες εκδόσεις. Εξάλλου το Server Side Encryption έχει και ένα Performance Impact και προτείνεται να το ενεργοποιήσουμε μόνον αν το θεωρούμε απαραίτητο.
Παρακάτω θα δούμε τι είναι αλλά και πως μπορούμε να ενεργοποιήσουμε το e2e στο Nextcloud 13.

Το end-to-end encryption λειτουργεί βάσει της ασύμμετρης κρυπτογραφίας. Αυτό που στην ουσία γίνεται είναι να κρυπτογραφούνται τα δεδομένα που θα επιλέξουμε τοπικά στον υπολογιστή μας και να ανεβαίνουν (upload) ήδη κρυπτογραφημένα στον Nextcloud Server. Φανταστείτε κάτι σαν αυτό, αλλά πιο εύκολο και λίγο διαφορετικό στην υλοποίηση.

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

Η διαδικασία έχει ως εξής:

  1. Ο Client δημιουργεί ένα αίτημα πιστοποιητικού τύπου X.509 και ένα ιδιωτικού κλειδιού.
    Το CN(Common Name) του X.509 θα «δεθεί» στο τρέχων User-ID.
  2. Ο Client ανεβάζει (upload) το αίτημα του X.509 στον Server στέλνοντας ένα αίτημα πιστοποιητικού σε μορφή κρυπτογραφημένου URL και το αποθηκεύει σε συγκεκριμένη τοποθεσία (/ocs/v2.php/apps/end_to_end_encryption/api/v1/public-key)
  3. Ο Server δημιουργεί-υπογράφει- ένα πιστοποιητικό εάν το CN ταιριάζει με το User-ID
  4. Ο Server επιστρέφει το πιστοποιητικό υπογεγραμμένο.
  5. Ο Client αποθηκεύει το Ιδιωτικό και το Δημόσιο κλειδί στην κλειδοθήκη της συσκευής.

Σε δεύτερη φάση το Ιδιωτικό κλειδί θα αποθηκευτεί κρυπτογραφημένο στον Server για να απλοποιηθεί η διαδικασία προσθήκης νέων συσκευών. Αυτό που αναφέραμε και παραπάνω. Δηλαδή ότι η διαδικασία γίνεται μια φορά και έπειτα απλοποιείται ακόμη περισσότερο για νέες συσκευές. Αφού το Ιδιωτικό κλειδί έχει αποθηκευτεί στον Server, η διαδικασία αλλάζει και νέες συσκευές προστίθενται με μια κωδική φράση.

Ας φανταστούμε ότι η αρχική συσκευή μας ήταν το Desktop. Έπειτα θέλουμε να προσθέσουμε το Laptop ή το Smartphone. Αυτό που πρέπει να κάνει η νέα συσκευή είναι λήψη του ήδη υπάρχον πιστοποιητικού το οποίο έχει «δεθεί» με το User-ID μας. Έπειτα ζητά μια κωδική φράση 12 λέξεων με την οποία θα μπορεί να αποκρυπτογραφήσει το Ιδιωτικό κλειδί και τελικά να το αποθηκεύσει.
Φακέλους μπορεί να αποκρυπτογραφήσει μόνον όποιος έχει το Ιδιωτικό κλειδί, αντίστοιχο του Δημόσιου κλειδιού με το οποίο κρυπτογραφήθηκαν.

Δημιουργώντας έναν φάκελο end-to-end encrypted πρέπει να περιμένουμε κάποια χαρακτηριστικά να μη λειτουργούν. Αυτά είναι τα παρακάτω:

  1. Κάδος απορριμμάτων (server side)
  2. Έκδοση φακέλων-αρχείων (server side)
  3. Αναζήτηση (server side)
  4. Previews (server side)
  5. Προσπέλαση φακέλων (από το Web Interface)
  6. Κοινή χρήση των φακέλων με groups
  7. Κοινή χρήση σε επίπεδο αρχείων (τα οποία εμπεριέχονται στον κρυπτογραφημένο φάκελο)

Δεν θα μπούμε σε περαιτέρω τεχνικές λεπτομέρειες. Όσοι ενδιαφέρονται μπορούν να αιτηθούν το Nextcloud e2e whitepaper από εδώ.

Όλα τα παραπάνω που διαβάσατε λαμβάνουν χώρα στο παρασκήνιο. Δεν κάνουμε κάτι εμείς. Εμείς απλά κάνουμε εγκατάσταση κάποιες εφαρμογές στον Server και τον Client ο οποίος υποστηρίζει e2e.
Ο Client πρέπει να είναι έκδοσης > 2.4 και προς στιγμήν δεν είναι διαθέσιμος. Αναμένουμε σύντομα τη κυκλοφορία του αν και αυτό εξαρτάται από την επίλυση σημαντικών σφαλμάτων (bugs) τα οποία ενδεχομένως έχει.

Στήσιμο Server

Από τη μεριά του Server πρέπει να ενεργοποιήσουμε δυο εφαρμογές:

  • Default Encryption Module
  • End-to-End Encryption

Τις βρίσκουμε και τις δυο στη λίστα εφαμογών (+Apps). Είτε στο «Disabled Apps» ενώ το End-to-End Encryption στη κατηγορία «Files».

Client Side

Θα πρέπει να διαθέτουμε τη τελευταία έκδοση Nextcloud Client η οποία ενσωματώνει αυτή τη λειτουργία. Προς στιγμήν υπάρχει μόνον ως prerelease και δεν προτείνεται για εγκατάσταση εκτός αν θέλουμε να δοκιμάσουμε και να αναφέρουμε σφάλματα (αν συμμετέχουμε δηλαδή στο testing).

Για τους τολμηρούς (ή τους testers) παρατίθενται οδηγίες λήψης και εγκατάστασης παρακάτω.

Λήψη μπορούμε να κάνουμε από αυτό το σύνδεσμο και στο φάκελο E2E. Είναι ένα AppImage το οποίο αφού του δώσουμε δικαιώματα εκτέλεσης, το εκτελούμε.

Ακολουθούμε τη διαδικασία ως συνήθως, μόνο που σε αυτόν τον Client θα δούμε και ένα νέο popup window.

Κάνοντας κλικ στο «Show Details» θα μας εμφανίσει την κωδική φράση την οποία πρέπει να αποθηκεύσουμε σε ασφαλές σημείο για πιθανή μελλοντική χρήση.
Το μόνο που έχουμε να κάνουμε από εδώ και στο εξής είναι να επιλέξουμε και να θέσουμε τους φακέλους που θέλουμε σε End-to-End Encrypted. Απλά και εύκολα με ένα δεξί κλικ.

Άποψη και Επίλογος

Το νέο αυτό χαρακτηριστικό του Nextcloud του δίνει ακόμη περισσότερη ώθηση σε ότι αφορά το Business και το Enterprise. Πολλές είναι οι εταιρίες που τους απασχολεί η διαφύλαξη των δεδομένων που επεξεργάζονται. Είτε τις απασχολεί τώρα, είτε θα τις απασχολήσει στο μέλλον (στο σύντομο και εγγύς). Για όσους έχουν ασχοληθεί με τον νέο κανονισμό (GDPR) καταλαβαίνουν τι λέω. Οι υπόλοιποι καλύτερα να ψάξουν και να προετοιμαστούν πριν να είναι αργά.

Από τη μεριά των Home Users είναι σίγουρα μια καλή προσθήκη, ειδικά όταν διαθέτουμε χρήστες με δικαιώματα Admin στον Server μας. Με το E2E διασφαλίζουμε ότι κανένας δεν θα έχει πρόσβαση σε φακέλους που δεν θέλουμε και ακόμη και στη περίπτωση που πέσουμε θύματα επίθεσης, θα ξέρουμε ότι τα αρχεία που δεν θέλουμε να διαρρεύσουν είναι ασφαλή.

Χαρακτηριστικά τα οποία άλλες υπηρεσίες Cloud δίνουν επί συνδρομή, επί πληρωμή, το Nextcloud έχει ήδη ενσωματώσει και τα προσφέρει δωρεάν. Εάν μπορούμε ας συνεισφέρουμε κι εμείς σε αυτό το μεγάλο έργο.


Until next time …
Thanks for reading!

3 thoughts on “[NEXTCLOUD 13] End to End Encryption

  1. Α! οκ, έστω για το android, αλλά για το iPhone, για το Desktop ( GNU/Linux, Mac, Windows ) … ;
    Τέλος πάντων, εύχομαι όλα να πάνε καλά.. το ότι θέλουν και όντως προχωράνε εμένα μου αρκεί.. Θα έρθουν όλα στην ώρα τους.. :)

    Όσο για τα AppImages, όντως τώρα που το λες.. κάτι πάει να μου θυμίσει… αλλά θα το ξανά ψάξω! Δηλαδή πλέον θα είναι τέτοια τα packages files και με ένα αρχείο θα είναι για οποιαδήποτε διανομή ; Πολύ καλό, θα το ψάξω…

    Όσο για το «GDPR», πάρα πολύ ενδιαφέρον! Θα το ψάξω και περαιτέρω..

    Ευχαριστώ πάρα πολύ! :)

  2. Μου αρέσει πάρα πολύ η ανάλυση/περιγραφή και το whitepaper που δίνουν! Γενικά όσο πάνε, το πάνε και καλύτερα όσο αφορά το documentation!

    Το ότι όμως ρε παιδιά διαφημίζουν ένα χαρακτηριστικό που φέρνει η νέα έκδοση (13) χωρίς όμως να είναι επί της ουσίας διαθέσιμο, συγνώμη αλλά όσο και να αγαπώ τον εν λόγο οργανισμό, αυτό είναι απαράδεχτο! Ακόμη οι clients να μην το υποστηρίζουν ; Άστο τότε, τι το λες…. ; :/

    Όπως και να έχει πάντως είναι ένα χαρακτηριστικό που μας κάνει ακόμη πιο χαρούμενος και λάτρεις της συγκεκριμένου ανοιχτού και ελεύθερου έργου!

    Άκυρο, αλλά αυτά τα «AppImage» τι είναι; Τι είδους αρχεία είναι αυτά; Ισχύουν και για το Debian ; Από πότε προέκυψαν; :P

    Τι είναι αυτός ο νέος κανονισμός «GDPR» ρε φίλε! ; Δε μας έχεις γράψει κάτι…!! Για πες μας!

    1. Ο Client για το Android είναι έτοιμος. Λειτουργεί.
      Το χαρακτηριστικό αφορά τον server, δηλαδή πρέπει να έχεις 13 για να δουλέψει, είναι νέο χαρακτηριστικό της έκδοσης 13. Οι υπόλοιποι Clients θα αναβαθμιστούν όταν έρθει η ώρα.
      Τα AppImages είναι αντίστοιχα των Snaps και Flatpaks, δηλαδή Universal Packages. Απλά το κάνεις εκτελέσιμο και το τρέχεις ανεξαρτήτου διανομής.
      Ο GDPR δεν είναι γι’ αυτό το blog. Είναι Κανονισμός της Ευρωπαϊκής Ένωσης και αφορά περισσότερο επιχειρήσεις. (General Data Protection Regulation). Έχει άμεση σχέση με την αποθήκευση, επεξεργασία, διαχείριση προσωπικών δεδομένων και τσουχτερά πρόστιμα. Κάτι το οποίο προτείνει ο GDPR είναι η κρυπτογράφηση όλων των δεδομένων, τοπικά, cloud… παντού. Γι’ αυτό και το αναφέρω.
      Ένα περιεκτικό άρθρο βρίσκεται εδώ: https://www.papaki.com/blog/2018/02/09/gdpr-things-you-need-to-know
      Με ένα DuckDuckGo «GDPR» θα βρεις πολλά περισσότερα αν έχεις όρεξη για διάβασμα.

Συμβάλετε κι εσείς με ένα σχόλιο

Εισάγετε τα παρακάτω στοιχεία ή επιλέξτε ένα εικονίδιο για να συνδεθείτε:

Λογότυπο WordPress.com

Σχολιάζετε χρησιμοποιώντας τον λογαριασμό WordPress.com. Αποσύνδεση /  Αλλαγή )

Φωτογραφία Google+

Σχολιάζετε χρησιμοποιώντας τον λογαριασμό Google+. Αποσύνδεση /  Αλλαγή )

Φωτογραφία Twitter

Σχολιάζετε χρησιμοποιώντας τον λογαριασμό Twitter. Αποσύνδεση /  Αλλαγή )

Φωτογραφία Facebook

Σχολιάζετε χρησιμοποιώντας τον λογαριασμό Facebook. Αποσύνδεση /  Αλλαγή )

w

Σύνδεση με %s