Verschlüsselte SQL Verbindung

25/03/2008 - 23:42 von Andreas Dettmer | Report spam
Hallo,

ich setzte bei einem Kunden einen SQL Server 2005 und eine .NET 2.0
Applikation ein.
Normalerweise verbinden sich die Mitarbeiter aus dem Büronetz. Es kann aber
sein, daß ein Mitarbeiter von Zuhause aus arbeitet.
Der Server ist auch über eine "externe" IP zu erreichen. Nun müsste ich mich
ja mit Benutzer=test & Password=test (sprich: mit einer SQL
Authentifizierung) in meiner Applikation am Server anmelden. Das würde ich
aber ein wenig heikel finden, da diese Informationen (in Form des
ConnectionStrings) ja unverschlüsselt "übers Netz" gehen.

Gibt es beim SQL Server 2005 eine Funktion, die mir das Verschlüsseln einer
Verbindung bietet?

Ich wußte nicht genau, ob es eher eine .NET Frage oder eine SQL Frage ist.
Habe mich aber nun erstmal für die SQL Group entschieden.

Gruß,
Andreas
 

Lesen sie die antworten

#1 Henry Habermacher
26/03/2008 - 07:55 | Warnen spam
Hallo Andreas

"Andreas Dettmer" wrote in
message news:
ich setzte bei einem Kunden einen SQL Server 2005 und eine .NET 2.0
Applikation ein.
Normalerweise verbinden sich die Mitarbeiter aus dem Büronetz. Es kann
aber
sein, daß ein Mitarbeiter von Zuhause aus arbeitet.



Dieser greift nur über die .NET Anwendung auf den SQL Server zu? Also nicht
direkt, oder?

Der Server ist auch über eine "externe" IP zu erreichen. Nun müsste ich
mich
ja mit Benutzer=test & Password=test (sprich: mit einer SQL
Authentifizierung) in meiner Applikation am Server anmelden. Das würde ich
aber ein wenig heikel finden, da diese Informationen (in Form des
ConnectionStrings) ja unverschlüsselt "übers Netz" gehen.



Nein, er muss sich ja nicht am SQL Server anmelden, sondern beim Webserver.
Mit einer Windows Authentication, falls diese möglich ist, hast Du eine
Strong Authentication, das bedeutet, dass auch UserID und Passwort für den
Webserver verschlüsselt übertragen werden.

Die Anmeldung am SQL Server macht ja dann die Application, die auf dem IIS
(Webserver làuft), nicht der Browser beim Benutzer. Ob dort dann eine starke
Verschlüsselung notwendig ist, kann ich nicht entscheiden. Hàngt auch davon
ab, ob der SQL Server auf der gleichen Kiste liegt, wie die Webanwendung.

Grundsàtzlich ist es so:
Der Benutzer meldet sich bei Windows an. Dann öffnet er die Webseite, wo er
die Anwendung bedienen will. Wenn er sich dort anmeldet (làuft automatisch,
wenn die Windows Authentication richtig eingestellt ist und der Bentuzer
sich beim Server im AD angemeldet hat) wird für diesen benutzer eine Session
im IIS geöffnet und in dieser làuft dann die Anwendung (auf dem Server im
IIS). Der Server erzeugt dann HTML Code, der an den Browser geschickt wird.
Auf dem Server wird der Session State abgelegt. Sobald der Benutzer seine
Eingaben gemacht hat wird ein Postback ausgelöst. Dieser schickt das
Formular nun wieder an den IIS, welcher sich die Session wieder làdt und den
Session State einliest. Dann erfolgt die Datenverarbeitung vom IIS zum SQL
Server. Wenn der IIS fertig ist, dann erzeugt dieser wieder die Webseite und
die Connections zum SQL Server werden freigegeben. Dann wird dem Benutzer
diese Seite wieder im Browser ausgegeben. Der Benutzer hat also nie direkt
eine Verbindung zum SQL Server aufgebaut, das macht immer die Anwendung auf
dem Server.

Gibt es beim SQL Server 2005 eine Funktion, die mir das Verschlüsseln
einer
Verbindung bietet?



Das ist nicht notwendig, es sei denn, Du willst den IIS und den SQL Server
verschlüsselt miteinander kommunizieren lassen. In diesem Fall musst Du auf
dem SQL Server ein Zertifikat installieren und verlangen, dass die
Verbindung nur über dieses Zertifikat möglich ist. Dann wird automatisch
verschlüsselt. Besser ist es IMO allerdings, dort nicht ein so grosses
Tamtam zu machen, sondern den IIS zum SQL Server über die Windows
Authentication oder über immer den gleichen Benutzer mit der SQL Server
Authentication (z.B. ASPDOTNET) laufen zu lassen. Dort sollte ja keiner von
aussen rankommen. Der SQL Server muss dafür im Internet auch nicht sichtbar
sein, nur vom IIS aus.

Ich wußte nicht genau, ob es eher eine .NET Frage oder eine SQL Frage ist.
Habe mich aber nun erstmal für die SQL Group entschieden.



In der Regel bist Du mit solchen Fragen in einer .NET Gruppe besser bedient,
da dort doch die meisten irgendwas mit Datenbanken machen und die
Mechanismen für die Authentification in .NET dort gut bekannt sind.

Gruss
Henry

Ähnliche fragen