Автоматическое подписание обезличенным сертификатом

Александр Гаврилов · 31 окт 2024 · 296 · Поделиться

В этой статье мы рассмотрим, что такое обезличенная электронная подпись, как она регулируется законодательством и каким образом можно автоматизировать процессы подписания с помощью таких инструментов, как КриптоАРМ Server (КриптоАРМ SDK). Процесс автоматической проверки подписи описан в нашей статье «Автоматизация проверки электронной подписи с использованием КриптоАРМ Server.

Что такое обезличенная электронная подпись и где получить сертификат

Обезличенная электронная подпись представляет собой подпись, использующую сертификат без указания персональных данных владельца, и предназначена для юридических лиц и индивидуальных предпринимателей (в сертификате для ИП все же указываются данные владельца). Она выполняет функцию, схожую с печатью организации, что позволяет автоматизировать процессы подписания в информационных системах. Сертификат, используемый для такой подписи, не закрепляется за конкретным сотрудником.

Федеральная налоговая служба России выпускает обезличенные сертификаты, которые применяются для автоматического создания и проверки электронной подписи в электронных документах.

Центробанк предоставляет квалифицированные обезличенные сертификаты для участников, ведущих деятельность в соответствии с ч. 1 статьи 76.1 Закона о Центральном банке.

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

Применение обезличенной электронной подписи согласно Федеральному закону № 63-ФЗ «Об электронной подписи»

Область применения обезличенной подписи ограничена: её нельзя использовать в документах, которые направляются вне информационных систем или для участия в государственных закупках. Применение обезличенной электронной подписи разрешено в автоматизированных информационных системах — как государственных (например СМЭВ), так и частных, если это предусмотрено федеральным законодательством.

В соответствии с Законом № 63-ФЗ «Об электронной подписи» такие подписи предназначены для автоматической подписи и проверки электронных документов в системах, где не требуется участие человека. В этом случае назначается ответственное лицо за процесс создания и проверки подписи, а при его отсутствии ответственность возлагается на руководителя организации.

Преимущества автоматического подписания с использованием обезличенного сертификата

Обезличенная электронная подпись позволяет компаниям значительно улучшить процессы обработки документов:

  • Ускорение процессов. Подпись создается автоматически, что исключает задержки, связанные с ручным подписанием.
  • Исключение человеческого фактора. Автоматизация снижает риск ошибок, которые могут возникнуть при ручной работе.
  • Соответствие законодательству. Использование в автоматических системах соответствует всем законодательным требованиям.
  • Легкость интеграции. Обезличенная подпись интегрируется в информационные системы, а КриптоАРМ SDK содержит все необходимые методы для реализации.

Автоматическое подписание с использованием КриптоАРМ Server

Для интеграции обезличенной электронной подписи можно использовать КриптоАРМ Server и модуль trusted-crypto. С помощью этого модуля можно реализовать автоматическое создание и проверку подписей в информационных системах. Рассмотрим несколько этапов работы с электронными подписями.

Пример кода для автоматического подписания

  1. Чтение обезличенного сертификата

    Загрузка файла сертификата осуществляется с помощью метода load или асинхронного loadAsync.

    
    const certFile = "mycertificate.cer";
    const cert = trusted.pki.Certificate.load(DEFAULT_RESOURCES_PATH + "/" + certFile, trusted.DataFormat.DER);
                                        

    Этот метод загружает сертификат, который может быть закодирован в формате DER или BASE64. Сертификат должен быть установлен в хранилище сертификатов с привязкой к закрытому ключу, в момент подписи trusted-crypto получит контекст ключа. Альтернативный вариант работы с сертификатами — работа с классом хранилища trusted.pkistore.PkiStore.

  2. Подпись данных или файла

    Подпись выполняется методом sign. После подписания данные можно экспортировать в буфер или записать в файл.

    
    var signer;
    var policies;
    
    sd = new trusted.cms.SignedData();
    
    sd.policies = ["detached"];
    
    sd.content = {
        type: trusted.cms.SignedDataContentType.buffer,
        data: "Hello world"
    };
    
    sd.sign(cert);
    sd.export();
                                        

    Для асинхронной подписи можно использовать метод signAsync.

    
    function (done) {
        cms = new trusted.cms.SignedData();
    
        cms.policies = isDetached ? ["detached"] : [];
    
        cms.content = {
            type: trusted.cms.SignedDataContentType.url,
            data: DEFAULT_RESOURCES_PATH + "/" + plainFile
        };
        cms.signAsync(cert, done);
    })
        
  3. Добавление подписи (соподпись)
    
    const csd = new trusted.cms.SignedData();
    csd.import(signBuffer);
    const cert = trusted.pki.Certificate.load(DEFAULT_RESOURCES_PATH + "/cert-with-pin.cer", trusted.DataFormat.DER);
    csd.sign(cert);
                                        
  4. Усовершенствованная подпись
    
    var sdCades;
    var connSettings = new trusted.utils.ConnectionSettings();
    connSettings.Address = TSP_SERVICE_ADDRESS;
    
    sdCades = new trusted.cms.SignedData();
    
    sdCades.content = {
        type: trusted.cms.SignedDataContentType.buffer,
        data: "CAdES-" + cadesType + " test 1",
    };
    
    var cadesParams = new trusted.cms.CadesParams();
    cadesParams.cadesType = cadesTypeByName(
        cadesType,
        "Unknown type " + cadesType
    );
    cadesParams.connSettings = connSettings;
    cadesParams.tspHashAlg = "1.2.643.7.1.1.2.2";
    sdCades.signParams = cadesParams;
    
    assert.doesNotThrow(function () {
        sdCades.sign(cert);
    });
    
    assert.notStrictEqual(
        sdCades.export(),
        undefined,
        "Unable to export CAdES"
    );
    sdCades.save(
        DEFAULT_OUT_PATH + "/" + signCades1,
        trusted.DataFormat.PEM
    );
                                        

Для более подробного ознакомления с функционалом модуля trusted-crypto можно обратиться к нашей документации.

Заключение

Использование обезличенной электронной подписи позволяет ускорить обработку данных, снизить затраты на администрирование и обеспечить соответствие требованиям законодательства. Использование КриптоАРМ Сервер предоставляет организациям инструменты для автоматизации подписания и проверки данных.

По вопросам реализации сервиса автоматического подписания обращайтесь на наш email sales@cryptoarm.ru.

Вернуться к списку новостей

Подпишитесь и получайте новые статьи по почте

Заполните поле Подписаться

Подписываясь, вы соглашаетесь на получение информационных сообщений от компании
ООО «Цифровые технологии» на условиях Политики конфиденциальности

Спасибо, что подписались
на нашу рассылку!

Узнавайте новости первыми —
подпишитесь на нашу новостную рассылку

Заполните поле
Подписаться

Подписываясь, вы соглашаетесь на получение информационных сообщений от компании
ООО «Цифровые технологии» на условиях Политики конфиденциальности

Спасибо, что подписались
на нашу рассылку!