Hallo Leute,
ich brauche für ein Skript von mir eine SMTP-Funktion und will nicht das Passwort des SMTP Accounts im Klartext in den Code eintragen. Gibt es gute Möglichkeiten diesen Verschlüsselt darzustellen und zur Laufzeit zu entschlüsseln?
Welche Alternativen gibt es?
Passwörter in Pythoncode Verschlüsseln und zur Laufzeit ents
- cofi
- Python-Forum Veteran
- Beiträge: 4432
- Registriert: Sonntag 30. März 2008, 04:16
- Wohnort: RGFybXN0YWR0
Ein verschlüsseltes Passwort einzugeben ist genauso unbrauchbar, da spätestens der Schlüssel im Skipt stehen muss.
Ein gesaltetes Passwort ebenfalls, da du nach dem entschlüsseln auch wieder entsalzen musst.
Dein Problem lässt sich nicht durch Technologie lösen (Schneier lässt grüßen)
Ein gesaltetes Passwort ebenfalls, da du nach dem entschlüsseln auch wieder entsalzen musst.
Dein Problem lässt sich nicht durch Technologie lösen (Schneier lässt grüßen)
Wenn du nur ein einzelnes Script hast, in dem du ein verschlüsseltes Kennwort stehen hast, muss das Script zwangsläufig auch den Code zum Entschlüsseln enthalten, denn der SMTP-Server will ja den Klartext haben. Die einzige Möglichkeit ist, das Kennwort nicht in die Datei zu schreiben, sondern es jedes Mal zu übergeben.
Du könntest das SMTP-Kennwort natürlich mit einem anderen Kennwort schützen, aber dann hast du mit diesem Kennwort das selbe Problem in Grün.
Stefan
Du könntest das SMTP-Kennwort natürlich mit einem anderen Kennwort schützen, aber dann hast du mit diesem Kennwort das selbe Problem in Grün.
Stefan
Ja. Wie man es auch dreht und wendet: Man kann Daten nicht sicher verschlüsseln, wenn man sie programmatisch ohne Interaktion auch wieder entschlüsseln möchte.
-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
Achtung, Passwortangabe via Parameter ist keine gute Idee, da der Aufruf ggf. in ``ps`` zu sehen ist, mit allen Kommandozeilenargumenten. Und die Passworte tendieren dazu in Dateien wie ``.bash_history`` hängenzubleiben und dann via ``history`` wieder zum vorschein zu kommen.
Also: Passworte bei textbasierten Programmen immer von stdin oder ähnlichem lesen, nie via Parameter.
Also: Passworte bei textbasierten Programmen immer von stdin oder ähnlichem lesen, nie via Parameter.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Ach, irgendwann gibts da bestimmt auch ein Freedesktop-Ding fürDasIch hat geschrieben:In welchem "keyring"? Du meinst den standardisierten betriebssystemunabhängigen und nicht existenten keyring?
-
- User
- Beiträge: 120
- Registriert: Montag 4. Juni 2007, 19:19
Wie funktioniert shadow und so? Keine wirkliche Ahnung, aber ich dachte damit kann man sowas machen.
Das Passwort muss ja wahrscheinlich nicht völlig unmöglich zu entschlüsseln sein, aber es im Skript in Klartext stehen zu haben ist schon die schlimmste Variante.
Das Passwort muss ja wahrscheinlich nicht völlig unmöglich zu entschlüsseln sein, aber es im Skript in Klartext stehen zu haben ist schon die schlimmste Variante.
-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
In der Shadow stehen keine Passwörter, sondern nur die Hashes des Passwörter, aus denen man die Passwörter nicht mehr herausbekommt. Außerdem wird sichergestellt, dass die ``/etc/shadow`` nur vom root-Nutzer gelesen werden kann.ichbinsisyphos hat geschrieben:Wie funktioniert shadow und so? Keine wirkliche Ahnung, aber ich dachte damit kann man sowas machen.
Somit für dein Vorhaben völlig unbrauchbar.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
-
- User
- Beiträge: 120
- Registriert: Montag 4. Juni 2007, 19:19
Ja,ich hab grad den Wikipedia-Artikel dazu gelesen. Aber es gibt sicher eine low level password-Datenbank, so dass man nicht gleich auf Gnome- oder KDE-Applikationen zurückgreifen muss.
edit:
Und wie stehts mit PAM und pwdb? Ich rate hier mehr, falls es euch nicht auffällt
pwdb hat aber anscheinend keine Dokumentation, alles was ich gefunden hab war:
Für PAM sollts aber nach 15 Jahren genug Doku geben, und das lässt sich meiner Meinung nach dafür nutzen, Anmeldedaten zentral zu speichern und abzurufen.
edit:
Und wie stehts mit PAM und pwdb? Ich rate hier mehr, falls es euch nicht auffällt
pwdb hat aber anscheinend keine Dokumentation, alles was ich gefunden hab war:
Was ja nicht sehr passend klingt.pwdb (Password Database Library) allows configurable access to and management of /etc/passwd, /etc/shadow, and network authentication systems including NIS and Radius.
Für PAM sollts aber nach 15 Jahren genug Doku geben, und das lässt sich meiner Meinung nach dafür nutzen, Anmeldedaten zentral zu speichern und abzurufen.
- birkenfeld
- Python-Forum Veteran
- Beiträge: 1603
- Registriert: Montag 20. März 2006, 15:29
- Wohnort: Die aufstrebende Universitätsstadt bei München
PAM selber speichert keine Passwörter. Es ist nur eine Zwischenschicht, die verschiedene Authentifizierungsmaßnahmen unter einen Hut bringt und Anwendungen diese in einer einheitlichen Schnittstelle zur Verfügung stellt.
Vereinfacht gesagt, die Anwendung kommt dann und sagt "hallo, ich bin Dienst X, und User Y möchte sich mit den Credentials Z anmelden, ist das OK?" und PAM vermittelt dann je nach Konfiguration an pwd, LDAP, eine Datenbank oder was auch immer.
Vereinfacht gesagt, die Anwendung kommt dann und sagt "hallo, ich bin Dienst X, und User Y möchte sich mit den Credentials Z anmelden, ist das OK?" und PAM vermittelt dann je nach Konfiguration an pwd, LDAP, eine Datenbank oder was auch immer.
-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
Zudem geht das nur in eine Richtung, also "Hier ist User Y und ich bin Dienst X, gib mir bitte mal die Credentials Z" geht nicht. Dafür ist es nicht gedacht und das wäre sicherheitstechnisch ein ziemliches Fiasko.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
-
- User
- Beiträge: 120
- Registriert: Montag 4. Juni 2007, 19:19
Es wär überhaupt kein sicherheitstechnisches Fiasko, bestimmten usern Zugriff auf ausgewählte, eigene Passwörter zu geben.
Was anderes können ja auch Gnome-Keyring und Konsorten nicht machen. Bei denen gibts halt ein master password. Ich stell mir vor, dass die Anmeldung an der Konsole genug (bewiesen durch nichts anderes als die uid) Sicherheit bietet, zumindest mehr als plaintext password files und base64 Encodierung, oder was immer es auch sonst so gibt um Passwörter schwerer lesbar zu machen.
Was anderes können ja auch Gnome-Keyring und Konsorten nicht machen. Bei denen gibts halt ein master password. Ich stell mir vor, dass die Anmeldung an der Konsole genug (bewiesen durch nichts anderes als die uid) Sicherheit bietet, zumindest mehr als plaintext password files und base64 Encodierung, oder was immer es auch sonst so gibt um Passwörter schwerer lesbar zu machen.