Сообщение 006 ошибка расшифровки файла

Обновлено: 27.01.2023

5. Проблема может быть обусловлена тем, что антивирус (firewall, прокси сервер) исказили содержимое пакета во время его передачи. Для решения проблемы необходимо корректно настроить вышеупомянутое ПО.

Многие организации используют в программе дополнительный сервис 1С-Отчетность . С помощью него они обмениваются отчетами и прочим электронным документооборотом с контролирующими органами непосредственно из 1С без использования сторонних программ, что очень удобно. Но усложнение программы, как всегда бывает, приводит к новым ошибкам, с которыми нужно уметь справляться.

Прочитав статью, вы:

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

Ошибка расшифровки файла

Список возможных ошибок 1С-Отчетности можно посмотреть здесь. PDF

При обмене электронной отчетностью с ПФР через 1С-Отчетность , пришел протокол контроля отчетности:

  • Не найден сертификат. Ошибка расшифровки файла документа при распаковке пакета.

22 ноября 2018 года оператор 1С-Отчетности распространил следующую информацию для партнеров 1С и пользователей, сдающих отчетность в ПФР Москвы и Московской области.

Если вы сдаете отчетность в ПФР Москвы и Московской области, то вы гарантированно получите указанную ошибку.

Возникновение ошибок

Использование криптопровайдеров ниже версий VipNet 4.2 или КриптоПро CSP 4.0 повлечет возникновение ошибок при обработке документов на стороне ПФР.

Обновление криптопровайдеров

Для исключения технических проблем при работе с ПФР, необходимо обновить криптопровайдеры до версий: VipNet 4.2 или КриптоПро CSP 4.0 и выше.

Пошаговая инструкция по обновлению криптопровайдера

Шаг 1. Откройте криптопровайдер, щелкнув мышкой по иконке VipNet СSP .

Шаг 2. Проверьте версию криптопровайдера VipNet в нижнем левом углу открывшейся формы.

Шаг 3. Обновите версию криптопровайдера по инструкции оператора Калуга Астрал, если:

  • сдаете отчетность в ПФР Москвы и Московской области;
  • версия вашего криптопровайдера VipNet ниже 4.2.

Другие причины возникновения ошибок

Проверка версии криптопровайдера

Обновление 1С

Второе не менее важное правило: перед глубоким погружением в проблему выполните две несложных проверки в1С:

  • проверьте на актуальность релиз вашей 1С;
  • уточните права пользователя, отправляющего отчетность.

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

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

Права пользователя, отправляющего отчетность

Пользователи, работающие с 1С-Отчетность , должны иметь права:

  • Право на защищенный документооборот с контролирующими органами;
  • Полные права.

Если с отчетностью работает пользователь не с полными правами, ему необходимо добавить право на защищенный документооборот, например, в Конфигураторе : меню Администрирование — Пользователи на вкладке Прочее .

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

Если проверки выполнены, а ошибка осталась — переходите к поиску решения проблемы с помощью:

  • технической поддержки Калуга-Астрал;
  • самостоятельной настройки криптографии.

Техническая поддержка Калуга-Астрал

Корректность шифровки передаваемого файла сначала проверяет оператор, т.е. компания Калуга-Астрал, после успешной проверки оператором файлы отсылаются непосредственному адресату получения, например, в ПФР.

При возникновении проблем с передачей отчетности, в том числе по расшифровке переданного файла, можно перезвонить непосредственно оператору Калуга-Астрал и попросить помощи:

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

Дозвониться до оператора совсем несложно, в отличие от горячей линии 1С, и работа по решению проблем оператором выполняется без задержек — в момент обращения.

Обратиться в техподдержку Калуга-Астрал один из самых простых вариантов решить проблемы. Работа выполняется профессионально и бесплатно в рамках приобретенного сервиса 1С:Отчетность .

Настройка криптографии

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

  • свои экспертные рекомендации, которые помогали нам решить проблему у наших клиентов;
  • общий список рекомендации 1С, включающий работу с ОС и 1С одновременно.

Рекомендации Бухэксперт8

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

Как зайти в настройки учетной записи документооборота?

В разных конфигурациях откройте вкладку Список заявлений : справочник Организации — ЭДО — Список заявлений .

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

В открывшемся окне можно:

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

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

Если предложенные шаги не привели к решению проблемы — переустановите криптопровайдер.

Полный список рекомендаций 1С

Полный список рекомендаций 1С для устранения ошибки в операционной системе:

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

Действия по исправлению ошибки в 1С:

  • Пометить на удаление имя сертификата ЭЦП, и поставив префикс Не использовать , чтобы не спутать с новым элементом справочника.
  • Добавить сертификат из хранилища сертификатов, для которого была проведена повторная установка.
  • Провести Тест настроек сертификата .
  • Указать новый элемент справочника Сертификаты ЭЦП в Соглашении.
  • Провести Тест настроек соглашения .

Если Вы еще не являетесь подписчиком системы БухЭксперт8:

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

Получите еще секретный бонус и полный доступ к справочной системе БухЭксперт8 на 14 дней бесплатно

Похожие публикации

Карточка публикации

Добавить комментарий Отменить ответ

Для отправки комментария вам необходимо авторизоваться или зарегистрироваться.

Вы можете задать еще вопросов

Доступ к форме «Задать вопрос» возможен только при оформлении полной подписки на БухЭксперт8.
Оформить заявку от имени Юр. или Физ. лица вы можете здесь >>

Нажимая кнопку «Задать вопрос», я соглашаюсь с
регламентом БухЭксперт8.ру >>

Часто задаваемые вопросы

Вопрос 11. На отправленную отчетность не приходят ответы от контролирующего органа. Как поступить в данной ситуации?

Ответ:

Необходимо выполнить следующие действия:

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

Вопрос 12. Как отследить документооборот (посмотреть квитанцию и протокол)?

Ответ:

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

Для того чтобы просмотреть содержимое, дважды щелкните по наименованию полученного документа (Протокол/Результат приема).

Таким образом, Вы можете просмотреть каждое полученное вложение.

Вопрос 13. В настройках организации не задан код ФСГС.

Ответ:

Данный реквизит необходимо заполнить.

Вопрос 14. Как принять информацию на подключение к сервису 1С-Отчетность?

Ответ:

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

Для этого выполните следующие действия:

Вопрос 15. Что нужно учесть при переносе сервиса 1С-Отчетность с одного компьютера на другой?

Ответ:

Для переноса сервиса 1С-Отчетность с одного компьютера на другой необходимо следующее:

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

Вопрос 16. Как включить автоматический обмен с сервером?

Ответ:

Вопрос 17. Как отследить документооборот (посмотреть квитанцию и протокол)?

Ответ:

Ответ:

Для того чтобы настроить способ формирования подтверждения получения требования, необходимо перейти:

2.0: Организация — Документооборот — Учетная запись — Показать расширенные настройки

3.0: Регламентированные отчеты — Настройки — Обмен в универсальном формате — Учетная запись — Показать расширенные настройки

Квитанция о подтверждении получения требования — третий по счету зеленый индикатор.

Вопрос 19. Как распечатать ответ от контролирующих органов?

Ответ:

Ответ:

Вопрос 21. Что нужно учесть при переносе сервиса 1С-Отчетность с одного компьютера на другой?

Ответ:

Для переноса сервиса 1С-Отчетность с одного компьютера на другой необходимо следующее:

Ответ:

Вопрос 23. Настройка доступа к сети.

Ответ:

2. Обмен с Росалкогольрегулированием

4. Обмен с Росприроднадзором

5. Обновления 1С/модуля документооборота

6. Обновления учетной записи

Если настроена проверка SSL – отключить

Вопрос 24. Где узнать имя контейнера ключей?

Ответ:

Вопрос 25. Ошибка XSD-схемы.

Ответ:

Ошибка XSD-схемы связана с некорректным заполнением отчета.
Обычно причина ошибки указана в протоколе, после слов «Ошибка XSD-схемы»
Если причина не указана, необходимо проверить файл на ошибки, нажав кнопку «Проверить в интернете» в форме отчета.
В том случае, если ошибок при проверке в интернете выявлено не было, необходимо выгрузить файл отчетности, и проверить его в сервисе FLK
Для проверки отчета в сервисе FLK, нажмите на кнопку Обзор, и выберите необходимый файл отчетности в формате *.xml. После проверки будет выведен список выявленных ошибок в файле.
Если ошибка XSD-схемы возникает при отправке запроса, исходящего документа, или ответа на требование, в этом случае необходимо обновить конфигурацию 1С до актуальной версии.

Логотип 1С Отчетность

Как получить сертификат для сервиса 1С Отчетность?

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

2. Получить, установить и настроить на рабочую машину свежую версию криптопровайдера.

  • ViPNet CSP (бесплатная);
  • КриптоПро CSP (платная с триальным периодом),
  • Ф.И.О. руководителя;
  • наименование, КПП, ОГРН, юридический адрес (для юридического лица);
  • коды ФНС, ПФР, ФСС.

Если на ПК установлен сторонний сертификат ЭП на эту организацию, то из него могут быть заполнены:

  • краткое наименование юридического лица;
  • ОГРН;
  • должность и подразделение (для юридического лица);
  • регистрационный номер ФСС (при наличии);
  • адрес электронной почты.

5. Определить органы, с которыми будет реализован электронный документооборот, например, ФНС России. Сервис дает возможность наладить его не только с налоговыми органами, но и с:

  • органами Росстата – одним или несколькими;
  • ПФР;
  • ФСС;
  • ФТС;
  • Росалкогольрегулированием;
  • Росприроднадзором.

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

Напомним, что чтобы заявка не была отклонена, необходимо соблюдение двух условий:

Баннер 1С Отчетность

Установка и настройка сертификата для 1С Отчетность

  • отправка отчетной документации
  • электронный документооборот с подключенными контролирующими органами.

Также следует настроить доступ к внешним (ФНС, ПФР, Росстатом, ФСРАР, ФСС, Росприроднадзором, Банком России и т.п.) и вспомогательными ресурсами, осуществляющих автоматические загрузку, подключение внешних модулей, обновление, техподдержку, установку криптопровайдеров):

Как продлить личный сертификат 1С Отчетность?

Личный сертификат имеет ограниченный срок годности – 365 дней, после чего его следует продлить, точнее, переиздать. К тому времени, как истекают или истекли сроки действия сертификата и (или) лицензии, станут активными флажки:

  • краткого наименования юридического лица;
  • кода ОГРН;
  • электронной почты;
  • региона (при работе с алкогольной продукцией);
  • владельца ЭП;
  • СНИЛСа владельца ЭП;
  • подразделения, должности владельца.

Переиздание сертификата ЭП сопровождается перегенерацией ключа ЭП. В случае если

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

Получив заявку на переиздание сертификата, представитель ЭДО свяжется с вами по указанным контактам. После одобрения заявки можно завершить настройку в вышеописанном порядке.

Ошибки при настройке и продлении сертификата

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

Не удалось установить сертификат

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

Сертификат руководителя не валиден

  • HKEY_LOCAL_MACHINESOFTWAREMicrosoftCryptographyOIDEncodingType 1CryptDllImportPublicKeyInfoEx1.2.643.7.1.1.1.1;
  • HKEY_LOCAL_MACHINESOFTWAREWow6432NodeMicrosoftCryptographyOIDEncodingType 1CryptDllImportPublicKeyInfoEx1.2.643.7.1.1.1.1 (при 32-разрядной ОС ее может не быть),

после чего перезагрузить компьютер. Проблема должна решится.

Сертификат не найден или недоступен

Также может помочь решить проблему:

  • указание сертификата вручную;
  • переустановка сертификата, повторная установка в реестр
  • установка в криптопровайдере сертификата в личные.

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

Читайте также:

  • Ип фотограф как оформить
  • При оформлении документа содержащего информацию подпадающую под разные пункты перечня кт необходимо
  • Особенности рассмотрения споров по договорам добровольного страхования
  • Приказ фсб о денежном довольствии военнослужащих и предоставлении им отдельных выплат
  • Апробация как оформить документы

Offline

levandowskiy

 


#1
Оставлено
:

27 января 2014 г. 7:43:51(UTC)

levandowskiy

Статус: Участник

Группы: Участники

Зарегистрирован: 18.12.2013(UTC)
Сообщений: 27

Сказал(а) «Спасибо»: 14 раз

Здравствуйте, уважаемые форумчане!

Есть следующая задача: Зашифровать zip-архив со следующими параметрами:

  1. Указать в качестве выходного формата PKCS#7 Message в DER-кодировке (должен получиться файл формата .p7m или .enc);
  2. В свойствах шифрования указать свой сертификат, а в списке сертификатов получателей выбрать сертификат X

Прошу вас указать, какие примеры из samples реализуют подобный функционал… Если таких примеров нет, то дайте хотя бы ссылку на мат. часть (RFC, стандарты…), где можно посмотреть, как это сделать.

И еще один вопрос в догонку: где можно почитать про p7m-формат.

Отредактировано пользователем 28 января 2014 г. 10:03:06(UTC)
 | Причина: Дополнение


Вверх


Offline

levandowskiy

 


#2
Оставлено
:

3 февраля 2014 г. 8:02:47(UTC)

levandowskiy

Статус: Участник

Группы: Участники

Зарегистрирован: 18.12.2013(UTC)
Сообщений: 27

Сказал(а) «Спасибо»: 14 раз

Написал следующий код для решения обозначенной в теме задачи. Функция DEREncoded2(String, X509Certificate, X509Certificate) шифрует zip-архив и генерирует файл p7m. Правда до этого дело не доходит так как при вызове функции вылетает java.security.InvalidKeyException на строке, помеченной комментарием (// вот здесь вылетает исключение)

Код:


    public static final void DEREncoded2(String path,
            java.security.cert.X509Certificate publicSenderCert,
            java.security.cert.X509Certificate responderCert) throws IOException,
            Asn1Exception, CertificateEncodingException, NoSuchAlgorithmException,
            InvalidKeyException, SignatureException, InvalidAlgorithmParameterException,
            NoSuchPaddingException, IllegalBlockSizeException, BadPaddingException {
        
        byte[] buffer = Array.readFile(path);
        KeyPair ephemerialPair = generateKeyPair(JCP.GOST_DEGREE_NAME);
        
        PublicKey publicKey = responderCert.getPublicKey();
        KeyAgreement senderKeyAgree = KeyAgreement.getInstance(JCP.GOST_DH_NAME);
//        byte[] sv = { 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11 };
        senderKeyAgree.init(ephemerialPair.getPrivate(), new IvParameterSpec(sv), null); // вот здесь вылетает исключение
        senderKeyAgree.doPhase(publicKey, true);
        SecretKey agreementKey = senderKeyAgree.generateSecret(CryptoProvider.GOST_CIPHER_NAME);
        
        KeyGenerator kg = KeyGenerator.getInstance(CryptoProvider.GOST_CIPHER_NAME);
        ParamsInterface paramss = AlgIdSpec.getDefaultCryptParams();
        kg.init(paramss);
        SecretKey randomSymmKey = kg.generateKey();
        byte[] key = encryptKey("GOST28147/CFB/NoPadding", randomSymmKey, agreementKey);
        Cipher cip = Cipher.getInstance("GOST28147/CFB/NoPadding");
        cip.init(Cipher.ENCRYPT_MODE, randomSymmKey, (SecureRandom) null);
        byte[] iv = cip.getIV();
        byte[] cipher = cip.doFinal(buffer, 0, buffer.length);

        /* Формирование CMS-сообщения */
        final ContentInfo all = new ContentInfo();
        all.contentType
                = new Asn1ObjectIdentifier(new OID(STR_CMS_OID_ENVELOPED).value);
        final EnvelopedData cms = new EnvelopedData();
        all.content = cms;

        cms.version = new CMSVersion(0);

        cms.recipientInfos = new RecipientInfos(1);
        cms.recipientInfos.elements = new RecipientInfo[1];
        cms.recipientInfos.elements[0] = new RecipientInfo();

        final KeyTransRecipientInfo keytrans = new KeyTransRecipientInfo();

        keytrans.version = new CMSVersion(0);

        final Asn1BerEncodeBuffer ebuf = new Asn1BerEncodeBuffer();
        final SubjectPublicKeyInfo spki = new SubjectPublicKeyInfo();
        final Asn1BerDecodeBuffer dbuff = new Asn1BerDecodeBuffer(
                publicSenderCert.getPublicKey().getEncoded());
        spki.decode(dbuff);
        dbuff.reset();
        final AlgIdInterface algid = new AlgIdSpec(spki.algorithm);
        final AlgorithmIdentifier id = (AlgorithmIdentifier) algid.getDecoded();
        id.encode(ebuf);
        Asn1BerDecodeBuffer dbuf = new Asn1BerDecodeBuffer(ebuf.getMsgCopy());
        keytrans.keyEncryptionAlgorithm = new KeyEncryptionAlgorithmIdentifier();
        keytrans.keyEncryptionAlgorithm.decode(dbuf);
        ebuf.reset();
        dbuf.reset();
        keytrans.rid = new RecipientIdentifier();
        final IssuerAndSerialNumber issuer = new IssuerAndSerialNumber();
        final X500Principal issuerName = responderCert.getIssuerX500Principal();
        dbuf = new Asn1BerDecodeBuffer(issuerName.getEncoded());
        issuer.issuer = new Name();
        final RDNSequence rnd = new RDNSequence();
        rnd.decode(dbuf);
        issuer.issuer.set_rdnSequence(rnd);
        issuer.serialNumber = new CertificateSerialNumber(
                responderCert.getSerialNumber());
        keytrans.rid.set_issuerAndSerialNumber(issuer);
        dbuf.reset();
        final GostR3410_KeyTransport encrKey = new GostR3410_KeyTransport();
        dbuf = new Asn1BerDecodeBuffer(key);
        encrKey.sessionEncryptedKey = new Gost28147_89_EncryptedKey();
        encrKey.sessionEncryptedKey.decode(dbuf);
        dbuf.reset();
        encrKey.transportParameters = new GostR3410_TransportParameters();
        encrKey.transportParameters.encryptionParamSet
                = new Gost28147_89_ParamSet(algid.getCryptParams()
                        .getOID().value);
        encrKey.transportParameters.ephemeralPublicKey = new SubjectPublicKeyInfo();
        dbuf = new Asn1BerDecodeBuffer(
                publicSenderCert.getPublicKey().getEncoded());
        encrKey.transportParameters.ephemeralPublicKey.decode(dbuf);
        dbuf.reset();
        encrKey.transportParameters.ukm = new Asn1OctetString(sv);
        encrKey.encode(ebuf);
        keytrans.encryptedKey = new EncryptedKey(ebuf.getMsgCopy());
        ebuf.reset();
        cms.recipientInfos.elements[0].set_ktri(keytrans);

        cms.encryptedContentInfo = new EncryptedContentInfo();
        final OID contentType = new OID(STR_CMS_OID_DATA);
        cms.encryptedContentInfo.contentType = new ContentType(contentType.value);
        final Gost28147_89_Parameters params = new Gost28147_89_Parameters();
        params.iv = new Gost28147_89_IV(iv);
        params.encryptionParamSet
                = new Gost28147_89_ParamSet(paramss.getOID().value);
        cms.encryptedContentInfo.contentEncryptionAlgorithm
                = new ContentEncryptionAlgorithmIdentifier(
                        _Gost28147_89_EncryptionSyntaxValues.id_Gost28147_89,
                        params);
        cms.encryptedContentInfo.encryptedContent = new EncryptedContent(cipher);

        all.encode(ebuf);

        Array.writeFile(path + ".p7m", ebuf.getMsgCopy());
    }

Функция generateKeyPair:

Код:


    public static final KeyPair generateKeyPair(String algorithm)
            throws NoSuchAlgorithmException {
        final KeyPairGenerator keyGen = KeyPairGenerator.getInstance(algorithm);
        return keyGen.generateKeyPair();
    }

Вот стектрейс исключения:

Код:


03.02.2014 9:53:55 ru.CryptoPro.JCP.tools.Starter check
INFO: Loading JCP 1.0.54 36641
03.02.2014 9:53:55 ru.CryptoPro.JCP.tools.Starter check
INFO: JCP loaded.
03.02.2014 9:53:59 ru.CryptoPro.Crypto.Key.KeyAgreement engineInit
WARNING: Параметры ключа не соответствуют алгоримам подписи ГОСТ и обмена Диффи-Хелмана
java.security.InvalidKeyException: Параметры ключа не соответствуют алгоримам подписи ГОСТ и обмена Диффи-Хелмана
	at ru.CryptoPro.Crypto.Key.KeyAgreement.engineInit(Unknown Source)
	at javax.crypto.KeyAgreement.a(DashoA13*..)
	at javax.crypto.KeyAgreement.a(DashoA13*..)
	at javax.crypto.KeyAgreement.init(DashoA13*..)
	at org.cashcom.nbch.utilities.CryptoProUtilities.DEREncoded2(CryptoProUtilities.java:708)
	at org.cashcom.nbch.utilities.CryptoProUtilities.main(CryptoProUtilities.java:1058)
Exception in thread "main" java.security.InvalidKeyException: Параметры ключа не соответствуют алгоримам подписи ГОСТ и обмена Диффи-Хелмана
	at ru.CryptoPro.Crypto.Key.KeyAgreement.engineInit(Unknown Source)
	at javax.crypto.KeyAgreement.a(DashoA13*..)
	at javax.crypto.KeyAgreement.a(DashoA13*..)
	at javax.crypto.KeyAgreement.init(DashoA13*..)
	at org.cashcom.nbch.utilities.CryptoProUtilities.DEREncoded2(CryptoProUtilities.java:708)
	at org.cashcom.nbch.utilities.CryptoProUtilities.main(CryptoProUtilities.java:1058)
Java Result: 1
BUILD SUCCESSFUL (total time: 6 seconds)

Подскажите, пожалуйста, о каком несоответствии параметров ключа идет речь и что необходимо исправить?


Вверх


Offline

Евгений Афанасьев

 


#3
Оставлено
:

3 февраля 2014 г. 8:52:43(UTC)

Евгений Афанасьев

Статус: Сотрудник

Группы: Участники

Зарегистрирован: 06.12.2008(UTC)
Сообщений: 3,782
Российская Федерация
Откуда: Крипто-Про

Сказал(а) «Спасибо»: 20 раз
Поблагодарили: 655 раз в 618 постах

Алгоритм в generateKeyPair(String algorithm) должен быть «GOST3410DH» (CryptoProvider.GOST_DH_NAME) или «GOST3410DHEPH» (CryptoProvider.GOST_EPH_DH_NAME).

Отредактировано пользователем 3 февраля 2014 г. 8:55:41(UTC)
 | Причина: Не указана

Тех. поддержка
База знаний
Логирование JCP
Логирование JTLS
Тест JCP и сбор диаг. информации
Скачать JCP, JCSP и JTLS
Скачать Android CSP + SDK


Вверх

thanks 1 пользователь поблагодарил Евгений Афанасьев за этот пост.

levandowskiy

оставлено 03.02.2014(UTC)


Offline

levandowskiy

 


#4
Оставлено
:

10 февраля 2014 г. 7:47:23(UTC)

levandowskiy

Статус: Участник

Группы: Участники

Зарегистрирован: 18.12.2013(UTC)
Сообщений: 27

Сказал(а) «Спасибо»: 14 раз

Получил на выходе заветный p7m, но на стороне получателя не могут его расшифровать. Думаю, что проблема, либо с моим шифрованием, либо с формированием cms-сообщения.
Так как шифровать нужно на сертификате получателя, то шифрую так:

  1. Генерирую эфемерную ключевую пару
  2. Генерирую ключ согласования из эфемерного закрытого и сертификата получателя
  3. Создаю случайный секретный ключ
  4. Шифрую секретный ключ на ключе согласования
  5. Шифрую данные случайным секретным ключом

А дальше формирую CMS-сообщение как в CMSSignAndEncrypt из Samples/sample-sources/CMS_samples.

Вот код моей функции шифрования и получения p7m, а также всех используемых в ней функций:

Код:


public static final void DEREncoded2(String path,
		java.security.cert.X509Certificate publicSenderCert,
		java.security.cert.X509Certificate responderCert) throws IOException,
		Asn1Exception, CertificateEncodingException, NoSuchAlgorithmException,
		InvalidKeyException, SignatureException, InvalidAlgorithmParameterException,
		NoSuchPaddingException, IllegalBlockSizeException, BadPaddingException {
	
	/* Получил данные для шифрования */
	byte[] buffer = Array.readFile(path);
	
	/* Сгенерировал эфемерную пару ключей */
	KeyPair ephemerialPair = generateKeyPair(CryptoProvider.GOST_EPH_DH_NAME);
	
	/* Сгенерировал ключ согласования из эфемерного закрытого и сертификата получателя */
	// sv = { 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11 }
	SecretKey agreementKey = generateAgreementKey(ephemerialPair.getPrivate(), responderCert, sv);

	/* Взял параметры из контрольной панели (по-умолчанию) */
	ParamsInterface paramss = AlgIdSpec.getDefaultCryptParams();
	
	/* Создал секретный ключ с параметрами из контрольной панели */
	SecretKey randomSymmKey = generateSymmetricKey();
	
	/* Зашифровал секретный ключ на ключе согласования */
	byte[] key = encryptKey("GOST28147/CFB/NoPadding", randomSymmKey, agreementKey);
	
	/* И, наконец, шифрую данные */
	Cipher cip = Cipher.getInstance("GOST28147/CFB/NoPadding");
	cip.init(Cipher.ENCRYPT_MODE, randomSymmKey, (SecureRandom) null);
	byte[] iv = cip.getIV();
	byte[] cipher = cip.doFinal(buffer, 0, buffer.length);

	/* Формирование CMS-сообщения */
	final ContentInfo all = new ContentInfo();
	all.contentType
			= new Asn1ObjectIdentifier(new OID(STR_CMS_OID_ENVELOPED).value);
	final EnvelopedData cms = new EnvelopedData();
	all.content = cms;

	cms.version = new CMSVersion(0);

	cms.recipientInfos = new RecipientInfos(1);
	cms.recipientInfos.elements = new RecipientInfo[1];
	cms.recipientInfos.elements[0] = new RecipientInfo();

	final KeyTransRecipientInfo keytrans = new KeyTransRecipientInfo();

	keytrans.version = new CMSVersion(0);

	final Asn1BerEncodeBuffer ebuf = new Asn1BerEncodeBuffer();
	final SubjectPublicKeyInfo spki = new SubjectPublicKeyInfo();
	final Asn1BerDecodeBuffer dbuff = new Asn1BerDecodeBuffer(
			publicSenderCert.getPublicKey().getEncoded());
	spki.decode(dbuff);
	dbuff.reset();
	final AlgIdInterface algid = new AlgIdSpec(spki.algorithm);
	final AlgorithmIdentifier id = (AlgorithmIdentifier) algid.getDecoded();
	id.encode(ebuf);
	Asn1BerDecodeBuffer dbuf = new Asn1BerDecodeBuffer(ebuf.getMsgCopy());
	keytrans.keyEncryptionAlgorithm = new KeyEncryptionAlgorithmIdentifier();
	keytrans.keyEncryptionAlgorithm.decode(dbuf);
	ebuf.reset();
	dbuf.reset();
	keytrans.rid = new RecipientIdentifier();
	final IssuerAndSerialNumber issuer = new IssuerAndSerialNumber();
	final X500Principal issuerName = responderCert.getIssuerX500Principal();
	dbuf = new Asn1BerDecodeBuffer(issuerName.getEncoded());
	issuer.issuer = new Name();
	final RDNSequence rnd = new RDNSequence();
	rnd.decode(dbuf);
	issuer.issuer.set_rdnSequence(rnd);
	issuer.serialNumber = new CertificateSerialNumber(
			responderCert.getSerialNumber());
	keytrans.rid.set_issuerAndSerialNumber(issuer);
	dbuf.reset();
	final GostR3410_KeyTransport encrKey = new GostR3410_KeyTransport();
	dbuf = new Asn1BerDecodeBuffer(key);
	encrKey.sessionEncryptedKey = new Gost28147_89_EncryptedKey();
	encrKey.sessionEncryptedKey.decode(dbuf);
	dbuf.reset();
	encrKey.transportParameters = new GostR3410_TransportParameters();
	encrKey.transportParameters.encryptionParamSet
			= new Gost28147_89_ParamSet(algid.getCryptParams()
					.getOID().value);
	encrKey.transportParameters.ephemeralPublicKey = new SubjectPublicKeyInfo();
	dbuf = new Asn1BerDecodeBuffer(
			publicSenderCert.getPublicKey().getEncoded());
	encrKey.transportParameters.ephemeralPublicKey.decode(dbuf);
	dbuf.reset();
	encrKey.transportParameters.ukm = new Asn1OctetString(sv);
	encrKey.encode(ebuf);
	keytrans.encryptedKey = new EncryptedKey(ebuf.getMsgCopy());
	ebuf.reset();
	cms.recipientInfos.elements[0].set_ktri(keytrans);

	cms.encryptedContentInfo = new EncryptedContentInfo();
	final OID contentType = new OID(STR_CMS_OID_DATA);
	cms.encryptedContentInfo.contentType = new ContentType(contentType.value);
	final Gost28147_89_Parameters params = new Gost28147_89_Parameters();
	params.iv = new Gost28147_89_IV(iv);
	params.encryptionParamSet
			= new Gost28147_89_ParamSet(paramss.getOID().value);
	cms.encryptedContentInfo.contentEncryptionAlgorithm
			= new ContentEncryptionAlgorithmIdentifier(
					_Gost28147_89_EncryptionSyntaxValues.id_Gost28147_89,
					params);
	cms.encryptedContentInfo.encryptedContent = new EncryptedContent(cipher);

	all.encode(ebuf);

	Array.writeFile(path + ".p7m", ebuf.getMsgCopy());
}

public static final SecretKey generateAgreementKey(Key senderKey,
		Certificate responderCertificate, byte[] startVector)
		throws NoSuchAlgorithmException, InvalidKeyException,
		InvalidAlgorithmParameterException {

	/* Ключ обмена, соответствующий закрытому ключу */
	PublicKey publicKey = responderCertificate.getPublicKey();

	/* создание генератора ключей согласования */
	KeyAgreement senderKeyAgree = KeyAgreement.getInstance(JCP.GOST_DH_NAME);

	/* Инициализация генератора ключей согласования */
	senderKeyAgree.init(senderKey, new IvParameterSpec(startVector), null);

	/* Фаза согласования открытого и закрытого ключей */
	senderKeyAgree.doPhase(publicKey, true);

	/* Генерация ключа согласования */
	return senderKeyAgree.generateSecret(CryptoProvider.GOST_CIPHER_NAME);
}

public static final SecretKey generateSymmetricKey(ParamsInterface... params)
		throws NoSuchAlgorithmException, InvalidAlgorithmParameterException {

	/* Создание генератора симметричных ключей шифрования */
	KeyGenerator kg = KeyGenerator.getInstance(CryptoProvider.GOST_CIPHER_NAME);

	/* Установка параметров шифрования */
	kg.init(params.length == 0 ? AlgIdSpec.getDefaultCryptParams() : params[0]);

	/* Генерация симметричного ключа шифрования */
	return kg.generateKey();
}

public static final byte[] encryptKey(String cipherMode, SecretKey toEncrypt,
		SecretKey byEncrypt) throws NoSuchAlgorithmException,
		NoSuchPaddingException, InvalidKeyException, IllegalBlockSizeException {

	/* Получение экземпляра шифратора */
	Cipher cipher = Cipher.getInstance(cipherMode);

	/* Инициализация шифратора в режиме шифрования ключей */
	cipher.init(Cipher.WRAP_MODE, toEncrypt, (SecureRandom) null);

	/* Шифрование ключа */
	return cipher.wrap(byEncrypt);
}

public static final KeyPair generateKeyPair(String algorithm)
		throws NoSuchAlgorithmException {
	final KeyPairGenerator keyGen = KeyPairGenerator.getInstance(algorithm);
	return keyGen.generateKeyPair();
}

Подскажите пожалуйста по правильному ли алгоритму я шифрую данные или шифрование на сертификате выполняется как-либо по-другому?
Согласно какому RFC формируются p7m-файлы и обоснованно ли считать, что это те же CMS как в RFC 5652?
Конечно, был бы очень признателен, если бы вы указали на ошибки в коде, но особо на это не надеюсь.


Вверх


Offline

Евгений Афанасьев

 


#5
Оставлено
:

10 февраля 2014 г. 9:05:50(UTC)

Евгений Афанасьев

Статус: Сотрудник

Группы: Участники

Зарегистрирован: 06.12.2008(UTC)
Сообщений: 3,782
Российская Федерация
Откуда: Крипто-Про

Сказал(а) «Спасибо»: 20 раз
Поблагодарили: 655 раз в 618 постах

Возможно, у вас с вектором что-то не то: byte[] iv = cip.getIV();
Посмотрите еще раз пример, вектор получают после зашифрования данных до зашифрования симм. ключа:

Код:


final Cipher cipher = Cipher.getInstance(CIPHER_MODE);
cipher.init(Cipher.ENCRYPT_MODE, simm, (SecureRandom) null);
final byte[] iv = cipher.getIV();
final byte[] text = cipher.doFinal(buffer, 0, buffer.length);

//Зашифрование симметричного ключа на ключе согласования отправителя
cipher.init(Cipher.WRAP_MODE, alisaSecret, (SecureRandom) null);
final byte[] key = cipher.wrap(simm);

Отредактировано пользователем 10 февраля 2014 г. 9:38:41(UTC)
 | Причина: Не указана

Тех. поддержка
База знаний
Логирование JCP
Логирование JTLS
Тест JCP и сбор диаг. информации
Скачать JCP, JCSP и JTLS
Скачать Android CSP + SDK


Вверх

thanks 1 пользователь поблагодарил Евгений Афанасьев за этот пост.

levandowskiy

оставлено 11.02.2014(UTC)


Offline

levandowskiy

 


#6
Оставлено
:

10 февраля 2014 г. 12:37:52(UTC)

levandowskiy

Статус: Участник

Группы: Участники

Зарегистрирован: 18.12.2013(UTC)
Сообщений: 27

Сказал(а) «Спасибо»: 14 раз

Автор: afev Перейти к цитате

Возможно, у вас с вектором что-то не то: byte[] iv = cip.getIV();
Посмотрите еще раз пример, вектор получают после зашифрования данных до зашифрования симм. ключа:

Код:


final Cipher cipher = Cipher.getInstance(CIPHER_MODE);
cipher.init(Cipher.ENCRYPT_MODE, simm, (SecureRandom) null);
final byte[] iv = cipher.getIV();
final byte[] text = cipher.doFinal(buffer, 0, buffer.length);

//Зашифрование симметричного ключа на ключе согласования отправителя
cipher.init(Cipher.WRAP_MODE, alisaSecret, (SecureRandom) null);
final byte[] key = cipher.wrap(simm);

Вектор переставил на место как в примере, получилось следующее:

Код:

public static final void DEREncoded2(String path,
            java.security.cert.X509Certificate publicSenderCert,
            java.security.cert.X509Certificate responderCert) throws IOException,
            Asn1Exception, CertificateEncodingException, NoSuchAlgorithmException,
            InvalidKeyException, SignatureException, InvalidAlgorithmParameterException,
            NoSuchPaddingException, IllegalBlockSizeException, BadPaddingException {

        byte[] buffer = Array.readFile(path);
        KeyPair ephemerialPair = generateKeyPair(CryptoProvider.GOST_EPH_DH_NAME);
        SecretKey agreementKey = generateAgreementKey(ephemerialPair.getPrivate(), responderCert, sv);

        ParamsInterface paramss = AlgIdSpec.getDefaultCryptParams();
        SecretKey randomSymmKey = generateSymmetricKey();
        Cipher cip = Cipher.getInstance("GOST28147/CFB/NoPadding");
        cip.init(Cipher.ENCRYPT_MODE, randomSymmKey, (SecureRandom) null);
        byte[] iv = cip.getIV();
        byte[] cipher = cip.doFinal(buffer, 0, buffer.length);
        byte[] key = encryptKey("GOST28147/CFB/NoPadding", randomSymmKey, agreementKey);

        /* Формирование CMS-сообщения */
        final ContentInfo all = new ContentInfo();
        all.contentType
                = new Asn1ObjectIdentifier(new OID(STR_CMS_OID_ENVELOPED).value);
        final EnvelopedData cms = new EnvelopedData();
        all.content = cms;

        cms.version = new CMSVersion(0);

        cms.recipientInfos = new RecipientInfos(1);
        cms.recipientInfos.elements = new RecipientInfo[1];
        cms.recipientInfos.elements[0] = new RecipientInfo();

        final KeyTransRecipientInfo keytrans = new KeyTransRecipientInfo();

        keytrans.version = new CMSVersion(0);

        final Asn1BerEncodeBuffer ebuf = new Asn1BerEncodeBuffer();
        final SubjectPublicKeyInfo spki = new SubjectPublicKeyInfo();
        final Asn1BerDecodeBuffer dbuff = new Asn1BerDecodeBuffer(
                publicSenderCert.getPublicKey().getEncoded());
        spki.decode(dbuff);
        dbuff.reset();
        final AlgIdInterface algid = new AlgIdSpec(spki.algorithm);
        final AlgorithmIdentifier id = (AlgorithmIdentifier) algid.getDecoded();
        id.encode(ebuf);
        Asn1BerDecodeBuffer dbuf = new Asn1BerDecodeBuffer(ebuf.getMsgCopy());
        keytrans.keyEncryptionAlgorithm = new KeyEncryptionAlgorithmIdentifier();
        keytrans.keyEncryptionAlgorithm.decode(dbuf);
        ebuf.reset();
        dbuf.reset();
        keytrans.rid = new RecipientIdentifier();
        final IssuerAndSerialNumber issuer = new IssuerAndSerialNumber();
        final X500Principal issuerName = responderCert.getIssuerX500Principal();
        dbuf = new Asn1BerDecodeBuffer(issuerName.getEncoded());
        issuer.issuer = new Name();
        final RDNSequence rnd = new RDNSequence();
        rnd.decode(dbuf);
        issuer.issuer.set_rdnSequence(rnd);
        issuer.serialNumber = new CertificateSerialNumber(
                responderCert.getSerialNumber());
        keytrans.rid.set_issuerAndSerialNumber(issuer);
        dbuf.reset();
        final GostR3410_KeyTransport encrKey = new GostR3410_KeyTransport();
        dbuf = new Asn1BerDecodeBuffer(key);
        encrKey.sessionEncryptedKey = new Gost28147_89_EncryptedKey();
        encrKey.sessionEncryptedKey.decode(dbuf);
        dbuf.reset();
        encrKey.transportParameters = new GostR3410_TransportParameters();
        encrKey.transportParameters.encryptionParamSet
                = new Gost28147_89_ParamSet(algid.getCryptParams()
                        .getOID().value);
        encrKey.transportParameters.ephemeralPublicKey = new SubjectPublicKeyInfo();
        dbuf = new Asn1BerDecodeBuffer(
                publicSenderCert.getPublicKey().getEncoded());
        encrKey.transportParameters.ephemeralPublicKey.decode(dbuf);
        dbuf.reset();
        encrKey.transportParameters.ukm = new Asn1OctetString(sv);
        encrKey.encode(ebuf);
        keytrans.encryptedKey = new EncryptedKey(ebuf.getMsgCopy());
        ebuf.reset();
        cms.recipientInfos.elements[0].set_ktri(keytrans);

        cms.encryptedContentInfo = new EncryptedContentInfo();
        final OID contentType = new OID(STR_CMS_OID_DATA);
        cms.encryptedContentInfo.contentType = new ContentType(contentType.value);
        final Gost28147_89_Parameters params = new Gost28147_89_Parameters();
        params.iv = new Gost28147_89_IV(iv);
        params.encryptionParamSet
                = new Gost28147_89_ParamSet(paramss.getOID().value);
        cms.encryptedContentInfo.contentEncryptionAlgorithm
                = new ContentEncryptionAlgorithmIdentifier(
                        _Gost28147_89_EncryptionSyntaxValues.id_Gost28147_89,
                        params);
        cms.encryptedContentInfo.encryptedContent = new EncryptedContent(cipher);

        all.encode(ebuf);

        Array.writeFile(path + ".p7m", ebuf.getMsgCopy());
    }

Однако, все равно получаю ответ о невозможности расшифровать сообщение.
Подскажите, как же все-таки правильно шифровать на сертификате по ГОСТ? Есть подозрение, что неправильно формируется само CMS-сообщение. Отсюда, еще несколько вопросов: есть ли примеры формирования именно p7m-файлов?


Вверх


Offline

Евгений Афанасьев

 


#7
Оставлено
:

10 февраля 2014 г. 12:48:50(UTC)

Евгений Афанасьев

Статус: Сотрудник

Группы: Участники

Зарегистрирован: 06.12.2008(UTC)
Сообщений: 3,782
Российская Федерация
Откуда: Крипто-Про

Сказал(а) «Спасибо»: 20 раз
Поблагодарили: 655 раз в 618 постах

У вас ошибка расшифрования или уже проверки подписи (после расшифрования)?
Попробуйте сначала выполнить задачу. используя пример в исходном его виде.

Тех. поддержка
База знаний
Логирование JCP
Логирование JTLS
Тест JCP и сбор диаг. информации
Скачать JCP, JCSP и JTLS
Скачать Android CSP + SDK


Вверх

thanks 1 пользователь поблагодарил Евгений Афанасьев за этот пост.

levandowskiy

оставлено 11.02.2014(UTC)


Offline

levandowskiy

 


#8
Оставлено
:

10 февраля 2014 г. 12:57:12(UTC)

levandowskiy

Статус: Участник

Группы: Участники

Зарегистрирован: 18.12.2013(UTC)
Сообщений: 27

Сказал(а) «Спасибо»: 14 раз

Автор: afev Перейти к цитате

У вас ошибка расшифрования или уже проверки подписи (после расшифрования)?
Попробуйте сначала выполнить задачу. используя пример в исходном его виде.

Судя по тому, что отвечает НБКИ ошибка связана с шифрованием.
Вот посмотрите сами:

Код:


Сообщение 006. Ошибка расшифровки файла. Проверьте, что файл зашифрован в формате DER и на оператора НБКИ, и сертификат не просрочен.
Message 006. File decryption error. File encryption encoding must be DER, the file must be encrypted with NBCH-operator certificate and the certificate must be valid.

Код:


ReceiveDateTime	 20140210122329041
Name check result	 OK
Decryption result	 FAIL
Extract result	 NO DATA
Signature check result	 NO DATA
Format check result	 
AcceptedRecords	 
LoadedRecords	 
RejectedRecords	 
RejectFile	 
OriginalFileHash	

Это то что я получаю в ответ

Отредактировано пользователем 10 февраля 2014 г. 12:57:58(UTC)
 | Причина: Не указана


Вверх


Offline

Евгений Афанасьев

 


#9
Оставлено
:

10 февраля 2014 г. 13:48:13(UTC)

Евгений Афанасьев

Статус: Сотрудник

Группы: Участники

Зарегистрирован: 06.12.2008(UTC)
Сообщений: 3,782
Российская Федерация
Откуда: Крипто-Про

Сказал(а) «Спасибо»: 20 раз
Поблагодарили: 655 раз в 618 постах

Попробуйте отладить на примере csptest или cryptcp с JCP — в одном зашифровать, в другом — расшифровать.

Тех. поддержка
База знаний
Логирование JCP
Логирование JTLS
Тест JCP и сбор диаг. информации
Скачать JCP, JCSP и JTLS
Скачать Android CSP + SDK


Вверх

thanks 1 пользователь поблагодарил Евгений Афанасьев за этот пост.

levandowskiy

оставлено 11.02.2014(UTC)


Offline

levandowskiy

 


#10
Оставлено
:

11 февраля 2014 г. 7:21:53(UTC)

levandowskiy

Статус: Участник

Группы: Участники

Зарегистрирован: 18.12.2013(UTC)
Сообщений: 27

Сказал(а) «Спасибо»: 14 раз

Автор: afev Перейти к цитате

Попробуйте отладить на примере csptest или cryptcp с JCP — в одном зашифровать, в другом — расшифровать.

cryptcp, как я понимаю — это утилита для командной строки. А вот про csptest я в первый раз слышу.

Не могли бы вы пояснить, что это за программа такая? А также (возможно скинуть ссылку) ее стоимость? cryptcp для Windows, как я понимаю, тоже платная (не входит в пакет КриптоПро CSP), тоже хотелось бы узнать ее стоимость?

Также не могли бы вы подсказать где взять пользовательскую документацию по указанным утилитам?

Отредактировано пользователем 11 февраля 2014 г. 7:31:21(UTC)
 | Причина: Не указана


Вверх

Пользователи, просматривающие эту тему

Guest

Быстрый переход
 

Вы не можете создавать новые темы в этом форуме.

Вы не можете отвечать в этом форуме.

Вы не можете удалять Ваши сообщения в этом форуме.

Вы не можете редактировать Ваши сообщения в этом форуме.

Вы не можете создавать опросы в этом форуме.

Вы не можете голосовать в этом форуме.

Обновлено: 05.06.2023

Многие организации используют в программе дополнительный сервис 1С-Отчетность . С помощью него они обмениваются отчетами и прочим электронным документооборотом с контролирующими органами непосредственно из 1С без использования сторонних программ, что очень удобно. Но усложнение программы, как всегда бывает, приводит к новым ошибкам, с которыми нужно уметь справляться.

Прочитав статью, вы:

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

Ошибка расшифровки файла

Список возможных ошибок 1С-Отчетности можно посмотреть здесь. PDF

  • Не расшифровано.
  • Не найден сертификат. Ошибка расшифровки файла документа при распаковке пакета.

22 ноября 2018 года оператор 1С-Отчетности распространил следующую информацию для партнеров 1С и пользователей, сдающих отчетность в ПФР Москвы и Московской области.

Если вы сдаете отчетность в ПФР Москвы и Московской области, то вы гарантированно получите указанную ошибку.

Возникновение ошибок

Использование криптопровайдеров ниже версий VipNet 4.2 или КриптоПро CSP 4.0 повлечет возникновение ошибок при обработке документов на стороне ПФР.

Обновление криптопровайдеров

Для исключения технических проблем при работе с ПФР, необходимо обновить криптопровайдеры до версий: VipNet 4.2 или КриптоПро CSP 4.0 и выше.

Пошаговая инструкция по обновлению криптопровайдера

Шаг 1. Откройте криптопровайдер, щелкнув мышкой по иконке VipNet СSP .

Шаг 2. Проверьте версию криптопровайдера VipNet в нижнем левом углу открывшейся формы.

Шаг 3. Обновите версию криптопровайдера по инструкции оператора Калуга Астрал, если:

  • сдаете отчетность в ПФР Москвы и Московской области;
  • версия вашего криптопровайдера VipNet ниже 4.2.

Другие причины возникновения ошибок

Проверка версии криптопровайдера

Обновление 1С

Второе не менее важное правило: перед глубоким погружением в проблему выполните две несложных проверки в1С:

  • проверьте на актуальность релиз вашей 1С;
  • уточните права пользователя, отправляющего отчетность.

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

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

Права пользователя, отправляющего отчетность

Пользователи, работающие с 1С-Отчетность , должны иметь права:

  • Право на защищенный документооборот с контролирующими органами;
  • Полные права.

Если с отчетностью работает пользователь не с полными правами, ему необходимо добавить право на защищенный документооборот, например, в Конфигураторе : меню Администрирование — Пользователи на вкладке Прочее .

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

Если проверки выполнены, а ошибка осталась — переходите к поиску решения проблемы с помощью:

  • технической поддержки Калуга-Астрал;
  • самостоятельной настройки криптографии.

Техническая поддержка Калуга-Астрал

Корректность шифровки передаваемого файла сначала проверяет оператор, т.е. компания Калуга-Астрал, после успешной проверки оператором файлы отсылаются непосредственному адресату получения, например, в ПФР.

При возникновении проблем с передачей отчетности, в том числе по расшифровке переданного файла, можно перезвонить непосредственно оператору Калуга-Астрал и попросить помощи:

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

Дозвониться до оператора совсем несложно, в отличие от горячей линии 1С, и работа по решению проблем оператором выполняется без задержек — в момент обращения.

Обратиться в техподдержку Калуга-Астрал один из самых простых вариантов решить проблемы. Работа выполняется профессионально и бесплатно в рамках приобретенного сервиса 1С:Отчетность .

Настройка криптографии

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

  • свои экспертные рекомендации, которые помогали нам решить проблему у наших клиентов;
  • общий список рекомендации 1С, включающий работу с ОС и 1С одновременно.

Рекомендации Бухэксперт8

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

Как зайти в настройки учетной записи документооборота?

В разных конфигурациях откройте вкладку Список заявлений : справочник Организации — ЭДО — Список заявлений .

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

В открывшемся окне можно:

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

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

Если предложенные шаги не привели к решению проблемы — переустановите криптопровайдер.

Полный список рекомендаций 1С

Полный список рекомендаций 1С для устранения ошибки в операционной системе:

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

Действия по исправлению ошибки в 1С:

  • Пометить на удаление имя сертификата ЭЦП, и поставив префикс Не использовать , чтобы не спутать с новым элементом справочника.
  • Добавить сертификат из хранилища сертификатов, для которого была проведена повторная установка.
  • Провести Тест настроек сертификата .
  • Указать новый элемент справочника Сертификаты ЭЦП в Соглашении.
  • Провести Тест настроек соглашения .

Помогла статья?

Получите еще секретный бонус и полный доступ к справочной системе БухЭксперт8 на 14 дней бесплатно

Похожие публикации

    Контроль дебиторской и кредиторской задолженности — одно из важных направлений.У вас нет доступа на просмотр Чтобы получить доступ:Оформите коммерческую.Иногда при работе с программой 1С может возникнуть ошибка СУБД.Для передачи покупателям счетов-фактур в формате ЭДО типовыми средствами 1С.

Карточка публикации

Данную публикацию можно обсудить в комментариях ниже.
Обратите внимание! В комментариях наши кураторы не отвечают на вопросы по программам 1С и законодательству.
Задать вопрос нашим специалистам можно по ссылке >>

Все комментарии (1)

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

Добавить комментарий Отменить ответ

Для отправки комментария вам необходимо авторизоваться.

Вы можете задать еще вопросов

Доступ к форме «Задать вопрос» возможен только при оформлении полной подписки на БухЭксперт8

Нажимая кнопку «Задать вопрос», я соглашаюсь с
регламентом БухЭксперт8.ру >>

Спасибо за отличный вебинар! Декларацию проверю перед сдачей. Очень во время 🙂

Содержание

Вы можете задать еще вопросов

Доступ к форме «Задать вопрос» возможен только при оформлении полной подписки на БухЭксперт8

Нажимая кнопку «Задать вопрос», я соглашаюсь с
регламентом БухЭксперт8.ру >>

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

Алгоритм проверки электронной подписи:

В программном продукте 1С необходимо

1. перейти в раздел «Администрирование»

2. «Обмен электронными документами»

3. «Настройка электронной подписи и шифрования»

4. На вкладке «Сертификаты» открыть используемый сертификат

5. Нажать на кнопку «Проверить»

6. Ввести пароль закрытой части ключа и нажать «Проверить»

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

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

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

Решение: связать сертификат с закрытом ключом.

Д ля этого необходимо:

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

2. Запустить криптопровайдер и выполнить установку сертификата.

Для VIPNet CSP

В окне VIPNet CSP нажать «Установить сертификат»

В открывшемся окне необходимо выбрать директорию, куда был сохранен сертификат, выбрать сохраненный ранее сертификат и нажать «Открыть».

В открывшемся мастере установки сертификатов, нажать «Далее»

При выборе хранилища необходимо выбрать «Текущий пользователь» и нажать «Далее»

В следующем окне необходимо выбрать «Найти контейнер с закрытым ключом» и нажать «Далее».

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

Для КриптоПро CSP

Запустить КриптоПро CSP. Для этого необходимо перейти в Пуск — Панель управления — КриптоПро CSP

В открывшемся окне криптопровайдера перейти на вкладку «Сервис» и нажать «Установить личный сертификат».

В следующем окне необходимо выбрать директорию расположения файла сертификата нажав кнопку «Обзор»

Указать директорию, в которую ранее был сохранён сертификат и нажать «Открыть».

В следующем окне мастера установки сертификатов поставить галочку «Найти контейнер автоматический». Контейнер должен определиться в окне ниже. Если автоматический не удалось найти контейнер необходимо нажать «Обзор» и самостоятельно указать контейнер. Затем нажать Далее.

Затем необходимо поставить галочку «Установить сертификат (цепочку сертификатов) в контейнер», нажать «Далее» и завершить установку.

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

вопросы

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

Что может послужить причиной такой ошибки

ошибка в контейнере закрытого ключа и причины её появления

  • установка сертификата впервые;
  • экспортирование данных на внешний носитель;
  • попытка просмотра ключей в контейнерах ключей;
  • загрузка информации на компьютер извне.

В целях устранения ошибки обычно бывает достаточно произвести корректную ручную переустановку сертификата.

Решение ошибки: отсутствие электронного сертификата в контейнере закрытого ключа

программа криптопро предложит указать место хранение сертификата

Необходимо выбрать файл и открыть его с помощью криптопро

Убедившись, что криптопро верно распознало путь установки сертификата, подтверждаем установку

Перед импортом сертификата надо проверить содержащуюся в нем информацию

В следующем окне можно воспользоваться двумя путями поиска нужного контейнера закрытого ключа:

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

после того, как указан контейнер, можно продолжить установку

Важно! Не забудьте поставить галку в настройках КриптоПро «установить сертификат (цепочку сертификатов) в контейнер

>

Можно завершать установку сетификата

Криптопро предложит перезаписать сертификат – соглашаемся

В следующем окне увидим информацию о том, что процесс окончен успешно. Сертификат установлен в контейнер закрытого ключа.

Готово. Сертификат установлен

Особенности версий КриптоПро

С января 2019 года квалифицированные сертификаты могут выпускаться только по ГОСТ 2012, выпуск по другому ГОСТу прекращен. Мы об этом писали ранее в статье. Важно помнить, что версии криптопро на ГОСТ 2012 работают только с версии 4.0 и выше. Все старые версии КриптоПро, для нормальной работы, потребуется обновить или заменить на актуальную. Сделать это нужно не позднее 31 декабря 2019 года.

База Зарплата и кадры государственного учреждения, редакция 3.1 (3.1.8.216)
Во время создания больничного листа, после выбора сотрудника и заполнения ЛН нажимается «Получить из ФСС». Выходит ошибка «Не удалось расшифровать файл».
В журнале регистрации: «Ошибка при вызове «РасшифрованныйФайл» менеджера криптографии.
по причине:
Ошибка вызова метода внешней компоненты
по причине:
Набор ключей не определен. »
Как поступить?

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

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

(15)В том то и дело, что сертификаты я обновила, до этого ЗУП ругался именно на них. может такая ошибка возникать из-за версии Крипто Про 4ххх, а не 5ххх?

Разве 1С к КриптоПро через внешнюю компоненту обращается? Я через МенеджерКриптографии с ним работал.

(21)Если это действительно менеджер криптографии — то он поддерживает только асимметричное шифрование. Асимметричное шифрование устроено так: если шифруют для Вас, то шифруют Вашим открытым ключом, и расшифровать можете только Вы — Вашим закрытым ключом. Причем пара Ваш открытый+Ваш закрытый ключ — уникальна. Если у Вас несколько таких пар — то важно не перепутать, ключи из разных пар не подходят друг другу, несмотря на то, что все они Ваши.
Иначе говоря — Вам нужно знать, открытым ключом из какой Вашей пары сделано шифрование — соответствующий ему закрытый ключ должен быть установлен в Вашей системе и доступен менеджеру криптографии — тогда закрытый должен подцепиться менеджером криптографии на автомате при расшифровке.

(21)Про ключи — это на уровне криптоалгоритмов. Вам возможно будет понятнее на уровне объектов 1С. Открытый ключ хранится в сертификате криптографии, и Ваш сертификат с открытым ключом передается тому, кто шифрует для Вас. Если например он шифровал 1С-кой, то он сначала выбирает Ваш сертификат (сокращенно):
ВашСертификатПолучателя = МенеджерКриптографии.ПолучитьХранилищеСертификатов(. ).НайтиПоСерийномуНомеру(. )
А потом шифрует для Вас — для Вашего сертификата
МенеджерКриптографии.Зашифровать(ШифруемыеДанные, ВашСертификатПолучателя)

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

Чтобы метод успешно расшифровал данные, необходимо чтобы:
1. в хранилище персональных сертификатов был установлен сертификат, связанный с контейнером открытого ключа;
2. сертификат был указан одним из получателей зашифрованных данных (перечислен в параметре метода Зашифровать).

В этой цитате из синтаксис-помощника ошибка, вместо «сертификат, связанный с контейнером открытого ключа» — надо читать «сертификат, связанный с контейнером ЗАКРЫТОГО ключа», т.к. расшифровка делается с помощью закрытого ключа — если его нет или он не доступен МенеджеруКриптографии (закрытый ключ сохранен не под тем пользователем например) — то ничего не расшифруется.

Читайте также:

      

  • Сообщение о ставропольской крепости
  •   

  • 4 что такое подпороговое сообщение
  •   

  • Официальное сообщение по определенному вопросу основанное на документальных данных
  •   

  • Роль российских ученых в развитии представлений о происхождении жизни на земле сообщение
  •   

  • Mrg ufa пришло сообщение о задолженности

Ошибки обновления
Обратите внимание. при обновлении возникли следующие ошибки
Не удалось расшифровать файл. Ошибка расшифровки файла документа при распаковке пакета

Ошибка расшифровки файла документа при распаковке пакета

Вариант решения:
По хорошему рекомендую проверить, состояние файлов сертификатов и их настроек в в обмен с контролирующими.
Если в составе и путях сертификатах все хорошо, то возможно при обновлениях виндовс произошли повреждения в файлах криптографа, на компьютере.
Соответственно нужна будет перестановка криптопровайдера

Вариант решения 2:
Звонить в Калуга Астрал (или Такском)

На чтение 4 мин Просмотров 1.5к. Опубликовано 28.10.2021

Удостоверяющий центр

Четыре раза в год страховщику отправляют отчетность по форме 4-ФСС. Для этого используют электронный способ. Современное программное обеспечение помогает грамотно сформировать и передать информацию. Даже при достоинствах использования цифровой технологии иногда приходится сталкиваться с некоторыми проблемами. На экране компьютера может появиться предупреждение: “Расшифровка файла и проверка ЭЦП – ошибка 10 – Нe удалось расшифровать”. Это сигнал сервера: отчет не прошел.

ошибка 10

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

Что за ошибка 10

“Страховой портал” предоставляет список кодировок с описанием ошибок, которые возникают при формировании и сдаче расчета.

Удостоверяющий центр

Цифра 10 указывает на вопросы с удостоверяющими документами в файле. Общая ошибка расшифровки означает, что отчет зашифрован с нарушениями.

Причина появления ошибки расшифровки

При отправке отчета требуется соблюдать ряд установленных правил. Обязательное условие – наличие подтвержденной электронной подписи.

Сбой происходит, если в содержимом документа есть ошибки или недействителен элемент криптографической защиты, например:

  1. Электронный ключ организации для шифрования указан неверно.
  2. Сертификат ФСС недействующий.

Электронный ключ

Сбой происходит, если электронный ключ указан неверно.

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

Проверка файла

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

Загрузите файл формата XML или создайте отчетность по инструкции, затем нажмите кнопку “Проверка”.

На экране монитора появится описание ошибок, которые предстоит исправить.

Проверка сертификатов ФСС на актуальность

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

Инструкция по замене сертификата соцстраха:

  1. На компьютере, через который происходит отправка, запустите АРМ. Откройте раздел “АРМ подписания и шифрования электронных документов”.
  2. В открытом меню выберите и нажмите кнопку “Установить сертификат уполномоченного лица ФСС”. В левом нижнем углу появится сообщение “Сертификаты установлены”. Это означает, что установка завершена.
  3. Переходите к формированию отчетности.

Проверка сертификатов

Страховой фонд своевременно обновляет сертификат ЭЦП.

Контроль достоверности

Комплект подготовленных данных подтверждается сертификатом. Недостоверность электронной подписи входит в список нарушений при расшифровке.

Способы проверки файла перед отправкой:

  1. Непосредственно в Word, Excel, Adobe PDF. Для этого применяют специальные плагины. Это подтверждает только статус ЦП.
  2. С помощью онлайн-сервисов. Так гарантируются достоверность сертификата и надежность центра, который выдал ключ.
  3. Через портал “Госуслуги”. Ресурс сделает разносторонний анализ подписи, покажет срок ее действия, владельца и удостоверяющий центр, выдавший ее. Также на сайте госуслуг можно скачать соответствующую программу, которая проведет эту работу без загрузки на сайт.

Применение сервисов

Проверку осуществляют на сайтах, подобных “Контуру Крипто”, “КриптоПро DSS”. Файл загружают на страницу выбранного сайта по инструкции. Сервис проверит подпись или сертификат и выдаст заключение на отдельной странице. Время на обработку будет зависеть от скорости работы сети.

Портал “Госуслуги”

После оформления учетной записи на портале госуслуг откроется доступ к разделу проверки сертификатов. Зайдите в меню “Справочная информация” и перейдите к “Электронной подписи”. Затем подгрузите отчет в систему. Потребуется ввести код и нажать кнопку “Проверить”. Если электронный ключ хранится в отдельном файле, его нужно тоже загрузить на сайт. Итоговый результат будет предоставлен на другой странице.

Как исправить ошибку расшифровки 10-го файла

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

Для этого следует:

  1. Войти в учетную запись.
  2. Перейти в раздел “Настройки” и выбрать опцию “Автонастройка отключена”.
  3. Подгрузить предыдущий сертификат Фонда социального страхования.
  4. Отправить отчет на сервер.
  5. Снова подключиться к режиму автонастройки.

Когда предложенные меры не дали должного результата, обратитесь в службу техподдержки. Иногда расшифровка прерывается из-за технических неполадок на сервере. После восстановления работы сервиса понадобится повторить отправку файла.

Понравилась статья? Поделить с друзьями:
  • Сообщаем наши реквизиты ошибка
  • Соно ошибка подключения к серверу
  • Соно ошибка acrord32
  • Соник генерейшен ошибка конфигурации
  • Сони тринитрон коды ошибок