
TitanCrypt | Ένα σύστημα κρυπτογράφησης αρχείων με αρχιτεκτονική μηδενικής εμπιστοσύνης
Ένα διαδικτυακό σύστημα κρυπτογράφησης αρχείων με αρχιτεκτονική μηδενικής εμπιστοσύνης, το οποίο εκτελεί όλες τις κρυπτογραφικές λειτουργίες εντός του προγράμματος περιήγησης του χρήστη. Ο διακομιστής δεν έχει ποτέ πρόσβαση σε κλειδιά κρυπτογράφησης ή σε μη επεξεργασμένα δεδομένα. Αυτό το έργο μπορεί να επεξεργαστεί μεγάλα αρχεία έως και 10 γιγαμπάιτ και περισσότερο χωρίς υψηλή κατανάλωση μνήμης.
Αυτό το έργο είναι μια εφαρμογή πλήρους στοίβας που χρησιμοποιεί Node.js και Express στην πλευρά του διακομιστή και Vanilla JavaScript στην πλευρά του χρήστη. Ο κύριος στόχος του είναι να αναδείξει την ικανότητα υλοποίησης πολύπλοκων συστημάτων ασφαλείας χρησιμοποιώντας μόνο τυπικές διεπαφές προγραμματισμού εφαρμογών του προγράμματος περιήγησης.
Βασικά τεχνικά χαρακτηριστικά:
Προηγμένη ασφάλεια:
Υλοποίηση κρυπτογράφησης AES-256-GCM με χρήση της Web Crypto API
Χρήση PBKDF2 με 600.000 επαναλήψεις για παραγωγή κλειδιού, παρέχοντας αντοχή σε επιθέσεις ωμής βίας
Αρχιτεκτονική μηδενικής εμπιστοσύνης, που σημαίνει ότι ο διακομιστής δεν έχει πρόσβαση σε κλειδιά ή μη κρυπτογραφημένα δεδομένα
Υλοποίηση SHA-256 για τη διασφάλιση της ακεραιότητας και της αυθεντικότητας των αρχείων
Επίπεδο ασφαλείας διακομιστή με Helmet.js, Πολιτική Ασφαλείας Περιεχομένου και Περιορισμό Ρυθμού
Διαχείριση μνήμης και απόδοσης:
Επεξεργασία αρχείων με τεμαχισμό και ροή δεδομένων με τμήματα 1 μεγαμπάιτ
Σταθερή και χαμηλή κατανάλωση μνήμης ακόμη και για αρχεία άνω των 10 γιγαμπάιτ
Άμεση εμφάνιση ποσοστού προόδου, ταχύτητας σε μεγαμπάιτ ανά δευτερόλεπτο και εναπομένοντος χρόνου
Δεν απαιτείται εγκατάσταση λογισμικού, πλήρως διαδικτυακό
Εμπειρία χρήστη:
Σχεδιασμός Glass-morphism με σκουρόχρωμη λειτουργία
Υποστήριξη μεταφοράς και απόθεσης για μεταφόρτωση αρχείων
Σύστημα ειδοποιήσεων με αυτόματη εξαφάνιση
Διαχείριση κλειδιών που περιλαμβάνει τυχαία δημιουργία κλειδιών, αντιγραφή, εισαγωγή και εξαγωγή ως αρχεία JSON
Τεχνική τεκμηρίωση:
Πλήρες λευκό βιβλίο άνω των 20 σελίδων που περιλαμβάνει διαγράμματα αρχιτεκτονικής, διαγράμματα ροής κρυπτογράφησης, διαγράμματα ακολουθίας, ανάλυση απόδοσης και μοντελοποίηση απειλών
Τεκμηρίωση προτύπων κρυπτογράφησης όπως NIST SP 800-38D, FIPS 180-4 και FIPS 197
Διαγράμματα Mermaid για την απεικόνιση της αρχιτεκτονικής του συστήματος, των διαδικασιών κρυπτογράφησης και της διαχείρισης κλειδιών
Τεχνολογίες που χρησιμοποιήθηκαν
Backend:
Node.js
Express.js
Helmet.js για ασφάλεια
Express Rate Limit για περιορισμό αιτημάτων
Dotenv για διαχείριση ρυθμίσεων
Frontend:
Vanilla JavaScript χωρίς κανένα πλαίσιο εργασίας
Web Crypto API με SubtleCrypto
HTML5 File API και Blob API
CSS3 με προηγμένες δυνατότητες όπως Glass-morphism, κινούμενα γραφικά και σκουρόχρωμη λειτουργία
Υλοποιημένες έννοιες:
Αρχιτεκτονική μηδενικής εμπιστοσύνης
Επεξεργασία αρχείων με τεμαχισμό
Ασύγχρονος προγραμματισμός με Async/Await
Κρυπτογραφία από την πλευρά του πελάτη
Ροή δεδομένων με αποδοτική χρήση μνήμης
Τεχνικές προκλήσεις που έλυσα
Κρυπτογράφηση από την πλευρά του πελάτη χωρίς βιβλιοθήκες τρίτων: Αντί να χρησιμοποιήσω βιβλιοθήκες JavaScript για κρυπτογράφηση, χρησιμοποίησα την τυπική Web Crypto API που είναι ενσωματωμένη στο πρόγραμμα περιήγησης. Αυτή η API υλοποιείται εγγενώς στο πρόγραμμα περιήγησης και επωφελείται από την επιτάχυνση υλικού της CPU. Επίσης, εξαλείφει την ανάγκη εμπιστοσύνης σε κώδικα τρίτων.
Επεξεργασία μεγάλων αρχείων χωρίς υψηλή κατανάλωση μνήμης: Χώρισα μεγάλα αρχεία έως 10 γιγαμπάιτ και περισσότερο σε τμήματα του 1 μεγαμπάιτ. Κάθε τμήμα διαβάζεται, κρυπτογραφείται και στη συνέχεια διαγράφεται από τη μνήμη ξεχωριστά. Το τελικό αποτέλεσμα συναρμολογείται ως Blob στο πρόγραμμα περιήγησης. Η κατανάλωση μνήμης παραμένει σταθερή σε όλη τη διαδικασία περίπου στα 26 μεγαμπάιτ.
Πραγματική αρχιτεκτονική μηδενικής εμπιστοσύνης: Σε αυτή την αρχιτεκτονική, ο διακομιστής παρέχει μόνο στατικά αρχεία όπως HTML, CSS και JavaScript. Όλη η λογική κρυπτογράφησης εκτελείται στην πλευρά του πελάτη. Τα κλειδιά κρυπτογράφησης και τα μη επεξεργασμένα δεδομένα δεν αποστέλλονται ποτέ στον διακομιστή. Ακόμη κι αν ο διακομιστής παραβιαστεί πλήρως, ένας εισβολέας δεν έχει πρόσβαση σε κανένα ευαίσθητο δεδομένο.
Ανταποκρινόμενη διεπαφή χρήστη κατά τη διάρκεια βαριάς επεξεργασίας: Χρησιμοποιώντας ασύγχρονες συναρτήσεις και επεξεργασία με τεμαχισμό, η διεπαφή χρήστη παραμένει πλήρως ανταποκρινόμενη ακόμη και κατά την κρυπτογράφηση μεγάλων αρχείων. Η γραμμή προόδου ενημερώνεται σε πραγματικό χρόνο με υπολογισμούς ταχύτητας και εκτιμήσεις εναπομένοντος χρόνου.
Γιατί είναι πολύτιμο αυτό το έργο;
Αυτό το έργο καταδεικνύει τις ακόλουθες ικανότητες:
Βαθιά γνώση JavaScript και Web APIs: Έχω δημιουργήσει μια πολύπλοκη εφαρμογή ασφαλείας χωρίς τη χρήση πλαισίων εργασίας
Κατανόηση προηγμένων εννοιών ασφαλείας: Αρχιτεκτονική μηδενικής εμπιστοσύνης, κρυπτογράφηση AES-GCM και ασφαλής παραγωγή κλειδιού με PBKDF2
Διαχείριση μνήμης και βελτιστοποίηση: Επεξεργασία μεγάλων αρχείων χωρίς καταρρεύσεις ή επιβραδύνσεις συστήματος
Ικανότητα τεχνικής τεκμηρίωσης: Σύνταξη επαγγελματικού λευκού βιβλίου με διαγράμματα αρχιτεκτονικής
Καθαρή αρχιτεκτονική λογισμικού: Διαχωρισμός της λογικής κρυπτογράφησης, της διαχείρισης αρχείων και της διεπαφής χρήστη
Δημιουργική επίλυση προβλημάτων: Παροχή λύσεων σε πραγματικές προκλήσεις όπως η κρυπτογράφηση μεγάλων αρχείων εντός του προγράμματος περιήγησης
GitHub: https://github.com/paxmatixamevt/TitanCrypt

















