Benutzer mit den meisten Antworten
Passwort für einen symmetrischen Schlüssel übergeben

Frage
-
Hallo,
mit folgender Anweisung kann ich einen symmetrischen Schlüssel in einer Stored Procedure öffnen:
OPEN SYMMETRIC KEY Testschluessel DECRYPTION BY PASSWORD = 'abc'
Wenn ich aber das Passwort verständlicherweise nicht in der Stored Procedure hinterlegen möchte, sondern als Parameter übergeben haben möchte, dann funktioniert folgendes nicht:
OPEN SYMMETRIC KEY Testschluessel DECRYPTION BY PASSWORD = @nvcSchluesselPwd
Dann erhalte ich folgende Meldung: Falsche Syntax in der Nähe von '@nvcSchluesselPwd'.
Kann mir jemand die richtige Syntax nennen ?
Danke und schöne Grüße
FRANK PANNIER
- Bearbeitet Robert BreitenhoferModerator Donnerstag, 4. August 2011 07:59 Formatierung
Antworten
-
Hallo Frank,
OPEN SYMMETRIC KEY erlaubt (wie alle anderen Schlüsselfunktionen) nur konstante Zeichenketten
und keine Variablen.Wenn Du ein Kennwort verwendest, so musst Du es übergeben, das liegt hier in der Natur der Sache,
denn mit dem Kennwortes wird die Verschlüsselung erstellt.
Vom Prinzip läuft das gleiche ab wie beschrieben in: Generating a Key from a Password
Bei CREATE SYMMETRIC KEY wird das auch abstrakter unter Hinweise erläutert.Solange die Prozedur wie Schlüssel gesichert sind und der Schlüssel so bald möglich geschlossen wird,
sollte das nicht so problematisch sein (eine Variable muss auch gefüttert werden).Siehe z. B. http://blogs.msdn.com/b/sqlsecurity/archive/2007/11/29/open-symmetric-key-scope-in-sql-server.aspx
Weiter lesenswert: http://blogs.msdn.com/b/sqlsecurity/archive/2011/04/05/integrity-checks-with-encryptbykey.aspxUm das zukünftig zu ändern, kannst Du bei Connect voten:
https://connect.microsoft.com/SQLServer/feedback/details/369270/open-symmetric-master-key-password-parameterization
empfiehlt auch Raul Garcia (SQL Server Security)Gruß Elmar
- Als Antwort vorgeschlagen Falk Krahl Donnerstag, 28. Juli 2011 17:35
- Als Antwort markiert Robert BreitenhoferModerator Donnerstag, 4. August 2011 08:02
Alle Antworten
-
Hallo Frank,
OPEN SYMMETRIC KEY erlaubt (wie alle anderen Schlüsselfunktionen) nur konstante Zeichenketten
und keine Variablen.Wenn Du ein Kennwort verwendest, so musst Du es übergeben, das liegt hier in der Natur der Sache,
denn mit dem Kennwortes wird die Verschlüsselung erstellt.
Vom Prinzip läuft das gleiche ab wie beschrieben in: Generating a Key from a Password
Bei CREATE SYMMETRIC KEY wird das auch abstrakter unter Hinweise erläutert.Solange die Prozedur wie Schlüssel gesichert sind und der Schlüssel so bald möglich geschlossen wird,
sollte das nicht so problematisch sein (eine Variable muss auch gefüttert werden).Siehe z. B. http://blogs.msdn.com/b/sqlsecurity/archive/2007/11/29/open-symmetric-key-scope-in-sql-server.aspx
Weiter lesenswert: http://blogs.msdn.com/b/sqlsecurity/archive/2011/04/05/integrity-checks-with-encryptbykey.aspxUm das zukünftig zu ändern, kannst Du bei Connect voten:
https://connect.microsoft.com/SQLServer/feedback/details/369270/open-symmetric-master-key-password-parameterization
empfiehlt auch Raul Garcia (SQL Server Security)Gruß Elmar
- Als Antwort vorgeschlagen Falk Krahl Donnerstag, 28. Juli 2011 17:35
- Als Antwort markiert Robert BreitenhoferModerator Donnerstag, 4. August 2011 08:02
-
Hallo soccersoft,
Noch ein Interessanter Artikel zum Thema Encription/Decription in SQL Server mit dem Titel „Encrypt Sensitive Data in SQL Server“ habe ich in der folgenden Zeitschrift gefunden:
http://59.185.3.15:8080/download/DigitMagzine/pcquest/2008/feb.pdf
Auf Seite 88 und 89 aus der obigen Zeitschrift wird eine Technik gezeigt die ein Zertifikat und ein Schlüssel verwendet. Der Schlüssel ist mit diesem Zertifikat verbunden.
Grüße,
Robert
- Bearbeitet Robert BreitenhoferModerator Donnerstag, 4. August 2011 08:01 Hyperlink Korrektur
-
Hallo Robert,
den Artikel findet man direkt an der Quelle unter:
http://pcquest.ciol.com/content/search/showarticle.asp?artid=102522Gruß Elmar