Uso de SQL Server 2016 y versiones posteriores en el 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 número de KB original de 2016 y versiones posteriores: 4014354

Nota:

  • Los términos "compatible con FIPS 140-2", "cumplimiento con FIPS 140-2" y "modo compatible con FIPS 140-2" se definen aquí para su uso y claridad. Estos términos no son términos gubernamentales reconocidos o definidos. Los Estados Unidos y los gobiernos canadienses reconocen la validación de módulos criptográficos con respecto a 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 con FIPS 140-2, el cumplimiento con FIPS 140-2 y el modo compatible con FIPS 140-2 para significar que SQL Server 2016 y versiones posteriores solo usan instancias validadas por 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 versones de 2016 y posteriores administrarán las claves de forma segura, 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 significar que la instancia del algoritmo está validada por FIPS 140-2 o que el sistema operativo contiene instancias de algoritmos validadas FIPS140-2.

¿Qué es FIPS?

El Estándar Federal de Procesamiento de Información (FIPS) es un estándar desarrollado por los dos organismos gubernamentales siguientes:

  • El Instituto Nacional de Estándares y Tecnología (NIST) en el Estados Unidos
  • El Establecimiento de Seguridad de las Comunicaciones (CSE) en Canadá

Las normas FIPS se recomiendan o se ordenan para su uso en sistemas de TI administrados por el gobierno federal en el Estados Unidos y Canadá.

¿Qué es FIPS 140-2?

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

¿Cuál es la diferencia entre ser compatible con FIPS 140-2 y ser certificado 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 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 dicho algoritmo que esté certificada. 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 de Ee. UU. o Canadá. 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 proporciona solo 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 el uso de la función de Windows para la generación de claves y la administración de claves o el cumplimiento de 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 donde se habilitan los algoritmos o procesos no conformes. Por ejemplo, se permiten algunos procesos internos que permanecen en el sistema y algunos datos externos que están programados para cifrarse adicionalmente 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 use solo las instancias de algoritmo certificado FIPS 140-2. Además, estas instancias se llaman mediante CryptoAPI o CGN para el cifrado o mediante hash en todas las instancias en las 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 clientes y servidores 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 siguiente paso).
  5. Seleccione Directiva de seguridad local. Aparece la ventana Configuración de seguridad local .
  6. En el panel de navegación, seleccioneOpciones de seguridaddirectivas> locales.
  7. En el panel de la derecha, haga doble clic en Criptografía del sistema: use algoritmos compatibles con FIPS para el cifrado, el hash y la firma.
  8. En el cuadro de diálogo que aparece, seleccione Aplicar habilitado>.
  9. Seleccione Aceptar.
  10. Cierre la ventana Configuración de seguridad local .

SQL Server requisito de administrador

Cuando el servicio de SQL Server (cuando se configura un punto de conexión para Service Broker o creación de reflejo de la base de datos) detecta que el modo FIPS está habilitado al iniciarse, 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 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 fips.

Para comprobar que el servidor se ejecuta en modo FIPS, busque 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 funcionan 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 opción sobre si cifrar o hash y cómo se realizará, SQL Server 2016 y versiones posteriores se ejecutarán en cumplimiento con FIPS 140-2. (SQL Server 2016 y versiones posteriores usarán CryptoAPI en Windows y usarán solo las instancias certificadas de los algoritmos).

  • Con el modo FIPS en Windows activado, en todas las áreas donde 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 desarrolladores de software: En todas las áreas en las que el desarrollador o usuario escribe su propio código para el cifrado o el hash, se le debe indicar que use solo CryptoAPI (y, por lo tanto, solo las instancias certificadas) y que especifique solo los algoritmos permitidos por FIPS 140-2. Para obtener la lista oficial NIST de algoritmos criptográficos aprobados por FIPS 140-2, consulte los 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 el modo compatible con FIPS 140-2?

  • Cuando se usa un cifrado más seguro, puede tener un pequeño efecto en el rendimiento de aquellos 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 del cifrado para SSIS (UseEncryption=True) generará un error que indica que el cifrado disponible no es compatible con el cumplimiento de FIPS y no se permiten. En otras palabras, 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. Para DTS, el modo FIPS en Windows no está activado. Por lo tanto, es responsabilidad del usuario seleccionar ningún cifrado para seguir 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 con pleno cumplimiento (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, consulte Estándares y documentos de CMVP FIPS 140-2.

Microsoft proporciona información de contacto de otros proveedores para ayudarle a encontrar soporte técnico. Dicha información de contacto puede cambiar sin notificación previa. Microsoft no garantiza la precisión de esta información de contacto de terceros.