Benutzer mit den meisten Antworten
Verschlüsselung von Zeichenketten und Übertragung in eine andere Datenbank

Frage
-
Hallo,
Ich möchte Werte verschlüsselt in einer Tabelle abspeichern. Diese Werte werden in bestimmten Abständen in eine andere Datenbank auf einem anderen Server übertragen. Dort muss es möglich sein, diese Werte wieder zu entschlüsseln.
Der einfachste Weg wäre entweder die Funktion ENCRYPTBYPASSPHRASE oder einen symmetrischen Schlüssel zu verwenden, den ich in beiden Datenbanken verwenden kann. In beiden Fällen müsste ich allerdings die Passwörter zum ver- und entschlüsseln im Quelltext der betreffenden Prozeduren hinterlegen. Ist das okay, oder ist davon abzuraten? Was wäre eine alternative sichere Vorgehensweise, um verschlüsselte Werte in einer Datenbank auf Server A in eine andere Datenbank auf Server B zu übertragen und zu entschlüsseln?
Vielen Dank für eure Hilfe
- Bearbeitet Charles Auster Mittwoch, 27. Juni 2012 12:53
Antworten
-
Es kommt im Grunde darauf an, warum du die Werte verschlüsseln musst, da davon abhängig ist wie du sie verschlüsseln musst. Die einfachste Methode wäre die Verwendung von Transparent Data Encryption auf beiden Servern. Ansonsten benutze ein mit Zertifikat gesicherten Schlüssel, dann brauchst du kein Passwort.
- Als Antwort markiert Charles Auster Mittwoch, 4. Juli 2012 09:49
-
Hallo Charles
Willst Du die Daten nur darum verschlüsseln, damit Du diese übertragen kannst? Falls ja, dann kannst Du statt der Daten die Verbindung SSL verschlüsseln.
Du kannst dann auf dem Server die Protokoll Verschlüsselung erzwingen. Die Daten werden dann nur noch verschlüsselt übermittelt.
Dazu musst Du ein Zertifikat auf dem Server installieren. Der folgende KB Artikel http://support.microsoft.com/default.aspx?scid=kb;EN-US;316898 beschreibt zwar, wie die Verbindung vom Server zum Client verschlüsselt wird, aber es sollte analog auch zwischen den Servern machbar sein.
Evt. hilft auch das weiter (Wie das Zertifikat installiert wird): http://blogs.msdn.com/b/jorgepc/archive/2008/02/19/enabling-certificates-for-ssl-connection-on-sql-server-2005-clustered-installation.aspx
Ich gehe davon aus, dass es analoge KB Artikel auch für neuere SQL Server Versionen gibt.
Gruss
Henry
- Als Antwort markiert Charles Auster Mittwoch, 4. Juli 2012 09:49
Alle Antworten
-
Es kommt im Grunde darauf an, warum du die Werte verschlüsseln musst, da davon abhängig ist wie du sie verschlüsseln musst. Die einfachste Methode wäre die Verwendung von Transparent Data Encryption auf beiden Servern. Ansonsten benutze ein mit Zertifikat gesicherten Schlüssel, dann brauchst du kein Passwort.
- Als Antwort markiert Charles Auster Mittwoch, 4. Juli 2012 09:49
-
Hallo,
es handelt sich hier um von uns vergebene Kennwörter (im engeren Sinne eigentlich IDs) die man nicht ändern kann, die wir aber auslesen können müssen. In der Tabelle sollen die Werte verschlüsselt sein. In den Prozeduren welche diese Werte ver- und entschlüsseln darf das Passwort nicht drinstehen. Nachdem ich die Daten mit dem SSIS-Paket auf den anderen Server übertragen habe, muss ich in der Lage sein, diese Daten wieder auszulesen.
Welche Vorgehensweise unterstützt hier am besten mein Szenario? Ich bin diesbezüglich noch ein bisschen Grün, und das Thema ist ja recht umfangreich. Ein Deut in die richtige Richtung sehr hilfreich.
Vielen Dank für die Hilfe.
-
Was nu'? Kennwörter oder IDs? Kennwörter im Sinne von Passwörtern würde ich eh nicht speichern sondern deren Hash plus Salt. Bei IDs ist das Problem nicht gegeben. Bezüglich der Immutabilität: dafür gibt es Spaltenberechtigungen, d.h. erlaube kein Änderen auf der Spalte.
-
Hallo Charles
Willst Du die Daten nur darum verschlüsseln, damit Du diese übertragen kannst? Falls ja, dann kannst Du statt der Daten die Verbindung SSL verschlüsseln.
Du kannst dann auf dem Server die Protokoll Verschlüsselung erzwingen. Die Daten werden dann nur noch verschlüsselt übermittelt.
Dazu musst Du ein Zertifikat auf dem Server installieren. Der folgende KB Artikel http://support.microsoft.com/default.aspx?scid=kb;EN-US;316898 beschreibt zwar, wie die Verbindung vom Server zum Client verschlüsselt wird, aber es sollte analog auch zwischen den Servern machbar sein.
Evt. hilft auch das weiter (Wie das Zertifikat installiert wird): http://blogs.msdn.com/b/jorgepc/archive/2008/02/19/enabling-certificates-for-ssl-connection-on-sql-server-2005-clustered-installation.aspx
Ich gehe davon aus, dass es analoge KB Artikel auch für neuere SQL Server Versionen gibt.
Gruss
Henry
- Als Antwort markiert Charles Auster Mittwoch, 4. Juli 2012 09:49
-
Hallo, ich verfahre eigentlich auch so, die Passwörter einfach zu hashen, aber das geht in diesem Fall nicht. Es sind unveränderliche Passwörter, die verschlüsselt werden müssen (wir müssen sie auslesen können). Diese Anforderung stammt nicht von mir, sondern ist Vorgabe eines anderen Systems.