web-dev-qa-db-fra.com

Fonctionnement du chiffrement dans l'authentification de connexion SQL

Je passe par le lien ci-dessous

https://docs.Microsoft.com/en-us/dotnet/framework/data/adonet/sql/authentication-in-sql-server

et en ce qu'il dit

Lorsque des connexions SQL Server sont utilisées, les noms de connexion SQL Server et les mots de passe chiffrés sont transmis sur le réseau, ce qui les rend moins sécurisés.

comment le mot de passe est-il chiffré et comment le serveur sql le déchiffre-t-il? Quel type de cryptage y est impliqué?

6
ioquestion

comment le mot de passe est-il chiffré et comment le serveur sql le déchiffre-t-il? Quel type de cryptage y est impliqué?

Super haut niveau, si vous avez configuré le chiffrement pour l'instance, le certificat configuré peut être utilisé. Si vous ne l'avez pas activé, le certificat auto-signé créé au démarrage de SQL Server sera utilisé.

Quelle que soit la méthode utilisée, la configuration SSL/TLS est effectuée pendant la phase de négociation préalable à la connexion. Si, cependant, le cryptage n'est pas défini ou appliqué, la partie TLS/SSL ne sera active que pendant la durée du transfert des informations d'identification et reviendra immédiatement au texte brut (pas de SSL/TLS) une fois que cela est terminé pour la durée de vie de la connexion.

SQL Server lui-même ne chiffre ni ne déchiffre les données, il est chiffré et déchiffré en transit uniquement. Selon votre pilote client et votre application, cela peut ou non exister en texte brut dans votre espace mémoire de processus. En outre, SQL Server utilise des hachages pour vérifier les mots de passe et ne stocke pas le mot de passe en texte brut d'origine pour les connexions SQL (sauf si vous voulez être pédant à propos des comptes proxy et des serveurs liés).

7
Sean Gallardy

Je suis d'accord avec tous les points soulevés par Sean dans sa réponse.

Cependant, je pense que le point que la page Docs essaie de faire est que l'authentification Kerberos via Windows ne1 transmet le mot de passe sur le réseau. L'authentification SQL le fait, ce qui signifie qu'il est possible qu'une personne capturant des paquets puisse déchiffrer ce mot de passe et se connecter à SQL Server.

L'authentification Windows est basée sur des jetons. Lorsque vous vous connectez, votre compte reçoit un jeton de l'autorité de connexion qui peut être transmis à travers le réseau et confirmé par l'autorité de connexion sans possibilité de compromettre le mot de passe du compte.

Par conséquent, l'authentification SQL Server est moins sécurisée que l'authentification Windows.

3
Max Vernon