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

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

Ключ

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

Оглавление



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

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


Информация

В данной статье:

  • Название организации принято за 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
      Будет
        • При этом будет запрошен пароль для выполнения операции импорта.
      ИнформацияДля версии дистрибутива ОС СН Смоленск
        • В Astra Linux Special Edition РУСБ.10015-01 (очередное обновление 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
        Идентификатор ключа в выводе команды:
        • В ОС СН Смоленск 1.6 и Ленинград 8.1 длинная строка из сорока шестнадцатиричных цифр;
        • В ОС СН Смоленск1.5 идентификатор ключа имеет длину 8 символов и указывается через "слэш" после алгоритма.
      Информация

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

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

      Теперь подпишем тестовый ELF-файл

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

      • Архивы и deb-файлы необходимо предварительно распаковать для анализа содержащихся в них файлов;
      • Убедиться в необходимости подписания: если тип файла не 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


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

      commandcommand

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


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


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

      При

      подписывании файлов

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

      подписывание

      операция завершится ошибкой. В таком случае можно использовать команду 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

      .

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

      Command

      bsign -w test_elf

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

      Теперь можно использовать подписанный ELF файл

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

      Для разрешения запуска файла

      без ошибок

      в режиме замкнутой программной среды (ЗПС)

      , потребуется

      поместить публичный ключ ORG_pub.key в директорию /etc/digsig/keys и выполнить команду:

      Command

      sudo update-initramfs -uk all

      После

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

      чего перезагрузить машину.

      Информация

      Если ПО было подписано ранее

      ,

      ключами, сгенерированными для версий ОС СН Смоленск 1.5 и ниже, то обеспечить работу такого ПО в режиме ЗПС можно установив пакет astra-digsig-oldkeys. В таком случае открытые ключи необходимо размещать в директории /etc/digsig/keys/legacy/keys/

      Информация

      Дополнительные информационные материалы:

    • Режим замкнутой программной среды
    • Смоленск 1.6: Режим замкнутой программной среды