Криптография и электронная подпись в решениях на 1С

13.08.18

Разработка - Защита ПО и шифрование

Андрей Глебов, докладчик конференции Infostart Event 2017 Community, делает обзор нормативной базы РФ по теме электронной подписи. Рассказывает о возможностях криптографии в платформе «1С:Предприятие 8» и ее расширении через технологию создания внешних компонент. Также он описывает функционал подсистемы «Электронная подпись» в конфигурации «1С:Библиотека стандартных подсистем», приводит примеры использования криптографии в сервисах «1С-ЭДО» и «1С:ДиректБанк», дает рекомендации по разработке собственных решений с криптографией и устранению проблем при запуске электронного документооборота на предприятиях.

Сегодня мы поговорим о том:

  • чем интересна тема криптографии и электронной подписи сегодня;
  • какие сейчас действуют нормативные акты по этой теме;
  • какие возможности криптографии реализованы в платформе 1С;
  • как можно расширить эти возможности с помощью внешних компонент;
  • поговорим про подсистему «Электронная подпись» в БСП;
  • про реализацию сервисов «1С-ЭДО» и «1С:ДиректБанк», разработку которых я курировал;
  • затронем вопрос разработки собственных решений по работе с криптографией на платформе «1С:Предприятие»;
  • рассмотрим типовые проблемы, которые возникают на внедрениях ЭДО на предприятии – расскажу, как их решать.

 

 

Хочу обратить внимание на два термина, которые будут использоваться в мастер-классе.

  • Первый – это ЭДО, электронный документооборот. Под ним мы понимаем и внутренний электронный документооборот на предприятии, и внешний со сторонними контрагентами.
  • Второе сокращение – это ЭП. В интернете встречаются расшифровки: «электронное правительство» и «электропривод». У нас это будет электронная подпись.

 

 

Почему вопросы криптографии и электронной подписи актуальны на текущий момент?

  • Для современного предприятия скорость бизнес-процессов – это одно из конкурентных преимуществ. При применении электронного документооборота затраты времени по статистике уменьшаются на 75%.
  • При переходе на электронный документооборот происходит экономия собственных ресурсов (бумаги, картриджей для принтеров, места для хранения документов, времени сотрудников на организацию бумажного документооборота). Все это сильно помогает предприятию.
  • Почти каждое предприятие сейчас использует дистанционные каналы банковского обслуживания, и безопасность проведения удаленных платежей на текущий момент очень актуальна.
  • Все крупные налогоплательщики сейчас включают в договор тезисы о том, что если Вы хотите с ними работать – обменивайтесь документами в электронном виде. Все переходит в электронку – электронные счета-фактуры, электронные заказы и т. д. Хотите участвовать в торгах – у Вас должна быть электронная подпись.
  • Все это постепенно становится массовым, но, несмотря на это, наше население информировано недостаточно. Это представляет собой серьезное упущение, а потому цель данного обзора – задать Вам курс, который поможет сориентироваться в данных вопросах и разобраться, что можно изучить и где можно посмотреть.

 

Нормативная база, практика применения

 

 

Какие понятия мы рассмотрим?

Электронный документ

Электронный документ – это любая информация, представленная в электронном виде:

  • Вы сфотографировали свой автомобиль – это изображение является электронным документом;
  • отправили заявление начальнику по электронной почте – это тоже электронный документ.

Любой документ можно перевести в «цифру», но не каждый электронный документ может быть распознан без участия человека.

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

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

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

  • Например, Арбитражный Суд принимает документы только в формате PDF.
  • А электронные счета-фактуры должны передаваться в формате XML, и есть специальная нормативная база с описанием их обязательных полей. Налогоплательщики, которые хотят обмениваться счетами-фактурами в электронном виде, должны четко соблюдать эти требования.

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

Электронная подпись

Закон № 63-ФЗ вводит понятие электронной подписи. Раньше было понятие «электронная цифровая подпись» (ЭЦП), теперь правильнее использовать термин «электронная подпись». По этому закону есть три вида электронной подписи.

  • Первый вид – это простая электронная подпись. Например, при использовании мобильного банка Вам приходит SMS с одноразовым паролем, и Вы делаете подтверждение – это аналог простой электронной подписи. По такой подписи можно определить только автора.
  • Второй и третий виды – это усиленная электронная подпись. «Усиленная» означает, что используется какое-то криптосредство. Усиленная подпись делится на неквалифицированную и квалифицированную.

Усиленную квалифицированную электронную подпись иногда называют просто квалифицированной электронной подписью (КЭП). Это электронная подпись на базе сертификата, который выдается аккредитованным удостоверяющим центром. Минкомсвязь ведет список удостоверяющих центров, которые выдают сертификаты электронной подписи.

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

Квалифицированная электронная подпись применяется наиболее широко. Ее основное назначение в том, что она подтверждает авторство, гарантирует неотказуемость и обеспечивает целостность подписанных данных. Это означает, что если Вы подписали электронный счет-фактуру квалифицированной электронной подписью, то:

  • Вы не можете сказать, что это не Ваша подпись;
  • Вы не можете от нее отказаться (отозвать);
  • можно проверить, вносились ли изменения в этот документ после того, как Вы его подписали.

Если говорить про применение электронных подписей, то стоит поделить их на локальные и облачные.

  • Локальная электронная подпись – ситуация, когда Вы подписываете какие-то документы на своем компьютере. В этом случае требуется криптосредство, установка сертификата – много сложностей.
  • Облачная электронная подпись –  ситуация, когда Вы доверяете хранилище закрытых ключей некоему держателю в «облаке», и, чтобы подписать документ, его нужно до этого облака донести. Скорее всего, Вам на телефон придет одноразовый пароль, который надо подтвердить. А после подтверждения электронная подпись сформируется на сервере в «облаке», и Вы получите подписанный документ.

ФСБ выпустила разъяснительное письмо, в котором объяснила, что облачная электронная подпись не является квалифицированной. Поэтому, если в законе написано, что документ должен подписываться именно квалифицированной электронной подписью, а у Вас документ подписывается в «облаке», то имейте в виду, что с этим могут быть проблемы – к этому нужно подходить очень внимательно.

Что можно еще рассказать интересного про законодательство, которое будет нас касаться?

  • В 2016 году появился единый удостоверяющий центр Минкомсвязи России, который позволяет построить цепочку доверия до любого сертификата. Этот головной удостоверяющий центр Минкомсвязи, выдает сертификаты аккредитованным удостоверяющим центрам, а они уже выдают физическим и юридическим лицам. Поэтому для любой электронной подписи всегда можно построить цепочку доверия. Это очень удобно, потому что раньше было сложно проверить на практике, что подпись от другого удостоверяющего центра валидна.
  • Совсем из нового – в начале 2017 года Минкомсвязь выступило с законодательной инициативой, чтобы выпуск всех квалифицированных электронных подписей отдать в государственную монополию. На это Центробанк и Минэкономразвития буквально в Июле ответили, что так делать нельзя, потому что это заберет рабочие места и погубит то, что наработано годами. Скорее всего, эта законодательная инициатива дальше не пойдет, но такая мысль была.

 

Особенности применения ЭДО с ЭП в компаниях

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

Если компания запускает электронный документооборот, то:

  • первая задача – это прописать применение электронного документооборота в учетной политике;
  • далее нужно издать приказ на предприятии, где указать, какие лица могут подписывать документы;
  • если Вы обмениваетесь с контрагентом, у Вас должно быть соглашение, в котором прописано, как Вы будете аннулировать и корректировать документы. Например, если Вам не нравится какой-то бумажный документ, то Вы с вашим контрагентом можете договориться и просто порвать его, и все будет хорошо. А в электронном виде все несколько сложнее, потому что количество экземпляров документа, который Вы сгенерировали и подписали, может быть неограниченное. И даже если Вы и Ваш контрагент договорились этот документ аннулировать, то его электронный эквивалент недостаточно просто удалить из вашей базы. Чтобы скорректировать электронный документ или отказаться от него, нужно сформировать на его основании новый электронный документ, а уже в нем указать, каким образом выглядит Ваша сделка теперь. И только после того, как Вы этот новый электронный документ с двух сторон подпишете, информация о сделке зафиксируется в нужном Вам виде.

Все это нужно прописать и использовать.

 

Готовность нормативной базы

Я бы оценил готовность нашей нормативной базы – уже есть какое-то «здание», но его нужно еще достраивать.

  • Например, нет понимания, как мы через пять лет будем проверять электронную подпись в архиве электронных документов. Потому что сертификат живет один год, и когда его срок действия заканчивается, подпись будет невалидна – непонятно, как проверять.
  • Непонятно, что такое «дата подписи». Для некоторых бухгалтерских документов важно знать, в какой именно момент документ был подписан. Сейчас при подписи документа можно «мухлевать» – перевели дату компьютера, подписали, и это будет выглядеть, как будто документ подписан «задним числом». Поэтому, чтобы однозначно сказать, что документ подписывался тогда-то, должен быть один из вариантов:
    • либо должен существовать единый центр раздачи метки времени, чтобы в момент подписания документов мы обращались в какую-то федеральную сервисную службу, которая выдавала бы нам метку времени для подписи;
    • либо, когда Вы обмениваетесь электронными счетами-фактурами, существует еще третье звено – это оператор электронного документооборота. Он пропускает документы через себя и не дает «смухлевать», потому что генерирует свои квитанции (подтверждения), в которых прописываются дата и время.

В общем, есть куда двигаться.

 

Механизм криптографии в платформе «1С:Предприятие 8»

 

Механизм криптографии в платформе появился с версии 8.2 – это достаточно молодой механизм. Сама платформа не содержит криптоалгоритмы, она содержит только вызовы и объекты, с помощью которых можно обращаться к криптосредствам, находящимся на компьютере:

  • для Windows – это интерфейс CryptoAPI;
  • для Linux таких интерфейсов нет, идет непосредственное обращение к модулям криптографии.

Отсюда становится понятно, что криптографию можно применять, только если на компьютере установлено криптосредство. И, с другой стороны, что саму платформу «1С:Предприятие» не требуется сертифицировать с точки зрения криптографии.

 

 

Основные криптографические операции в платформе «1С:Предприятие 8»:

  • Вы знаете, что платформа может работать в разных режимах: толстый, тонкий, веб-клиент, внешнее соединение и мобильное приложение. Во всех этих режимах запуска криптография поддерживается – для мобильного приложения поддержка криптографических механизмов появилась с версии 8.3.10. Я бы рекомендовал читать «Синтаксис-помощник» и смотреть, какие методы доступны в том или ином режиме запуска, потому что там есть ограничения.
  • Платформа позволяет работать с сертификатами открытого ключа (X.509), которые установлены на компьютер. Мы не можем выпустить новый сертификат или запросить его выпуск, мы работаем только с тем, что имеем – с помощью механизмов платформы мы можем найти сертификат на компьютере, прочитать его атрибуты, выгрузить его в файл и проверить, насколько он валидный.
  • Я на своей практике часто сталкивался с непониманием того, как в платформе работает шифрование и расшифровка. Это особенно важно, когда Вы делаете интеграцию с каким-то внешним подрядчиком, который работает не на 1С. Когда Вы зашифровали документ, отправили его на ту сторону, а там пробуют расшифровать. Например, часто возникают вопросы, если при настройке криптопровайдера в 1С был указан алгоритм ГОСТ 28147-89, который является симметричным, а при расшифровке требуется обращение к закрытому ключу. Напомню, что симметричный алгоритм шифрования подразумевает, что для шифрования и расшифровки Вы используете один и тот же ключ. А ассиметричное шифрование – это когда данные шифруются с помощью открытого ключа, а для расшифровки используется другой, закрытый (секретный) ключ. Подрядчики спрашивают: «Но Вы же сказали, что алгоритм шифрования симметричный, почему тогда при расшифровке нужна закрытая часть ключа?» Давайте разберемся, как работает механизм шифрования в платформе:
    • случайным образом создается некий ключ фиксированной длины, с помощью которого набор данных шифруется по симметричному алгоритму;
    • затем сам ключ шифруется асимметричным алгоритмом с помощью публичного ключа сертификата-получателя;
    • шифрование с помощью симметричного алгоритма работает быстрее – мы им большой объем данных зашифровали, а потом маленький ключ фиксированной длины быстро шифруем с помощью асимметричного алгоритма;
    • зашифрованные данные, список сертификатов-получателей и сам зашифрованный ключ упаковываются в один пакет данных по спецификации PKCS#7;
    • этот пакет отправляется на сторону получателя;
    • а расшифровка работает в обратном порядке.
  • Подписание и проверка электронной подписи. При подписании средствами платформы идет обращение к закрытой части ключа и производится встроенная в платформу проверка целостности (математической валидности) подписи. С точки зрения юридической значимости этого недостаточно. Если Вы хотите проверить электронную подпись под документом, Вы должны проверить:
    • действие сертификата;
    • математическую валидность данных, которые Вы прислали.

Именно так сделано в механизме БСП – об этом речь пойдет чуть позже. Платформа этого не делает.

 

Защищенное соединение TLS для организации шифрованного канала обмена данными. Поддерживаются две версии TLS – 1.0/1.2. Версия TLS задается источником, с которым Вы устанавливаете соединение – если в источнике используется протокол 1.2, то и платформа поднимет шифрованное соединение по 1.2. Если используется БСП, то при обращении к ресурсу, в адресе которого прописан «https», шифрование включается автоматически. Если в адресе прописан «http», то трафик не шифруется. Еще из интересного могу сказать, что раньше шифрованное соединение устанавливалась только на RSA-алгоритмах, а сейчас и на ГОСТ-алгоритмах тоже. Браузеры пока что ГОСТ-алгоритмы не поддерживают, а платформа уже умеет. Но не все так хорошо, к сожалению.

Я уже упоминал, что платформа умеет работать только с теми криптосредствами, которые установлены на самом компьютере. Соответственно, есть ограничение – если Вы хотите использовать криптографию, у Вас должно быть какое-то криптосредство. При этом криптосредство нельзя использовать в портативном режиме, оно должно быть обязательно установлено на ОС. Казалось бы, воткнули токен с криптосредством в компьютер, платформа с ним поработала – так не получится.

Электронная подпись генерируется только в формате PKCS#7 (отдельный, внешний файл), по-другому платформа не умеет.

Некоторые ведомства требуют формат подписи XMLDSig – в упрощенном варианте ситуация, когда в XML-файле Вы можете взять некий набор тегов, подписать их и положить подпись в следующий тег, чтобы в одном документе было несколько подписей. Платформа так делать не умеет.

Еще я бы отметил, что с помощью платформы сложно диагностировать возникающие проблемы. Например, на компьютере есть криптосредство, есть сертификат, где-то есть закрытая часть ключа, и если платформа начинает все это вызывать и в какой-то момент что-то не стыкуется, просто выдается ошибка – что произошел сбой, и операция не состоялась. Что там случилось, где проблема – непонятно. Поэтому есть куда двигаться в эту сторону и платформе, и криптосредствам.

 

Криптография во внешних компонентах

 

 

Чтобы снять ограничения платформы, можно попробовать сделать внешнюю компоненту.

  • Для этой цели у фирмы «1С» есть целая методология, она выложена на диске ИТС по адресу https://its.1c.ru/db/metod8dev#content:3221:hdoc. К ней прилагаются примеры, можно использовать.
  • При разработке внешней компоненты Вам придется сделать сборки для всех операционных систем, на которых работают Ваши клиенты. Хорошо, если Вы знаете заранее, что у Вас 100 клиентов, и у всех 32-битный Windows. Если это не так, Вы должны делать сборки:
    • для Linux;
    • для Windows (32-х разрядов и 64-х разрядов);
    • если Ваши клиенты работают через браузер, Вам нужно сделать сборки расширений для каждого браузера в отдельности.

И только после этого Вы можете считать, что у Вас есть готовая функциональность. А если обнаружилась ошибка, Вам нужно не просто исправить внешнюю компоненту, но и пересобрать ее для Windows, Linux и т.д. Это не просто.

  • При эксплуатации бывает еще хуже. Вы работаете с внешней компонентой, как с объектом, свойства которого знаете только Вы. Если при реализации Вы где-то допустили ошибку, программный код по взаимодействию с этим объектом не сможет работать.
  • Есть еще одна проблема – непонятно, как Вы будете доставлять эту внешнюю компоненту до клиента. Платформа у клиента уже стоит, с криптосредствами тоже все понятно, а теперь Вы написали внешнюю компоненту, которая связывает криптосредства и платформу. Но где стоит эта внешняя компонента, как Вы поставили ее клиенту – непонятно.
  • Вы должны поддерживать и актуализировать программный код. Если Вы используете свою внешнюю компоненту в типовом решении, значит, при его обновлении все это нужно учесть. И если выпускается новая версия платформы, Вы должны все перетестировать.
  • Есть готовые примеры внешних компонент. Самый яркий пример на моей практике – это внешняя компонента для «Сбербанка». Точнее, «Сбербанк» выпускает внешнюю компоненту для сервиса «1С:ДиректБанк». В этой внешней компоненте реализован собственный формат электронной подписи и установка зашифрованного соединения.

 

Подсистема БСП «Электронная подпись»

 

 

Теперь о том, как проще работать.

«1С:Библиотека стандартных подсистем» (БСП) – это готовая типовая конфигурация от фирмы «1С», набор универсальных функциональных подсистем, одна из которых называется «Электронная подпись».

Сразу хочу обратить внимание, что сама БСП – это некий изолированный от платформы уровень, у которого есть программный и пользовательский интерфейсы. Подсистема «Электронная подпись» реализует программный и пользовательский интерфейс для работы со средствами криптографии (шифрование, электронная подпись).

 

 

При рассмотрении подсистемы «Электронная подпись» важно понимать, что в ней есть:

  • Базовая функциональность, где реализовано то, что никогда нельзя трогать, если Вы хотите, чтобы все работало.
  • И есть специальная переопределяемая часть для таких разработчиков, как мы, где можно дописать, чтобы что-то работало по-другому. Если там чего-то нет, рекомендую написать ребятам, которые разрабатывают БСП, чтобы они в базовую функциональность заложили возможность переопределения, и тогда Вы в переопределяемой части сможете делать то, что Вам нужно.

Количество объектов в подсистеме не очень большое, справочников всего два:

  • «ПрограммыЭлектроннойПодписиИШифрования»;
  • «СертификатыКлючейЭлектроннойПодписиИШифрования».

Но количество строчек кода в общих модулях очень большое – 11,5 тысяч строчек кода. И сама работа с подсистемой не очень простая.

Как встраивать подсистему «Электронная подпись»?
Предположим, что у Вас есть какая-то конфигурация, Вы решили, что Вам нужно встроить в нее эту подсистему:

  • первым делом нужно прочитать на ИТС, как производится встраивание подсистем;
  • далее – прочитать инструкцию по подсистеме (Глава «Настройка и использование подсистем при разработке конфигурации», подраздел «Электронная подпись») – там написан порядок работы;
  • обязательно нужно ознакомиться в демобазе БСП с примерами вызовов подсистемы «Электронная подпись»;
  • и в конце, после того, как встроили подсистему, нужно сделать проверку:
    • есть расширенная проверка платформы, когда Вы встраиваете объекты;
    • и есть еще отдельная обработка на ИТС «Проверка встраивания подсистем БСП» – с помощью нее можно проверить, как Вы все это встроили.

А если у Вас конфигурация с нуля, то берете подсистему и на ее базе пишете – обновлять будете сами.

Как тестировать электронную подпись?

  • Для тестирования можно использовать самоподписанный сертификат – выпустить его на своем криптосредстве от Microsoft, которое встроено в Windows.
  • Или можно использовать внешние СКЗИ. С помощью «КриптоПро» Вы можете:
    • скачать триал-версию со своего сайта;
    • заказать через тестовый удостоверяющий центр свой тестовый сертификат;
    • установить корневой сертификат тестового удостоверяющего центра;
    • скачать и поставить список отзыва сертификатов (СОС) от этого УЦ.

Таким образом, «не вставая с дивана», Вы получите тестовую среду для работы с сертификатами и криптографией. Это можно использовать.

 

Основные функции подсистемы «Электронная подпись» из БСП

 

Это пример демобазы БСП. В разделе «Администрирование» есть две функциональные опции: «Шифрование» и «Электронная подпись». Если Вы их включили, можно переходить в настройки.

 

 

В настройках находятся два справочника: «Программы» и «Сертификаты». В «Программах» система определяет, какие программы установлены, и сразу показывает, что все хорошо или все плохо. Если у Вас используется какое-то специфичное криптосредство, которого нет в БСП, Вы можете нажать кнопку «Добавить» и указать там параметры обращения к нему.

 

Если Вы работаете через веб-клиент, то подсистема БСП подскажет, что сначала нужно установить расширение для работы с файлами и расширение для работы с криптографией. Это очень удобно, потому что не нужно настраивать самим – система найдет расширение и предложит поставить его.

 

 

Сертификаты можно добавить двумя способами.

  • Первый вариант – «Из установленных на компьютере». В таком случае открывается диалоговое окно, где мы указываем, как мы будем этот сертификат использовать.

  • И второй вариант – Вы можете заказать выпуск нового квалифицированного сертификата. Обратите внимание, что платформа сама не позволяет заказывать выпуск сертификата, а БСП позволяет. В БСП сделали интеграцию с удостоверяющим центром 1С, который выпускает сертификаты квалифицированной электронной подписи. Вы можете пройти по мастеру настроек:
    • система подскажет, какие документы нужно заполнить и распечатать для выпуска сертификата;
    • нужно будет заключить договор с партнером, который сможет провести удостоверение личности и передать документы в 1С;
    • после того, как 1С получит документы, будет выпущен сертификат;
    • система найдет его и установит на компьютер.

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

 

 

Дальше происходит магия – проверка сертификата с помощью диагностики корректности настроек. Этот диалог позволяет проверить, насколько корректно настроена криптография на компьютере – система попытается подписать сертификатом, проверить, зашифровать, расшифровать. Также есть возможность вставить сюда какую-то свою дополнительную диагностику.

Если у Вас или у ваших клиентов возникают какие-то проблемы, запускаете «Диагностику», и все будет понятно. Если будут проблемы, как в примере на слайде, можно щелкнуть по иконке ошибки, она покажет Вам возможные причины, и попытается подсказать, что нужно исправить.

 

 

Как делать вызовы для подписания и шифрования/расшифрования можно посмотреть на примере справочника «Файлы» в демо-базе БСП или в «1С:Управление торговлей», «1С:ERP» – там есть такая же подсистема.

 

Сервисы «1С-ЭДО» и «1С:Директ-Банк»

 

Как используется криптография в сервисах? Первый сервис, «1С-ЭДО» – это сервис, предназначенный для обмена юридически значимыми электронными документами через дружественных операторов компании «1С».

  • Клиентская функциональность разрабатывается в «Библиотеке электронных документов».
  • При попытке соединиться с сервером происходит шифрованное SSL-соединение (по HTTPS) на алгоритмах RSA.
  • Используется авторизация с криптографией. Поскольку сервер про нас ничего не знает, Вам присылают зашифрованный токен, и, если Вы «правильный» человек, то Вы расшифровываете этот токен с помощью закрытого ключа и используете его потом для обмена данных.
  • Есть возможность просмотреть электронный документ, подписать его, проверить, упаковать в пакет данных и отправить.
  • Проверка и вообще вся криптография работает через БСП. Проверка электронной подписи выполняется в два этапа:
    • сначала проверяется валидность самого сертификата: срок действия, цепочка доверия, атрибуты;
    • если с сертификатом все хорошо, то выполняется расчет математического хэша. Если с математикой все хорошо, подпись считается валидной и прикладывается к документу.
  • Также с помощью БСП реализована расширенная диагностика настроек ЭДО – определяется, что сервера доступны, и что с участником электронного документооборота все в порядке – у него активные тарифные планы и т.д.

 

 

Второй сервис – это «1С:ДиректБанк». Его назначение – обмен с банками электронными документами напрямую, минуя программу клиент-банк.

  • Этот сервис тоже поставляется в «Библиотеке электронных документов».
  • Открытая технология DirectBank описана на GitHub.
  • Из нового – шифрованный канал связи с сервисом может быть поднят на алгоритме ГОСТ.
  • Настройка обмена производится так: 1С делает запрос в банк, чтобы получить настройки для конкретного клиента. При необходимости, вместе с настройками банк отправляет внешнюю компоненту, которая используется при дальнейшем обмене (так реализовано у «Сбербанка»).
  • Авторизация производится либо по шифрованному токену, либо по SMS (через однократный пароль).
  • Подписание и проверка электронной подписи работает либо через БСП, либо через внешние компоненты (в зависимости от того, как сам банк это реализовал).
  • И диагностика здесь сделана даже интереснее, через полный цикл обмена электронными документами специального вида – «Запрос-зонд».
    • Система 1С авторизуется в системе банка и передает туда электронный документ со своей подписью;
    • Банк проверяет электронную подпись клиента, формирует извещение, что все хорошо и своей подписью подписывает извещение;
    • Извещение приезжает в «1С», та проверяет, что подпись банка валидна и говорит после этого, что все в порядке.

Вот такой мини-цикл – по нему становится понятно, насколько у Вас с банком корректно настроен обмен.

 

Собственные решения с криптографией на платформе 1С

 

 

Как разрабатывать собственные решения с криптографией?

Вы можете создать конфигурацию с нуля – открыть «Синтаксис-помощник» и использовать возможности платформы для криптографических операций. Но я бы рекомендовал использовать БСП – там уже много чего написано. В этом случае Вам потребуется написать не 11 тысяч строк кода, а поменьше. Но пять тысяч строк кода – точно.

Как тестировать – я уже рассказывал. Можно получить тестовый сертификат и попробовать поработать.

Если Вы разработали конфигурацию с нуля – Вы ее сопровождаете сами. А если Вы использовали при разработке БСП, а она выпустила какую-то новую возможность, то Вы можете обновить подсистему БСП и попробовать эту возможность. Трудности будут в любом случае, потому что «серебряной пули» здесь нет. Я бы подходил к оценке того, стоит или не стоит что-то изобретать, в зависимости от задачи, которую Вы хотите решить. Рассматривая конкретную задачу, уже выбираете: свое решение или стандартное на базе БСП.

Примером собственного решения является разработка партнера «Индустрия ИТ». Они разработали небольшой модуль для внутреннего электронного документооборота на базе «1С:УПП». Там на основе печатной формы формируется электронный документ, который привязывается к документу информационной базы, и есть возможность подписать его электронной подписью. Простой документооборот внутри компании, но сопровождать его все равно надо.

 

Трудности внедрения криптографии и ЭП в организациях

 

 

Какие бывают основные проблемы?

  • Если Вам потребуется установить на один компьютер два криптосредства, произойдет конфликт. Например, если у Вас отчетность работает через VipNet, а электронный документооборот с контрагентами через «КриптоПро». Как решить эту проблему?

Первый вариант – разнести эти криптосредства по разным компьютерам.

Если это невозможно, тогда для одного из сервисов нужно выпустить сертификат на другом криптосредстве – когда Вы заказываете сертификат в удостоверяющем центре, Вы можете указать, для какого криптосредства Вы его будете использовать.

  • Иногда у клиентов не работает криптография в браузере IE – требуется установить расширение, но оно не ставится. Банальный совет – запустите браузер от имени администратора. Это позволит установить расширение, и проблема будет решена.
  • Программа 1С не всегда видит токены JaCard. Я не знаю в чем проблема, то ли в JaCard, то ли платформе. Переустанавливаешь криптосредство – оно какое-то время работает, а после перезагрузки системы снова слетает. Почему-то 1С и JaCard не очень дружат.
  • Есть еще одна проблема – при проверке сертификатов платформа всегда пытается проверить, насколько этот сертификат надежный, и иногда ей это не удается. Почему это происходит? Есть список отзывов, куда включаются недействительные сертификаты. Например, когда сотрудник уволился из компании, она должна сообщить в удостоверяющий центр, что сотрудник уволился, и его сертификат не действителен. После чего удостоверяющий центр выпускает список отзывов, куда включается этот сертификат, после чего он начинает считаться невалидным. Иногда почему-то проверить сертификат в списке отозванных не удается. В чем проблема? Эти списки отзывов к 1С никакого отношения не имеют, они обновляются автоматически самим криптосредством. Для этого с удостоверяющим центром должен быть настроен стабильный канал. Если список отзывов автоматически не обновляется, это значит, что в удостоверяющем центре недостаточно слажено настроена служба, либо она вообще отсутствует. Смените удостоверяющий центр, и проблема уйдет.
  • Когда сертификатов становится много (например, больше 30-ти), начинаются сложности. Допустим, Вы перевели бизнес на электронные рельсы, и в разгар рабочего дня выясняется, что подпись невалидна, потому что ее сертификат закончился. Выпуск сертификата занимает некоторое время, бизнес «на ушах», Вы тоже. Для таких случаев нужно использовать специализированное ПО для ведения списка сертификатов. Есть программы, которые позволяют контролировать жизненный цикл сертификата, и когда у него срок действия заканчивается, они отправляют администратору напоминалки. Это банальный вариант, но он позволяет более-менее упорядочить сертификаты.

  • Обмен с данными из 1С происходит с серверов, поэтому:
    • открываете порты на серверах 1С:Предприятия;
    • права учетной записи сервера должны быть «Выход в интернет»;
    • если у Вас кластер серверов, значит, у всех 1С-серверов, входящих в кластер, должны быть открыты порты.
  • Если нет доверия к внешнему ресурсу, есть отдельная статья на ИТС «Диагностика проблемы "Удаленный узел не прошел проверку"».
  • Базовые правила безопасности:
    • пароли на стикерах не храним;
    • поработав, вынимаем токены из машин;
    • регулярно обновляем антивирус.
      Иначе получится так, что Вы поставили сертифицированные криптосредства, ключи, а вокруг ходят вирусы, которые могут этим воспользоваться. Поэтому защищайте периметр.

 

Источники информации

Ресурс ИТС

Ресурс «1С:Предприятие 8»

Ресурс сервиса «1С-ЭДО»

Описание DirectBank на GitHub

Конфигурации «1С:Библиотека стандартных подсистем»

Конфигурации «1С:Библиотека электронных документов»

По поводу криптографии можно почитать ИТС, описание технологии DirectBank есть на GitHub, и можно посмотреть, как реализованы конфигурации, упомянутые в мастер-классе.

 

Вопросы

Какие ты порекомендуешь удостоверяющие центры? С каким из них у тебя был положительный опыт?

Я бы порекомендовал использовать тот удостоверяющий центр, с которым Вы будете в дальнейшем работать в части обмена электронными документами. Пример – есть оператор электронного документооборота «Такском», у него есть удостоверяющий центр. Если Вы будете запускать электронный документооборот через «Такском», то имеет смысл и за сертификатом обращаться к ним же.

Ты говорил, что ФСБ давала какое-то разъяснение по поводу облачных сертификатов. Что если сертификат хранить не локально, а в облаке, он не может считаться усиленным. В случае стандартного обмена счетами-фактурами и УПД, мы можем использовать облачный сертификат или там требуется усиленный все-таки?

В законе написано, что при обмене счетами-фактурами требуется усиленная квалифицированная электронная подпись, поэтому "облако" тут не подойдет. А вот для других видов электронных документов - пожалуйста.

Грубо говоря, для любого стандартного ЭДО, которое мы используем в 1С, нам нужен усиленный сертификат?

Нет, не для любого. В законе написано только про электронные счета-фактуры. Их нужно подписывать именно квалифицированной электронной подписью. По поводу остальных документов ничего не написано. Это значит, что для накладных, для заказов Вы можете использовать усиленную неквалифицированную электронную подпись – в том числе и в облаке.

А про УПД там нет ничего? По сути, УПД сейчас это то же самое, что и счет-фактура.

Там есть размытое определение – счет-фактура с расширенными показателями, но это не то же самое, что УПД. Поэтому я думаю, что УПД попадает в разряд неквалифицированной электронной подписи.

А какую функцию во всей этой цепочке выполняет именно оператор – «1С-ЭДО» или «Такском»? Обычно через операторов мы отправляем документы в госорганы и обмениваемся счетами-фактурами, а при обмене другими документами с контрагентами зачем нам нужен оператор?

Операторы на рынке тоже не первый день работают, счета-фактуры ходят через них. Они так и говорят – отправляешь один счет-фактуру, а два другие документа – бесплатно. Вы же все равно счетами-фактурами будете обмениваться через них, поэтому проще и документы сами тоже через них посылать. Другое дело, если Вы сидите на упрощенке, и у Вас нет счетов-фактур, тогда можно попросить оператора поискать для Вас недорогой тарифный план. А так в той же самой «Библиотеке электронных документов» есть возможность обмениваться документами с электронной подписью по электронной почте, через FTP и т.д. Но когда у тебя 100 контрагентов, организовывать для каждого из них свой канал связи будет сложно в плане сопровождения.

А если мы хотим протестить самоподписанный сертификат, через оператора мы можем тестировать какой-то обмен с использованием самоподписанного сертификата?

Нет, через оператора – нет. Если сильно хочется потестировать, напишите в фирму «1С», что Вы хотите подключиться к сервису ЭДО, чтобы протестировать.

Они говорят, что мы не удостоверяющий центр.

Напишите мне, я помогу.

А если мы обмениваемся без оператора ЭДО, мне приносят подписанный электронный документ, и я его хочу загрузить в 1С, чтобы хранить его там. В БСП достаточно средств для проверки, что это КЭП и у него правильные реквизиты, чтобы все это было в автоматическом режиме без модальных окон и т.д.?

Я такие кейсы на своей практике не встречал, но в БСП точно есть возможность загрузить файл и проверить его электронную подпись. Скорее всего, Вам надо будет просто под этот сценарий нарисовать какой-то мастер: проверь папку, забери документ, забери подпись, проверь это все, сложи, куда надо и скажи, что все ок. По поводу синхронности вызова – в БСП все это реализовано, все в браузерах работает в асинхронном режиме.

А если в 1С по терминалу работать? Можно ли поставить «КриптоПро» и в терминале пробросить для него ключи? Какие есть особенности, проблемы? И, соответственно, если у нас более 20 юрлиц и на каждое из них по два ключа, как идет разграничение прав к этим ключам? На уровне 1С или как?

В самом БСП, когда грузишь открытую часть ключа, есть возможность указать, какому пользователю она будет доступна. Там можно, войдя под своим именем, видеть только свои сертификаты. Но при этом они все будут находиться на самом компьютере. Поэтому, сами понимаете, устанавливать закрытую часть в реестр точно не нужно, потому что закрытая часть ключа без проблем переносится с машины на машину. Лучше используйте токены. Есть возможность пробросить токен с закрытой частью ключа до терминального сервера. Ребята-производители ключей сами помогают это настроить так, чтобы в терминале этот ключ был виден. Попробуйте, поэкспериментируйте, найдите другие ключи, найдите людей, которые помогут настроить. Но здесь нужно понимать, что этот туннель от терминального сервера до вашего ключа не безопасен. Ты генеришь электронный документ на терминальном сервере и говоришь – подпиши. Что произойдет? Идет передача данных по незащищенному каналу сначала на локальный компьютер, где установлен ключ, формируется электронная подпись, потом данные передаются обратно на терминальный сервер. Но этот канал не защищен. Его можно защитить только с помощью установки специализированного программного обеспечения, которое делает туннель между терминальным сервером и локальной машиной безопасным. Если хочешь работать безопасно, значит, нужно поставить токен, пробросить его до терминалки и поставить ПО для шифрования канала между терминальным сервером и клиентской машиной.

Скажите, есть ли какая-нибудь разница по скорости работы между подписанием электронного счета-фактуры и отсканированного договора в 100 страниц (где чисто графика).

Чем больше документ, тем он медленнее подписывается, потому что там идет асинхронное шифрование – хэш вычисляется по асинхронному алгоритму. Но с точки зрения того, подписываете ли Вы электронную счет-фактуру в несколько строк или 10Мб файл – визуально разницу Вы не заметите. Заметите только на объемах в 1000-3000 документов.

По поводу роуминга 1С-ЭДО. В «Такском» есть роуминг между операторами. А насколько это работоспособно в «1С-ЭДО»? У Вас есть такой опыт? Потому что все контрагенты сидят на разных операторах и выбрать оператора с максимальным покрытием очень сложно. Кого бы Вы посоветовали?

Если выбирать между «1С-ЭДО» и другими, то конечно, «1С-ЭДО». Но у «1С-ЭДО» есть некоторые проблемы с роумингом – он не так много операторов поддерживает. Есть отдельный ресурс по 1С-ЭДО, там приведен список поддерживаемых операторов, думаю, что он должен со временем пополниться.

А где хранить архив подписанных документов? Локально в компании или в облаке? Можно ли обеспечить валидность сохраняемых в облаке документов?

Где мы храним подписанные документы (в облаке или нет) – неважно. Математически хэш уже вычислен, и содержимое документа бесследно уже не подменить. Вы его потом можете хоть 10 раз куда-нибудь передавать, подпись всегда можно будет проверить чисто математически. Если облачный сервис удобный – пожалуйста, храните в нем, это, наверное, даже интереснее.

А оператор такую услугу предоставляет?

Если с ним отдельный договор заключать для хранения бэкапов – они это делают за отдельные деньги.

А разве подписанные документы у них не хранятся?

Физически они хранятся, но по закону они не обязаны их хранить. Они обязаны хранить только квитанцию. Если к ним налоговая придет и спросит – проходил ли такой-то документ, они покажут, да, вот квитанция, смотрите – подпись такая-то. А что там внутри этого документа – это уже не к ним вопрос.

А для УПП операторы не предоставляют какую-нибудь обработку для ЭДО?

Про операторов не могу сказать, их много, и у каждого есть свои разработки, но в самом УПП электронный документооборот есть.

 

Данная статья написана по итогам доклада, прочитанного на конференции INFOSTART EVENT 2017 COMMUNITY.

электронная подпись ЭДО ЭЦП ЭП криптография ДиректБанк

См. также

Защита ПО и шифрование Программист Платформа 1С v8.3 1С:Бухгалтерия 3.0 Абонемент ($m)

Представляю вам микрорасширение, которое запрещает глобальный поиск по вашей конфигурации.

1 стартмани

09.02.2023    2724    11    aximo    5    

2

Защита ПО и шифрование Программист Абонемент ($m)

Для установки защиты pdf документа, полученного в 1С, написано консольное приложение на c#., использующее одну зависимость pdfSharp.dll. В результате работы приложения ограничены операции над документом и записаны метаданные. С помощью аргументов командной строки можно управлять работой приложения.

2 стартмани

30.01.2023    2142    2    olevlasam    3    

3

Защита ПО и шифрование Программист Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

Универсальный синтаксический анализатор ASN.1, который может декодировать любую допустимую структуру ASN.1 DER или BER, независимо от того, закодирована ли она в кодировке Base64 (распознаются необработанные base64, защита PEM и begin-base64) или в шестнадцатеричном кодировании.

1 стартмани

04.12.2022    3584    16    keyn5565`    0    

14

Защита ПО и шифрование Программист Платформа 1С v8.3 Абонемент ($m)

Демонстрация возможностей шифрования строки на основе мастер-пароля в 1С Предприятие 8.3.19. AES без zip файла, RSA, PKDF2. (c использованием библиотеки С# через com).

2 стартмани

31.08.2022    4470    9    vit59    2    

6

Защита ПО и шифрование Программист Платформа 1С v8.3 Конфигурации 1cv8 Россия Абонемент ($m)

Обработка, позволяющая запутывать и шифровать байт-код, поставлять модули без исходных текстов и т.д. Работает только в файловом варианте с версии платформы 8.3.22.1368 из-за конструктора ГенераторСлучайныхЧисел, поскольку алгоритм был изменён.

10 стартмани

16.06.2022    12751    106    ZhokhovM    12    

45

Защита ПО и шифрование Программист Платформа 1С v7.7 Платформа 1С v8.3 Абонемент ($m)

Как уберечь конструкторскую документацию от воровства конкурентами? Недавно столкнулся с этой проблемой. Заказчик серьёзно обеспокоен утечкой информации о конструкторских разработках в адрес конкурентов, за счет подкупа исполнителей, занимающихся производством по конструкторской документации, операторов технологического оборудования и обрабатывающих центров по изготовлению деталей и сборочных единиц.

2 стартмани

09.03.2022    6144    3    ge_ni    9    

2

Защита ПО и шифрование Программист Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

Система построена на веб платформе, все управление происходит на сайте в личном кабинете пользователя.

1 стартмани

27.12.2021    5105    2    idm80    12    

9
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. a_titeev 32 16.08.18 10:03 Сейчас в теме
Ух. Аж присел. Это по поводу облачной подписи... Как так???
То есть, если я при подключении 1С-Отчетности (https://1cfresh.com/articles/app_rep_connect) во Фреше решил хранить подпись, то это неправильно?
2. chat007 124 16.08.18 20:00 Сейчас в теме
Надо смотреть какую именно отчетность подписываете и требования законодательства к уровню ЭП для этой отчетности. На сколько помню, в 1С-Отчетности, с этим все было хорошо, чего не скажешь про другие сервисы
3. DonAlPatino 178 09.10.18 16:07 Сейчас в теме
"специализированное ПО для ведения списка сертификатов". А можно примеры? Еще бы хорошо чтобы оно на почту предупреждения об окончании сертификата заранее слало....
4. chat007 124 17.10.18 23:30 Сейчас в теме
(3) к сожалению, такого готового ПО не подскажу, чтобы еще и рассылку делало, но в 1С можно легко реализовать, особенно, если ЭДО туда встроено.. ))
6. DonAlPatino 178 18.10.18 17:39 Сейчас в теме
(4) У меня "Контур" внешний... Ну и если я сам писать буду, то это надолго боюсь....
8. chat007 124 18.10.18 21:48 Сейчас в теме
(6) возьмите демо-поставку БСП, там уже есть справочник "Сертификаты" - при выдаче отв.лицу туда вносите запись (программа сама зачитает все данные открытого ключа), за одним будет порядок - понятно, какой сертификат, кому выдан.
Останется прикрутить отправку по smtp письма, можно без визуализации и хранения отправленного (в БСП подсистема работы с почтой тоже есть).
Ну если что найдете готовое, черкните сюда плиз!
Успехов!
5. efsol.d4 18.10.18 16:58 Сейчас в теме
Подскажите, а работает ли 1С под Linux?
К сожалению, на ИТС мануалы только под windows или только о криптопро.
7. chat007 124 18.10.18 21:39 Сейчас в теме
(5) если вопрос "работает ли механизм криптографии в платформе 1С:Предприятие на Linux?", то ответ "Да".
В БСП модуль работал точно. Вероятно придется какое-то время повозиться с настройками, но это придется в любом случае делать. Также важно понимать, где будет располагаться модуль криптографии: на клиенте или на сервере, ну и соответственно, туда ставить Linux нужной версии и битности.
Рекомендую учесть, что сначала надо собрать стенд для экспериментов, полностью выверить состав ПО, аппаратной части, вплоть до конкретного набора токетов и сертификатов, и только потом планировать масштабирование.
9. efsol.d4 19.10.18 15:39 Сейчас в теме
(7) Заказчик просит всенепременно на сервере 1с, 1с сервер на линуксе, и криптопровайдер нужен - VipNet SCP.
Я вот пытаюсь понять, возможна ли эта связка вообще.
10. chat007 124 21.10.18 10:16 Сейчас в теме
(9) Напишите на тех.подержку 1С с нужными вопросами, лучше производителя никто не ответит на этот вопрос + предложите провести пилот с подобной связкой, если получите теоритическое "да". Пилот подразумевает обычно прямое взаимодействие с командой разработки и более оперативное исправление проблем
11. AlexanderKulikov 25.06.19 06:22 Сейчас в теме
Добрый день, Андрей!
Вы пишите что для избежания одновременного использования VipNet и CryptoPro "Вы заказываете сертификат в удостоверяющем центре, Вы можете указать, для какого криптосредства Вы его будете использовать."
Не могли бы чуть чуть поподробнее описать о чем идет речь. По крайней мере у меня не получилось.
(Задал вопрос в VipNet - есть ли возможность через них подписывать сертификаты CryptoPro и получил отказ).
12. chat007 124 03.07.19 17:28 Сейчас в теме
Добрый день!

Обратитесь в УЦ 1С, Такском или какой другой, не привязанный жестко к ВипНет или КриптоПро.

Если возникнет сложность, тех.поддержка 1С-ЭДО работает, пользуйтесь.
13. Rans 6 12.07.19 12:20 Сейчас в теме
Добрый день!
Расскажите, пожалуйста, по подробнее про XMlDSig.
Вы говорили, что платформа так не умеет, но еще в БСП версии 2.3.2.58 добавлена возможность подписания и проверки подписи XML-сообщений SOAP по стандарту XML Digital Signature (XMLDSig) http://v8.1c.ru/news/newsAbout.jsp?id=15443.
Получается, что платформа не умеет, а БСП умеет?
Unknown31; +1 Ответить
47. gml 13.10.24 13:39 Сейчас в теме
(13) Да, именно так. Кстати, для разных ведомств и государственных автоматизированных систем используются по-разному сформированные подписи XMLDSig. В БСП это учтено.
Для формирования XMLDSig требуется вычисление и проверка т.н. "сырой" электронной подписи, эти функции в платформе не реализованы (не импортируются из криптопровайдера).
14. chat007 124 27.07.19 12:56 Сейчас в теме
Добрый!
За 2 года много что могло поменяться, в т.ч. и в платформе появиться новые механизмы...))
По стандарту XMLDSig подпись должна вкладываться в тот же файл, что и сами данные - это принципиальное отличие, т.е. подписывается набор данных в XML-тегах, а сам хеш кладется в другой тег.
Возможно, что в БСП это было реализовать целесообразнее, чем в платформе, но это уже надо спрашивать у разработчиков.
15. Rans 6 02.08.19 15:17 Сейчас в теме
16. asrgroup 29.08.19 12:48 Сейчас в теме
И все таки не понятно ...
А если в 1С по терминалу работать? Можно ли поставить «КриптоПро» и в терминале пробросить для него ключи?


РУ-токен локально установлен на сервере 1С, там же КрптиПро серверная, хочу подписывать из клиента на терминальном сервере (т.е. на рабочих местах нет и не будет ключей), подписание и шифрование стоит "на сервере" - а не взлетает ... Бухгалтерия 2.0 КОРП, платформа 8.3.12. Куда копать ? Или нереализуемый вариант ?
17. chat007 124 01.09.19 11:40 Сейчас в теме
(16)
Бухгалтерия 2.0 КОРП, платформа 8.3.12. Куда копать ? Или нереализуемый вариант ?

Определите, что именно не работает, в БСП есть диагностика, которая должна помочь - сертификат не виден, КриптоПро не подхватывается или еще что-то...
Дальше уже решать...

Самым простым, на мой взгляд, выглядит вариант - сесть за сервер, как за рабочую станцию и добиться того, что там все заработает, потом двигаться дальше.

Ну и пробуйте задавать вопросы по настройке на партнерском форуме 1С, разработчики БСП и платформы обычно вникают в детали и помогают решить вопрос, даже если это дефект какой-то конкрентной версии ПО.
18. out30club 03.09.19 18:02 Сейчас в теме
(17)
Добрый день!

Подскажите, пожалуйста, возможно ли настроить 1С-Отчетность так, чтобы КриптоПро и сертификаты были установлены на отдельном сервере (не на сервере 1С), а сервер 1С или локальный пользователь обращался к этому серверу за данными?

Проблема в том, что у организации несколько серверов 1С, несколько терминальных серверов и много расчетчиков, которым нужно получать данные в ФСС. Сейчас получается каждому нужно устанавливать сертификат на каждом сервере.
20. chat007 124 03.09.19 23:35 Сейчас в теме
(18)
Добрый!

По настройке 1С-Отчетности никто лучше разработчиков 1С не скажет. Разве что коллеги из "Калуги-Астрал", попробуйте написать на хот-лайн.

Еще как вариант, ограничить средствами платформы установку соединения с АРМ расчетчиков каким-то одним 1С-сервером (или поделить по сегментам), чтобы сертификат ставить только на один сервер.
out30club; +1 Ответить
19. пользователь 03.09.19 23:34
Сообщение было скрыто модератором.
...
21. Viktor_Ermakov 369 19.09.19 13:07 Сейчас в теме
Добрый день, коллеги!
У меня такой вопрос: можно ли с помощью БСП или синтаксис помощника, как то понять, что это сертификат JaCard или токен.
Есть ли какой то признак в свойствах сертификата, мне нужно разделять обычные сертификаты от указанных.
БСП у меня 2.4.6 - ничего похожего не нашел, возможно в более старших версиях что то есть?
Спасибо!
22. chat007 124 21.09.19 21:00 Сейчас в теме
Добрый день!

Опишите подробнее, какую проблему хотите решить, почему важно разделять "обычные сертификаты от указазанных"?
Также не понятно в чем их отличие.

Собственно, токен/JaCard/реестр - это места хранения.
Сертификат с его закрытым ключом может быть также успешно перенесен в реестр Windows, но из-за этого он ничего не потеряет. Тогда не понятно, станет ли он "обычным"?
23. Viktor_Ermakov 369 23.09.19 11:07 Сейчас в теме
(22) Добрый день.
Это бизнес задача, у нас в одной конфигурации хранятся все сертификаты компании, их много, у нас своя конфигурация на основе БСП 2.4.6 для управления правами доступа.
Для работы с сертификатами используются ограничения в том числе и РЛС.
Для примера: нужно что некоторые сотрудники, могли видеть и работать только с сертификатами JzCarta (токены) а обычные сертификаты не видели в базе.
Поэтому мне нужен признак того, как определить токен ли это.

На счет реестра, это к данному вопросу не подходит, т.к. на сервере где запущена база, в реестре сертификатов ничего нет.
Я достаточно хорошо описал проблему?
Спасибо!
24. chat007 124 25.09.19 23:02 Сейчас в теме
(23) что уловил:
- в базе есть сертификаты, которые связаны с закр.ключами размещенными на Токене (JaCarta) или в другом месте (тут не понял каком, что такое "обычный" сертификат);
- нужно сделать так, чтобы сотрудники могли видеть только какую-то часть сертификатов (но не понятно в каком сценарии, при какой "операции").

Если без дальнейших распросов, то вижу 2 варианта:
1) добавить признак в справочник сертификатов - "связан с токеном" - заполнять его при добавлении сертификата в базу и использовать для отборов и РЛС;
2) в момент "перед операцией" у пользователя делать поиск доступность закрытого ключа сертификата (ов) и если их нет (токен не вставлен или криптосредство не доступно), то просто не показывать (но не понятно, что такое "обычный сертификат").
25. Viktor_Ermakov 369 30.09.19 13:53 Сейчас в теме
Обычный сертификат - это тот который не с токена. Это я так для себя называю что бы понимать.
Был на семинаре, общался с платформщиками, понял что средствами 1С это понять на сегодняшний день нельзя, оставил заявку на рассмотрение изменения в платформе.
Дело в том что у нас сложный кейс, и сертификаты попадают автоматически в систему, без участия пользователя, поэтому расставлять ручками конечно можно, но не хотелось бы.
Спасибо.
26. zuxelzz 07.10.19 17:27 Сейчас в теме
На MacOS в Chrome не могу получить сертификаты, установленные в системе (это когда при добавлении выбираешь - с компьютера или из центра сертификации добавить сертификат), хотя расширение в хроме установлено. Это проблема 1С или я неправильно что-то настроил, кто знает?
27. chat007 124 09.10.19 22:51 Сейчас в теме
(26) Типовой функционал БСП? Какой порядок действий (сценарий воспроизведения)? Какой 1С-клиент?

Отдельно надо пояснить, какое криптосредство на MacOS и где установлены сертификаты.
29. zuxelzz 12.10.19 07:55 Сейчас в теме
(27) Типовой Документооборот 8 ПРОФ, редакция 2.1 (2.1.14.4) . Подозреваю, что да - там типовой БСП.
Захожу через все функции в справочник "Сертификаты ключей электронной подписи и шифрования", открывается форма "Настройки электронной подписи и шифрования". На вкладке "Сертификаты" есть кнопка "Добавить" - "Из установленных на компьютере". Выбираю "Для подписания и шифрования", открывается форма "Добавление сертификата для подписания и шифрования". Вот в ней в декорации ругается, что сертификаты недоступны, при нажатии - что не установлено расширение, хотя в хроме на маке стандартное расширение 1С установлено. На винде и линуксе все ок - показывает установленные на компе сертификаты.
Веб-клиент, гугл хром. Платформа 1С:Предприятие 8.3 (8.3.14.1854)

По криптосредству и где сертификаты пока не поясню, мак не мой - у пользователя. Какие есть варианты криптосредств на маке и где сертификаты могут быть установлены на маке?
28. user1152013 11.10.19 17:53 Сейчас в теме
Удивлен, что в 2019 г еще кто-то пользуется таким барахлом, как токены JaCarta ) Хотя, возможно, некоторые просто любят трудности.
В остальном сертификат с неизвлекаемым ключом, даже перенесенный в реестр, не потеряет своих качеств, а значит не станет, конечно, "обычной" подписью в понимании авторов статьи.
30. SERGEJ64 10.01.20 17:06 Сейчас в теме
Добрый день!
А есть какие-то утилиты автоматической установки списка отозванных сертификатов? в рамках Крипто-ПРО автоматически данные списки не актуализируются
31. chat007 124 12.01.20 15:24 Сейчас в теме
(30) Добрый день! Списки отзыва ставятся автоматически на Крипто_ПРО, главное, чтобы УЦ, которому принадлежат сертификаты поддерживал распространения (точку расдачи списка отозванных сертификатов можно найти в свойствах сертификата, если открыть его в ОС) - за это отвечает отдельный сервис и он должен администрироваться силами УЦ, а с компьютера, на котором нужно обновлять списки отзыва автоматически, нужно обеспечить доступ через Интернет к точке расдачи списка УЦ.
Регулярность распространения прописана, если правильно помню, в регламенте деятельность УЦ (обычно 1-2 раза в месяц).
SERGEJ64; +1 Ответить
32. SERGEJ64 12.01.20 15:45 Сейчас в теме
(31) ага, спасибо. Так и понял. У нас настроен прокси-сервер. Нужно в исключения добавить данные адреса распространения СОС
33. kostik_love 317 24.01.20 07:03 Сейчас в теме
очень классная статья- спасибо.
а теперь вопрос)
Перед нашей компанией стоит задача- разработать сервис по приему отчетности из 1С и передачи отчетности в налоговый орган:
есть пользователи 1С (Конфигурации на базе БСП), у них сертифицированные ключи ЭЦП и программа VipNet. На стороне пользователей 1С будет формировать xml файлик отчета, подписывать его и отправлять в сервис нашей компании
наша компания должна проверить КЭП, проверить сам файлик на правильность заполнения и если всё норм - то передать налоговому органу
есть 2 вопроса:
1. насколько верно будет разработать такой сервис на 1С при условии что пользователей будет от 300 до нескольких тысяч
2. сможет ли бсп проверить КЭП если криптопровайдеры не предоставляют таких сервисов, т.е. проверку нужно будет делать локально
35. chat007 124 24.01.20 12:23 Сейчас в теме
(33) Добрый день!

1. Я бы тут смотрел не на общую нагрузку в кол-во пользователей (вероятно, контрагентов), а на пиковую нагрузку. Например, отчетность сдается обычно в последние дни перед окончанием и скорость обработки входящих сообщений критична (очередь не рассматривается).
Либо это будет какая-то специализированная отчетность, которая сдается в любой день текущего квартала и все поставленные пакеты могут по-тихоньку "прожеваться".
Из собственного опыта в "1С+Криптография" самое медленное звено - формирование/проверка ЭП, но есть контрагенты, которые на почти типовых решениях 1С, за 6 часов спокойно формировали и подписывали документы за квартал (>100 тыс.штук) и рассылали своим контрагентам в самый последний день отч.периода. Все работало. :)

В этом проекте стоит бОльше внимания уделить ворк-флоу (как ваш сервис будет подтверждать приемку? как будет отвечать по ошибке проверки ЭП? как по ошибке формата? как на это будет реагировать 1С-решения клиентов?).
Рекомендую поштудировать стандарт "1С:ДиректБанк" (участвовал в его создании и подобные вопросы там прорабатывались).

2. Да, конечно, БСП умеет проверять. Более того, все типовые решения 1С, когда получают по ЭДО документы с ЭП, обязательно проверяют и отклоняют эл.док-ты, если подпись не валидна (например, просрочен сертификат).

Успехов!
34. chat007 124 24.01.20 12:21 Сейчас в теме
Добрый день!

Ответил выше
36. kostik_love 317 24.01.20 12:39 Сейчас в теме
Рекомендую поштудировать стандарт "1С:ДиректБанк" (участвовал в его создании и подобные вопросы там прорабатывались).

Спасибо за оперативный ответ. Тоже об этом подумал, тем более с одним банком делали интеграцию и прорабатывали эти вопросы там, но не использовали ЭЦП.
Спасибо за вопросы - теперь примерно понимаю с чем столкнемся.
37. TuneSoft 247 06.05.20 10:48 Сейчас в теме
Добрый день.

Спасибо за статью.

На некоторых сайтах есть авторизация в систему через электронную подпись.
Есть ли возможность реализовать аналогичный вход в 1С ?
И как это можно проще сделать ?
38. chat007 124 20.05.20 13:28 Сейчас в теме
(37) Добрый день!

1) Из описания не очень понятен кейс, приложите примеры сайтов.

2) Какую проблему решаем?

3) Кто будет пользоваться этим входом?
Поясню, распространие эл.подписи пока ограничено для физ.лиц, поэтому надо понимать целесообразность автоматизации.
39. xbox10 12.10.20 13:46 Сейчас в теме
можно ли используя БСП подписывать присоединенные файлы электронной подписью на "сервере" или подписание возможно только вызовом с клиента 1С? Требуется создать регл. задание, которое будет раз в сутки проходить по присоед. файлам к счет фактуре и подписывать их. Конфигурация 1С Документооборот.
40. Sashares 35 12.10.20 14:01 Сейчас в теме
(39)Если в конфигурации настроено, что подпись выполняется на сервере, то можно.
42. xbox10 15.10.20 09:38 Сейчас в теме
(39)
Разобрался сам. Кому то возможно потребуется. Реализация подписи на сервере используя БСП:
СертификатПодписи = Справочники.СертификатыКлючейЭлектроннойПодписиИШифрования.НайтиПоРеквизиту("Отпечаток","PNGIdIoN84tjX2fX3riH242323FGDjjj3435GD");

ЭлементДанныхДляСервера = Новый Структура;
ЭлементДанныхДляСервера.Вставить("Данные", АдресФайлаВХранилище);

ПараметрыДляСервера = Новый Структура;
ПараметрыДляСервера.Вставить("Операция", "Подписание");
ПараметрыДляСервера.Вставить("ИдентификаторФормы",  Новый УникальныйИдентификатор);
ПараметрыДляСервера.Вставить("СертификатВерен",     Истина);
ПараметрыДляСервера.Вставить("СертификатПрограмма", СертификатПодписи.Программа);
ПараметрыДляСервера.Вставить("СертификатОтпечаток", СертификатПодписи.Отпечаток);
ПараметрыДляСервера.Вставить("ЭлементДанныхДляСервера", ЭлементДанныхДляСервера);
ПараметрыДляСервера.Вставить("Комментарий",    "Утверждено");
ПараметрыДляСервера.Вставить("ЗначениеПароля", "");
		
ОшибкаНаСервере = Новый Структура;
АдресРезультата = Неопределено;
		
Успех = ЭлектроннаяПодписьСлужебныйВызовСервера.ВыполнитьНаСторонеСервера(ПараметрыДляСервера,
			АдресРезультата, Истина, ОшибкаНаСервере);
			
Если Успех И ЗначениеЗаполнено(АдресРезультата) Тогда  
			СвойстваПодписи = ПолучитьИзВременногоХранилища(АдресРезультата);
			ЭлектроннаяПодпись.ДобавитьПодпись(ПрисоединенныйФайл, СвойстваПодписи);
КонецЕсли;
Показать
VZhulanov; nightowl; peter; +3 Ответить
43. mat skywalker 8 20.02.21 20:41 Сейчас в теме
(42) А как мне подписать строку с прикрепленной подписью?
41. kiruha 388 14.10.20 14:01 Сейчас в теме
Добрый день.

Можно ли используя БСП подписывать файлы со штампом времени (TSP) ?
Использовать OCSP?
v_nick; Oksana92; +2 Ответить
44. Oksana92 18.06.21 14:39 Сейчас в теме
Добрый день!
Вопрос в тему хранения документов, подписанных электронной подписью. Может кто сталкивался или имеет представление:
в организации есть идея внедрить подписание внутренних документов усиленной неквалифицированной электронной подписью. Подписание планируется осуществлять в 1С:Бухгалтерии и 1С:Документообороте. Предположим, подписи сгенерированы, в 1с всё настроено и документы подписываются. А где и как хранить эти документы? Нужно ли создавать электронный архив, передавать в него доки с сопутствующими процессами составления архивных дел, описей и т.д.? Или можно не создавать себе таких проблем и хранить подписанные документы в 1С или томах на сетевом диске?
45. o.nikolaev 216 19.08.21 19:49 Сейчас в теме
Программа 1С не всегда видит токены JaCard. Я не знаю в чем проблема, то ли в JaCard, то ли платформе. Переустанавливаешь криптосредство – оно какое-то время работает, а после перезагрузки системы снова слетает. Почему-то 1С и JaCard не очень дружат.

Вот именно на это я пару лет назад напоролся.
46. antipetyayandexru 21.10.21 10:27 Сейчас в теме
Здравствуйте, спасибо за статью.

Может кто подскажет - у нас сервер 1С на Windows Server 2016, на нём крутится кластер 1С: Медицина.Поликлиника.

Подписи хранятся в контейнерах на сервере, криптопровайдер - ViPNet CSP - установлен на сервере.
Процесс сервера запускается от доменного пользователя domain\usr1cv8.

Подписание и шифрование выбрано на стороне сервера 1С.
На сервере импортированы сертификаты организации и работников путем запуска ViPNet от имени domain\usr1cv8 и импорта сертификатов в личное хранилище.

Проблема такая: Если зайти в Администрирование-Общие-Настройки ЭП и шифрования, и оттуда выполнить проверку подписи, то все пункты успешно проходят проверку. Но при попытке подписания электронного больничного в интерфейсе 1с, или при запросе данных из ФСС выпадает ошибка:

XMLDSigКлиент.ПослеПодписания: СвойстваПодписи: Тип.
Ошибка проверки типов.
Тип 'Строка' значения 'e1cib/tempstorage/51b53793-b7b7-429e-8dc2-6c9db0f40197?seanceId=e7211af5-5d5b-4d60-9ca5-1b2097a233ea'
не входит в множество допустимых типов
{Структура}.


Что я сделал:
На сервере запустил клиент 1С от имени domain\usr1cv8, затем в настройках ЭП и шифрования указал, что нужно подписывать и шифровать на стороне клиента (я же нахожусь на сервере, то бишь разницы нет, ибо компьютер в данном случае является как сервером так и клиентом).

В итоге всё успешно работает, больничные подписываются, данные из ФСС прилетают.
Но если я опять же на сервере выбираю, чтобы подписание и шифрование выполнялось на стороне сервера, то выскакивает та же ошибка.

То есть разница успехи и неудачи подписания только в том, какой процесс вызывает подписание. Если процесс клиента 1с, то успех. Если процесс сервера, то - ошибка. И всё это при том, что и то и другое запускается на одной и той же машине, от одного и того же пользователя.

В VipNet CSP в настройках установил максимальное логирование действий, но в журнале событий Windows нет ничего стоящего:

Получение параметра контейнера ключа:
Контекст провайдера: 0x26
Код параметра: 0x1
Код ошибки: 0x103


Куда копать - не знаю.
Оставьте свое сообщение