Beispiel: Wie funktioniert SQL Shield Verschlüsselung
Nach der Installation von SQL Shield können Sie es sofort für die Verwendung
starten. SQL Shield beeinflußt keine bereits vorhandenen Funktionen, es verändert keine
Objekte, die bereits existieren. Sobald es aktiviert ist, sind ausschließlich neu
erzeugte Methoden betroffen. Daher können beide Arten von Methoden nebeneinander
ohne gegenseitige Beeinflussung existieren. Um die neue Verschlüsselungsmethode
anzuwenden, müssen Sie den Kommentar /*sqlshield*/ zwischen WITH und
ENCRYPTION einfügen. Beispiel:
CREATE PROCEDURE MyTest
WITH /*sqlshield*/ ENCRYPTION
AS
SELECT 2+2 |
SQL Shield bietet keine Möglichkeit, um mit SQL Server oder SQL Shield
verschlüsselte Prozeduren zu entschlüsseln.
Nach der Installation von SQL Shield können Sie wählen, welche
Art der Verschlüsselung verwendet werden soll: Die Standardverschlüsselung oder
SQL Shield. Sie können SQL Shield aktivieren oder deaktivieren, indem Sie zwei
externe Prozeduren ablaufen lassen. SQL Shield startet zusammen mit SQL Server.
Während der Installation wird eine spezielle
Prozedur namens sqlshield_startup in die Masterdatenbank abgelegt. Wenn Sie den Autostart
deaktivieren wollen, kommentieren sie "exec sqlshield_on" aus. Um
SQL Shield zu einer belibigen Zeit zu stoppen, benutzen Sie "exec sqlshield_off".
Danach werden alle neu erzeugten Objekte die Standardverschlüsselung von SQL Server
verwenden. SQL Server cached entschlüsselte Objekte. Dies hat zur Folge, das sogar
verschlüsselte Objekte auch dann noch verfügbar sind (Sie können sie ausführen),
wenn SQL Shield gestoppt oder entfernt worden ist. Allerdings sind Objekte nicht
verfügbar, die noch nicht gestartet wurden. SQL Shield kann es zwar nicht vollständig
verhindern, dass Prozeduren entschlüsselt werden, allerdings macht es SQL Shield
unmöglich für alle derzeit existierenden Entschlüsseler.
Wegen der internen Einschränkungen von MS SQL Server 7.0 können mit SQL Shield
verschlüsselte Stored Procedures und Trigger nicht länger als 4000 Zeichen sein.
Längere Prozeduren werden mit der Standardverschlüsselung verschlüsselt.
Die Version für MS SQL 2000 hat keine Einschränkungen.
Sehen Sie nun, wie einfach Stored Procedures für
SQL Server entschlüsselt werden können. Erzeugen Sie eine einfache
verschlüsselte Stored Procedure:

Suchen Sie sich ein Entschlüsselungsprogramm per
Websuche

Starten Sie das Programm, suchen Sie die eben erzeugte Stored Procedure und
drücken Sie Save

Öffnen Sie die erzeugte Textdatei mit Notepad. Da haben Sie es.
All Ihre verschlüsselten Prozeduren können mit ein paar Mausklicks aufgedeckt werden!
Jetzt lassen Sie und sehen, wie das Problem mit SQL Shield gelöst wird.
Starten Sie SQL Shield, sofern es noch nicht gestartet wurde:

Erzeugen Sie die neue Stored Procedure und fügen Sie den
"magischen" /*sqlshield*/-Kommentar ein:

Führen Sie sie aus und stellen Sie fest, dass sie ohne
Probleme ausgeführt werden kann.

Rufen Sie das Entschlüsselungsprogramm auf und versuchen
Sie es auf unsere Prozedur anzuwenden:

Drücken Sie den Save-Button und werfen Sie einen Blick auf
die resultierende Datei:

Hoppla. Unsere Prozedur ist jetzt geschützt.
Wollen Sie sehen, was ohne SQL Shield passieren würde?
Deaktivieren Sie den Autostart von SQL Shield in der master.sqlshield_startup
Prozedur und starten Sie SQL Server. Jetzt rufen Sie sqlshield_test erneut auf.
Sie werden folgende Fehlermeldung sehen.

Sobald SQL Shield starten, wird sie auch wieder ausführbar sein.
|