Автоматическое подписание обезличенным сертификатом
В этой статье мы рассмотрим, что такое обезличенная электронная подпись, как она регулируется законодательством и каким образом можно автоматизировать процессы подписания с помощью таких инструментов, как КриптоАРМ Сервер (КриптоАРМ SDK).
Процесс автоматической проверки подписи описан в нашей статье «Автоматизация проверки электронной подписи с использованием КриптоАРМ Сервер».
Что такое обезличенная электронная подпись и где получить сертификат
Обезличенная электронная подпись представляет собой подпись, использующую сертификат без указания персональных данных владельца, и предназначена для юридических лиц и индивидуальных предпринимателей (в сертификате для ИП все же указываются данные владельца). Она выполняет функцию, схожую с печатью организации, что позволяет автоматизировать процессы подписания в информационных системах. Сертификат, используемый для такой подписи, не закрепляется за конкретным сотрудником.
Федеральная налоговая служба России выпускает обезличенные сертификаты, которые применяются для автоматического создания и проверки электронной подписи в электронных документах.
Центробанк предоставляет квалифицированные обезличенные сертификаты для участников, ведущих деятельность в соответствии с ч. 1 статьи 76.1 Закона о Центральном банке.
Федеральное казначейство обеспечивает выпуск обезличенных сертификатов для нужд органов власти.
Применение обезличенной электронной подписи согласно Федеральному закону № 63-ФЗ «Об электронной подписи»
Область применения обезличенной подписи ограничена: её нельзя использовать в документах, которые направляются вне информационных систем или для участия в государственных закупках. Применение обезличенной электронной подписи разрешено в автоматизированных информационных системах — как государственных (например СМЭВ), так и частных, если это предусмотрено федеральным законодательством.
В соответствии с Законом № 63-ФЗ «Об электронной подписи» такие подписи предназначены для автоматической подписи и проверки электронных документов в системах, где не требуется участие человека. В этом случае назначается ответственное лицо за процесс создания и проверки подписи, а при его отсутствии ответственность возлагается на руководителя организации.
Преимущества автоматического подписания с использованием обезличенного сертификата
Обезличенная электронная подпись позволяет компаниям значительно улучшить процессы обработки документов:
- Ускорение процессов. Подпись создается автоматически, что исключает задержки, связанные с ручным подписанием.
- Исключение человеческого фактора. Автоматизация снижает риск ошибок, которые могут возникнуть при ручной работе.
- Соответствие законодательству. Использование в автоматических системах соответствует всем законодательным требованиям.
- Легкость интеграции. Обезличенная подпись интегрируется в информационные системы, а КриптоАРМ SDK содержит все необходимые методы для реализации.
Автоматическое подписание с использованием КриптоАРМ Сервер
Для интеграции обезличенной электронной подписи можно использовать КриптоАРМ Сервер и модуль trusted-crypto. С помощью этого модуля можно реализовать автоматическое создание и проверку подписей в информационных системах.
Рассмотрим несколько этапов работы с электронными подписями.
Пример кода для автоматического подписания
1. Чтение обезличенного сертификата
Загрузка файла сертификата осуществляется с помощью метода load
или асинхронного loadAsync
.
const certFile = "mycertificate.cer";
const cert = trusted.pki.Certificate.load(DEFAULT_RESOURCES_PATH + "/" + certFile, trusted.DataFormat.DER);
2. Подпись данных или файла
Подпись выполняется методом sign
. После подписания данные можно экспортировать в буфер или записать в файл.
```javascript 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`.
```javascript
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.