Compartir a través de


Uso de SQL Server 2016 y versiones posteriores en modo compatible con FIPS 140-2

En este artículo se presentan las instrucciones fiPS 140-2 y cómo usar SQL Server2016 en modo compatible con FIPS 140-2.

Versión original del producto: SQL Server 2016 y versiones posteriores Número de KB original: 4014354

Nota:

  • Los términos "compatibles con FIPS 140-2", "cumplimiento de FIPS 140-2" y "modo compatible con FIPS 140-2" se definen aquí para su uso y claridad. Estos términos no se reconocen ni definen términos gubernamentales. El Estados Unidos y los gobiernos canadienses reconocen la validación de módulos criptográficos con estándares como FIPS 140-2 en lugar de usar módulos criptográficos de una manera especificada o conforme.

    En este artículo, usamos el cumplimiento de FIPS 140-2 compatible con FIPS 140-2 y el modo compatible con FIPS 140-2 para indicar que SQL Server 2016 y versiones posteriores usan solo instancias validadas de FIPS 140-2 de algoritmos y funciones hash en todas las instancias en las que los datos cifrados o hash se importan o exportan desde SQL Server 2016 y versiones posteriores. Además, esto significa que SQL Server 2016 y versiones posteriores administrarán las claves de forma segura, tal como se requiere en los módulos criptográficos validados por FIPS 140-2. El proceso de administración de claves también incluye la generación de claves y el almacenamiento de claves.

  • Usamos "certificado" aquí para indicar que la instancia del algoritmo es FIPS 140-2 validada o que el sistema operativo contiene FIPS140-2 instancias validadas de algoritmos.

¿Qué es FIPS?

Federal Information Processing Standard (FIPS) es un estándar desarrollado por los dos organismos gubernamentales siguientes:

  • El Instituto Nacional de Estándares y Tecnología (NIST) en la Estados Unidos
  • Establecimiento de seguridad de comunicaciones (CSE) en Canadá

Los estándares FIPS son recomendados o obligatorios para su uso en sistemas de TI operados por el gobierno federal en los Estados Unidos y Canadá.

¿Qué es FIPS 140-2?

FIPS 140-2 es una instrucción titulada "Requisitos de seguridad para módulos criptográficos". Especifica qué algoritmos de cifrado y qué algoritmos hash se pueden usar y cómo se generan y administran las claves de cifrado. Algunos procesos, software y hardware que contienen los algoritmos se pueden considerar certificados FIPS 140-2 y otros procesos, software y hardware que llaman a los algoritmos correctos se pueden considerar compatibles con FIPS 140-2.

¿Cuál es la diferencia entre la certificación FIPS 140-2 y la certificación FIPS 140-2?

SQL Server 2016 y versiones posteriores se pueden configurar y ejecutar de forma compatible con FIPS 140-2. Para configurar SQL Server 2016 y versiones posteriores de esta manera, debe ejecutarse en un sistema operativo certificado con FIPS 140-2 o que proporcione módulos criptográficos certificados. La diferencia entre el cumplimiento y la certificación no es sutil. Los algoritmos se pueden certificar. No es suficiente usar un algoritmo solo porque aparece en las listas aprobadas en FIPS 140-2. En su lugar, debe usar una instancia de este algoritmo certificado. Esto significa que la instancia está validada por el gobierno. La certificación requiere pruebas y verificación por parte de un laboratorio de evaluación aprobado por el gobierno estadounidense o canadiense. Windows Server 2012 y versiones posteriores, y Windows 8 y versiones posteriores contienen la instancia certificada de cada algoritmo permitido. Lo más importante es que una llamada a cada uno de estos algoritmos solo proporciona la instancia certificada.

¿Qué aplicaciones pueden ser compatibles con FIPS 140-2?

Todas las aplicaciones que realizan cifrado o hash y que se ejecutan en una versión certificada de Windows pueden ser compatibles con solo las instancias certificadas de los algoritmos aprobados y cumpliendo con los requisitos de generación de claves y administración de claves. Esto requiere usar la función de Windows para la generación de claves y la administración de claves o cumplir con los requisitos de generación de claves y administración de claves dentro de la aplicación. Las áreas de una aplicación compatible con FIPS pueden existir cuando se habilitan algoritmos o procesos no compatibles. Por ejemplo, se permiten algunos procesos internos que permanecen en el sistema y algunos datos externos que se van a cifrar además mediante una instancia de algoritmo certificado.

¿Sql Server 2016 y versiones posteriores siempre son compatibles con FIPS 140-2?

No. SQL Server 2016 y versiones posteriores pueden ser compatibles con FIPS 140-2, ya que se puede configurar y ejecutar para que solo use las instancias del algoritmo certificado FIPS 140-2. Además, se llama a estas instancias mediante CryptoAPI o CGN para el cifrado o mediante hash en cada instancia en la que se requiere FIPS 140-2compliance.

¿Cómo se puede configurar SQL Server 2016 y versiones posteriores para que sean compatibles con FIPS 140-2?

Requisitos del sistema operativo

Debe instalar SQL Server 2016 y versiones posteriores en un host que ejecute uno de los siguientes servidores y clientes de Windows.

Requisitos de administración del sistema de Windows

El modo FIPS debe establecerse antes de que se inicie SQL Server 2016 o una versión posterior. SQL Server lee la configuración en el inicio. Para establecer el modo FIPS, siga estos pasos:

  1. Inicie sesión en Windows como administrador del sistema de Windows.
  2. Seleccione Inicio.
  3. Seleccione Panel de control.
  4. Seleccione Herramientas administrativas. (Es posible que tenga que cambiar a iconos grandes para el paso siguiente).
  5. Seleccione Directiva de seguridad local. Aparece la ventana Configuración de seguridad local.
  6. En el panel de navegación, seleccione Opciones de seguridad de>directivas locales.
  7. En el panel de la derecha, haga doble clic en Criptografía del sistema: use algoritmos compatibles con FIPS para cifrado, hash y firma.
  8. En el cuadro de diálogo que aparece, seleccione Enabled Apply (Aplicar habilitado>).
  9. Seleccione Aceptar.
  10. Cierre la ventana Configuración de seguridad local.

Requisito de administrador de SQL Server

Cuando el servicio SQL Server (cuando se configura un punto de conexión para Service Broker o la creación de reflejo de la base de datos) detecta que el modo FIPS está habilitado en el inicio, SQL Server registra el siguiente mensaje en el registro de errores de SQL Server:

El transporte de Service Broker se ejecuta en modo de cumplimiento de FIPS.

Además, puede encontrar el siguiente mensaje registrado en el registro de eventos de Windows:

El transporte de creación de reflejo de la base de datos se ejecuta en modo de cumplimiento de FIPS.

Puede comprobar que el servidor se ejecuta en modo FIPS buscando estos mensajes.

Nota:

  • Para la seguridad del cuadro de diálogo (entre servicios), el proceso de cifrado usa la instancia certificada por FIPS de AES si el modo FIPS está habilitado. Si el modo FIPS está deshabilitado, el proceso de cifrado sigue usando AES.
  • Al configurar un punto de conexión de Service Broker en modo FIPS, el administrador debe especificar "AES" para service broker. Si el punto de conexión está configurado en RC4, SQL Server genera un error. Por lo tanto, la capa de transporte no se iniciará.

¿Cómo funciona SQL Server 2016 y versiones posteriores en modo compatible con FIPS 140-2?

  • Con el modo FIPS en Windows activado, en todas las áreas en las que el usuario no tiene ninguna opción sobre si cifrar o hash y cómo se realizará, SQL Server 2016 y versiones posteriores se ejecutarán de conformidad con FIPS 140-2. (SQL Server 2016 y versiones posteriores usarán CryptoAPI en Windows y solo usarán las instancias certificadas de los algoritmos).

  • Con el modo FIPS en Windows activado, en todas las áreas en las que el usuario tiene la opción de usar el cifrado, SQL Server 2016 y versiones posteriores habilitarán solo el cifrado compatible con FIPS 140-2 o no habilitarán ningún cifrado.

  • Información importante para los desarrolladores de software: en todas las áreas en las que el desarrollador o el usuario escribe su propio código para el cifrado o el hash, se les debe indicar que usen solo CryptoAPI (y, por tanto, solo las instancias certificadas) y especificar solo los algoritmos permitidos por FIPS 140-2.Para la lista oficial de NIST de algoritmos criptográficos aprobados por FIPS 140-2, consulte anexos A, C y D en el Programa de validación de módulos criptográficos.

¿Cuál es el efecto de ejecutar SQL Server 2016 o una versión posterior en modo compatible con FIPS 140-2?

  • Cuando se usa un cifrado más seguro, puede tener un pequeño efecto en el rendimiento de los procesos para los que se permite un cifrado menos sólido cuando el proceso no funciona como compatible con FIPS 140-2.

  • La selección de cifrado para SSIS (UseEncryption=True) generará un error que indica que el cifrado disponible no es compatible con el cumplimiento de FIPS y no está permitido. Es decir, no se realiza ningún cifrado del proceso de mensaje.

  • Cuando se usa el cifrado junto con DTS heredado, el cifrado no es compatible con FIPS 140-2. En el caso de DTS, no se comprueba el modo FIPS en Windows. Por lo tanto, es responsabilidad del usuario seleccionar ningún cifrado para que siga siendo compatible.

  • Dado que la mayoría de los procesos de cifrado y hash de SQL Server 2016 y versiones posteriores ya son compatibles con FIPS 140-2, la ejecución en cumplimiento completo (es decir, con el modo FIPS en Windows activado) tendrá poco o ningún efecto en el uso o en el rendimiento de la aplicación.

¿Dónde puedo obtener más información sobre FIPS 140-2?

Para obtener más información sobre FIPS 140-2, vea CMVP FIPS 140-2 Standards and Documents.

Microsoft proporciona información de contacto de terceros para ayudarle a encontrar soporte técnico. Esta información de contacto puede cambiar sin previo aviso. Microsoft no garantiza la precisión de esta información de contacto de terceros.