Сертифіковані криптографічні модулі FIPS 140-3 для Ubuntu 22.04 LTS
З випуском сертифікованих криптографічних модулів FIPS 140-3 для Ubuntu 22.04 LTS компанія Canonical продовжує свою довгу традицію підтримки клієнтів у розгортанні Ubuntu на ринку США. FIPS 140-3 – це стандарт NIST, який описує, як безпечно використовувати криптографію, включаючи ретельний процес сертифікації, щоб забезпечити коректність впровадження. Криптографічні бібліотеки Ubuntu 22.04 LTS пройшли цей процес і тепер доступні для використання з підпискою на Ubuntu Pro.
У рамках цього процесу сертифікації також додано Ubuntu Core як повністю сертифіковане робоче середовище вперше, починаючи з Ubuntu Core 22, і компанія продовжить підтримувати Ubuntu Core з майбутніми сертифікаціями FIPS. У цій статті ми дослідимо, що таке Ubuntu Core і як його використовувати з FIPS.
FIPS доступний з підпискою на Ubuntu Pro, а також включає покращене встановлення безпеки до 10 років в екосистемі програмного забезпечення Ubuntu, Livepatch ядра, інструмент Landscape для управління активами та інше. Ubuntu Pro безкоштовний для особистого використання на 5 машинах, з індивідуальними цінами для виробників пристроїв.
Що таке Ubuntu Core?
Ubuntu Core – це мінімальна, контейнеризована та незмінна версія Ubuntu, призначена для IoT, вбудованих пристроїв і побутової техніки, створена за допомогою пакетів snap. Snaps – це пакети програми для Linux, які є самодостатніми, надзвичайно безпечними і не потребують залежностей.
У основі Ubuntu Core знаходиться надійна модель безпеки: кожен snap-пакет обмежений завдяки строгому пісочному середовищу з цифровими підписами і повністю транзакційний, що дозволяє виконувати відкат системи, самовідновлюватися і оновлюватися з нульовим нагромадженням. Сама ОС є незмінною і доступною лише для читання, а оновлення доставляються атомарно, що зменшує ризик експлуатації і час простою. Безпекові функції Ubuntu Core, такі як безпечний завантаження, шифрування всього диска та можливості вимірювання завантаження, дозволяють виробникам пристроїв легко реалізувати апаратно-основану ланцюг довіри та забезпечувати цілісність системи від моменту включення до виконання.
Коли розробники створили та перевірили свою snap-програму в улюбленому середовищі, вони створюють свій виробничий образ Ubuntu Core, який включає лише необхідні snaps, що потрібні для їх запланованого застосування. Цей виробничий образ Ubuntu Core тоді можна розгорнути на пристроях, зменшуючи час налаштування на виробничій лінії, підвищуючи впевненість у відтворюваності, обмеженості та довготривалій підтримці протягом до 15 років обслуговування безпеки. Ubuntu Core розроблений для повного життєвого циклу пристрою і безперешкодно інтегрується з інструментами управління флотом і автоматизації, підтримуючи масштабоване розгортання та обслуговування в широкому діапазоні критично важливих випадків використання.
Ubuntu Core набуває значної популярності у секторах IoT та промисловості, з розгортаннями в виробництві, домашній автоматизації, сільському господарстві, у ланцюгу постачання роздрібної торгівлі, робототехніці та цифровій рекламі.
Як будувати snaps для Ubuntu Core
Canonical підготував комплексний набір інструментів під назвою snapcraft для створення snaps чітким і послідовним способом. Snapcraft вимагає просту декларацію yaml-файлу для опису, як створити snap, і включає численні плагіни для звичних середовищ розробки таких, як C/C++, Python, Golang, CMake та багато інших.
Snaps призначені бути абсолютно автономними додатками без потреби в безлічі залежностей на системі. Проте, існує загальний набір системних бібліотек, які об’єднані в базовому snap, що доступний всім іншим snaps на системі – цей базовий snap створено з відповідного дистрибутива Ubuntu LTS і називається core22 (число відображає версію Ubuntu LTS, тому core22 створено з Ubuntu 22.04 LTS).
Що таке snap з підтримкою FIPS?
У рамках процесу сертифікації FIPS для Ubuntu 22.04 ми також додали криптографічні бібліотеки користувацького простору в базовий snap core22 (OpenSSL, libgcrypt, GnuTLS). Версія цього snap core22 з бібліотеками FIPS доступна в snap store через канал fips-updates/stable. Ви можете переглянути доступні канали для конкретного snap за допомогою команди snap info <snap>, наприклад snap info core22.
Як і в класичній версії Ubuntu 22.04 LTS з FIPS, ці модулі потребують встановлення FIPS-ядра для надання перевіреного джерела ентропії (випадкових чисел). FIPS-ядро встановлює спеціальний прапор у файловій системі proc, щоб вказати, що воно працює в режимі FIPS, а криптографічні модулі це виявляють і, відповідно, також працюють у режимі FIPS:
$ cat /proc/sys/crypto/fips_enabled
1
Це означає, що будь-яка програма, яка посилається на модулі FIPS, такі як OpenSSL, може безпосередньо використовувати перевірені криптографічні алгоритми без необхідності проходити модифікації або додаткову сертифікацію NIST.
Важливо зазначити, що base22 містить OpenSSL, libgcrypt і GnuTLS, тому коли ви будуєте snap ви повинні переконатися, що використовуєте ці бібліотеки і не включати додаткові копії на стадії підготовки, оскільки snap тоді не зможе працювати в режимі FIPS.
Приклад побудови snap
Ми створили приклад snap, який показує встановлені криптографічні провайдери OpenSSL. За замовчуванням OpenSSL використовує свій звичайний “базовий” провайдер, але в режимі FIPS також має спеціальний провайдер “fips”. Перегляньте код на GitHub:
$ git clone https://github.com/henrycoggillcnc/fipstestsnap.git
Ця програма будується з використанням OpenSSL – дивіться директиву CMakeLists.txt:
target_link_libraries(server PUBLIC microhttpd crypto)
Визначення snapcraft включає бібліотеки розробки OpenSSL, але не потребує включення бібліотек виконання OpenSSL, оскільки вони постачаються в базовому snap core22:
parts:
server:
source: .
plugin: cmake
build-packages:
– libmicrohttpd-dev
– libssl-dev
stage-packages:
– libmicrohttpd12
Тестування на класичному Ubuntu в режимі FIPS
Snaps можуть працювати на класичному Ubuntu або Ubuntu Core (так само, як і в багатьох інших середовищах Linux), і простіше розробляти та тестувати їх на класичних системах Ubuntu. Щоб snaps стали доступними в публічному snapstore, вони повинні бути перевірені командою безпеки Canonical. Проте ви також можете створювати і встановлювати snaps локально:
$ sudo snap install –dangerous –jailmode testsnap_1_amd64.snap
Флаг –dangerous повідомляє snapd не перевіряти підпис та заяви безпеки для snap. Ці перевірки зазвичай активуються через процес публікації snapstore. Флаг –jailmode переконує snapd запровадити охорону безпеки snap (–dangerous також вимикає охорону безпеки). Знову ж таки, це необхідно лише для тестування.
Для режиму FIPS системі потрібно, щоб і ядро, і бібліотеки користувацького простору мали підтримку FIPS. Canonical надає необхідні пакети з підпискою на Ubuntu Pro, і ви можете встановити їх за допомогою Pro-клієнта, перевівши систему в режим FIPS:
$ sudo pro enable fips-updates
Наш приклад тесту snap буде працювати на системах без FIPS і з FIPS, і він перераховує провайдерів OpenSSL, які завантажуються. За замовчуванням він показує “базовий” провайдер, але на системах з підтримкою FIPS також показує “fips” провайдер.
Ще один простий спосіб протестувати програми на системах FIPS – це використовувати multipass. Запустіть екземпляр Ubuntu 22.04, увімкніть FIPS, встановіть базу FIPS core22, встановіть приклад тесту snap і перевірте результати.
$ multipass launch jammy -n jammyfips -c 2 -m 2g -d 15g
$ multipass shell jammyfips
$ sudo pro attach <pro token>
$ sudo pro enable fips-updates
$ sudo reboot
$ multipass transfer testsnap_1_amd64.snap jammyfips:
$ multipass shell jammyfips
$ sudo snap install core22 –channel fips-updates/stable
$ sudo snap install –dangerous –jailmode testsnap_1_amd64.snap
Ubuntu Core з FIPS
Щоб побудувати образ Ubuntu Core, ви починаєте з визначення модельного твердження, яке є підписаним JSON-документом, що описує структуру образу – включаючи базову систему, ядро, пристрій та застосунки snaps – разом з ідентичністю пристрою та політиками безпеки. Ця модель визначає, які snaps включено і як вони взаємодіють. Використовуючи інструмент ubuntu-image, образ збирається на основі цієї моделі, витягуючи з магазину snap або з вказаного джерела. В результаті виходить відтворюваний, підписаний образ, готовий для безпечного розгортання на пристроях.
Образ Ubuntu Core складається з 4 ключових snaps:
- Гаджет snap – визначає макет системи і включає апаратну конфігурацію
- Ядро snap – ядро Linux Ubuntu
- Snapd – виконувальний двигун для snaps та Ubuntu Core
- Базовий snap – основні бібліотеки та компоненти, які забезпечують базову функціональність Linux
Щоб мати повноцінну версію Ubuntu Core з підтримкою FIPS, всі snaps повинні бути створені в режимі FIPS, за винятком гаджет snap, який не містить криптографічної функціональності. Canonical побудував ці snaps з підтримкою FIPS, і вони тепер доступні через вашу підписку на Ubuntu Pro.
Важливо врахувати для IoT-систем, чи потрібно користувацьке ядро. FIPS-ядро, яке ми проходимо довгим процесом валідації FIPS, базується на стандартній версії ядра Ubuntu, що публікується з кожним новим випуском LTS. Це означає, що якщо стандартне ядро підтримує апаратну платформу, то FIPS-ядро також буде підтримувати її; Однак, якщо стандартне ядро не підтримує апаратну платформу, то FIPS-ядро її також не підтримуватиме.
Команда професійних послуг IoT Canonical готова допомогти клієнтам у цьому процесі, надаючи підтримку, налаштування, забезпечення апаратних засобів та доступ до спеціалізованих версій, таких як ці snaps з підтримкою FIPS.
Спілкуючись з нашою командою IoT, ви можете отримати власний Присвячений Snap Store, щоб контролювати публікацію та доступність ваших власних snap-додатків, управляти обліковими записами та автентифікацією пристроїв.
Висновок
Ubuntu Core – це захоплюючий новий підхід до безпеки Linux, що поєднує в собі новітні розробки в іммутованості, строгій обмеженості та доставці застосунків, і клієнти з усіх куточків світу IoT виявляють ці переваги. Нам приємно розширити можливості відповідності FIPS Canonical до екосистеми Ubuntu Core і дозволити ще більше використання Core в регульованих середовищах. Будь ласка, зв’яжіться з нами, щоб дізнатися більше про Ubuntu Core, FIPS 140 та про те, як наша команда професійних послуг IoT може допомогти вам розпочати цю захоплюючу нову подорож у світ безпечних і мінімальних систем Linux.
Зателефонуйте нам сьогодні
Цікавитеся впровадженням Ubuntu у вашій організації?




