Du bist nicht angemeldet.

#1 14.02.2013 17:52:01

lykaner
Mitglied

KeePassC: KeePassX kompatibler Passwortmanager mit curses-Interface

Moin,

mir ist aufgefallen, dass ich hier im dt. Forum noch gar nicht mein kleines Programm vorgestellt, an dem ich seit ca. einem halben Jahr arbeite: KeePassC ein KeePassX bzw. KeePass v1 (wärs von Windows kennt...) kompatibler Passwortmanager, d.h. eure Passwörter werden mit AES verschlüsselt gespeichert und sind in Gruppen sortiert. Geschrieben ist es mit Python und curses, d.h. es wird im Terminal komplett mit der Tastatur bedient!

Momentan gibt es zwei Pakete im AUR, einmal das letzte stable-Release und die git-Version. Ich empfehle momentan allen die Git-Version, da ich in letzter Zeit viele Änderungen vorgenommen habe und das letzte Release vier Monate her ist. Die Abhängigkeiten sind minimal, lediglich Python 3.3, PyCrypto (bzw. das mein Modul, dass darauf aufsetzt: kppy) und xsel werden benötigt.

Wär mehr Informationen haben will:

http://nongnu.org/keepassc/ (Screenshots nicht mehr ganz aktuell)

bzw., da ich bald komplett nach GitHub umziehe:

http://raymontag.github.com/keepassc/

Im AUR:

https://aur.archlinux.org/packages/keepassc/

bzw. Git-Version:

https://aur.archlinux.org/packages/keepassc-git/

Have fun!

Offline

#2 15.02.2013 21:59:41

Kinch
Mitglied

Re: KeePassC: KeePassX kompatibler Passwortmanager mit curses-Interface

Super! Nutze Keepassx schon ewig und es ist mittlerweile meine einzig verbliebene QT-Applikation die ich gerne loswerden möchte.

Ich werde dein Programm mal austesten.

Grüße

Offline

#3 19.02.2013 17:18:07

lykaner
Mitglied

Re: KeePassC: KeePassX kompatibler Passwortmanager mit curses-Interface

Kinch schrieb:

Super! Nutze Keepassx schon ewig und es ist mittlerweile meine einzig verbliebene QT-Applikation die ich gerne loswerden möchte.

Genau dies war der Grund, warum ich mit KeePassC angefangen habe wink

Offline

#4 19.02.2013 19:40:53

Creshal
Mitglied

Re: KeePassC: KeePassX kompatibler Passwortmanager mit curses-Interface

Wie siehts btw. mit dem Keepass2-Format aus? Viel Aufwand oder Sehr Viel Aufwand™?

Offline

#5 19.02.2013 23:09:27

lykaner
Mitglied

Re: KeePassC: KeePassX kompatibler Passwortmanager mit curses-Interface

Den Aufwand kann ich noch nicht so genau einschätzen, ich hab mir den orig. C++-Code noch nicht angeguckt. Da ich aber v1 verstanden habe, wird's wohl nicht so aufwendig. Ich komme aber wohl erst Mitte März dazu, da ich momentan eher wenig Zeit habe (Prüfungsphase, wissenschon...).

Offline

#6 22.02.2013 20:26:53

lykaner
Mitglied

Re: KeePassC: KeePassX kompatibler Passwortmanager mit curses-Interface

Just FYI: Ich habe heute eine neue stable veröffentlicht. Ab sofort sollten alle wieder das AUR-Paket keepassc, keepassc-git wird zukünftig die Entwicklerversion darstellen, die auch mal crashen kann, wenn ieine Funktion noch nicht komplett implementiert ist.

Außerdem ist das Projekt jetzt komplett nach github umgezogen. Hier ist die neue Seite: http://raymontag.github.com/keepassc/ In Zukunft wird es nur noch hier und auf github Support geben, da ich meinen nongnu.org- und gitorious-Account lösche bzw. schon gelöscht habe. So erscheint es mir einfacher. Dementsprechend wird zukünftig der master-branch auf github dem stable-Paket keepassc entsprechen und der development-branch keepassc-git (github unterstützt keine Daten-Uploads, aber so geht's ja auch. Das zwingt mich dann auch, mein git-Repository sauber zu halten big_smile ).


lykaner

Offline

#7 22.03.2013 12:48:14

lykaner
Mitglied

Re: KeePassC: KeePassX kompatibler Passwortmanager mit curses-Interface

Ich habe gerade ein winziges Update ins AUR eingespielt. Es gab eine Zeitverzögerung, wenn man KeePassC geschlossen hatte und der Timer für das Löschen des Clipboards noch nicht abgelaufen war.

Offline

#8 25.03.2013 15:43:43

lykaner
Mitglied

Re: KeePassC: KeePassX kompatibler Passwortmanager mit curses-Interface

Neues Update 1.5.2 mit Bug-Fixes ist im AUR.

Offline

#9 30.03.2013 20:11:10

lykaner
Mitglied

Re: KeePassC: KeePassX kompatibler Passwortmanager mit curses-Interface

Ein weiterer Fix ist im AUR.

Offline

#10 16.08.2013 17:21:56

lykaner
Mitglied

Re: KeePassC: KeePassX kompatibler Passwortmanager mit curses-Interface

Eine neue Version (1.6.0) ist raus und im AUR. Das große neue Feature ist, dass man KeePassC nun via Netzwerk benutzen kann. Schaut auf http://raymontag.github.com/keepassc für eine Einführung. Ansonsten werden ausgelaufene Einträge nun rot markiert und ein neues Hilfemenü gibt's ebenfalls.

Falls jmd. die Möglichkeit KeePassC über das Internet auszuprobieren (sollte auch funktionieren, aber ich habe nicht die Möglichkeiten dazu), wäre es nett, wenn er es mir sagen würde, da ich es nicht selber testen kann. Es sollte beides funktionieren: Entweder gibt man die Domain an oder die ServerIP.

Offline

#11 23.08.2013 19:59:55

shibumi
Mitglied

Re: KeePassC: KeePassX kompatibler Passwortmanager mit curses-Interface

Mag zwar ne dumme Frage sein aber "Wie sicher ist dein kepassc" ?

EDIT: Also ich meine solche Sachen wie:" Wie wird der Master Key gespeichert" etc

Beitrag geändert von shibumi (23.08.2013 20:01:22)

Offline

#12 24.08.2013 14:11:58

lykaner
Mitglied

Re: KeePassC: KeePassX kompatibler Passwortmanager mit curses-Interface

Nun, da gibt es einige Aspekte zu betrachten:

- Das Passwort und der Pfad zu Keyfile sind plain im RAM,  als Attribut des Datenbankobjekts; genauso wie auch die Gruppen und Einträge der Datenbank selbst
- Python hat ein Problem (das andere Sprachen auf einer ähnlichen Abstraktionsebene auch haben) und zwar hat man keine Kontrolle darüber, wo Daten im RAM liegen und wie sie verstreut werden. Einfachen Beispiel: Ein String (mehr ist das Password auch nicht) ist _nicht_ veränderbar in Python. Wenn du den String manipuliert wird eine neue Kopie angelegt und die alte liegt immer noch rum, bis iwas anderen drüber geschrieben wird. Die einzige Möglichkeit das zu umgehen könnte sein, ein C-Modul für Python zu schreiben, ich bin mir da aber nicht 100%-sicher und habe mir vorgenommen mich bei Gelegenheit darin einzulesen.
- Ich umgehe dieses Problem in dem ich mit dem Passwort und dem Keyfile nicht rumspiele und durch die Gegend werfe. Außerdem verhindere ich CoreDumps dadurch (das ist ja die eig. Gefahr, wenn das Password plain im RAM liegt), indem der Arbeitsordner fest /var/empty ist, die Dateimanipulation mache ich über absolute Pfadvariable (als root-user könnte man immer noch CoreDumps machen, deshalb weise ich darauf hin, dass man KeePassC nicht als root ausführen sollte). KeePassX und das original KeePass machen das anders: Sie verschlüsseln den Masterkey mit einem zufällig generierten One-Time-Passwort. Das liegt aber auch im RAM und mit etwas Arbeit könnte man aus einem CoreDump auch das Passwort auslesen. Ich halte diese Vorgehensweise daher für SnakeOil, ich lasse mich da aber gerne berichtigen bzw. darüber können wir gerne diskutieren.
- Zuletzt sei zu diesem Punkt gesagt, dass ein Setup, in welchem ein Angreifer den RAM auslesen kann IMHO ganz andere Probleme hat wink (das meine ich Ernst, damit will ich nicht von mir ablenken)

Zur Sicherheit des Netzwerkprotokolls:
- Die Datenbank liegt auf dem Server, es gilt was ich schon schrieb
- Der Client bekommt eine Kopie der Datenbank, sie liegt ebenfalls im RAM, genauso wie das Passwort und der Pfad zum Keyfile. Zu keinem Zeitpunkt speichere ich sie auf der Festplatte des Clients.
- Die Kommunikation mit dem Server läuft optional über SSL. Ich habe das wie folgt vorgesehen: Der Server erstellt ein Selbstsigniertes x509-Zertifikat mit einer selbsterstellen CA und gibt dem Client das Root-Zertifikat. Der Client prüft dann mit letzterem gegen das Zertifikat des Servers. Um MITM-Attacken zu erschweren, habe ich außerdem Public-Key-Pinning implementiert, d.h. der Client merkt sich den Fingerprint des Server-Zertifikats und prüft, ob der Fingerprint des vom Server bereitgestellten mit diesem übereinstimmt. Außerdem muss der Common Name ("KeePassC Server" muss dieser lauten) des Zertifikats stimmen, das ist allerdings nur um sicherzugehen, dass der Client nicht z.B. alles an den HTTPS-Port sendet.
- Des Weiteren muss sich der Client mit dem Datenbank-Passwort und/oder dem Keyfile beim Server authentifizieren. Dazu sendet der Client eben das Passwort und den Inhalt des Keyfiles an den Server (nachdem das Zertifikat überprüft wurde, natürlich). Der Server generiert dann daraus den MasterKey und guckt, ob das mit dem den er aus dem bei ihm abgelegten Passwort und/oder Keyfile übereinstimmt.
- Man könnte noch implementieren, dass der Client sich auch mit einem Zertifikat authentifizieren muss, dass könnte ich mal machen, wenn ich Zeit habe

Das wäre alles, was mir so spontan einfällt, wenn's noch fragen gibt, nur zu. (Ich sollte vllt. mal eine vollständige Auflistung zu diesem Punkt auf die Internetseite tun...)

Beitrag geändert von lykaner (24.08.2013 14:13:53)

Offline

#13 14.09.2013 15:13:04

Silmaril
Mitglied

Re: KeePassC: KeePassX kompatibler Passwortmanager mit curses-Interface

Ich habe keepassc jetzt ein paar Tage ausprobiert. Echt nicht schlecht. Ich persönlich komme aber mit der Qt-Oberfläche besser klar (benutze ja auch KDE). Aber gut zu wissen, dass es auch ein KeePass-kompatibles Programm für die Konsole und vor allem fürs Netzwerk gibt.

Offline

#14 31.12.2013 00:30:47

lykaner
Mitglied

Re: KeePassC: KeePassX kompatibler Passwortmanager mit curses-Interface

Kurze Information: Durch einen Bug in meiner Implementation der Entschlüsselung mit Keyfiles (nichts Sicherheitsrelevantes, s. https://github.com/raymontag/kppy/pull/9 ; in aktueller Version von python-kppy behoben) wurde ich auf einen Bug in KeePassX aufmerksam gemacht. Demzufolge ist es nicht möglich eine Datenbank, die in KeePassX mit einem 64Byte-Keyfile verschlüsselt wurde, in KeePassC zu entschlüsseln. Wurde die Datei hingegen in der Referenzimplementation KeePass 1.26 unter Windows verschlüsselt funktioniert alles.

Offline

#15 17.01.2014 21:48:13

lykaner
Mitglied

Re: KeePassC: KeePassX kompatibler Passwortmanager mit curses-Interface

Im development-branch (AUR: keepassc-dev) gibt es nun standard-expiration-dates zur Auswahl beim Erstellen neuer Entries oder beim editieren der Daten.

Offline

#16 18.01.2014 02:51:24

shibumi
Mitglied

Re: KeePassC: KeePassX kompatibler Passwortmanager mit curses-Interface

Hey Lykaner ich denke schon länger darüber nach dein Programm zu nutzen. Allerdings stellt sich mir die Frage nach der Sicherheit. Kannst du dazu näheres erläutern wie sicher dein Fork ist? Welche Verschlüsselungsalgorithmen zb zum Einsatz kommen etc?

Offline

#17 19.01.2014 17:26:10

lykaner
Mitglied

Re: KeePassC: KeePassX kompatibler Passwortmanager mit curses-Interface

Nun, es ist kompatibel zu KeePassX daher kommen die gleichen Algorithmen zum Einsatz insb. AES zur Verschlüsselung der Datenbank. Ich benutze hierfür das bewährte PyCrypto. Ich hatte immer mal vor Twofish ebenfalls zu implementieren, das wird aber nicht von KeePassX sondern nur von KeePass für Windows  unterstützt, aber PyCrypto kann das nicht und ich werde sicher nicht meine eigene Implementation schreiben wink

Ansonsten gilt das oben gesagte. Hast du sonst andere, spezifischere Fragen?

Offline

#18 19.01.2014 17:51:55

shibumi
Mitglied

Re: KeePassC: KeePassX kompatibler Passwortmanager mit curses-Interface

Naja stellt sich jetzt die Frage wie sicher pyCrypto ist..

Offline

#19 19.01.2014 18:43:32

lykaner
Mitglied

Re: KeePassC: KeePassX kompatibler Passwortmanager mit curses-Interface

PyCrypto ist als sicher anzusehen: Es arbeitet verlässlich und ist am weitesten verbreitet unter den Crypto-Bibliotheken für Python. Außerdem wird es stetig weiterentwickelt. Man könnte höchstens überlegen zu wechseln, sobald NaCl für Python fertig ist, dass als eine der besten Crypto-Bibliotheken für C/C++ angesehen wird und eine große Community hat. Aber ich verstehe was du meinst, man sollte sowas immer kritisch beäugen. Ansonsten kann ich diesbezüglich nur auf http://stackoverflow.com/questions/7835 … ble-to-use verweisen

Offline

#20 26.01.2014 14:37:49

lykaner
Mitglied

Re: KeePassC: KeePassX kompatibler Passwortmanager mit curses-Interface

Das x-scrolling im Editor funktioniert nun endlich auch. Ist im development branch (keepassc-dev)

Offline

#21 27.01.2014 15:15:02

lykaner
Mitglied

Re: KeePassC: KeePassX kompatibler Passwortmanager mit curses-Interface

Da einige Leute sich über die Namensgebung des development-packages beschwert haben, lade ich die development-version nun wieder als keepassc-git ins AUR.

Des Weiteren wird nun der Editor, der sonst auch in alles Textfeldern verwendet wird, auch für die Pfadeingabe inkl. Tab-Completion verwendet. Momentan nur im development-branch.

Offline

#22 08.02.2014 04:33:56

shibumi
Mitglied

Re: KeePassC: KeePassX kompatibler Passwortmanager mit curses-Interface

Wer benutzt hier eigentlich alles KeePassC oder das normale KeePass? Würde mich mal interessieren. Ich fand eigentlich immer, dass das lokale Speichern von Passwörtern in einer Passwort-Datenbank ziemlich unsicher und unpraktisch ist. Der beste Ort für Passwörter ist doch eigentlich der Kopf.

Beispiel 1:
Person A nutzt KeePass. Hat dort alle seine Passwörter fein in einer Datenbank abgespeichert. Da Person A ganz sicher sein will hat er 32 zeichenlange Passwörter aus Zahlen, Großbuchstaben, Kleinbuchstaben und Sonderzeichen. Nun verreist Person A aber und will sich von wo anders in seinen Email account oder was auch immer einloggen... Geht nicht. Da er seine Passwörter nicht auswendig weiß..

Beispiel 2:
Person A nutzt KeePass. Sein Rechner wird infiziert und ein Krimineller loggt sein MasterPW mit und kopiert sich die Passwort-Datenbank. Volltreffer. Innerhalb von 2 Minuten im absoluten glücksfall alle wichtigen Passwörter ergaunert.

Beispiel 3:
Person A nutzt KeePass. Legt allerdings von seiner Key-Datenbank kein Backup an. Seine Festplatte geht kaputt. Alle Passwörter weg.

Also ich weiß nicht oO irgendwie bin ich noch nicht so überzeugt von der Sache alle seine Passwörter lokal abzuspeichern. Andererseits hat KeePass auch seine Vorteile.
Man kann vieel sichere Passwörter nehmen und für jeden Account ein anderes. Sonst passiert es einem doch relativ oft das man irgendwo anders das gleiche Passwort auch noch verwendet oder es sowieso nicht so sicher ist wie ein Passwort was aussieht wie ein MD5 Hash..

Was meint ihr dazu? Vielleicht überzeugt ihr mich ja noch smile

Offline

#23 08.02.2014 10:55:02

nik
Mitglied

Re: KeePassC: KeePassX kompatibler Passwortmanager mit curses-Interface

Das ist zwar durchaus richtig, allerdings deuten die Beispiele von dir alle auf Fehler des Benutzers hin, die leicht hätten umgangen werden können.

Beispiel 1: Keepass kann man auch auf dem Smartphone nutzen, und so seine Passwörter mitnehmen. Genauso kann man sich durchaus oft genutzte Passwörter merken. Es zwingt einen ja niemand, alle Passwörter automatisch zu generieren.

Beispiel 2: Wenn der Rechner kompromittiert ist, gelten generell die eingegebenen Passwörter als nicht mehr sicher. Dementsprechend macht es kaum einen unterschied, ob die Passwörter in einem Passwortsafe liegen oder nicht.
Davon abgesehen, greifen die wenigstens per Mailware direkt auf den Rechner zu, sondern fahren automatisierte Angriffe, so dass es unwahrscheinlich ist, dass die komplette Datenbank abhanden kommt. Die Logindaten für interessante Ziele können so oder so automatisiert mitgeschnitten werden.

Beispiel 3: Wer keine Backups macht, verliert.

Allgemein sehe ich den Vorteil von Keepass darin, dass die Nutzer nicht "gezwungen" ist, unsichere Passwörter zu nutzen, die er sich merken kann, oder gar für verschiedene Dienste das gleiche Passwort zu nutzen.

Offline

#24 08.02.2014 11:48:38

lykaner
Mitglied

Re: KeePassC: KeePassX kompatibler Passwortmanager mit curses-Interface

FullACK mit nik. Die Hauptintention halt, dass die sichersten Passwörter die sind, die man sich nicht merken kann, weil nicht aussprechbar; selbst für 1337-Speak kann man sich ganz einfach per Skript aus normalen Wörterbücher welche dafür generieren, die gibt's auch längst im Internet. Und IMHO ist ein Passwortmanager, der die Datenbank verschlüsselt, hierfür die beste Lösung, eben aus den zuletzt von euch genannten Gründen und dann natürlich lokal, damit ich Herr über meine Daten bleibe. Ob man jetzt KeePassX, KeePassC oder was ganz anderes wie Gringotts etc. ist halt nach eigenem Gusto.

Offline

#25 08.02.2014 12:10:04

Dirk
Moderator

Re: KeePassC: KeePassX kompatibler Passwortmanager mit curses-Interface

shibumi schrieb:

Beispiel 1:

KeePass gibt es sowohl für Android, als auch für iOS.

shibumi schrieb:

Beispiel 2:

Ja, dumm gelaufen. Kann aber auch mit „ein Passwort für alles“ funktionieren.

shibumi schrieb:

Beispiel 3:

Selbst schuld.

Offline

Schnellantwort auf dieses Thema

Schreibe deinen Beitrag und versende ihn
Deine Antwort

Fußzeile des Forums