2009-05-28 18 views
1

Je dois me connecter à une base de données SQL Server sécurisée à l'aide de Perl DBI. J'ai besoin de trouver un moyen d'authentifier l'utilisateur en toute sécurité (sans crainte d'écoute, et sans stocker les mots de passe du côté client). J'utilise SQL Server 2008 sur Windows Server 2008, and Perl 5.10 sur XP.Comment puis-je sécuriser la connexion à SQL Server à partir de DBI Perl?

SQL Server prend en charge les connexions cryptées via quelque chose appelé "API SQL Server Native Access Client", mais je ne peux pas dire si cela est pris en charge par un pilote DBD ou comment l'utiliser si tel est le cas.

Je suis réticent à utiliser le pilote DBD::ODBC avec l'authentification SQL Server, car ODBC transmet les ID utilisateur et les mots de passe en clair.

Je ne peux pas utiliser le pilote DBD :: ODBC avec l'authentification Windows (connexion sécurisée), car le serveur ne se trouve sur aucun domaine Active Directory accessible depuis le réseau du client.

Comment sécuriser mes connexions à la base de données? Merci.

Répondre

1

Deux options:

  1. Créer un tunnel IPSec entre deux emplacements. Quelques infos ici: technet.microsoft.com/en-us/library/cc737154(WS.10).aspx technet.microsoft.com/en-us/library/cc786385(WS.10).aspx

  2. Activer SSL. Je ne suis pas sûr à quel point ce serait protégé. technet.microsoft.com/en-us/library/ms189067.aspx

1

Je suggère que vous utilisez une sorte de système de connexion sécurisée. Il peut s'agir d'IPSec, mais il est souvent considéré comme compliqué, de sorte que vous pouvez être mieux (ou plus rapide) avec OpenVPN, que j'utilise, et je suis généralement satisfait.

Il peut être utilisé sur pratiquement n'importe quel système d'exploitation, est rapide et gratuit. Vous pouvez vérifier ici: http://openvpn.net/

2

Je suis réticent à utiliser le pilote DBD :: ODBC avec l'authentification SQL Server, car ODBC transmet les ID utilisateur et mots de passe en texte clair.

Ce n'est pas strictement vrai. Si vous utilisez un SQL Server récent et n'avez pas désactivé le cryptage, le nom d'utilisateur/mot de passe et la chaîne de connexion sont cryptés comme suit:

Le client contacte le serveur et lui indique de quoi il est capable (par exemple, il peut faire SSL). Si le serveur prend alors en charge le protocole SSL, la fin du client est nécessaire pour crypter les informations de connexion et revenir à un cryptage après cela. Vous devez également voir la case à cocher «Utiliser un cryptage fort pour les données» dans le DSN.