[Python-de] Datenbank Passworte unterbringen

Martin v. Löwis martin at v.loewis.de
Fri May 9 12:29:33 EDT 2003


Andreas Kaiser <listen at vocote.de> writes:

> Es geht darum, die Daten für den DB-Connect zusammen mit dem Programm so 
> abzulegen, dass user/pw nicht jedesmal neu eingegeben werden muss. Die 
> beste Stelle wäre ein Configfile. Die Benutzer (unter den versch. Windows 
> "Dialekten") dürfen die DB Zugangsdaten aber nicht wissen, da sie sehr 
> "verspielt" sind. Ausserdem ist die Ablage als nicht-Klartext Vorgabe. 
> Unter Unix sehe ich keine Probleme (Stichwort Zugriffsrechte).

Gerhards Vorschlag mit rot13 ist sicher das Beste, was Du finden
kannst. Wenn Du den Schlüssel vor dem Nutzer verbergen willst, der das
Programm ausführt, das den Schlüssel benutzen soll, dann helfen Dir
auch Zugriffsrechte unter Unix nicht weiter: Wenn das Programm den
Schlüssel lesen kann, kann es der Nutzer auch (es sei dann, es ist ein
s-bit-Programm).

Also bleibt Dir nur das Verbergen. Zum einen kannst Du den Schlüssel
an eine Stelle legen, wo ihn der Nutzer nicht vermutet, unter Windows
beispielsweise an einer seltsamen Stelle der Registry (etwa unter dem
Schlüsselnamen \HKLM\Software\etocov\UpdateFrequency), unter Unix in
/etc/apache/httpd.conf.

Du solltest ihn dann zusätzlich mit irgendeinem Verfahren "scramblen",
etwa mit rot13.

Interessanterweise sind das alles auch Strategien, die von Hackern
angewendet werden, um eine Backdoor zu verbergen. Du kannst
beispielsweise unter Unix auch /usr/bin/ls austauschen, damit die
Datei, in der der Schlüssel steht, nicht angezeigt wird (besser noch
den Kernel :-) Je besser Du ihn verbirgst, desto wahrscheinlicher ist,
das der Admin sich angegriffen fühlt, wenn er es entdeckt...

Ciao,
Martin




More information about the Python-de mailing list