Подпись ПО
Общее
Для подписи ПО разработчику/администратору АИС необходимо иметь комплект ключей, которые необходимо получить(сгенерировать самостоятельно) следующим образом, а именно:
- закрытый ключ privkey.pem;
- сертификат открытого ключа <org_name>.der.
Подпись файла/скрипта/исполняемого файла
Наложение подписи на одиночный файл выполняется командой:
sudo evmctl -k <закрытый ключ> ima_sign <подписываемый файл>
В результате работы, будет сформирована подпись и помещена в расширенный атрибут (extended attribute, xattr(7)) security.ima файла.
Проверка подписи:
evmctl -k <сертификат открытого ключа> ima_verify <файл>
Просмотр:
evmctl show <файл>
Для формирования подписи в dump-файл:
evmctl --dump -k <закрытый ключ> ima_sign <подписываемый файл> | tee <подписываемый файл>.dump
dump-файл можно наложить командой:
sudo setfattr --restore=filename.dump
Просмотр расширенных атрибутов:
getfattr -m . -d <файл>
Подпись ПО в deb-пакетах
Менеджер пакетов dpkg из состава ОС ОСнова позволяет для файлов в составе deb-пакетов, сохранить, а при установке deb-пакетов, восстановить наложенные подписи.
В составе ОС ОСнова имеется ряд инструментов, позволяющих выполнить подпись содержимого deb-пакетов, в том числе и ПО.
В общем случае, для подписи содержимого deb-пакетов необходимо использовать скрипт sign-deb.sh
Третий параметр может совпадать с первым, а четвертый со вторым.
В каталоге signed будет сформирован подписанный пакет.deb.
Дамп файл будет записан в .deb пакет.
Для формирования отделенных подписей содержимого deb-пакета используется скрипт sign-foreign-deb.sh.
В каталоге dumps будет сформирован файл пакет.dump.
Этот файл следует разместить в каталоге /etc/dpkg/ima.d/ перед установкой пакета, тогда dpkg наложит подписи из этого дампа в процессе установки пакета.