Некоторые механизмы безопасности ALT Mobile (Андрей Савченко, OSSDEVCONF-2025)
Материал из 0x1.tv
- Докладчик
- Андрей Савченко
В докладе рассказывается о ряде механизмов безопасности ALT Mobile, в частности, полнодисковом шифровании на основе LUKS и механизме тревожных паролей на основе PAM.
Содержание
Видео[править вики-текст]
Презентация[править вики-текст]
Thesis[править | править вики-текст]
Ключевые слова: ALT Mobile, безопасность, LUKS, PAM, СПО.
Введение[править | править вики-текст]
Развитие Linux на мобильных устройствах в рамках проекта ALT Mobile[1] привело к необходимости внедрения новых механизмов безопасности, которые ранее были не столь актуальны для десктопных и серверных систем, либо внедрение которых потребовало новых технических средств.
Полнодисковое шифрование[править | править вики-текст]
Многие дистрибутивы ограничиваются шифрованием домашнего каталога пользователя, однако этого не достаточно: чувствительные данные могут оседать в системных журналах, файлах конфигурации, кешах и файле подкачки — поэтому мы решили реализовать полнодисковое шифрование на базе надёжной и проверенной технологии LUKS[2].
Что здесь нового? Возникло два основных технических вызова:
- Ввод пароля с экранной клавиатуры в initrd
- Автоматизация установки образа с LUKS
Проблема экранной клавиатуры была решена с помощью unl0kr[3] — инструмента разблокировки диска в initramfs на базе LVGL[4]. Применение LVGL позволяет выполнять рендеринг непосредственно во фреймбуфер ядра и поэтому не зависит от аппаратного ускорения GPU, которое непросто инициализировать на этапе initramfs.
Также был доработан механизм make-initrd[5] для поддержки unl0kr, обеспечения загрузки нужных модулей для работы сенсорного экрана и поддержки файловой системы f2fs.
С целью автоматизации установки образов был доработан инструмент alt-rootfs-installer[6], куда была добавлена поддержка LUKS и f2fs.
Тревожные пароли[править | править вики-текст]
У пользователя может возникнуть ситуация, когда нужно авторизоваться под внешним давлением. В таком случае можно ввести особый пароль, который активирует тревожную кнопку или выполнит любое другое программируемое действие.
Данная задача была реализована с помощью специального модуля PAM: pam_fabo[7]. FABO пароль не гарантирует успешный логин в систему: это зависит от настроек, можно как разрешить, так и запретить логин с заданным специальным паролем.
Использование осуществляется путём встраивания pam_fabo в интересующую цепочку модулей PAM, при этом сами хеши паролей и скрипты действий можно хранить где угодно (расположение задаётся через конфигурационные файлы).
В ходе работ выяснилось, что ряд действий сделать не так уж просто, например полностью заменить $HOME на другой: потому что на этапе входа в оболочку $HOME уже используется оболочкой, а если использовать killall, то процесс входа будет прекращён.
Итоги[править | править вики-текст]
Разработанные механизмы оказались универсальными и пригодными не только для мобильных дистрибутивов. Например, полнодисковое шифрование уже интегрировано в ALT Workstation.
Примечания и ссылки[править вики-текст]
- ↑ ALT Mobile, https://altmobile.org
- ↑ Руководство по использованию полнодискового шифрования в ALT Mobile, https://altmobile.org/installations/luks
- ↑ Unl0kr, https://gitlab.com/postmarketOS/buffybox/-/tree/master/unl0kr
- ↑ LVGL, https://lvgl.io
- ↑ make-initrd, https://github.com/osboot/make-initrd
- ↑ ALT RootFS Installer, https://git.altlinux.org/people/antohami/packages/alt-rootfs-installer.git
- ↑ PAM FABO, https://git.altlinux.org/people/ved/packages/pam_fabo.git
