Evmctl: различия между версиями
Vt (обсуждение | вклад) |
Vt (обсуждение | вклад) |
||
Строка 46: | Строка 46: | ||
-out x509_evm.der -outform DER \ | -out x509_evm.der -outform DER \ | ||
-keyout privkey_evm.pem</source> На выходе файл <code>privkey_evm.pem</code> с приватным ключем и <code>x509_evm.der</code> с публичным сертификатом. Их можно положить в каталог <code>/etc/keys</code>. | -keyout privkey_evm.pem</source> На выходе файл <code>privkey_evm.pem</code> с приватным ключем и <code>x509_evm.der</code> с публичным сертификатом. Их можно положить в каталог <code>/etc/keys</code>. | ||
* IMA + EVM подпись (формата v2, что характеризуется отутствием опции <code>--rsa</code>) произвольного файла ключом <code>privkey_evm.pem</code>: <source>evmctl sign --imasig <название файла></source> | * IMA + EVM подпись (формата v2, что характеризуется отутствием опции <code>--rsa</code>) произвольного файла ключом <code>/etc/keys/privkey_evm.pem</code>: <source>evmctl sign --imasig <название файла></source> | ||
* Проверка EVM подписи (IMA не проверяется!) по публичному сертификату <code>x509_evm.der</code>: <source>evmctl verify <название файла></source> В случае соответствия подписи будет выдано сообщение <code>Verification is OK</code>. | * Проверка EVM подписи (IMA не проверяется!) по публичному сертификату <code>/etc/keys/x509_evm.der</code>: <source>evmctl verify <название файла></source> В случае соответствия подписи будет выдано сообщение <code>Verification is OK</code>. | ||
* Только IMA подпись произвольного файла ключом <code>privkey_evm.pem</code>: <source>evmctl ima_sign <название файла></source> | * Только IMA подпись произвольного файла ключом <code>/etc/keys/privkey_evm.pem</code>: <source>evmctl ima_sign <название файла></source> | ||
* Проверка IMA подписи по публичному сертификату <code>x509_evm.der</code>: <source>evmctl ima_verify <название файла></source> В случае соответствия подписи будет выдано сообщение <code>Verification is OK</code> и код возврата будет успешный (exit code 0). | * Проверка IMA подписи по публичному сертификату <code>/etc/keys/x509_evm.der</code>: <source>evmctl ima_verify <название файла></source> В случае соответствия подписи будет выдано сообщение <code>Verification is OK</code> и код возврата будет успешный (exit code 0). | ||
== Ссылки == | == Ссылки == |
Версия от 20:16, 16 октября 2019
evmctl - программа для создания и проверки цифровых подписей для IMA/EVM, а также для добавления ключей в набор ключей ядра. Распространяется по лицензии GPL2.0+.
Установка
Установить пакет ima-evm-utils
apt-get install ima-evm-utils
Для создания ключей также потребуется программа openssl
apt-get install openssl
Использование
Описание ima-evm-utils находится в файле /usr/share/doc/ima-evm-utils-1.0/README
, а так же в man evmctl
.
Ниже примеры использования.
Подписи в старом формате v1 (RSA ключи)
Импорт RSA-ключа, подпись файла с помощью этого ключа и проверка подписи файла:
- Создание RSA-ключей (для подписей типа v1) и копирование их в каталог
/etc/keys
, в котором находятся ключи используемые по-умолчаниюopenssl genrsa -out privkey_evm.pem 1024 openssl rsa -pubout -in privkey_evm.pem -out pubkey_evm.pem mkdir /etc/keys cp {pubkey_evm.pem,privkey_evm.pem} /etc/keys
privkey_evm.pem
- приватный RSA ключ,pubkey_evm.pem
- публичный RSA ключ (не сертификат). - Импорт созданного публичного ключа в набор ключей ядра (keyring):
evmctl import --rsa /etc/keys/pubkey_evm.pem $evm_id
- IMA + EVM подпись (формата v1, что характеризуется опцией
--rsa
) произвольного файла ключом/etc/keys/privkey_evm.pem
:evmctl sign --imasig --rsa <название файла>
- Проверка EVM подписи (IMA не проверяется) по публичному ключу
/etc/keys/pubkey_evm.pem
:В случае соответствия подписи будет выдано сообщение -evmctl verify <название файла>
Verification is OK
.
Подписи в новом формате v2 (RSA ключ и x509 сертификат)
- Пример конфига для генерации ключа и сертификата от организации "IMA-CA" положить в файл
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 сертификата (на 10000 дней) с использованиев этого конфига: На выходе файл
$ openssl req -verbose -new -nodes -utf8 -sha1 -days 10000 -batch -x509 \ -config test-ca.conf \ -newkey rsa:2048 \ -out x509_evm.der -outform DER \ -keyout privkey_evm.pem
privkey_evm.pem
с приватным ключем иx509_evm.der
с публичным сертификатом. Их можно положить в каталог/etc/keys
. - IMA + EVM подпись (формата v2, что характеризуется отутствием опции
--rsa
) произвольного файла ключом/etc/keys/privkey_evm.pem
:evmctl sign --imasig <название файла>
- Проверка EVM подписи (IMA не проверяется!) по публичному сертификату
/etc/keys/x509_evm.der
:В случае соответствия подписи будет выдано сообщениеevmctl verify <название файла>
Verification is OK
. - Только IMA подпись произвольного файла ключом
/etc/keys/privkey_evm.pem
:evmctl ima_sign <название файла>
- Проверка IMA подписи по публичному сертификату
/etc/keys/x509_evm.der
:В случае соответствия подписи будет выдано сообщениеevmctl ima_verify <название файла>
Verification is OK
и код возврата будет успешный (exit code 0).