Доступно

Работа с бинарными файлами, форматом ASN1 и криптографией в 1С8 [infostart.ru]

Тема в разделе "Бухгалтерия и финансы", создана пользователем Топикстартер, 1 май 2021.

Цена: 1000р.-84%
Взнос: 152р.
100%

Основной список: 23 участников

Резервный список: 3 участников

Статус обсуждения:
Комментирование ограничено.
  1. 1 май 2021
    #1
    Топикстартер
    Топикстартер ЧКЧлен клуба

    Складчина: Работа с бинарными файлами, форматом ASN1 и криптографией в 1С8 [infostart.ru]

    Предлагается внешняя обработка для просмотра данных в формате ASN1. Есть 2 режима: загрузка из бинарного формата и из BASE64. Реализована функция извлечения всех сертификатов, которые можно найти в ASN1-файле. В дополнении к этому продукту предлагается методическая помощь по вопросам, связанным с технической реализацией криптографии и шифрования в 1С.

    Работа с форматом ASN1 в 1С8

    Формат ASN.1 (Abstract Syntax Notation - язык для описания абстрактного синтаксиса данных) до сих пор используется, хоть и придуман был в 1984 году. Это байт-ориентированный формат, позволяющий в двоичном виде сохранить структурированные данные. Формат открытый.

    Сертификаты криптографии, ЭЦП, подписанные ЭЦП файлы записываются в формате ASN.1.

    Работать в 1С8 с бинарными файлами на низком уровне проблематично. Например, если загрузить файл в строку, то некоторые байты не буду читаться (символ с кодом 0 – обрезает строку), некоторые символы не выводятся. Но есть возможность любой бинарный файл прочитать в кодировке BASE64, далее из BASE64 можно получить массив байт (число от 0 до 255). С таким массивом уже можно работать дальше. Биты каждого байта можно получить математическими операциями. Естественно, это не оптимальный по скорости метод, но позволяет избежать запуск внешних компонент.

    Особенности криптографии в 1С8

    В 1С8 включен блок криптографии. Определены следующие объекты: Сертификат криптографии, Криптографический провайдер (Менеджер криптографии). Определены операции получения ЭЦП (подписывание данных), проверки ЭЦП, шифрования, расшифрования и т.д.

    Есть 2 варианта операции подписи данных:

    1. ЭЦП добавляется в исходный файл (чтобы потом работать с таким файлом, нужно извлечь из него ЭЦП),
    2. ЭЦП создается в отдельном файле.
    В 1С8 операция подписывания данных (метод Подписать у менеджера криптографии) создает отдельный файл или возвращает двоичные данные с ЭЦП (2 вариант). Многие крипто-программы работают только по 1 варианту (если не большинство).

    Включение ЭЦП в исходный файл - нетривиальная задача для 1С, простая конкатенация не подойдет. Упрощенно: подписанный файл создается в формате ASN.1 на основании файла ЭЦП с 3 вложенными структурами, в последней из которых добавляется байтовый массив исходных данных.

    На практике получилось создать функцию на 1С8.2, которая получает ЭЦП через Менеджер криптографии 1С и полученную ЭЦП включает в исходные данные. Никакие внешние компоненты не использовались, только функции 1С. Результат был проверен несколькими программами, например КриптоАРМ (использовался КриптоПро CSP).

    Код:
    https://infostart.ru/public/545354/
     
  2. Последние события

    1. skladchik.com
      Складчина доступна.
      2 июн 2021
    2. Dominic13
      Dominic13 участвует.
      31 май 2021
    3. turn7
      turn7 участвует.
      31 май 2021
    4. beggar
      beggar участвует.
      30 май 2021

    Последние важные события

    1. skladchik.com
      Складчина доступна.
      2 июн 2021
    2. skladchik.com
      Взнос составляет 76р.
      27 май 2021
    3. skladchik.com
      Складчина активна.
      27 май 2021
    4. skladchik.com
      Сбор взносов начинается 27.05.2021.
      23 май 2021
Статус обсуждения:
Комментирование ограничено.