Introducción rápida: pequeña empresa, recursos MUY limitados. Yo prácticamente hago todo, incluyendo el café. Soy un programador, no un tipo de seguridad. Por eso te pregunto ...
Tenemos una base de datos MS-SQL 2008 que se ejecuta en nuestro servidor y varias aplicaciones de C # que se conectan a la base de datos directamente mediante una cadena de conexión como esta
"Server=example.org; Database=SomeDatabase; User Id=dbUser; password=**secret**; Encrypt=YES"
Las aplicaciones no se ejecutan en el servidor, por lo que la instancia de la base de datos se enfrenta al mundo exterior. Esta configuración se está ejecutando muy bien, pero tengo algunas preocupaciones.
1) ¿Qué significa exactamente Encrypt=YES
? ¿Es segura toda la conexión (incluido el inicio de sesión, etc.) (suponiendo que nadie se haga cargo de la cadena de conexión)? ¿O debería tener serias preocupaciones? ¿Cuáles son estas preocupaciones (palabras clave apreciadas)?
2) ¿Cuál es una buena estrategia para distribuir la cadena de conexión?
Para explicar la segunda pregunta: es muy cómodo conectarse directamente. La distribución de la cadena de conexión podría reemplazarse más fácilmente que envolver todas las llamadas a la base de datos en otro canal más seguro ...