Announcement

Collapse
No announcement yet.

Verschlüsseltes Passwort ohne Nutzereingabe auslesen

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Verschlüsseltes Passwort ohne Nutzereingabe auslesen

    Hallo,

    Erstmal möchte ich mich für meinen imho nicht so tollen Titel entschuldigen. Leider weiß ich nicht so genau, wie man mein Problem kurz beschreiben kann, deshalb kam ich beim googlen auch nicht wirklich auf Ergebnisse.

    In Informatik haben wir ein Projekt, für welches wir einen Backup Manager schreiben. Dieser verschlüsselt die gesicherten Dateien mit AES. Allerdings kann unser Backupmanager auch nach einem Zeitplan arbeiten, sodass z.B. jede Stunde die Dateien gesichert werden. Für diese Sicherung benötige ich das Passwort als Klartext zum verschlüsseln, allerdings möchte ich nicht, dass man alle X Minuten das Backupmanager Passwort eingeben muss, bzw. wäre es wünschenswert dass man dies nicht einmal beim Systemstart / ersten Programmstart machen muss.

    Ist das überhaupt irgendwie möglich? Wenn ja, wie? Oder wie arbeiten andere Programme, mit einem Ähnlichen Problem? Beim googlen habe ich z.B. herausgefunden, dass FileZilla / Firefox die Daten unverschlüsselt ablegen, aber das kann doch nicht "normal" sein, oder?

    Tut mir Leid, wenn ich ein Bisschen unbeholfen wirke, aber ich finde (mit meinem begrenzten Wissen) leider keine Lösung.

    danke für eure Antworten,
    Sönke

    €: Falls es relevant ist: Das ganze wird in Python geschrieben und sollte auf jedem gängigen OS laufen (Ubuntu bzw. Linux, Windows, OS X)

  • #2
    Wenn keiner das Passwort eingeben muss

    - wer hat es mal vergeben
    - wie sollte es ins System kommen
    - wenn sich keiner authentifizieren muss, wozu dann überhauot ein Passwort. Dann kann es ebenso die Anwendung das erzeugen.
    Christian

    Comment


    • #3
      Hi,

      Sorry, ich hab es anscheinend doch nicht gut genug erklärt

      Das Szenario ist, dass der benutzer einmalig ein Profil anlegt: Sichere alle X minuten diese Dateien und verschlüssele sie mit dem Passwort Y.

      Nun sollen stündlich die Dateien gesichert werden, und mit dem Passwort Y verschlüsselt werden. Diese Dateien werden z.B. auf einem FTP Server gesichert, und somit kann der Nutzer, nachdem ihm die Festplatte abschmiert die Dateien nach EIngabe des Passwortes und dem "Pfad" zu dem Backup alles wiederherstellen.

      Das funktioniert alles, allerdings nur so, dass der Nutzer dann auch stündlich oder einmalig nach dem Starten des Programmes das Passwort zum verschlüsseln angeben muss.

      Ein anderes Szenario ist z.B. das Speichern der FTP-Verbindungsdaten. Auch die sollten am besten verschlüsselt gespeichert werden, und (nur) unsere Software sollte ohne Nutzereingabe darauf zugreifen können.

      Ich hoffe das Problem ist klarer geworden, ich komme zu keiner Lösung.

      lg
      Sönke

      Comment


      • #4
        Hmm, aus meiner Sicht wären doch hier zwei Dinge zu trennen:

        - Die Authentifizierung der Anwender (Der und Der darf das tun; die Anwendung benutzen)
        - Das Doing der Anwendung, das Backup

        Vielleicht kann man das so lösen, dass das Passwort des authentifizierten Anwenders tatsächlich nur für den Zugang zum Programm genutzt wird. Der Anwender hat sich angemeldet, darf jetzt ein Profil anlgen usw. Das Backup der Dateien wird dann aber nicht mit dem Passwort des Anwenders durchgeführt, sondern mit einem Passwort das in der Anwendung hinterlegt ist. Das würde erstmal bedeuten, dass alle Backups von jedem Anwender mit dem gleichen - nur der Anwendung bekannten - Passwort verschlüsselt werden. Ggf. kann man für jeden Anwender ein "Anwendungspasswort" erstellen. Die Passwörter der Anwendung müssen allerdings auch irgendwo gespeichert werden.
        Christian

        Comment


        • #5
          Erstmal danke für die Antwort Wenn das Passwort bei allen das Gleiche ist, müsste man die Backups allerdings nicht mehr verschlüsseln, da man sich einfach, wenn man die verschlüsselten Daten hat, unser Programm nutzen könnte, um sie zu entschlüsseln, da das Passwort ja immer das Selbe ist.

          Eine wirkliche Authentifizierung des Nutzers findet eigentlich nicht statt, da erstmal jeder die Berechtigung hat, Dateien zu sichern, wenn man Zugriff an den PC hat, verstehst du? Außerdem hätte man dann immer noch das Problem des Speicherns der FTP Verbindungsdaten.

          Hast du sonst noch Ideen? :/

          Comment


          • #6
            Wenn das Passwort bei allen das Gleiche ist, müsste man die Backups allerdings nicht mehr verschlüsseln, da man sich einfach, wenn man die verschlüsselten Daten hat, unser Programm nutzen könnte, um sie zu entschlüsseln, da das Passwort ja immer das Selbe ist.
            Nein, gegenüber dem Programm müsste man sich ja authentifizieren.

            Man müsste dann halt zusätzlich verwalten, wer welche Backups sehen darf


            Fakt ist doch, dass wenn deine Software die Daten lesen können muss, muss sie den Schlüssel dazu kennen. Entweder gibt es dann X Schlüssel für jeden Benuter oder einen Anwendungsschlüssel. Beide (Alle) müssen irgendwo gespeichert oder hinterlegt werden
            Christian

            Comment


            • #7
              Hallo,

              Ja, du hast Recht. Schade, ich hatte gehofft ich habe da was übersehen. Werde es jetzt so lösen, dass der Nutzer sagen kann, ob er jedes Mal beim Programm Start ein Passwort eingeben will, oder ob die Daten unverschlüsselt als Klartext in ner SQLite Datenbank liegen.

              lg

              Comment


              • #8
                Hallo,

                warum nicht die übliche Vorgehensweise (bzw. so richtig sehe ich das Problem nicht)?
                • Nutzer legt ein Profil an
                • Beim Starten (und nur dort) des Programmes wird der Nutzer nach dem Passwort gefragt
                • Solange das Programm läuft (und nicht das Profil gewechselt wird) wird dieses Passwort für die Verschlüsselung des Backup verwendet
                • Zusätzliche Möglichkeit: Im Passworddialog kann man das Häckchen "Password merken" setzen
                • Bei "Password merken" wird dieses mit einem programminternen Schlüssel verschlüsselt und im Profil gespeichert. Beim nächsten Start wird das Passwort aus dem Profil gelesen, entschlüsselt und für die Sicherung verwendet


                Gruß Falk
                Wenn du denkst du hast alle Bugs gefunden, dann ist das ein Bug in deiner Denksoftware.

                Quellcode ohne ein Mindestmaß an Formatierung sehe ich mir nicht an! Ich leiste keinen Privatsupport per Mail oder PN!

                Comment


                • #9
                  Hi und danke erstmal!
                  Genau diese "übliche Vorgehensweise" ist mir unbekannt :P

                  Aber kann der Programminterne Schlüssel dann am Ende nicht aus dem Code extrahiert werden? Und dann hätte ja jeder, der die Software nutzt den gleichen Schlüssel "in" seinem Programm, oder?

                  lg

                  Comment


                  • #10
                    Nein denn dieser Schlüssel wird nicht zum verschlüsseln der Daten genutzt sondern das Passwort das mit diesem Schlüssel verschlüsselt ist.

                    Eine wirkliche Authentifizierung des Nutzers findet eigentlich nicht statt, da erstmal jeder die Berechtigung hat, Dateien zu sichern, wenn man Zugriff an den PC hat, verstehst du
                    Entweder du kannst Sicherstellen das nicht einfach jeder Zugriff auf den PC (bzw. den darauf laufenden User) hat oder du fragst bei jeder Verschlüsselung/Entschlüsselung den User nach dem zu benutzenden Passwort. Eine andere ~wirklich~ halbwegs sichere Vorgehensweise ist nicht wirklich denkbar. Und wenn du ersteres Sicherstellen kannst gibt es eigentlich keinen Grund mehr sich ein totsicheres Passwortverschlüsselungs bzw Ablagesystem auszudenken. Das wäre immer nur vorgetäuschte Sicherheit.

                    Sicherheit könntest du bekommen wenn du ein assymetrsches Verfahren benutzt . Also ein Verfahren das zum Verschlüsseln ein anderes Schlüssel braucht als zum entschlüsseln. Dann ist egal wenn der Verschlüsselungsschlüssel öffentlich ist. Du must nur den Schlüsseln zum Entschlüsseln geheim halt(zum Beispiel im Kopf eines Benutzers).

                    Comment


                    • #11
                      Hallo,
                      Originally posted by humeoon View Post
                      ...Aber kann der Programminterne Schlüssel dann am Ende nicht aus dem Code extrahiert werden? Und dann hätte ja jeder, der die Software nutzt den gleichen Schlüssel "in" seinem Programm, oder?
                      Im Prinzip schon. Das Speichern von Passwörtern ist immer ein Sicherheitsrisiko. Man kann den Nutzer also auch durchaus darauf hinweisen, dass er ein Risiko eingeht, wenn er das Häcken bei "Password merken" setzt. Er muss also bereit sein, den zusätzlichen Komfort mit dem höheren Risiko "zu erkaufen".

                      Darüberhinaus bieten Verschlüsselungsalgorithmen meist die Möglichkeit neben dem Key (der im Programmcode enthalten ist) einen s.g. Salt anzugeben. Dieser könnte z.B. aus Hardwareparametern gebildet werden. Damit liese sich das Nutzerpasswort aus dem Profil nur mit Kenntniss dieser Hardwareparameter entschlüsseln.

                      Gruß Falk
                      Wenn du denkst du hast alle Bugs gefunden, dann ist das ein Bug in deiner Denksoftware.

                      Quellcode ohne ein Mindestmaß an Formatierung sehe ich mir nicht an! Ich leiste keinen Privatsupport per Mail oder PN!

                      Comment

                      Working...
                      X