Инструмент командной строки bsign обеспечивает создание контрольных сумм (hash, далее — хеш) и подписей. Создаваемые подписи могут использоваться для проверки неизменности файлов в режиме замкнутой программной среды. Подробнее про работу с замкнутой программной средой см. Ограничения программной среды в Astra Linux Special Edition x.8.
Данная статья применима к:
- Astra Linux Special Edition РУСБ.10015-01 очередное обновление 1.8
- Astra Linux Special Edition РУСБ.10015-01 очередное обновление 1.7
Общую справку по опциям инструмента bsign можно получить командой:
Общий синтаксис команды:
Для успешной проверки подписей ключи должны быть загружены в таблицу ключей пользователя, от имени которого выполняется проверка. Например, для загрузки предустановленных ключей:
Команда без опций выводит краткую информацию о подписях указанного файла, например:
bsign: good hash found in '/usr/bin/cat'
bsign: no xattr hash found for '/usr/bin/cat'
bsign: no detached hash found for '/usr/bin/cat'
Опции команды:
| Опция | Описание |
|---|---|
| Операции с подписями. После этих опций может быть указан тип подписи, с которой должна выполняться операция | |
| -c, --check-hash | Проверить хеш файла |
| -H, --hash | Записать только хеш, удалив подпись, если она есть |
| -s, --sign | Сформировать и записать сформированную подпись. Тип и место размещения подписи определяются следующей опцией: -A, -D, -E, -X. Начиная с версии bsign 1.4.1 по умолчанию используется встраиваемая подпись (-E). В версиях 1.2.1 — 1.4.1 тип подписи автоматически определяется в зависимости от формата файла (ELF или PE). В более ранних обновлениях используется встраиваемая подпись и, в некоторых версиях, подпись в расширенных атрибутах |
| -V, --verify | Проверить подписи в файле. |
| -w, --show-info | Вывести информацию о подписях |
| Типы подписей. Перед этими опциями должна быть указана выполняемая операция | |
| -A, --attached | Встраиваемая подпись, добавляемая в конце файла (только для файлов в формате PE) |
| -D, --detached | Отсоединенная подпись |
| -E, --elf-only | Встраиваемая подпись в секции подписи (только для файлов формата ELF) |
| -X, --xattr | Подпись в расширенных атрибутах файла (при условии, что файловая система поддерживает расширенные атрибуты) |
| Прочие опции | |
| -p, --pgoptions=<опция> | Передать опцию программе pgp |
| -x, --extract-sig | Вывести в стандартный вывод (stdout) цифровую подпись |
| -y, --extract-full-sig | Вывести полную цифровую подпись (512 байт) |
| -e, --exclude=<путь> | Добавить путь в список исключений |
| -f, --files=<имя_файла> | Использовать строки в указанном файле как имена обрабатываемых файлов (вместо имени файла можно указать символ минус для использования стандартного ввода) |
| -i, --include=<путь> | Добавить путь в список перебора |
| -I, --ignore-unsupported | Игнорировать (не выводить сообщения об ошибках) неподдерживаемые файловые объекты (каталоги и файлы не формата elf) |
| --nosymlinks | Рассматривать символьные ссылки как неподдерживаемые файлы |
| -o, --output=<имя_файла> | Сохранить обработанный файл в указанном файле |
| -T, --detached-path=<путь> | Каталог для сохранения отсоединенных подписей (по умолчанию — каталог /etc/digsig/external_sig) |
| -d, --debug | Выводить отладочную информацию |
| -G, --hide-good-sigs | Не выводить сообщения о правильных подписях |
| -q, --quiet | Не выводить сообщения, результат работы определяется по коду завершения |
| -S, --summary | Печатать отчет о выполнении после обработки последнего файла |
| -v, --verbose | Выводить подробную информацию о ходе выполнения |
| -1, --xml | Формировать вывод в формате xml |
| -9, --gost94 | Использовать для подписания устаревший алгоритм ГОСТ Р34.11-94 |
| -N, --nopass | Не запрашивать пароль ключа |
| -?, --help | Вывести список опций |
| --usage | Вывести краткий список опций |
| --version | Вывести версию программы и справку о правах |
Примеры:
- Вывести информацию обо всех подписях в файле:bsign -w /usr/bin/cat
version: 1
id: bsign v1.0
hash: {GOST R34.11-2012} 99d9ceffdef23b6f515a857ee30a39bb0d796fff9c11e4c0dee1cc2a8a6d9f78
signature_size: 119
signature:
88 75 04 00 23 0c 00 1d 16 21 04 80 66 e9 bd 22
01 d9 78 3e 2d 84 2b d2 b6 68 9a 37 db 80 24 05
02 67 3c 5a 96 00 0a 09 10 d2 b6 68 9a 37 db 80
24 51 55 00 fe 39 ca 7d 9c 17 8c e4 3b 65 7a da
74 6b bd 15 a1 4e 05 f2 db 0f 0b 1b 91 c0 96 39
bd fd bb af 70 00 fe 24 17 02 29 97 46 00 36 02
09 a3 0e 97 42 c2 c3 86 2d 40 dd 48 ce 29 00 8f
8c c9 70 50 25 41 8b
signer: D2B6689A37DB8024
timestamp: 19 Nov 2024 12:29:58 (1732008598)
bsign: good hash found in '/usr/bin/cat'
bsign: no xattr hash found for '/usr/bin/cat'
bsign: no detached hash found for '/usr/bin/cat' - Проверить только встраиваемую подпись ELF (ключи для проверки должны быть загружены в таблицу ключей пользователя, от имени которого выполняется загрузка):bsign -V -E /usr/bin/cat
bsign: good signature found in '/usr/bin/cat'