-
Notifications
You must be signed in to change notification settings - Fork 1
3. Projektidee und Anforderungsanalyse
Michael Dick edited this page Feb 17, 2023
·
9 revisions
- Nutzer speichern oft ihre Passwörter im Browser. Das ist höchst unsicher und kann von Angreifern ohne großen Aufwand abgegriffen werden
- Den Nutzern die Möglichkeit geben ihre Passwörter geordnet und sicher abzuspeichern.
- Eine ausgezeichnete User Experience anzubieten
- Nur sichere Passwörter sollen als Master Passwort erstellt werden können
- Nur sichere Passwörter sollen von dem Passwortgenerator erstellt werden. #108
- Anmeldung mit einem Master Passwort
- Anmeldedaten (Username, Passwort, URL, Notizen, Erstelldatum) hinzufügen/löschen #70 #87
- Passwort-Generator für sichere Passwörter (versch. Einstellungen z.B. min. Zeichenanzahl, Sonderzeichen)
- Sortieren/Gruppieren nach Eigenschaften (Service, Erstelldatum)
- Anzeigen der Sicherheit der Passwörter bei Eingabe #46 #96
- Standardlogos für Passworteinträge
- Alle Datenbankeinträge sind verschlüsselt und werden nur beim Client entschlüsselt #8 #41
- Die Kommunikation zwischen Frontend und Backend basiert auf einer IPC Pipe #24 #37 #40
Validierung der Felder (E-Mail, etc.)
- AES256 für das speichern der Passwörter verwenden #8
- SQLite als Datenbankformat in Kombination mit JDBC #19
- Verschiedene Sprachen (DE, EN, etc.)
- Benachrichtigung zum Ändern eines Passworts setzen können
- Verschiedene Verschlüsselungsarten für das speichern der Passwörter in einer Datenbank
- Backup der gespeicherten Passwörter (Papierkorb)
- Text aus Bildern auslesen Hier
- 2FA Hier
- HaveIBeenPwned Integration (erste 5 Zeichen eines Passwort-Hashes werden auf Sicherheit geprüft)
- Erstellen einer Datenbank
- Erstellen eines Masterpassworts
- Auflistung aller Passwörter
- Ein Passwort hinzufügen (inkl. Nutzername und z.B. URL)
- Kopieren eines Passwortes in die Zwischenablage ohne dieses zu sehen
- Sicheres abspeichern der Datenbank
Name | Frontend | Backend |
---|---|---|
Alexander Bossert | X | - |
Antonia Herdtner | X | - |
Leonard Laise | - | X |
Luca von Kannen | - | X |
Maurice Dolibois | X | X |
Michael Dick | X | X |
Tom Flocken | X | - |
- Frontend (Electron + JS) -> Direkte Verarbeitung von JSON in JS
- Schnittstelle Frontend <-> Backend: JSON Messages über IPC, stdin, stdout
- Backend (Java) -> JSON Mapper auf der Java Seite
- Schnittstelle Backend <-> DB: JDBC SQLite
- Datenbank (Lokale Single File Datenbank)
- Datenbank-Controller (JDBC) Nitrite
- Authentication (LogIn, LogOff, Sessions, ...)
- Encryption (Key-Management)
- JSON Parser
- API für Kommunikation mit Frontend (Frontend fragt Infos immer bei Backend an)
- Logik (Sicherheits-Check von Passwörtern, Passwort-Generator, Reminder für Passworterneuerung)
- Interface für die IPC Kommunikation
- Interface und Factory für Datenbankkommunikation (späteres austauschen gegen voll-verschlüsseltes XML File)
- Interface und Factory für den Verschlüsselungsalgorithmus
- Electron Desktopanwendung (Startet den Java Prozess im Hintergrund)
- Grundlogik für Navigation durch die Seiten und Menüs
- Kommunikationsschnittstelle mit Java
- Single-File-Datenbank wie SQLite
- Verschlüsselte Datenbank-Datei
- Speicherort entweder in Programmfolder oder an benutzerdefiniertem Ort