Электронная подпись (ЭП) – актуальная тема на DIRECTUM Club. В том или ином виде поступают вопросы об особенностях ее использования. В статье мы расскажем, какое развитие получили механизмы ЭП в DIRECTUM 5.6.
В DIRECTUM существует стандартный механизм подписания документов ЭП. Однако срок действия сертификата ограничен, и при длительном хранении документов может возникнуть вопрос доверия к ЭП.
Для примера рассмотрим документ со сроком хранения 5 лет. Срок действия сертификата, который выдается удостоверяющим центром, как правило, составляет 1 год. Через некоторое время после подписания документа сертификат становится недействительным. Поэтому возникает вопрос, как обеспечить юридическую значимость документов через 5, 10, 75 лет и т.д.?
В новой версии мы создали новую службу проверки подписей. Она проверяет штампы времени и не требует для их использования установки КриптоПро TSP Client на каждое рабочее место. Кроме того, реализовали поддержку расширенных форматов ЭП CAdES-XL и CAdES-А. Подробнее о каждом изменении читайте далее.
Чтобы обеспечить доверие к подписанному ЭП документу, используется усовершенствованная ЭП. Такая подпись подразумевает обязательное наличие специального атрибута с доверенным временем – штампа времени.
Штамп времени позволяет:
В DIRECTUM работа со штампами времени поддерживалась и ранее. Когда сотрудник подписывал версию документа с помощью плагина GOST Encryption (по алгоритмам ГОСТ), формировалась ЭП и одновременно проставлялся штамп времени. Для установки и проверки подписей со штампами времени на каждое рабочее место сотрудников требовалось устанавливать платное ПО КриптоПро TSP Client.
В DIRECTUM 5.6. время подписания и простановки штампа разделено. Сотрудник подписывает версию документа с помощью плагина GOST Encryption или Standard Encryption (по алгоритмам 3DES, RSA, DSA, ECDSA). Простановка штампа времени осуществляется с помощью службы обработки событий. Служба проверяет подпись и получает штамп времени. После этого атрибут штампа времени добавляется в подпись.
Для пользователя процесс подписания не усложнился, простановка штампа времени происходит автоматически.
Теперь информация о штампе времени отображается отдельно от даты подписи:
Проверка штампов времени осуществляется службой проверки подписей. Она является связующим звеном между плагинами шифрования и приложениями КриптоПро TSP Client, OCSP Client. Служба проверки подписей входит в стандартную поставку.
КриптоПро TSP Client теперь достаточно установить на сервер со службой проверки подписей и службой обработки событий. При этом службы можно развернуть на одном компьютере.
Перечисленные изменения обеспечивают:
В DIRECTUM 5.6 появилась возможность формировать ЭП в расширенных форматах СadES-XL и CAdES-A. Для этого объектная модель IS-Builder дополнена методами, позволяющими добавить данные для проверки достоверности подписи и архивный штамп времени.
Модули подписания и шифрования GOST Encryption и Standard Encryption формируют электронные подписи по стандартам CAdES-BES, CAdES-T, CAdES-XL и CAdES-A. Каждый последующий стандарт включает в себя предыдущий и расширяет его возможности.
Например, CAdES-XL обеспечивает защиту от подмены сертификата и возможность оффлайн-проверки подписи. CAdES-A дополнительно к CAdES-XL обеспечивает юридическую значимость документов при их длительном хранении за счет использования архивных штампов времени.
В веб-клиенте также поддерживается проверка электронных подписей, сформированных по стандартам CAdES-BES и CAdES-T.
На базе поддержки форматов CAdES-XL и CAdES-А компания выпустила новое решение «Долговременный архив». Оно предназначено для централизованного хранения документов компании с обеспечением их юридической значимости. С обзором решения можете ознакомиться в статье на DIRECTUM Club.
По просьбе клиентов мы реализовали поддержку сертификатов, выданных через криптографический программный интерфейс Cryptography API: Next Generation (CNG). Теперь подписание CNG-сертификатами по алгоритмам RSA, DSA и ECDSA проходит корректно.
В модуле подписания и шифрования Standard Encryption поддерживается алгоритм шифрования ECDSA и возможность выбора алгоритма хеширования в подписях RSA и ECDSA (от SHA1 до SHA512 с увеличением надежности). Алгоритм хеширования задается администратором для всех пользователей.
***
Чтобы узнать больше о новинках, обратитесь к закрепленному менеджеру или воспользуйтесь формой «Заказать демонстрацию» на нашем сайте.
Для самостоятельного ознакомления с новинками версии, предназначенными для разработчиков и администраторов системы, рекомендуем для просмотра видеоролик:
Ждем ваши вопросы и комментарии. Следите за новыми материалами о DIRECTUM 5.6!
А не прорабатывался вопрос о том, что используя штамп времени и простановку штампа на письмо исходящее, можно избавится от бумаги в исх письмах? юридически возможно?
Евгений, сервисы обмена ЭД рассматривали? Там и неформализованные документы отправлять можно.
Елена, нет т к всех не подключить к этому, а хочется именно избавится от бумаги в исходящих письмах на 100%.
Присоединяюсь к вопросу Евгения, именно в такой постановке
...что используя штамп времени и простановку штампа на письмо...
Я не до конца понял о чем речь, штамп времени в том виде в котором описан здесь, является частью подписи, как его сунуть в письмо без подписи и в чем смысл?
Письмо как раз с электронной подписью, просто хочется отправлять письма организациям без использования систем обмена. Например, как это делает МинПромТорг РФ и другие гос. структуры. И при этом хотелось бы юридической значимости без подписания каких либо дополнительных документов о взаимодествии и признании подписей.
Вот только они шлют обычную PDF, в которой вместо "автографа" штамп ЭЦП, без дополнительных файлов и прочей информации.
Если в таком ключе, то скорее вам вот сюда "Появится ли в России юридически значимая электронная почта?" https://ecm-journal.ru/docs/Pojavitsja-li-v-Rossii-juridicheski-znachimaja-ehlektronnaja-pochta.aspx "По информации, размещенной на официальном сайте Госдумы, законопроект «О почтовой связи» до сих пор находится на стадии второго чтения".
Если интересно глубже технические и юридические проблемы, то статья Официальная электронная почта. Цели, трудности и целесообразность создания.
Елена, это все понятно.
А что если ставить просто штамп с информацией об ЭП (пусть даже саму ЭЦП купить, например, в криптоПро), а в случае запроса подпись будет подтверждаться штампом времени? как это сделано в решении долгосрочного архива? там логика же точно такая же. служба подписей будет переподписывать раз в год эти доки, а штамп времени подтверждать достоверность.
Цитата: "Встречается мнение, что без заключения договора или дополнительного соглашения обмен электронными документами через сервис не будет обладать юридической силой. Это не так! Юридическая значимость обмена обеспечивается действующим законодательством в этой области: следование нормативно-правовым актами, соблюдение форматов документов и регламентов обмена, использование квалифицированной ЭП.
соглашение – это показатель приоритета обмена электронными документами во взаимодействии с контрагентами. Подписать само соглашение, если решено все-таки его использовать, можно на бумаге, если так привычнее для компании. Будет ли это отдельный документ или пункт основного договора, значение не имеет.
Если соглашение заключается в электронном виде, то самый простой способ – договор оферты. В этом случае документ публикуется на сайте от имени компании и контрагенты просто присоединяются к оферте. Второй вариант, конечно, – индивидуальный договор, подписанный ЭП."
Подробнее: https://ecm-journal.ru/docs/Soglashenie-ob-obmene-ehlektronnymi-dokumentami.aspx
Эльвира, тема действительно чрезвычайно актуальна, спасибо Вам за статью!
Есть вопросы:
Коллеги, о "простановке штампа на письмо":
Не забывайте, что после того, как документ подписан электронной подписью, внесение изменений в него (в том числе - внесение в документ отметки об ЭП) приводит к недействительности ЭП, следовательно - к потере юридической значимости. Я это к тому, что дата и время, которые помещаются в штамп времени, становятся известны только в момент создания этого штампа времени, а к этому моменту, как я понял из статьи, сама ЭП уже сформирована, т.е. документ изменять нельзя.
Поэтому вместе с документом, подписанным ЭП, нужно передавать файл самой подписи. Подтверждение юридической значимости штампом времени по запросу, как предлагает Евгений - не совсем понятный вариант. А что если контрагенту, к которому Вы обратились с запросом о подтверждении, в этот момент стало невыгодно подтверждать данный документ? Кто его может заставить, кроме его собственной порядочности? Или я что-то не так понял?
>> Только теперь это стало чисто технически проще - не нужно разворачивать отдельную службу штампов времени, т.к. теперь она есть в составе коробки DIRECTUM.
Руслан, мы не поставляем службу штампов времени, используется КриптоПро TSP Server, который необходимо приобретать отдельно. Принципиальная разница - в версии 5.6 достаточно одной клиентской лицензии КриптоПро TSP Client, раньше надо было покупать лицензии на рабочие места пользователей.
>> Сертификатов ФСТЭК
В данный момент сертификат есть, крайний инспекционный контроль проводился для версии 5.4.2. Планы по инспекционному контролю 5.6 будут зависеть от реальной потребности заказчиков.
>> Руслан, мы не поставляем службу штампов времени, используется КриптоПро TSP Server, который необходимо приобретать отдельно. Принципиальная разница - в версии 5.6 достаточно одной клиентской лицензии КриптоПро TSP Client, раньше надо было покупать лицензии на рабочие места пользователей.
Дмитрий, спасибо за пояснения! Следующие вопросы:
1) Использование одной клиентской лицензии на сервере для выполнения пользовательских запросов - это же "мультиплексирование"? Нет ли тут противоречия с правилами лицензирования КриптоПро? (на всякий случай сообщая, что я ничего не понимаю в правилах лицензирования КриптоПро, просто интересуюсь, может быть вы делали такой анализ).
2) Про сертификат ФСТЭК в первом приближении понятно, а что насчет корректности встраивания (оценки влияния среды функционирования СКЗИ на выполнение ими своих функций)?
Руслан, пока отвечу на первый вопрос.
Данная схема работы не противоречит правилам лицензирования КриптоПро:
1. Простановка штампа времени для подписи выполняется отложенно, на службе обработки событий. Т.е. тут "мультиплексирования" нет в принципе.
2. Проверка штампов времени подписи выполняется через запрос к службе проверки подписей, которая уже работает с КриптоПро TSP Client. Данный вариант не запрещен лицензионным соглашением.
>> что насчет корректности встраивания (оценки влияния среды функционирования СКЗИ на выполнение ими своих функций)
Руслан, мы пока не готовы публично озвучивать планы по этой сертификации.
>>Правильно ли я понимаю, что для обеспечения юридической значимости подписи со штампом времени, сформированным в DIRECTUM, все равно необходима сертификация всей информационной системы?
Руслан, вопросы обеспечения ЮЗ документов и сертификации информационной системы - это разные вопросы. Не правильно было бы говорить о том, что для обеспечения ЮЗ документов необходимо обязательное выполнение требования сертификации информационной системы. Сертификация информационной системы подтверждает, в первую очередь защищенность информации, но не обеспечивает ЮЗ.
Подскажите, в чем может быть проблема, "Служба штампов отклонила запрос"?
Логи is-builder.sbeventprocessingproc:
28.07.2023 13:24:28.074 Main(9020) DIRECTUM_TEST ISBuilderSystem Safecall exception EOleException Служба штампов отклонила запрос <- RAISE Directum.CryptoProTsp <- Directum.EncryptionCore.EncryptionPluginException: SYSRES_SBSYS.E_TSA_REJECTION_STATUS <- в Directum.CryptoProTsp.CryptoProTimeStampProvider.ThrowFailInfoException(ITSPStamp timeStamp) <- в Directum.CryptoProTsp.CryptoProTimeStampProvider.InternalGetTimeStamp(Boolean needVerifyCertificate, SettingsContainer settings) <- в Directum.CryptoProTsp.CryptoProTimeStampProvider.GetTimeStamp(Byte[] rawData, SettingsContainer settings) <- в Directum.CryptoProTsp.TimestampManager.GetTimestampForData(Byte[] data) <- в Directum.CryptoProTsp.TimestampManager.AddStampInSignature(Byte[] signature, ITimestamp& timestamp, Byte[]& signatureWithTimestamp) <- в Directum.EncryptionCore.EncryptionPlugin.AddTimestampToSignature(String contentHash, String signature, ITimestamp& timestamp) <- в SPGostEncryption.CryptoProEncryptionPlugin.AddTimestampToSignature(String contentHash, String signature, ITimestamp& timestamp) <- RAISE EOleException <- SBPluginProxy.TSBEncryptionPlugin4Proxy.AddTimestampToSignature (2227) <- SBDataSigner.TSBDataSigner.InternalAddTimestamp<SBPluginInterfaceLibrary_TLB.IEncryptionPlugin4> (970) <- SBDataSigner.TSBDataSigner.AddTimestamp (466) <- RAISE SYSRES_SBSYS.E_TSA_REJECTION_STATUS <- SBPluginProxy.TSBEncryptionPlugin4Proxy.AddTimestampToSignature (2225) <- System.@CheckAutoResult (36533) <- SBPluginProxy.TSBEncryptionPlugin4Proxy.AddTimestampToSignature (2225) <- RERAISE <- SBPluginProxy.SBLocalizedExceptionObject (619) <- RAISE Служба штампов отклонила запрос <- SBPluginProxy.TSBEncryptionPlugin4Proxy.AddTimestampToSignature (2227) <- RERAISE <- SBDataSigner.TSBDataSigner.InternalAddTimestamp<SBPluginInterfaceLibrary_TLB.IEncryptionPlugin4> (970) <- System.@CheckAutoResult (36533) <- SBDataSigner.TSBDataSigner.InternalAddTimestamp<SBPluginInterfaceLibrary_TLB.IEncryptionPlugin4> (970) <- SBDataSigner.TSBDataSigner.AddTimestamp (466) <- RERAISE <- SBDataSigner.TSBDataSigner.AddTimestamp (468) <- SBSign.TSBSignature.AddTimestamp$1136$ActRec.$0$Body (162) <- SBSign.TSBSignature.HandleSignContent (150) <- SBSign.TSBSignature.AddTimestamp (159) <- SBEDocVer.TSBEDocumentVersion.AddTimestampToSignature (655) <- System.Win.ComObj.TAutoIntfObject.Invoke (1392) <- SBBasicClasses.TSBAutoIntfObject.Invoke (576) <- System.Win.ComObj.DispatchInvoke (1826) <- System.Win.ComObj.VarDispInvoke (1898) <- SBInter.TSBInter.InternalVarDispProc (2509) <- SBInter.TSBInter.CalculateInvoke (5786) <- SBInter.TSBInter.ExecuteInvoke (2655) <- SBInter.TSBInter.ExecuteVar (2765) <- SBInter.TSBInter.ExecuteTermExprn (2360) <- SBInter.TSBInter.ExecuteScript (2941) <- SBInter.TSBInter.ExecutePrepared (5453) <- SBInter.TSBInter.Execute (5414) <- SBScript.TSBScriptWrapper.Execute (197) <- SBEventProcessingProcessor.TSBEventProcessingProcessor.Process (629) <- SBCustomProcessLoop.TSBCustomProcessLoop.Run (98) <- SBEventProcessingProc.Finalization SBEventProcessingProc.exe 7.57.0.1036 7108 False
28.07.2023 13:24:28.090 Main(9020) DIRECTUM_TEST ISBuilderSystem Safecall exception EOleException Служба штампов отклонила запрос <- RAISE EOleException <- SBDataSigner.TSBDataSigner.AddTimestamp (468) <- SBSign.TSBSignature.AddTimestamp$1136$ActRec.$0$Body (162) <- SBSign.TSBSignature.HandleSignContent (150) <- SBSign.TSBSignature.AddTimestamp (159) <- SBEDocVer.TSBEDocumentVersion.AddTimestampToSignature (655) <- RAISE SYSRES_SBSYS.E_TSA_REJECTION_STATUS <- SBPluginProxy.TSBEncryptionPlugin4Proxy.AddTimestampToSignature (2225) <- System.@CheckAutoResult (36533) <- SBPluginProxy.TSBEncryptionPlugin4Proxy.AddTimestampToSignature (2225) <- RERAISE <- SBPluginProxy.SBLocalizedExceptionObject (619) <- RAISE Служба штампов отклонила запрос <- SBPluginProxy.TSBEncryptionPlugin4Proxy.AddTimestampToSignature (2227) <- RERAISE <- SBDataSigner.TSBDataSigner.InternalAddTimestamp<SBPluginInterfaceLibrary_TLB.IEncryptionPlugin4> (970) <- System.@CheckAutoResult (36533) <- SBDataSigner.TSBDataSigner.InternalAddTimestamp<SBPluginInterfaceLibrary_TLB.IEncryptionPlugin4> (970) <- SBDataSigner.TSBDataSigner.AddTimestamp (466) <- RERAISE <- SBDataSigner.TSBDataSigner.AddTimestamp (468) <- RERAISE <- SBSign.TSBSignature.AddTimestamp$1136$ActRec.$0$Body (162) <- System.@CheckAutoResult (36533) <- SBSign.TSBSignature.AddTimestamp$1136$ActRec.$0$Body (162) <- SBSign.TSBSignature.HandleSignContent (150) <- SBSign.TSBSignature.AddTimestamp (159) <- SBEDocVer.TSBEDocumentVersion.AddTimestampToSignature (655) <- RERAISE <- SBEDocVer.TSBEDocumentVersion.AddTimestampToSignature (659) <- System.Win.ComObj.TAutoIntfObject.Invoke (1392) <- SBBasicClasses.TSBAutoIntfObject.Invoke (576) <- System.Win.ComObj.DispatchInvoke (1826) <- System.Win.ComObj.VarDispInvoke (1898) <- SBInter.TSBInter.InternalVarDispProc (2509) <- SBInter.TSBInter.CalculateInvoke (5786) <- SBInter.TSBInter.ExecuteInvoke (2655) <- SBInter.TSBInter.ExecuteVar (2765) <- SBInter.TSBInter.ExecuteTermExprn (2360) <- SBInter.TSBInter.ExecuteScript (2941) <- SBInter.TSBInter.ExecutePrepared (5453) <- SBInter.TSBInter.Execute (5414) <- SBScript.TSBScriptWrapper.Execute (197) <- SBEventProcessingProcessor.TSBEventProcessingProcessor.Process (629) <- SBCustomProcessLoop.TSBCustomProcessLoop.Run (98) <- SBEventProcessingProc.Finalization SBEventProcessingProc.exe 7.57.0.1036 7108 False
28.07.2023 13:24:28.246 Main(9020) DIRECTUM_TEST ISBuilderSystem Safecall exception ESBUserInterpreterException Служба штампов отклонила запрос.|Сценарий "ISBAddTimestampToDocumentSignature": ошибка в строке 55. <- RAISE EOleException - SYSRES_SBSYS.E_TSA_REJECTION_STATUS <- SBPluginProxy.TSBEncryptionPlugin4Proxy.AddTimestampToSignature (2225) <- System.@CheckAutoResult (36533) <- SBPluginProxy.TSBEncryptionPlugin4Proxy.AddTimestampToSignature (2225) <- RERAISE <- SBPluginProxy.SBLocalizedExceptionObject (619) <- RAISE Служба штампов отклонила запрос <- SBPluginProxy.TSBEncryptionPlugin4Proxy.AddTimestampToSignature (2227) <- RERAISE <- SBDataSigner.TSBDataSigner.InternalAddTimestamp<SBPluginInterfaceLibrary_TLB.IEncryptionPlugin4> (970) <- System.@CheckAutoResult (36533) <- SBDataSigner.TSBDataSigner.InternalAddTimestamp<SBPluginInterfaceLibrary_TLB.IEncryptionPlugin4> (970) <- SBDataSigner.TSBDataSigner.AddTimestamp (466) <- RERAISE <- SBDataSigner.TSBDataSigner.AddTimestamp (468) <- RERAISE <- SBSign.TSBSignature.AddTimestamp$1136$ActRec.$0$Body (162) <- System.@CheckAutoResult (36533) <- SBSign.TSBSignature.AddTimestamp$1136$ActRec.$0$Body (162) <- SBSign.TSBSignature.HandleSignContent (150) <- SBSign.TSBSignature.AddTimestamp (159) <- SBEDocVer.TSBEDocumentVersion.AddTimestampToSignature (655) <- RERAISE <- SBEDocVer.TSBEDocumentVersion.AddTimestampToSignature (659) <- System.Win.ComObj.TAutoIntfObject.Invoke (1392) <- SBBasicClasses.TSBAutoIntfObject.Invoke (576) <- System.Win.ComObj.DispatchInvoke (1826) <- RERAISE <- System.Win.ComObj.DispatchInvokeError (1913) <- System.Win.ComObj.DispatchInvoke (1829) <- System.Win.ComObj.VarDispInvoke (1898) <- SBInter.TSBInter.InternalVarDispProc (2509) <- SBInter.TSBInter.CalculateInvoke (5786) <- SBInter.TSBInter.ExecuteInvoke (2655) <- SBInter.TSBInter.ExecuteVar (2765) <- SBInter.TSBInter.ExecuteTermExprn (2360) <- RAISE ESBUserInterpreterException <- SBSysFunc.SBRaiseException (1148) <- SBInter.TSBInter.CalculateFunction (5778) <- SBInter.TSBInter.ExecuteFunction (2882) <- SBInter.TSBInter.ExecuteTermExprn (2362) <- SBInter.TSBInter.ExecuteScript (2941) <- SBInter.TSBInter.ExecutePrepared (5453) <- SBInter.TSBInter.Execute (5414) <- SBScript.TSBScriptWrapper.Execute (197) <- RAISE Сценарий "ISBAddTimestampToDocumentSignature": ошибка в строке 55. <- SBScript.TSBScriptWrapper.Execute (226) <- SBEventProcessingProcessor.TSBEventProcessingProcessor.Process (629) <- SBCustomProcessLoop.TSBCustomProcessLoop.Run (98) <- SBEventProcessingProc.Finalization SBEventProcessingProc.exe 7.57.0.1036 7108 False
Логи is-builder.sbeventprocessingproc_cms_encryption:
28.07.2023 13:28:29.700 Main(9020)/9020 Debug System.Reflection.TargetInvocationException Адресат вызова создал исключение. <- в System.RuntimeType.InvokeDispMethod(String name, BindingFlags invokeAttr, Object target, Object[] args, Boolean[] byrefModifiers, Int32 culture, String[] namedParameters) <- в System.RuntimeType.InvokeMember(String name, BindingFlags bindingFlags, Binder binder, Object target, Object[] providedArgs, ParameterModifier[] modifiers, CultureInfo culture, String[] namedParams) <- в Directum.CryptoProTsp.CryptoProTimeStampProvider.InternalVerifyStamp(ITSPStamp2 aStamp, Boolean needVerifyCertificate, SettingsContainer settings) <- в Directum.CryptoProTsp.CryptoProTimeStampProvider.InternalGetTimeStamp(Boolean needVerifyCertificate, SettingsContainer settings) <- SBEventProcessingProc.exe 7.57.0.1036 7108 False
Авторизуйтесь, чтобы написать комментарий