Connectionstring mit sha-256 verschlüsseltem Passwort?

Hallo zusammen,

ich versuche, aus einer .NET-Anwendung heraus mich mit einer Datenbank zu verbinden, welche mit einem sha-256 verschlüsseltem Passwort geschützt ist. Ich gebe im Connectionstring auch das verschlüsselte Passwort mit, aber die Verbindung wird trotzdem abgelehnt. Der Versuch mit “psql” an der Eingabeaufforderung klappte allerdings. Ich vermute daher, dass mit meiner Connection im Programm was nicht stimmt.

So sieht der Fehler aus:

Das ist die Connection:

Hat einer eine Idee oder einen Tipp?

Noch ein Hinweis von mir: Das Passwort im Screenshot ist ein “base64” String, vielleicht ist dies der Fehler? Ich habe das Passwort jetzt mal anders gespeichert, aber dann geht es auch nicht.

Screenshot:

So, jetzt bin ich einen Schritt weiter. Im Connectionstring muss ich das unverschlüsselte Passwort übergeben, dann geht alles.

Aber genau das will ich nicht. Ich würde gerne ein bereits verschlüsseltes Passwort an PSQL übergeben… Geht das überhaupt?

Ich weiß nicht ob es über .Net geht, aber mir erschliesst sich der Sinn nicht.

Wenn es darum geht das Passwort in einer Konfigurationsdatei zu schützen, dann bringt das Verschlüsseln doch gar nichts, wenn ich auch das verschlüsselte Passwort übergeben kann. Das ist doch dann letztendlich das Gleiche wie ein unverschlüsseltes: jeder der die Konfigurationsdatei lesen kann, kann sich mit der Datenbank verbinden.

Was ist die Fehlermeldung im Log des PostgreSQL-Servers?

Wenn die dasselbe sagt, war das übergebene Paßwort einfach falsch.

Hi, sorry für die späte Antwort.

Der Sinn ist folgender: Wir haben eine Anwendung, einen Webservice, welcher Zugriff auf alle Datenbanken eines PSQL-Servers hat. Für jede Datenbank soll nun aus Sicherheitsgründen ein separater User + Passwort verwendet werden. Der Webservice kennt nun alle User und Passwörter und soll sich damit an der jeweiligen Zieldatenbank anmelden können. Die Liste der Passwörter ist aus Sicherheitsgründen mit SHA256 abgelegt. Das heißt, der Webservice kennt das eigentliche Passwort nicht, er kann nur das verschlüsselte Passwort aus einer Tabelle lesen, in einen Connectionstring packen und damit eine Connection zur Zieldatenbank aufbauen.

Das ist jedenfalls die Idee. Bisher klappt das nicht, weil das Passwort im Connectionstring unverschlüsselt sein muss. Derzeit speichern wir die Passwörter mit AES und können sie daher verschlüsselt ablegen und entschlüsselt an den Connectionstring übergeben, aber das Verfahren ist halt unsicher, weil wir den Key dazu wiederum irgendwo ablegen müssen.

Es wäre halt Klasse, wenn wir das verschlüsselte Passwort im Connectionstring ablegen könnten und dem PSQL irgendwie sagen könnten, dass er das Passwort nicht nochmal selber verschlüsseln muss.

Danke und einen schönen Abend, Karsten.

Wo genau ist da der Unterschied zu einem unverschlüsselten Passwort? Wenn ich mit dem Wert den ich aus einer Konfigurationsdatei (oder Tabelle) auslese, eine Verbindung aufbauen kann (oder den Wert ändern zu müssen), dann ist das verschlüsselte Passwort genauso unsicher wie ein unverschlüsseltes.

Naja, die Passwörter stehen in einer weiteren Datenbank auf dem Server. Sollte es jemandem gelingen, diese Datenbank zu sehen, zum Beispiel durch ein Backup o.ä. so sieht er alle Zugangsdaten. Da wäre es mir schon recht, wenn die Passwörter hochwertig verschlüsselt sind. Im Moment können wir halt nur mit AES arbeiten, weil wir das Passwort ja auch entschlüsseln müssen, aber SHA wäre mir lieber.

Dieses Thema wurde automatisch 60 Tage nach der letzten Antwort geschlossen. Es sind keine neuen Antworten mehr erlaubt.