PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : script: passwort string verschlüsseln?



muell200
17.08.11, 09:42
hallo

ich habe hier ein passwort script, wo ich mehrere db sichere.
"leider" steht das passwort unverschluesselt in dem script.

gibt es eine moeglichkeit, das passwort verschluesselt in dem script zu hinterlegen?

danke

gruss

marce
17.08.11, 09:57
welche DB?

muell200
17.08.11, 10:04
welche DB?

das ist eine mysql datenbank.

aber ich brauche die evt. loesung noch fuer andere scripte, die ein passwort enthalten.

nopes
17.08.11, 10:24
Hallo,
ein paar Stichworte dazu:
rot13
Base64
MD5
MD5+SALTED
Wobei das letzte das sicherste sein dürfte, das generelle Problem ist aber, das du das "decoden" wahrscheinlich auch im Script hast, man kann es also relativ simple nachvollziehen, da hilft dann auch das Salz in der Suppe nicht mehr viel.
GGf. ein Bin schreiben, was decrypten und crypten übernimmt...

Was für eine Script Sprache, bash, perl, python, php?

muell200
17.08.11, 10:40
Was für eine Script Sprache, bash, perl, python, php?

schaue ich mir mal an...

es geht um bash-scripte

nopes
17.08.11, 10:44
Wenn ich so drüber grübel, habe ich da wenig Hoffnung, am sichersten wäre es wohl, das bzw. die PWs jeweils in eine Datei auszulagern, und dafür zu sorgen, dass nur der/die Script(e) diese Datei(en) lesen darf.
Das PW in der Datei, kann bzw. sollte nicht im Klartext drin sein; wobei wenn der "Angreifer" die Datei aus dem Script ermittelt hat, dann würde wohl auch das nachvollziehen des decodens nicht sonderlich schwer fallen.

muell200
17.08.11, 10:59
Das PW in der Datei, kann bzw. sollte nicht im Klartext drin sein; wobei wenn der "Angreifer" die Datei aus dem Script ermittelt hat, dann würde wohl auch das nachvollziehen des decodens nicht sonderlich schwer fallen.

das ist klar. :(

es geht "nur" um die user die sich von hinten heranschleichen...
damit Sie nicht gleich das passwort sehen/lesen....

marce
17.08.11, 11:03
bei MySQL z.B. kannst Du es in .my.ini-Dateien auslagern, oder generell den Wert halt im Script nicht direkt hinterlegen sondern in einer includierten Datei abspeichern - ist zwar keine Verschlüsselung, hilft aber gegen Leute, die einem über die Schulter schauen.

Ansonsten halt noch dafür sorgen, daß das Script (und die entsprechenden Dateien mit Zugangsdaten) nur von dem User gelesen werden können, der das Script ausführt.

nopes
17.08.11, 11:08
Mir kommt gerade noch eine Idee, man könnte die Passworte jeweils vorher neu vergeben (sudo power sei dank), das dürfte dann natürlich nur der Script, und er dürfte nur Accounts nutzen, die kein normaler Mensch nutz. Es wäre dann aber egal, wenn das PW als Klartext im Script steht bzw. an diesen übergeben wird, denn es ändert sich ja eh am Ende des Laufs und vordem nächsten lauf - Stichwort one-time-password. Der Script-User darf dann natürlich keine Shell haben ;) - brauchbare PW-Generator gibts es zu Hauf, ich mag den hier: http://www.roth.net/perl/scripts/scripts.asp?Password.pl

marce
17.08.11, 11:11
jo, dann musst Du nur das Admin-PW der Datenbank im Script hinterlegen, um das Passwort des Backup-Users zu ändern.

wie war das mit Teufel + Beelzebub?

nopes
17.08.11, 11:17
nein muss man nicht, mit ein bisschen Hirnschmalz, kann man das via sudo, also ohne PW Regeln, wobei das natürlich schon recht aufwendig wird und vermutlich nicht im Verhältnis zum Ziel steht.

marce
17.08.11, 11:21
Wie willst Du mit sudo das Passwort eines Datenbankusers ändern, ohne das PW des Datenbankadmins mitzugeben in dem Script, das Du ausführst?

Das sudo ohne PW andere Scripte ausführen kann ist klar.

nopes
17.08.11, 11:44
3,14 mal Daumen so:
Ein user der sicher nur über localhost an der DB anmelden kann, der braucht dann auch kein PW (der user hat keine Shell)
Nur der Script user darf ein "sudo mysql < script.sql" ausführen
script.sql wird vorher generiert und setzt die entsprechenden passworte

Ich sage nicht das es einfach ist, aber es ginge schon, da bin ich mir sicher, nur ob man sich das antun will, nur damit die Schulterblicker das PW nicht lesen können? Wohl eher nicht, da reichen die bisherigen Lösungen aus...

marce
17.08.11, 11:50
Ein user der sicher nur über localhost an der DB anmelden kann, der braucht dann auch kein PW (der user hat keine Shell)
MySQL-User haben nie eine shell... da es sie im normalen System gar nicht gibt.


Nur der Script user darf ein "sudo mysql < script.sql" ausführen
MySQL-Scripte brauche keine sudo-Rechte.


dann kannst du den User oder sudo gleich weglassen - weil, damit sich dann jeder User, der den entsprecheden mysql-User "herausgefunden hat" sind ohne pw an der db anmelden darf...

... und da der MySQL-User weitreichende Rechte bekommen muss hast Du damit sozusagen einen zweiten DB-Admin geschaffen...

nopes
17.08.11, 15:13
ja da ist was dran, auf der anderen Seite müssten sie halt erstmal den Server unter die Griffel kriegen, wobei dann ist es ohnehin zu spät ;) Als spontane Lösung würde ich das mysql bin durch meins tauschen, dann kann man auch verhindern das ein einfacher User den "coadmin" nutzen kann und nein ich würde nicht auf sudo verzichten. Aber wie schon vorher bemerkt, ist das in Summe sehr viel Arbeit, die in keiner Relation zum Ziel steht.
Also PWs aus den Skript in eine Datei, die Rechte setzen und im Script etwas wie
pw=`cat /etc/scripts/pwx` und gut ist...

Roger Wilco
17.08.11, 17:53
Also PWs aus den Skript in eine Datei, die Rechte setzen und im Script etwas wie
pw=`cat /etc/scripts/pwx` und gut ist...
Dann kann man auch gleich eine entsprechende ~/.my.cnf Datei nutzen. ;)

nopes
17.08.11, 19:02
was dann aber nur für mysql läuft, also nicht der gewünschten universellen Lösung entspricht ;)