
TitanCrypt | Ein Dateiverschlüsselungssystem mit Zero-Trust-Architektur
Ein webbasiertes Dateiverschlüsselungssystem mit Zero-Trust-Architektur, das alle kryptografischen Operationen im Browser des Benutzers durchführt. Der Server hat niemals Zugriff auf Verschlüsselungsschlüssel oder Rohdaten. Dieses Projekt kann große Dateien von bis zu 10 Gigabyte und mehr ohne hohen Arbeitsspeicherverbrauch verarbeiten.
Dieses Projekt ist eine Full-Stack-Anwendung, die auf der Serverseite Node.js und Express und auf der Clientseite Vanilla JavaScript verwendet. Das Hauptziel ist es, die Fähigkeit zur Implementierung komplexer Sicherheitssysteme allein mit Standard-Browser-APIs zu demonstrieren.
Wichtige technische Merkmale:
Erweiterte Sicherheit:
Implementierung der AES-256-GCM Verschlüsselung mit der Web Crypto API
Verwendung von PBKDF2 mit 600.000 Iterationen zur Schlüsselableitung mit Schutz vor Brute-Force-Angriffen
Zero-Trust-Architektur, bei der der Server keinen Zugriff auf Schlüssel oder unverschlüsselte Daten hat
Implementierung von SHA-256 zur Gewährleistung der Dateiintegrität und Authentizität
Serverseitige Sicherheitsschicht mit Helmet.js, Content Security Policy und Rate Limiting
Speicher- und Leistungsverwaltung:
Chunked-Streaming-Verarbeitung mit 1 Megabyte großen Segmenten
Konstant niedriger und stabiler Arbeitsspeicherverbrauch selbst für Dateien über 10 Gigabyte
Echtzeitanzeige von Fortschrittsprozentsatz, Geschwindigkeit in Megabyte pro Sekunde und verbleibender Zeit
Keine Softwareinstallation erforderlich, vollständig webbasiert
Benutzererfahrung:
Glass-morphism Design mit Dark Theme
Drag-and-Drop-Unterstützung für Datei-Upload
Toast-Benachrichtigungssystem mit automatischem Ausblenden
Schlüsselverwaltung mit zufälliger Schlüsselgenerierung, Kopieren, Import und Export als JSON-Dateien
Technische Dokumentation:
Vollständiges White Paper mit über 20 Seiten einschließlich Architekturdiagrammen, Verschlüsselungsflussdiagrammen, Sequenzdiagrammen, Leistungsanalyse und Bedrohungsmodellierung
Dokumentation der Verschlüsselungsstandards gemäß NIST SP 800-38D, FIPS 180-4 und FIPS 197
Mermaid-Diagramme zur Veranschaulichung der Systemarchitektur, Verschlüsselungsprozesse und Schlüsselverwaltung
Verwendete Technologien
Backend:
Node.js
Express.js
Helmet.js für Sicherheit
Express Rate Limit für Anfragenbegrenzung
Dotenv für Konfigurationsverwaltung
Frontend:
Vanilla JavaScript ohne Frameworks
Web Crypto API mit SubtleCrypto
HTML5 File API und Blob API
CSS3 mit erweiterten Funktionen wie Glass-morphism, Animationen und Dark Theme
Implementierte Konzepte:
Zero-Trust-Architektur
Chunked File Processing
Asynchrone Programmierung mit Async/Await
Clientseitige Kryptografie
Speichereffizientes Streaming
Gelöste technische Herausforderungen
Clientseitige Verschlüsselung ohne Drittanbieter-Bibliotheken: Anstatt JavaScript-Bibliotheken für die Verschlüsselung zu verwenden, habe ich die standardmäßige Web Crypto API des Browsers eingesetzt. Diese API ist nativ im Browser implementiert und profitiert von der CPU-Hardwarebeschleunigung. Sie macht zudem das Vertrauen in Drittanbieter-Code überflüssig.
Verarbeitung großer Dateien ohne hohen Speicherverbrauch: Ich habe große Dateien von bis zu 10 Gigabyte und mehr in 1 Megabyte große Blöcke aufgeteilt. Jeder Block wird separat gelesen, verschlüsselt und anschließend aus dem Speicher gelöscht. Das Endergebnis wird als Blob im Browser zusammengesetzt. Der Speicherverbrauch bleibt während des gesamten Prozesses stabil bei etwa 26 Megabyte.
Echte Zero-Trust-Architektur: In dieser Architektur liefert der Server nur statische Dateien wie HTML, CSS und JavaScript aus. Die gesamte Verschlüsselungslogik läuft clientseitig. Verschlüsselungsschlüssel und Rohdaten werden niemals an den Server gesendet. Selbst wenn der Server vollständig kompromittiert wird, hat ein Angreifer keinen Zugriff auf sensible Daten.
Reaktionsfähige Benutzeroberfläche während schwerer Verarbeitung: Durch den Einsatz asynchroner Funktionen und blockweiser Verarbeitung bleibt die Benutzeroberfläche auch während der Verschlüsselung großer Dateien vollständig reaktionsfähig. Der Fortschrittsbalken aktualisiert sich in Echtzeit mit Geschwindigkeitsberechnungen und Zeitangaben.
Warum ist dieses Projekt wertvoll?
Dieses Projekt zeigt die folgenden Fähigkeiten:
Tiefes Verständnis von JavaScript und Web-APIs: Ich habe eine komplexe Sicherheitsanwendung ohne Frameworks entwickelt
Verständnis fortgeschrittener Sicherheitskonzepte: Zero-Trust-Architektur, AES-GCM-Verschlüsselung und sichere Schlüsselableitung mit PBKDF2
Speicherverwaltung und Optimierung: Verarbeitung großer Dateien ohne Abstürze oder Systemverlangsamungen
Technische Dokumentationsfähigkeiten: Verfassen eines professionellen White Papers mit Architekturdiagrammen
Saubere Softwarearchitektur: Trennung von Verschlüsselungslogik, Dateiverwaltung und Benutzeroberfläche
Kreative Problemlösung: Bereitstellung von Lösungen für reale Herausforderungen wie die Verschlüsselung großer Dateien im Browser
GitHub: https://github.com/paxmatixamevt/TitanCrypt

















