
Con el lanzamiento de módulos de cifrado certificados FIPS 140-3 para Ubuntu 22.04 LTS, Canonical continúa su larga tradición de soporte a clientes que implementan Ubuntu en el mercado federal de EE. UU. FIPS 140-3 es un estándar del NIST que describe cómo utilizar la criptografía de forma segura, incluido un riguroso proceso de certificación para garantizar una implementación adecuada. La biblioteca de cifrado Ubuntu 22.04 LTS ha completado este proceso y ahora está disponible a través de una suscripción Ubuntu Pro.
Como parte de este proceso de certificación, también estamos haciendo de Ubuntu Core un entorno operativo totalmente certificado por primera vez, comenzando con Ubuntu Core 22, y continuaremos admitiendo Ubuntu Core en futuras certificaciones FIPS. En este artículo, exploraremos qué es Ubuntu Core y cómo usarlo con FIPS.
Suscríbase a Ubuntu Pro y obtenga FIPS y 10 años de parches de seguridad mejorados en todo el ecosistema de software de Ubuntu, Livepatch principal, herramientas de administración de activos de Landscape y más. Ubuntu Pro es gratuito para uso personal en hasta 5 máquinas y el precio lo fija individualmente el fabricante del dispositivo.
¿Qué es el núcleo de Ubuntu?
Ubuntu Core es una versión mínima, en contenedores e inmutable de Ubuntu diseñada para IoT, dispositivos y dispositivos integrados y construida con paquetes instantáneos. Snap es un conjunto de aplicaciones Linux independiente, estrictamente seguro y libre de dependencias.
En el núcleo de Ubuntu Core hay un modelo de seguridad sólido: cada paquete instantáneo está restringido mediante un entorno de pruebas estricto con firmas digitales y es completamente transaccional, compatible con la reversión del sistema, la autorreparación y la implementación de actualizaciones sin intervención. El sistema operativo en sí es inmutable y de solo lectura, y las actualizaciones se entregan de forma atómica, lo que reduce el riesgo operativo y el tiempo de inactividad. Las características de seguridad de Ubuntu Core, como el arranque seguro, el cifrado de disco completo y las capacidades de arranque medidas, permiten a los fabricantes de dispositivos implementar fácilmente una cadena de confianza basada en hardware y garantizar la integridad del sistema desde el arranque hasta el tiempo de ejecución.
Una vez que los desarrolladores han creado y verificado sus aplicaciones Snap en su entorno preferido, crean una imagen de producción de Ubuntu Core que contiene solo los paquetes Snap necesarios que requiere la aplicación de destino. Sus imágenes de Ubuntu Core de producción se pueden implementar en dispositivos, lo que reduce el tiempo de aprovisionamiento de la línea de producción y al mismo tiempo aumenta la repetibilidad, las limitaciones y las garantías de soporte a largo plazo mediante hasta 15 años de mantenimiento seguro. Ubuntu Core está diseñado para todo el ciclo de vida del dispositivo y se integra perfectamente con herramientas de automatización y administración de dispositivos para respaldar la implementación y el mantenimiento escalables en una variedad de casos de uso de misión crítica.
Ubuntu Core ha ganado una gran tracción en los sectores industrial y de IoT, con implementaciones en áreas como manufactura, domótica, agricultura, cadena de suministro minorista, robótica y señalización digital.
Cómo crear una instantánea para Ubuntu Core
Canonical ha creado una cadena de herramientas integral llamada snapcraft para crear instantáneas de una manera clara y consistente. Snapcraft requiere una declaración de archivo yaml simple para describir cómo crear un complemento e incluye muchos complementos para entornos de compilación comunes, como C/C++, Python, Golang, CMake, etc.
Snap está diseñado para ser una aplicación completamente independiente que no requiere la instalación de una gran cantidad de dependencias en el sistema. Sin embargo, existe un conjunto común de bibliotecas del sistema agrupadas en una instantánea «base» que está disponible para todas las demás instantáneas del sistema: esta instantánea base se crea a partir de la versión LTS de Ubuntu correspondiente, llamada core22 (el número refleja la versión LTS de Ubuntu, por lo que core22 se construye a partir de Ubuntu 22.04 LTS).
¿Qué es una instantánea habilitada para FIPS?
Como parte del proceso de certificación FIPS para Ubuntu 22.04, también hemos incluido las bibliotecas criptográficas del espacio de usuario (OpenSSL, libgcrypt, GnuTLS) en la instantánea base de core22. La versión snap de core22 con la biblioteca FIPS está disponible en la tienda snap actualización-fips/estable canal. Puede ver qué canales están disponibles para una instantánea específica usando el siguiente comando mensaje instantáneo
Al igual que con el clásico Ubuntu 22.04 LTS FIPS, estas modificaciones requieren que se instale el núcleo FIPS para proporcionar una fuente de entropía (números aleatorios) validada por FIPS. El núcleo FIPS establece un indicador especial en el sistema de archivos proc para indicar que se está ejecutando en modo FIPS. El módulo criptográfico lo detecta y por tanto también se ejecuta en modo FIPS:
$ gato /proc/sys/crypto/fips_enabled
1
Esto significa que cualquier aplicación que se vincule al módulo FIPS (como OpenSSL) puede utilizar directamente algoritmos de cifrado validados por FIPS sin modificaciones ni certificación NIST adicional.
Cabe señalar que la base core22 incluye OpenSSL, libgcrypt y GnuTLS, por lo que al crear el paquete snap Debe asegurarse de utilizar estas bibliotecas y no incluir copias adicionales en el paso de preparación.porque las instantáneas no funcionarán en modo FIPS.
Ejemplo de creación de instantáneas
Creamos una instantánea de muestra que muestra el proveedor de cifrado OpenSSL instalado. De forma predeterminada, OpenSSL utiliza su proveedor «base» habitual, pero en modo FIPS también tiene un proveedor «fips» dedicado. Consulte el código en GitHub:
$ git clon
La aplicación está diseñada para OpenSSL – consulte CMakeLists.txt instruir:
target_link_libraries (servidor PÚBLICO microhttpd criptomoneda)
La definición de snapcraft incluye las bibliotecas de desarrollo de OpenSSL, pero no organiza las bibliotecas de tiempo de ejecución de OpenSSL, ya que estas bibliotecas se proporcionan en el complemento base core22:
parte:
servidor:
Fuente: .
Complemento: cmake
Paquete de compilación:
– libmicrohttpd-dev
– desarrollo libssl
Paquete de escenario:
–libmicrohttpd12
Probado en Ubuntu clásico en modo FIPS
Snap puede ejecutarse en Ubuntu clásico o Ubuntu Core (así como en muchos otros entornos Linux), y es más fácil desarrollarlos y probarlos en sistemas Ubuntu clásicos. Para que las instantáneas estén disponibles en la tienda pública de instantáneas, el equipo de seguridad de Canonical debe revisarlas. También puedes crear e instalar instantáneas localmente:
$ sudo snap install –peligroso –jailmodetestsnap_1_amd64.snap
este -peligroso flag le dice a snapd que no verifique las firmas y afirmaciones de seguridad de snap. Por lo general, estos se habilitan a través del proceso de publicación de la instantánea. este – Modo prisión La bandera le dice a snapd que aún aplique las restricciones de seguridad de snap (-peligroso Las restricciones de seguridad también están deshabilitadas). Nuevamente, esto es sólo para fines de prueba.
Para el modo FIPS, el sistema requiere que tanto la biblioteca principal como la del espacio de usuario tengan FIPS habilitado. Canonical proporciona los paquetes de software necesarios a través de una suscripción a Ubuntu Pro, que puede instalar usando el cliente Pro para convertir su sistema al modo FIPS:
$ sudo pro habilitar actualización de fips
Nuestra instantánea de prueba de ejemplo se ejecutará en sistemas FIPS y no FIPS y enumerará los proveedores de OpenSSL que están cargados. De forma predeterminada, muestra el proveedor «base», pero en los sistemas habilitados para FIPS también muestra el proveedor «fips».
Otra forma sencilla de probar su aplicación en un sistema FIPS es usarla varias veces. Inicie una instancia de Ubuntu 22.04, habilite FIPS, instale la base core22 FIPS, instale la instantánea de prueba de muestra y verifique los resultados.
$ dispara jammy varias veces -n jammyfips -c 2 -m 2g -d 15g
$ jammyfips de shell multicanal
$ sudo pro adicional
$ sudo pro habilitar actualización de fips
$ sudo reiniciar
$ Prueba de transmisión multicanal snap_1_amd64.snap jammyfips:
$ jammyfips de shell multicanal
$ sudo snap install core22 –canal fips-actualizaciones/estable
$ sudo snap install –peligroso –jailmodetestsnap_1_amd64.snap
Ubuntu Core con FIPS
Para crear una imagen de Ubuntu Core, primero debe definir un afirmación del modeloque es un documento JSON firmado que especifica la estructura de la imagen (incluidas instantáneas del sistema base, el núcleo, el gadget y la aplicación), así como la identidad del dispositivo y las políticas de seguridad. El modelo declara qué instantáneas se incluyen y cómo interactúan. Luego use la herramienta ubuntu-image para ensamblar una imagen basada en este modelo, extrayendo el Snap declarado de Snap Store o de una fuente específica. El resultado es una imagen firmada reproducible que se puede implementar de forma segura en los dispositivos.
Las imágenes de Ubuntu Core se crean a partir de 4 instantáneas clave:
- Instantánea del gadget: define el diseño del sistema e incluye la configuración del hardware.
- Instantánea del núcleo: Ubuntu Linux Core
- Snapd – Snap y el motor de ejecución para Ubuntu Core
- Base snap: bibliotecas y componentes principales que proporcionan funcionalidad básica de Linux
Para tener una versión de Ubuntu Core totalmente compatible con FIPS, todas las instantáneas deben crearse en modo FIPS, excepto las instantáneas de dispositivos que no incluyen cifrado. Canonical creó estas instantáneas habilitadas para FIPS y ahora están disponibles con una suscripción a Ubuntu Pro.
Algo a tener en cuenta con los sistemas de IoT es si se requiere un núcleo personalizado. Nuestro núcleo habilitado para FIPS, que ha pasado por un largo proceso de validación FIPS, se basa en la versión central de Ubuntu lanzada con cada nueva versión LTS. Esto significa que si el núcleo existente admite la plataforma de hardware, entonces el núcleo FIPS también la admitirá; sin embargo, si el núcleo original no es compatible con la plataforma de hardware, entonces el núcleo FIPS tampoco la admitirá.
El equipo de servicios profesionales de IoT de Canonical está disponible para guiar a los clientes a lo largo de este viaje, brindándoles soporte, personalización, soporte de hardware y acceso a compilaciones profesionales como estas instantáneas FIPS.
Al trabajar con nuestro equipo de IoT, obtiene su propia tienda Snap dedicada para controlar la distribución y disponibilidad de aplicaciones Snap personalizadas, administrar cuentas y autenticación de dispositivos.
en conclusión
Ubuntu Core es un nuevo y emocionante enfoque para la seguridad de Linux que combina inmutabilidad, restricciones estrictas y los últimos desarrollos en la entrega de aplicaciones, beneficios que los clientes de todo el mundo de IoT están descubriendo. Estamos entusiasmados de ampliar las capacidades de cumplimiento de FIPS de Canonical al ecosistema Ubuntu Core y permitir un mayor uso de Core en entornos regulados. Contáctenos para obtener más información sobre Ubuntu Core, FIPS 140 y cómo nuestro equipo de servicios profesionales de IoT puede ayudarlo a comenzar a trabajar en este nuevo y emocionante mundo de sistemas Linux simples y seguros.








