Passwortmanager, Sicherheit der Daten

h4nk

Mitglied
Hallo Leute, ich programmiere momentan einen Passwortmanager (Hobby – muss also nicht unknackbar sein, aber aktueller Stand der Technik wäre schon nett).

Wie würde man sowas (sicher) aufbauen?

Meine Idee:
Login mit Benutzername und Passwort als erste Abfrage.

Zur Überprüfung und für die gespeicherten Daten schriebe ich eine Textdatei mit Java. Darin befindet sich der Username und das Passwort für den Login (beides mit BCrypt gehasht). Der User gibt also seine Daten ein, sie werden ebenfalls gehasht und mit den "Lösungen" aus der Datei überprüft.

In der Datei sind auch alle inhaltlichen Daten gespeichert, also die zu managenden Passwörter mit Beschreibung und Usernamen.

Um die Inhalte zu schützen, würde ich die Datei bei jedem Zugriff entschlüsseln und danach direkt wieder verschlüsseln (mit dem Cipher aus dem Java-Crypto-Package).

Ist das in Ordnung, die Datei wäre ja immer noch recht anfällig während der Lese/Schreibprozesse? Könnte auch kompletter Quatsch sein.

Danke schonmal. Schönen Gruß
 

h4nk

Mitglied
Update: nach etwas Recherche, bin ich zum Entschluss gekommen, dass es Unsinn ist, zu versuchen die Passwörter lokal und gleichzeitig sicher abzuspeichern.

Ich versuche jetzt die Variante mit einer Datenbank (MySQL). Das ist komplett neu für mich, aber es kann nicht schaden das zu lernen!

Tipps zum Umgang? Was sollte ich alles in der Datenbank speichern, nur das "Masterpasswort mit Username", also die Login-Daten und dann die zu managenden Passwörter lokal oder alles in der Datenbank?
 

Dukel

Top Contributor
Reichen die vorhandenen Passwortmanager nicht? Keepass? Teampass?

Die Daten werden immer eine gewisse Zeit irgendwo unverschlüsselt liegen und wenn es nur im RAM ist.
Wenn du eine Datenbank nutzen willst kannst du ja eine embedded Datenbank nutzen (SQLLite, h2, derby,...).
Bei einer DB kannst du auch die DB Verschlüsslungsmethoden nutzen und als Passwort die Passphrase für das entschlüsseln nutzen.

Aber wie immer: Definiere die Anforderungen.
 

h4nk

Mitglied
Doch, die vorhandenen reichen natürlich. Mir gehts um den Lerneffekt beim Programmieren. Grundsätzlich gehts um Spaß, wenn ich noch was über Datenbanken lerne, nehme ich das sehr gerne mit!

Ich möchte einen simplen Passwortmanager programmieren, bei dem nach dem Master-LogIn die Sammlung von Passwörtern und zugehörigen Usernamen angezeigt wird. Außerdem sollen neue Einträge erstellt werden und dafür sichere Passwörter generiert werden (erstmal ein anderes Thema).

Ich habe mir SQLite angeguckt, das sieht schonmal ganz interessant aus.

Wie würdet ihr das Projekt angehen, so dass es sicher und somit am Ende auch brauchbar wäre? Ist der Weg über SQLite einer, der gängig ist?

Danke für die Antworten.
 
X

Xyz1

Gast
Na ja, Passwörter verschlüsseln und auf dem Server sichern sollte nicht das Problem sein. Die Passwörter in allen gängigen Browsern eintragen (denn da werden sie ja gebraucht) sehe ich als Herausforderung an + auf allen Schmierphones.
Kleine Herausforderung könnte auch sein die Passwörter zu serialisieren. Java tut sich schwer damit.

Solls denn eine Business Lösung sein - oder irgendetwas, was du hinterher tatsächlich nicht mehr brauchst?
 

Dukel

Top Contributor
Wenn es "nur" zum lernen ist und du es nachher nicht produktiv nutzt dann fang einfach an.
Wenn du es später nutzen willst, überlege dir die Anforderungen, die das Programm haben soll.
Portabel? Clients / Server? Anbindung an Clients (Browser, Smartfones)? Browser / GUI? Auf welchem OS soll es laufen?

Ich würde schauen, wenn ich eine DB nutze, dass ich integrierte Verschlüsslungsmechanismen nutze (https://docs.microsoft.com/en-us/sq...ty/encryption/transparent-data-encryption-tde https://www.mysql.com/de/products/enterprise/tde.html https://www.postgresql.org/docs/8.1/static/encryption-options.html https://www.sqlite.org/see/doc/trunk/www/index.wiki). Dies ist evtl. nur in Kommerziellen Varianten verfügbar.

EDIT: Weitere Links
https://dev.mysql.com/doc/refman/5.5/en/encryption-functions.html
https://mariadb.com/kb/en/mariadb/data-at-rest-encryption/#specifying-what-tables-to-encrypt
https://dev.mysql.com/doc/refman/5.7/en/innodb-tablespace-encryption.html
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
L Sicherheit von Dateiverschlüsselung mit Java und Truecrypt Java Basics - Anfänger-Themen 7
M Erste Schritte Verschlüsselung / Login-Sicherheit Java Basics - Anfänger-Themen 8
D Sicherheit Java Basics - Anfänger-Themen 2
W Sicherheit des Datenbankpasswortes Java Basics - Anfänger-Themen 9
C Sicherheit in Javaprogrammen Java Basics - Anfänger-Themen 9
7 Java Programme - Sicherheit Java Basics - Anfänger-Themen 26
G Sicherheit Datenbankverbindung Java Basics - Anfänger-Themen 6
Z Serialisierung vs. Sicherheit Java Basics - Anfänger-Themen 2
B [suche erklärung] - sicherheit beim login Java Basics - Anfänger-Themen 3
S Daten aus Import Datei auslesen und sortieren Java Basics - Anfänger-Themen 2
A Daten aus einer HashMap aus einer DB speichern und mit neuen Werten vergleichen Java Basics - Anfänger-Themen 8
Mady Daten von JList & Combobox in JTable adden Java Basics - Anfänger-Themen 2
M Daten aus errechneter Methode in Datenbank(SQLite) schreiben Java Basics - Anfänger-Themen 60
W Daten in Echtzeit übernehmen Java Basics - Anfänger-Themen 5
Z Java ArrayList speichert falsche Daten ab bzw. gibt falsche Daten aus? Java Basics - Anfänger-Themen 42
M Daten aus .txt Datei einlesen und weiterverarbeiten Java Basics - Anfänger-Themen 80
I H2 Datenbank starten / Daten in File speichern Java Basics - Anfänger-Themen 25
M Mehrere Daten/ Variablen Speichern Java Basics - Anfänger-Themen 9
E fehlermeldung bei richtigen login daten Java Basics - Anfänger-Themen 7
C Java Funktion: externe Daten vom Internet einbinden Java Basics - Anfänger-Themen 2
P Schiebefix - ArrayList überschreibt Daten Java Basics - Anfänger-Themen 3
S Daten/Klassen/Packages richtig updaten!? Java Basics - Anfänger-Themen 2
E Wie gebe ich alle Daten zwischen zwei Zeitpunkten aus? Java Basics - Anfänger-Themen 2
H Daten aus einer Datei in eine Liste speichern Java Basics - Anfänger-Themen 23
M Tabellen- Daten laden Java Basics - Anfänger-Themen 2
A Klasse um daten zu einlesen Java Basics - Anfänger-Themen 26
A Literale für primitive Daten Typen Java Basics - Anfänger-Themen 4
N Zwei Daten (Datum) miteinander vergleichen, abspeichern, laden Java Basics - Anfänger-Themen 4
A Daten auslesen/vergleichen Java Basics - Anfänger-Themen 3
D Sportwetten Daten Atomatisch analysieren um optimale Strategie zu erhalten Java Basics - Anfänger-Themen 6
S Java Daten in Excel speichern Java Basics - Anfänger-Themen 1
S Daten speichern, ohne Datenbank Java Basics - Anfänger-Themen 8
L Daten aus ArrayList in Datenbank durchsuchen Java Basics - Anfänger-Themen 5
Shallty Daten speichern und ändern? Java Basics - Anfänger-Themen 32
M Sqlite table löschen und daten einfügen Java Basics - Anfänger-Themen 5
S Binäre-Suche bei unsortierten Daten Java Basics - Anfänger-Themen 7
N Was passiert wenn wir Daten auf der Festplatte abspeichern wollen? bzgl. BufferStreams Java Basics - Anfänger-Themen 9
T Daten von Objekten speichern Java Basics - Anfänger-Themen 7
A Minesweeper - Daten Java Basics - Anfänger-Themen 46
A Eingelesene Daten in Array(Liste) abspeichern? Java Basics - Anfänger-Themen 18
S Daten aus zwei Verschiedenen Tabellen in eine ArrayListe Java Basics - Anfänger-Themen 4
WPS1000 Input/Output Wie aktiviere ich den Daten Transfer von der RS232 in meine Java Applikation Java Basics - Anfänger-Themen 2
R Eigenes Protokoll zur Übermittlung von Daten zum Webserver? Java Basics - Anfänger-Themen 4
A Reader wohin werden Daten gespeichert? Java Basics - Anfänger-Themen 7
M Erste Schritte CSV-File einlesen und Daten verarbeiten Java Basics - Anfänger-Themen 5
S Daten aus eigenständiger .class-Datei abrufen Java Basics - Anfänger-Themen 1
E Daten dem Super Aufruf übergeben Java Basics - Anfänger-Themen 3
M jTabel mit Daten Füllen Java Basics - Anfänger-Themen 5
M Wie erzeuge ich die Differenz von zwei Daten in Stunden?? Java Basics - Anfänger-Themen 2
S Daten lesen und speichern Java Basics - Anfänger-Themen 26
S JTable mit Daten füllen Java Basics - Anfänger-Themen 7
L Java Programm zum Auswerten von Daten Java Basics - Anfänger-Themen 11
G Best Practice Wie große "Tabellen" effizient durchsuchen und Daten händeln? Java Basics - Anfänger-Themen 15
U Daten aus Datei einlesen Java Basics - Anfänger-Themen 4
M Best Practice Daten-Import /Trabsfomration aus Textdatei Java Basics - Anfänger-Themen 12
R JTable Suchfunktion mit SQL Daten Java Basics - Anfänger-Themen 2
E Daten gehen nicht in Datenbank Java Basics - Anfänger-Themen 14
M Erste Schritte Speichern von mehreren Daten Java Basics - Anfänger-Themen 3
J Daten einer Textdatei in ein JTable importieren. Java Basics - Anfänger-Themen 3
F Daten von Thread an den aufrufenden zurückgeben Java Basics - Anfänger-Themen 22
C Endlosschleife bei füllen von Daten im JTable Java Basics - Anfänger-Themen 5
N Erste Schritte Dedicated Server \ Senden und Empfangen von Daten/Befehlen Java Basics - Anfänger-Themen 2
A Probleme beim zykl. aktulisieren von Daten in JTable Java Basics - Anfänger-Themen 3
D NPE beim laden von Daten aus MySQL Java Basics - Anfänger-Themen 9
P Einlesen von Daten via BufferedReader Java Basics - Anfänger-Themen 4
P Methoden ausgelesene (CSV-) Daten in Liste einer anderen Klasse einlesen Java Basics - Anfänger-Themen 0
F Daten aus Excel-Tabelle in Java importieren Java Basics - Anfänger-Themen 15
F Http Post von mehreren Daten Java Basics - Anfänger-Themen 5
F Daten auf Webserver laden - wiederholen bei Fehler Java Basics - Anfänger-Themen 0
W Best Practice problemabhängige Persistentmachung von Daten Java Basics - Anfänger-Themen 6
P Daten von Internetseite auslesen Java Basics - Anfänger-Themen 10
N Daten/Formular per POST an Firefox/Browser senden Java Basics - Anfänger-Themen 7
D Daten mit Apache POI in eine Excel Datei schreiben Java Basics - Anfänger-Themen 5
T JTable Daten aus txt datei Java Basics - Anfänger-Themen 3
T printf Daten aus der Tabelle in Excel übernehmen Java Basics - Anfänger-Themen 5
P zweidimensionales Array anlegen und mit DB-Daten füllen Java Basics - Anfänger-Themen 14
V Einlesen von Daten Java Basics - Anfänger-Themen 8
J TableView zeigt keine Daten an Java Basics - Anfänger-Themen 14
J Daten im Programm speichern Java Basics - Anfänger-Themen 14
N Interface Daten einem Implementierten Interface zuweisen Java Basics - Anfänger-Themen 37
O Probleme mit CSV Daten Java Basics - Anfänger-Themen 10
M Arrays: Trennung von Daten und Darstellung Java Basics - Anfänger-Themen 1
S Daten aus Array in Klasse übertragen Java Basics - Anfänger-Themen 12
M Wie sicher sind Daten im Java Programm? Java Basics - Anfänger-Themen 9
R Daten via Post an php Script senden Java Basics - Anfänger-Themen 1
B Probleme bei "Daten in CSV File schreiben". Java Basics - Anfänger-Themen 9
C Datei mit Daten einlesen und höchsten wert der zweiten Spalte ermitteln Java Basics - Anfänger-Themen 1
W (XML/XSL) Daten aus Eclipse in eine Klasse Laden. Java Basics - Anfänger-Themen 1
I Daten speichern ohne Datenbank Java Basics - Anfänger-Themen 20
D Daten von einem int in einen string Java Basics - Anfänger-Themen 5
L Daten aus Array Feld löschen Java Basics - Anfänger-Themen 2
T Input/Output Daten/Objekte einfach speichern Java Basics - Anfänger-Themen 5
IngoF GUI mit Thread Daten austauschen. Java Basics - Anfänger-Themen 6
S Daten aus anderen Dateien in neue Datei einlesen Java Basics - Anfänger-Themen 3
fLooojava Daten im selben Netzwerk an IP Java Basics - Anfänger-Themen 1
M Junit Tests durchführen, die eine Verbindung zu einer Daten erfordern Java Basics - Anfänger-Themen 3
K HashMap mit Daten aus ArrayList befüllen Java Basics - Anfänger-Themen 14
P Daten auslesen und in CSV speichern Java Basics - Anfänger-Themen 6
J Daten aus zweiter Klasse importieren Java Basics - Anfänger-Themen 33
C Daten speichern und laden Java Basics - Anfänger-Themen 6

Ähnliche Java Themen

Neue Themen


Oben