Работа с форматом ASN1 в 1С8
Формат ASN.1 (Abstract Syntax Notation - язык для описания абстрактного синтаксиса данных) до сих пор используется, хоть и придуман был в 1984 году. Это байт-ориентированный формат, позволяющий в двоичном виде сохранить структурированные данные. Формат открытый.
Сертификаты криптографии, ЭЦП, подписанные ЭЦП файлы записываются в формате ASN.1.
Работать в 1С8 с бинарными файлами на низком уровне проблематично. Например, если загрузить файл в строку, то некоторые байты не буду читаться (символ с кодом 0 – обрезает строку), некоторые символы не выводятся. Но есть возможность любой бинарный файл прочитать в кодировке BASE64, далее из BASE64 можно получить массив байт (число от 0 до 255). С таким массивом уже можно работать дальше. Биты каждого байта можно получить математическими операциями. Естественно, это не оптимальный по скорости метод, но позволяет избежать запуск внешних компонент.
Особенности криптографии в 1С8
В 1С8 включен блок криптографии. Определены следующие объекты: Сертификат криптографии, Криптографический провайдер (Менеджер криптографии). Определены операции получения ЭЦП (подписывание данных), проверки ЭЦП, шифрования, расшифрования и т.д.
Есть 2 варианта операции подписи данных:
- ЭЦП добавляется в исходный файл (чтобы потом работать с таким файлом, нужно извлечь из него ЭЦП),
- ЭЦП создается в отдельном файле.
В 1С8 операция подписывания данных (метод Подписать у менеджера криптографии) создает отдельный файл или возвращает двоичные данные с ЭЦП (2 вариант). Многие крипто-программы работают только по 1 варианту (если не большинство).
Включение ЭЦП в исходный файл - нетривиальная задача для 1С, простая конкатенация не подойдет. Упрощенно: подписанный файл создается в формате ASN.1 на основании файла ЭЦП с 3 вложенными структурами, в последней из которых добавляется байтовый массив исходных данных.
На практике получилось создать функцию на 1С8.2, которая получает ЭЦП через Менеджер криптографии 1С и полученную ЭЦП включает в исходные данные. Никакие внешние компоненты не использовались, только функции 1С. Результат был проверен несколькими программами, например КриптоАРМ (использовался КриптоПро CSP).
Предложение
Предлагается внешняя обработка для просмотра данных в формате ASN1 (никакой криптографии и шифрования в обработке не используется, просто программа «парсер»). В программе есть функция поиска сертификатов. Все найденные в исходном файле сертификаты и цепочки сертификатов выводятся в окно сообщений 1C (программа умеет преобразовывать строки UniCode, даты действия сертификата в формате GMT, OID'ы в полях Субъект и Издатель). Найденные сертификаты программа сохранит в каталоге исходного файла. В дополнении к этому продукту предлагается методическая помощь по вопросам, связанным с технической реализацией криптографии и шифрования в 1С (отдельный продукт, называется "Тех. поддержка в течение 1 месяца"). Также есть собственные разработки для работы в PKI.
Дополнительная информация
Обработка запускается в толстом клиенте (на обычных формах) под любой конфигурацией.
Код обработки полностью открыт, возможна доработка собственными силами после покупки. Обновления программы не требуется. Работа обработки не зависит от установленных криптопровайдеров.
Техподдержка по работе обработки "Парсер ASN1" в течение 1 месяца с даты покупки включена в стоимость продукта.
Лицензирование программы не требуется, ограничений по количеству рабочих мест, компьютеров нет.