В этой статье мы рассмотрим, что такое обезличенная электронная подпись, как она регулируется законодательством и каким образом можно автоматизировать процессы подписания с помощью таких инструментов, как КриптоАРМ Server (КриптоАРМ SDK). Процесс автоматической проверки подписи описан в нашей статье «Автоматизация проверки электронной подписи с использованием КриптоАРМ Server.
Обезличенная электронная подпись представляет собой подпись, использующую сертификат без указания персональных данных владельца, и предназначена для юридических лиц и индивидуальных предпринимателей (в сертификате для ИП все же указываются данные владельца). Она выполняет функцию, схожую с печатью организации, что позволяет автоматизировать процессы подписания в информационных системах. Сертификат, используемый для такой подписи, не закрепляется за конкретным сотрудником.
Федеральная налоговая служба России выпускает обезличенные сертификаты, которые применяются для автоматического создания и проверки электронной подписи в электронных документах.
Центробанк предоставляет квалифицированные обезличенные сертификаты для участников, ведущих деятельность в соответствии с ч. 1 статьи 76.1 Закона о Центральном банке.
Федеральное казначейство обеспечивает выпуск обезличенных сертификатов для нужд органов власти.
Область применения обезличенной подписи ограничена: её нельзя использовать в документах, которые направляются вне информационных систем или для участия в государственных закупках. Применение обезличенной электронной подписи разрешено в автоматизированных информационных системах — как государственных (например СМЭВ), так и частных, если это предусмотрено федеральным законодательством.
В соответствии с Законом № 63-ФЗ «Об электронной подписи» такие подписи предназначены для автоматической подписи и проверки электронных документов в системах, где не требуется участие человека. В этом случае назначается ответственное лицо за процесс создания и проверки подписи, а при его отсутствии ответственность возлагается на руководителя организации.
Обезличенная электронная подпись позволяет компаниям значительно улучшить процессы обработки документов:
Для интеграции обезличенной электронной подписи можно использовать КриптоАРМ Server и модуль trusted-crypto. С помощью этого модуля можно реализовать автоматическое создание и проверку подписей в информационных системах. Рассмотрим несколько этапов работы с электронными подписями.
Загрузка файла сертификата осуществляется с помощью метода 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.
Подпись выполняется методом 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);
})
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);
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.