Дерево страниц

Сравнение версий

Ключ

  • Эта строка добавлена.
  • Эта строка удалена.
  • Изменено форматирование.

Информация
titleДанная статья применима к:
  • Astra Linux Special Edition РУСБ.10015-01 (очередное обновление 1.7)
  • Astra Linux Special Edition РУСБ.10015-01 (очередное обновление 1.6)

  • Astra Linux Special Edition РУСБ.10015-16 исп. 1 и исп. 2

  • Astra Linux Special Edition РУСБ.10015-01 (очередное обновление 1.5)
  • Astra Linux Special Edition РУСБ.10265-01 (очередное обновление 8.1)

  • Astra Linux Common Edition 2.12


Подготовительные действия

Предупреждение

Все действия осуществляются от непривилегированного пользователя, если не указано иное.


Информация
В данной

Далее в статье:

  • Название организации принято за ORG;
  • Подписываемый файл test_elf находится в том же
каталоги
  • каталоге, что и ключи, используемые для подписывания
. Информация
titleДанная статья применима к:
  • ОС СН Смоленск 1.5
  • ОС СН Смоленск 1
    • .
    6
  • ОС СН Ленинград 8.1
  • Перед подписыванием

    • Ознакомиться с пунктом разделом 16. ОГРАНИЧЕНИЕ ПРОГРАММНОЙ СРЕДЫ документации "Руководство по КСЗ. Часть 1 РУСБ.10015-01 97 01-1";
    • Изучить программную документацию man bsign и man gpg;
    • Изучить дополнительные информационные материалы

    • Убедиться в наличии и доступности комплекта ключей, полученных по запросу от Astra Linux;
      • При отсутствии комплекта ключей - запросить его генерацию. См. статью Как получить ключи для подписи СПО;
      • Если комплект ключей получен в виде ISO-образа - примонтировать этот образ или распаковать файлы

        Предупреждение
        При извлечении и хранении комплекта ключей соблюдать меры безопасности для предотвращения несанкционированного доступа к секретному ключу и паролю.

      Убедиться в необходимости подписывания: если тип файла не ELF - нет необходимости его подписывать. Проверить тип файла можно с помощью команды file. Например, для файла /bin/bash:

      Command
      Titlefile /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-файлы необходимо предварительно распаковать для анализа содержащихся в них файлов.
    Дополнительные информационные материалы можно найти на нашем вики-портале:

    Импорт секретного ключа


    • Импортировать секретный ключ, для чего:
      • Перейти в каталог с ключами и импортировать

    секретный ключ
      • ключи из полученного комплекта ключей. При импорте цепочки следует импортировать ключи в порядке их подписания, т.е. сначала ключ, которым выполнялась подпись, затем - подписанный ключ:

        Command
        gpg --import
    ORG_secret.gpg

    Будет запрошен пароль для выполнения операции импорта.

    Информация
      •  /etc/digsig/primary_key_2018.gpg
        gpg --import /etc/digsig/partners_rbt_root_key_2018.gpg

        Для выполнения операции импорта будет запрошен пароль. В Astra Linux Special Edition РУСБ.10015-01 (очередное обновление 1.5) запрос

    Для версии дистрибутива ОС СН Смоленск 1.5 запроса
      • пароля не производится.

      • Пароль находится в этом же каталоге в файле ORG_password.txt. Будьте аккуратны при копировании в буфер обмена - символ перевода строки будет распознан соответственно. Во избежание ошибок при вводе пароля, можно

    использовать дополнительные
      • указать файл с паролем с помощью опции при импорте:

        Command
        gpg --import --pinentry-mode=loopback --passphrase-file=ORG_password.txt ORG_secret.gpg

        В примере выше опция --passphrase-file позволяет не

    запрошивать
      • запрашивать пароль, а прочитать его  из файла, указанного в этой опции.

    Далее проверить
    • Проверить список импортированных ключей и запомнить идентификатор ключа ORG_secret_key_id

    (длинная строка из сорока шестнадцатиричных цифр)
    • :

      Command
      gpg --list-secret-keys

      Идентификатор ключа в выводе команды:

      • Представлен строкой из сорока шестнадцатиричных цифр в следующих ОС:
        • Astra Linux Special Edition РУСБ.10015-01 (очередное обновление 1.7);
        • Astra Linux Special Edition РУСБ.10152-02 (очередное обновление 4.7);
        • Astra Linux Special Edition РУСБ.10015-01 (очередное обновление 1.6);

        • Astra Linux Special Edition РУСБ.10015-16 исп. 1 и исп. 2;

        • Astra Linux Special Edition РУСБ.10265-01 (очередное обновление 8.1);

      • Представлен строкой из 8 символов и указывается через обратную косую черту ("слэш") после алгоритма в Astra Linux Special Edition РУСБ.10015-01 (очередное обновление 1.5).

    Информация

    Модуль gpg и модуль digsig_verif - абсолютно не связаны и независимы. Список импортированных ключей в gpg никак не влияет на проверку исполняемых файлов при включении режима замкнутой программной среды (ЗПС).

    Подписание файла

    • Проверить тип файла можно с помощью команды file. Например, для файла /bin/bash:

      Command
      Titlefile /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


    • Подписание тестового ELF-файла

    Выполнение подписывания

    Теперь подпишем тестовый ELF-файл
    • test_elf с помощью команды bsign:

      Command
      bsign -s test_elf

      Если импортирован только один ключ, можно ограничиться вышеуказанной командой без каких-либо опций. При наличии нескольких ключей, можно указать, каким именно ключом следует подписать файл:

      Command
      bsign -s --pgoptions="--default-key=ORG_secret_key_id" test_elf


      Предупреждение

      При

    подписывании файлов
    • работе из командной строки без использования графической оболочки (например

    по ssh
    • , при подключении через ssh или при работе в консоли), требуется использовать дополнительные опции, т.к. в этом случае не

    будет
    • может быть выдан графический запрос на ввод пароля, и

    подписывание
    • операция завершится ошибкой (сообщением о неверно введенном пароле). В таком случае можно

    использовать
    • :

      1. Сохранить пароль в файле (в примере ниже - в файле ORG_password.txt.
      2. Использовать команду bsign со следующими опциями:

        Command
        bsign -N -s --pgoptions="--batch --pinentry-mode=loopback --passphrase-file=ORG_password.txt --default-key=ORG_secret_key_id" test_elf
    Данная особенность не актуальна для версии ОС СН Смоленск 1.5, т.к. в этой версии не используется графический запрос на ввод пароля. Соответственно и нет нужды использовать дополнительные опции bsign
      1. где опция -N запрещает запрос пароля командой bsign, а значение опции --pgoptions предписывает использовать пароль, сохраненный в файле, без интерактивного запроса.


    После того, как файл подписан, можно проверить подпись:

    Command

    bsign -w test_elf

    Для удобства подписывания подписания deb-пакетов, можно воспользоваться данной инструкцией.Теперь можно использовать подписанный ELF файл

    Запуск подписанного файла на клиентских машинах.

    Для разрешения запуска файла без ошибок в режиме замкнутой программной среды (ЗПС) , потребуется поместить публичный ключ ORG_pub.key в директорию каталог /etc/digsig/keys и выполнить команду:

    Command

    sudo update-initramfs -uk all

    После перезагрузки машины, возможен запуск подписанных ELF файловчего перезагрузить машину.

    Информация

    Если ПО было подписано ранее , ключами, сгенерированными для версий ОС СН Смоленск Astra Linux Special Edition РУСБ.10015-01 (очередное обновление 1.5) и нижеболее ранних очередных обновлений, то обеспечить работу такого ПО в режиме ЗПС можно установив пакет astra-digsig-oldkeys. В таком случае открытые ключи необходимо размещать в директории каталоге /etc/digsig/keys/legacy/keys/