Kritische TLS Einstellung im Management Studio

Eine Standardeinstellung im SQL Server Management Studio ist aus Sicherheitsperspektive sehr kritisch zu bewerten. Verbinden wir uns mit einer SQL Server Instanz, befindet sich diese gefährliche Einstellung im Reiter Connection Properties.


Relativ neu ist hier die Einstellung Trust server certificate die im Standard angeschaltet ist. Diese Standardeinstellung ist sehr kritisch zu sehen. Sie sollte nur verwendet werden, wenn man Encrypt connection verwendet und sich bewusst mit einem SQL Server verbindet der noch kein eigenes SSL/TLS Zertifikat verwendet.

Jeder neu installierte SQL Server verwendet standardmäßig ein selbstsigniertes Zertifikat mit dem man sich verschlüsselt mit diesem SQL Server verbinden kann. Allerdings schützen selbstsignierte Zertifikate nicht vor Man-In-The-Middle Attacken, sprich ein Angreifer der den Datenstrom abhört kann die Verschlüsselung aufbrechen.

Besonders wenn man jetzt ein eigenes Zertifikat aus einer PKI im SQL Server installiert hat, ist die Option Trust server certificate extrem gefährlich, denn man würde in dem Fall auch einem gefälschten Zertifikat eines Angreifers vertrauen. Als Standardeinstellung hat diese Option definitiv nichts verloren und sollte wirklich nur angewählt werden, wenn man sich ganz sicher ist, dass man dem Server Zertifikat unter allen Umständen vertraut (was man in der Praxis eigentlich nie kann).

Am Ende muss einem klar sein: Transportverschlüsselung ohne Trust ist wertlos und kann beliebig durch Man-In-The-Middle Attacken gebrochen werden. Setzt man den SQL Server in einer PKI mit Zertifikaten ein, sollte also unbedingt das Häkchen bei Trust server certificate entfernt werden und gleichzeitig Encrypt connection gewählt werden.

Natürlich kann man sagen, dass dies alles nur das Management Studio und nicht die Applikationen trifft. Dabei ist aber zu bedenken, dass gerade das Management Studio besonders von Administratoren mit sehr hohen Privilegien genutzt wird. Eine Man-In-The-Middle Attacke wäre dabei besonders schmerzhaft.

Übrigens: Auch schon bei früheren SQL Server Management Studios die auf Visual Studio 2012 basierten und mit SQL Server 2014 oder früher ausgeliefert wurden, war die Einstellung Trust server certificate möglich. Dort war sie allerdings nicht standardmäßig aktiviert, sondern konnte als Additional Connection Parameter angeben werden:

UPDATE: Seit dem Management Studio 17.2 hat Microsoft die Einstellung Trust Server Certificate im Standard deaktiviert. Danke.