Перед подписыванием
- Ознакомиться с пунктом 16. ОГРАНИЧЕНИЕ ПРОГРАММНОЙ СРЕДЫ документации "Руководство по КСЗ. Часть 1 РУСБ.10015-01 97 01-1";
- Изучить программную документацию man bsign и man gpg;
- Убедиться в наличии и доступности комплекта ключей, полученных по запросу от Astra Linux;
Убедиться в необходимости подписывания: если тип файла не ELF - нет необходимости его подписывать. Проверить тип файла можно с помощью команды file. Например, для файла /bin/bash:
file /bin/bash
/bin/bash: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, for GNU/Linux 2.6.32, BuildID[sha1]=30bada4dfa11f45a96a5993d4c2fd41a27a61663, strippedАрхивы и deb-файлы необходимо предварительно распаковать для анализа содержащихся в них файлов.
Импорт секретного ключа
Перейти в каталог с ключами и импортировать секретный ключ из полученного комплекта ключей:
gpg --import ORG_secret.gpg
Будет запрошен пароль для выполнения операции импорта.
Пароль находится в этом же каталоге в файле ORG_password.txt. Будьте аккуратны при копировании в буфер обмена - символ перевода строки будет распознан соответственно. Во избежание ошибок при вводе пароля, можно использовать дополнительные опции при импорте:
gpg --import --pinentry-mode=loopback --passphrase-file=ORG_password.txt ORG_secret.gpg
В примере выше опция --passphrase-file позволяет не запрашивать пароль, а прочитать его из файла, указанного в этой опции.
Далее проверить список импортированных ключей и запомнить идентификатор ключа ORG_secret_key_id:
gpg --list-secret-keys
Идентификатор ключа в выводе команды:
- В ОС СН Смоленск 1.6 и Ленинград 8.1 длинная строка из сорока шестнадцатиричных цифр;
- В ОС СН Смоленск1.5 идентификатор ключа имеет длину 8 символов и указывается через "слэш" после алгоритма.
Выполнение подписывания
Теперь подпишем тестовый ELF-файл test_elf с помощью команды bsign:
bsign -s test_elf
Если импортирован только один ключ, можно ограничиться вышеуказанной командой без каких-либо опций. При наличии нескольких ключей, можно указать, каким именно ключом следует подписать файл:
bsign -s --pgoptions="--default-key=ORG_secret_key_id" test_elf
После того, как файл подписан, можно проверить подпись:
bsign -w test_elf
Для удобства подписывания deb-пакетов, можно воспользоваться
данной инструкцией.
Теперь можно использовать подписанный ELF файл на клиентских машинах.
Для запуска файла без ошибок в режиме замкнутой программной среды (ЗПС), потребуется поместить публичный ключ ORG_pub.key в директорию /etc/digsig/keys и выполнить команду:
sudo update-initramfs -uk all
После перезагрузки машины, возможен запуск подписанных ELF файлов.