Enseñarle cómo cifrar datos en una base de datos de SQL Server.
¿Qué soporte está disponible en SQL Server para cifrar objetos y datos? Es aconsejable analizar desde el principio qué falta en SQL Server o qué no se debe hacer con la parte de cifrado de SQL Server.
En primer lugar, SQL Server tiene dos funciones de contraseña integradas: pwd encrypt() y pwdpare(). Mientras tanto, SQL Server utiliza dos funciones no documentadas para administrar los hashes de contraseñas: pwdencrypt() codifica la contraseña y la almacena. Pwdpare() compara la cadena proporcionada con la cadena hash. Desafortunadamente, esta función hash no es muy segura. Se puede descifrar mediante un algoritmo de ataque de diccionario (¡similar a las aplicaciones de línea de comandos!)
Estas funciones seguirán modificándose con el desarrollo de versiones de SQL Server, lo cual es otra razón para no usarlas. Los hashes de contraseñas en versiones anteriores de SQL Server no se pueden descifrar en versiones más nuevas, por lo que si confía en una función en una versión, todos los datos cifrados serán inútiles en la actualización a menos que pueda descifrarlos primero, lo que anula el propósito original del cifrado.
En segundo lugar, podría intentar crear una solución de cifrado casera para su base de datos, pero hay tres razones por las que no debería hacerlo:
A menos que sea un experto en cifrado, el azar Los sistemas de cifrado sólo proporcionan una protección de muy bajo nivel y poco valor. Lo nuevo es el hash de contraseña unidireccional o el cifrado ROTx, que se puede derrotar fácilmente y sin muchos problemas.
Si el cifrado se rompe debido a su propia incompetencia, sus datos están condenados. Necesitas hacer una copia de seguridad de todo sin cifrado, ¿verdad? (Incluso si cifra, ¿existen agujeros de seguridad?)
Cuando hay en el mercado soluciones de cifrado de nivel profesional y de potencia industrial, no vale la pena ensuciarse las manos. En lugar de reinventar la rueda, tómese el tiempo para crear una base de datos buena y confiable.
Entonces, ¿cuál es una buena forma de cifrar datos?
Para empezar, Microsoft ofrece una solución de cifrado autogenerada llamada CryptAPI que no considera cifrado ligero ni seguridad de grado militar. Su ventaja es que es relativamente fácil de implementar: los administradores pueden instalar un control ActiveX llamado CAPI, que puede proporcionar funciones CryptAPI en los procedimientos almacenados de T SQL. CAPI admite varios tipos de cifrado bidireccional y algoritmos hash unidireccionales, para que los administradores puedan elegir los que mejor funcionen para sus aplicaciones.
Si no está interesado en utilizar la solución de Microsoft, existen algunas buenas soluciones de terceros. Puede crear XP_CRYPT utilizando un software llamado ActiveCrypt LLC, que es un complemento para SQL Server. Puede lograr el cifrado en los procedimientos de visualización y los desencadenadores ampliando los procedimientos almacenados y las funciones definidas por el usuario (en SQL Server). Puede descargar una versión gratuita de la aplicación que admite hash inalámbrico MD DES y SHA. Otros modelos de cifrado se basan en la profundidad de bits (ilimitado en la versión completa). En tu propio código, puedes usar XP_CRYPT como un control ActiveX (en la versión gratuita limitada). Para los programadores de ASP, un componente llamado AspEncrypt proporciona una manera fácil de integrar cifrado avanzado en su código.
Lishi Xinzhi/Artículo/programa/SQL server/201311/22397