Утилита evmctl#
Описание#
Утилита evmctl служит для создания и проверки цифровых подписей, которые используются подсистемой контроля целостности ядра Linux IMA/EVM (Integrity Measurement Architecture and Extended Verification Module), а также для импорта ключей в системное хранилище («keyring»).
Синтаксис утилиты:
evmctl <options> <command>
Где:
<options>- опции;<command>- команда.
Опции#
Часто используемые опции утилиты представлены в таблице ниже.
Опция |
Описание |
|---|---|
|
Использовать заданный алгоритм хеширования |
|
Задать путь к ключу для подписи; по умолчанию |
|
Выполнять рекурсивное подписание всех элементов каталога |
|
Подписать файл сигнатурой IMA |
|
Вывести подробную информацию о ходе выполнения |
|
Вывести справочную информацию |
Команды#
Часто используемые команды утилиты представлены в таблице ниже.
Команда |
Описание |
|---|---|
|
Подписать файл |
|
Подписать файл сигнатурой IMA |
|
Проверить совпадение подписи файла |
Пример использования#
В качестве примера приведен сценарий подписи и проверки соответствия подписи файла.
Предварительные условия#
Перед выполнением основного сценария выполните следующие команды:
Опционально. Установите утилиту
evmctl:dnf install ima-evm-utilsОпционально. Установите утилиту
openssl(подробнее о работе утилиты - в разделе «Утилита openssl»):dnf install opensslСоздайте конфигурационный файл
test-ca.conf, который будет использоваться для генерации сертификата:cat test-ca.confСо следующим содержимым:
[ req ] distinguished_name = req_distinguished_name prompt = no string_mask = utf8only x509_extensions = v3_ca [ req_distinguished_name ] O = IMA-CA CN = IMA/EVM certificate signing key emailAddress = ca@ima-ca [ v3_ca ] basicConstraints=CA:TRUE subjectKeyIdentifier=hash authorityKeyIdentifier=keyid:always,issuerВыполните команду, чтобы сгенерировать 2048-битный RSA-ключ и сертификат x509 (срок действия: 100 дней), используя конфигурационный файл из шага 3:
openssl req -verbose -new -nodes -utf8 -sha1 -days 100 -batch -x509 \ -config test-ca.conf \ -newkey rsa:2048 \ -out x509_evm.der -outform DER \ -keyout privkey_evm.pemПроверьте, что файлы созданы с помощью команды:
lsПример вывода команды:
original-ks.cfg privkey_evm.pem test-ca.conf x509_evm.derСоздайте каталог:
mkdir -p /etc/keys/Скопируйте файлы:
privkey_evm.pem,test-ca.conf,x509_evm.der— в созданный каталог:cp test-ca.conf x509_evm.der privkey_evm.pem /etc/keys/
Основной сценарий#
Чтобы подписать файл и проверить его подпись с помощью утилиты evmctl, выполните:
Создайте файл
test.txt:touch test.txtПодпишите файл
test.txt:evmctl sign --imasig test.txtПроверьте совпадение вычисляемой и сохраненной подписей файла
test.txtc выводом подробной информации о ходе выполнения:evmctl ima_verify -v test.txtУбедитесь, что в выводе присутствует строка, свидетельствующая о соответствии подписей:
test.txt: verification is OK
Дополнительная информация#
Дополнительную информацию можно получить, выполнив команду:
man evmctl
Или:
evmctl --help
Или:
evmctl -h