Στο πλαίσιο του προγράμματος Google Summer Of Code 2019 και υπό την εποπτεία της ΕΕΛΛΑΚ αναπτύχθηκε το odt_anonymizer . Μετά τις αλλαγές που επέφερε ο GDPR, ήταν σημαντικό να δημιουργηθεί ένα μέσο για την εύκολη και ασφαλή ανωνυμοποίηση των δεδομένων βάσει των νέων αλλαγών.
Το έργο χωρίστηκε σε 3 τμήματα. Τη δημιουργία ενός προγράμματος ανωνυμοποίησης, τη δημιουργία μιας γραφικής διεπαφής χρήστη (GUI) και μια επέκταση LibreOffice ενσωματώνοντας έτσι την υπηρεσία.
Παρακάτω ακολουθεί μια περιγραφή των 3 τμημάτων:
- Πρόγραμμα (Package)
Το πρόγραμμα (γραμμένο σε python3) έχει τη δυνατότητα να ανωνυμοποιεί οποιαδήποτε αρχεία του δίνονται σε επέκταση οdt ή txt. Προκειμένου η υπηρεσία να αναγνωρίζει ευαίσθητες πληροφορίες που πιθανόν να υπάρχουν εντός του αρχείου, δημιουργήθηκαν μία σειρά από patterns. Τα patterns αυτά βρίσκονται στο αρχείο patterns.json του package. Αναφορικά, η υπηρεσία αναγνωρίζει:
- Τηλεφωνικούς Αριθμούς
- Πινακίδες Οχημάτων
- Αριθμούς Ταυτότητας
- Ibans
- Αριθμούς Φορολογικού Μητρώου (ΑΦΜ)
- Αριθμούς Μητρώου Κοινωνικής Ασφάλισης (ΑΜΚΑ)
- Ονόματα Εταιριών
- Ονόματα Οδών
- Ονόματα και Επίθετα
- Διάφορα Μέρη
- Αριθμούς Δικαστικων Αποφάσεων
Επιπρόσθετα, προκειμένου η υπηρεσία να είναι επεκτάσιμη και να προσαρμόζεται στις ανάγκες του χρήστη προστέθηκαν οι εξής λειτουργίες:
– Ο χρήστης μπορεί να προσθέσει λέξεις τις οποίες πιθανόν να θέλει να αποκρύψει στο κείμενο.
– Ο χρήστης μπορεί να κάνει χρήση regular expressions που θα προσθέτει ο ίδιος.
Αναλυτικότερα πληροφορίες σχετικά με την εγκατάσταση αλλά και τη χρήση του package μπορείτε να βρείτε εδώ.
- Διεπαφή χρήστη (GUI)
Η υλοποίηση της γραφικής διεπαφής είχε σκοπό να προσφέρει ευκολία στην χρήση του package από το χρήστη.
Στην αρχική σελίδα (Home) ο χρήστης μπορεί να ανεβάζει τα αρχεία τα οποία επιθυμεί να επεξεργαστεί.
Όλα τα αρχεία που ανέβασε μόλις αλλά και οποιαδήποτε τυχόν είχε ανεβάσει παλαιότερα βρίσκονται στη σελίδα Files (που μπορεί να μεταβεί κάνοντας κλικ πάνω δεξιά).
Η σελίδα Files χωρίζεται σε δύο μέρη.
Κάτω από το Documents ο χρήστης μπορεί να εντοπίσει όλα τα αρχεία που έχει ανεβάσει, να τα επεξεργαστεί (Preview), να τα κατεβάσει (Download) και να τα σβήσει(Delete).
Κάτω από το User Dictionary Words ο χρήστης μπορεί να ελέγξει ή να σβήσει όλες τις λέξεις τις οποίες έχει προσθέσει στο λεξικό του. Το user dictionary πρόκειται για ένα λεξικό, που δημιουργείται από το χρήστη με λέξεις που ο ίδιος προσθέτει. Οι λέξεις αυτές ανωνυμοποιούνται σε όλα τα αρχεία τα οποία έχει ανεβάσει.
Η σελίδα Preview είναι εκείνη στην οποία ο χρήστης μπορεί να επεξεργαστεί περαιτέρω τα αρχεία του. Επιλέγοντας οποιεσδήποτε λέξεις από το κείμενο θα παρατηρήσει το κουμπί Anonymize word να αναβοσβήνει στιγμιαία. Κάνοντας κλικ στο κουμπί αυτό ο χρήστης μπορεί να ανωνυμοποιήσει το κείμενο που επέλεξε με έναν από τους ακόλουθους τρόπους.
– Πατώντας το Update Text: ο χρήστης θα ανωνυμοποιήσει το κείμενο-λέξεις που επέλεξε μονάχα στο συγκεκριμένο αρχείο. Αν κάποια στιγμή επιθυμεί να αναιρέσει την ανωνυμοποίηση αυτή μπορεί να επιλέξει το κουμπί Delete Words.
– Πατώντας το Update User Dictionary: ο χρήστης ενημερώνει το λεξικό του (αυτό που αναφέρθηκε στη σελίδα Files) και ανωνυμοποιεί το επιλεγμένο κείμενο σε όλα του τα αρχεία. Αν κάποια στιγμή επιθυμεί να αναιρέσει την ανωνυμοποίηση αυτή μπορεί να σβήσει κάθε προσθήκη του από τη σελίδα Files κάτω από το User Dictionary Words.
Τέλος ο χρήστης μπορεί να επιλέξει ανάμεσα σε δύο τρόπους προβολής: Side to Side ή Focus.
Στο Side to Side mode (που είναι και η προκαθορισμένη επιλογή) το αρχικό κείμενο και το ανωνυμοποιημένο εμφανίζονται δίπλα.
Στο Focus mode εμφανίζεται μονάχα το ανωνυμοποιημένο κείμενο.
Αναλυτικότερα πληροφορίες σχετικά με την εγκατάσταση αλλά και τη χρήση του web gui μπορείτε να βρείτε εδώ.
- LibreOffice Extension
Η υλοποίηση του extension είχε σκοπό να προσφέρει ευκολία στην ενσωμάτωση και χρήση της υπηρεσίας εντός του LibreOffice.
Η εγκατάσταση της υπηρεσίας προσφέρει μία σειρά από Macros για την εύκολη ανωνυμοποίση του αρχείου το οποίο επεξεργάζεται ο χρήστης.
Ανοίγοντας το LibreOffice και επιλέγοντας:
Tools→Macros → Run Macro → LibreOffice Macros → anonymizer_extension εμφανίζονται όλα τα macros που έχουν δημιουργηθεί.
Ξεκινώντας, πριν από οποιαδήποτε επεξεργασία, ο χρήστης πρέπει να τρέξει το macro init.
Στη συνέχεια μπορεί να τρέξει το anonymize_document το οποίο ανωνυμοποιεί και ανοίγει το νέο αρχείο σε ένα νέο παράθυρο LibreOffice.
Επιλέγοντας οποιαδήποτε κείμενο μέσα στον editor, ο χρήστης μπορεί να το ανωνυμοποιήσει τρέχοντας το anonymize_selected_text.
Ανά πάσα στιγμή μπορεί να δεί όλες τις λέξεις που έχει ανωνυμοποιήσει τρέχοντας το list_of_added_words. Κάθε λέξη που έχει ανωνυμοποιήσει περιέχεται στο αρχείο που μόλις άνοιξε. Έστω δηλαδή ότι έχει ανωνυμοποιήσει τη λέξη Δικαστής. Μέσα στο αρχείο θα εντοπίσει:
<selected_word>Δικαστής<end_of_selected_word>,
Για να αναιρέσει την ανωνυμοποίηση της λέξης Δικαστής αρκεί απλώς να σβήσει την παραπάνω γραμμή. Προκειμένου να ανανεωθεί το κείμενο και να φορτώσει το LibreOffice την αναίρεση αυτή ο χρήστης πρέπει να τρέξει το macro reload_changes.
Τέλος το macro helpme ανοίγει ένα βοηθητικό κείμενο για βοήθεια σχετικά με τη χρήση της υπηρεσίας.
Αναλυτικότερα πληροφορίες σχετικά με την εγκατάσταση αλλά και τη χρήση του LibreOffice Extension μπορείτε να βρείτε εδώ.
Ο πηγαίος κώδικας καθώς και οι οδηγίες εγκατάστασης μπορούν να βρεθούν wiki .
Για όσους θέλουν να συνεισφέρουν στον project μπορούν να βρουν περαιτέρω πληροφορίες εδω.
Google Summer of Code participant: Dimitrios Katsiros