Search
Write a publication
Pull to refresh
11
43.6
Дмитрий Михайлов @DmitriiMikhailov

Фулстек-разработчик

Send message

Зависит от контекста.
Пример 1:
В системах эдо документы часто хранятся в xml формате с отсоединенной подписью, pdf с визуализацией формируется по желанию но электронной подписью не подписывается, т.е. он является частью пакета, но не является самостоятельным документом. При желании, можно удалить pdf документы, что бы меньше платить за место на диске, при скачивании документа можно запросить заново сформировать pdf. Юридическую значимость в данном случае имеет xml документ и sig файл с подписью.
Пример 2:
Вы генерируете обынчые PDF документы, которые планируете передавать в какие-либо государственные органы - в данном случае на pdf документ ставится визуализация и документ подписывается электронной подписью. Визуализация это просто картинка, которая сама по себе не имеет юридической значимости, но когда вы сформировали документ и после этого подписали хэш этого документа, то все содержимое становится юридически значимым, включая визуализацию. Но только при условии, что целостность документа не будет нарушена и будет проверена электронная подпись.
Пример 3:
В некоторых государственных учреждениях подписывается архив с данными. Например, медицинские счета. То есть вы берете кучу различных документов, упаковываете в архив, шифруете, если необходимо и архив подписываете электронной подписью.

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

Только что проверил на PDF 1.7 (Acrobat 8) - все отлично работает. Более того, можно добавить сервис предварительной конвертации в pdf и принимать на вход любые другие форматы - docx, xlsx, html, jpg, png и другие. Можно добавить расширение для php, можно прямо через exec() с PhpFluentConsole (автоматически устанавливается с CryptoProBuilder), можно поднять отдельный сервис на любом другом языке с доступом по api или через очереди. Также если вы используете машиночитаемые форматы (например xml или json), можно добавить шаблоны, что бы генерировать pdf на их основе. Так системы ЭДО делают - хрянят xml и sig , а при необходимости pdf генерируют.

Там все верно, просто формат другой - год/число/месяц. Если хотите, можете сменить формат перед выводом на число/месяц/год. Это тестовая подпись, ее срок действия 3 месяца, так что все верно.

Подпись может быть как отсоединённой, так и присоединённой — обе реализуются с помощью CryptoProBuilder, достаточно изменить параметры. Визуализация всегда должна выполняться до подписания, независимо от типа подписи. В противном случае содержимое документа изменится после подписания, что нарушит контроль целостности и приведёт к ошибке верификации.
Что касается Laravel — он здесь не обязателен. В статье просто использован как знакомый фреймворк для демонстрации. Все примеры легко адаптируются под любой фреймворк: Symfony, Yii и т.д., поскольку CryptoProBuilder это обычная обёртка над cli инструментами, без жёстких зависимостей от фреймворка.

Adobe Reader не позволяет редактировать PDF документы. При использовании Adobe Acrobat PRO DC вы получите пробную лицензию КриптоПро PDF на 90 дней, затем нужно будет ввести ключ.
Данное приложение позволяет как просматривать, так и редактировать документы — покупать лицензию КриптоПро PDF для этого не нужно.
По поводу криптопровайдера — я это учел и на будущее добавил пункт в разделе с настройками, где можно выбрать криптопровайдер из списка. Нужно будет просто добавить еще один метод подписания, для VipNet, например. Это вполне реализуемо и не должно вызвать проблем.
Спасибо за обратную связь!

Серверная лицензия нужна для подписания на сервере, если вы используете удаленый рабочий стол, насколько я помню. КриптоПро PDF это отдельный модуль, который встраивается в Adobe Reader и позволяет подписывать PDF документы с визуализацией. Стоимость лицензии колеблется в диапазоне 20-30 тысяч рублей за одно рабочее место, так же необходимо приобрести лицензионный ключ для КриптоПро CSP — достаточно клиентской версии в данном случае.

Не очень понял вопрос. Вы хотите на PHP реализовать аналогичный функционал? Да, вы можете использовать PHP для подписания документов и добавления визуализации. Есть нюансы в зависимости от того как вы собираетесь реализовать подписание — на серверной стороне или на клиентской с передачей подписанного хэша на сервер, но механизм похожий. Можете использовать библиотеку CryptoProBuilder, которую я недавно опубликовал либо использовать КриптоПро SDK для PHP, но для этого потребуется настроить окружение. В принципе, на мой взгляд, консольной утилиты будет достаточно, если вы не собираетесь подписывать кусок XML документа и из него формировать PDF с визуализацией, в таком случае я бы использовал SDK. Для работы с PDF в PHP можете выбрать любую библиотеку, но не забывайте что подписание должно происходить после добавления визуализации, иначе сломаете хэш и подпись не пройдет проверку.

Вы можете воспользоваться поисковой системой что бы найти КриптоПро .NET и всю необходимую документацию с примерами. Для скачивания официальных дистрибутивов потребуется учетная запись.
Что касается тонкого льда, о котором вы упомянули. Ввод и вывод в данном приложении полностью контролируется и передается напрямую в модуль КриптоПро SDK, который работает по принципу черного ящика — получает ввод, возвращает вывод. Вы не влияете напрямую на криптографические операции, но можете управлять ими согласно официальной документации. Ситуация при которой один и тот же сертифицированный инструмент начнет выдавать разный вывод — лично мне кажется фантастической и не имеющая под собой никаких оснований.
По поводу чата-гопоты — вы вполне можете рассмотреть вариант использования нейросетей что бы закрыть определенные бизнес задачи, я могу только поддержать ваши стремления т.к. ценю людей, умеющих добиваться результатов, независимо от выбранных методов. Но судя по вашим утверждениям — вы определенно еще не знакомы с Visual Studio и экосистемой .NET в целом. В любом случае хочу пожелать вам удачи в этом нелегком деле, с помощью современных инструментов и приложенных усилий — у вас есть все шансы добиться успеха.

Визуализация? Да, это просто картинка с информацией, я об этом говорил в начале статьи. Но многие госорганы не принимают документы без визуализации, даже при наличии *.sig. Поэтому многие крупные организации активно закупают лицензии КриптоПро PDF в достаточно больших количествах.

Благодарю за комментарий.
Моя программа не реализует собственную криптографию — все операции выполняются через лицензионный и сертифицированный модуль CryptoPro CSP, который уже одобрен ФСБ. Я использую его официальный SDK и взаимодействую с ним через предусмотренные интерфейсы, в том числе CryptoPro .NET.

Таким образом, требования по сертификации от ФСБ/ФСТЭК относятся к криптографическому ядру, а не к надстройкам, использующим его по прямому назначению и в штатном режиме. Это типовой сценарий использования, прямо описанный в документации.

В противном случае SDK просто бы не был публично доступен и не рекомендовался бы к использованию сторонними разработчиками.

Документация и требования к CryptoPro .NET доступны здесь:
https://www.cryptopro.ru/products/net

Если вы решите разработать своё решение, очень советую с неё начать — SDK даёт достаточно гибкости для создания GUI, автоматизации, интеграции с системами ЭДО и не требует от разработчика получения собственной лицензии на СКЗИ.

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

Данное решение было успешно протестировано для отправки запросов на лицензирование аптек. А вы какими инструментами пользуетесь для визуализации электронной подписи?

  1. Статьи на Хабр

  2. Зарплата выше средней или letter of intention - что будет выше средней

  3. Вступить можете в огромное кол-во организаций, лучше международных

  4. Вклад в индустрию - можете разработать свой сервис или библиотеку

Буквально вчера читал как маникюрщицы, татуировщики и специалисты по наращиванию бровей получают эту визу :D

Тоже читал об этом. Вообще от задачи зависит: если нужно добавить базовый функционал для работы с электронными подписями - я бы использовал cli, что бы не тратить время, а если задача разработать систему ЭДО или сложную интеграцию - то SDK или отдельный сервис подписания на .NET, т.к. там лучше реализована работа с документами.

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

Я работал в фармацевтической компании - 5000+ рабочих мест. Как-то раз техническая поддержка решила саботировать работу аптек и отказалась сбрасывать пробные лицензии, которые не были закуплены на тот момент. А документооборот был 2 тысячи входящих документов в час, которые нужно вовремя подписывать. Я написал скрипт на php, который подключался ко всем аптекам через систему удаленного доступа и сбрасывал ключи в реестре, что бы дожить до закупки лицензий. На сброс всех рабочих мест уходило примерно 40 минут. Многие компании вообще не покупают лицензии, а просто сбрасывают ключи.
КриптоПро это еще терпимо, а вот VipNet - да.

Работать будет везде, где установлен КриптоПро с утилитами. Для linux тоже есть дистрибутив, хотя установка менее интуитивная, чем на windows. Посмотрите на официальном сайте КриптоПро в разделе с дистрибутивами.
https://support.cryptopro.ru/index.php?/Knowledgebase/Article/View/390

Именно поэтому я их не зубрил, а прочитал один раз для ознакомления, после чего длительное время закреплял. Дело в том, что многие слова в русском и английском выглядят похоже, пробегаясь по словарю я быстро выделил все эти слова и запомнил. Второй момент - чем больше слов я перебирал, тем больше улавливал по какому принципу они строятся. По своему опыту могу сказать, что словарный запас важнее - если вы знаете 5000 слов, вы сможете решить свои проблемы намного эффективнее, чем имея отличную грамматику и 600 слов в арсенале. Я часто упирался в словарный запас, но ни разу не упирался в знание грамматики. Если цель учить английский - можете учить методично. Если цель в сжатые сроки сломать языковой барьер - я бы сперва расширил словарный запас.

Не слышал о таком. Основная цель была: совместить изучение языка с получением опыта в разработке. Это не стартап и не реклама, а разбор кейса из жизни.

Information

Rating
312-th
Location
Dallas, Texas, США
Registered
Activity

Specialization

Fullstack Developer
Middle
Git
SQL
PHP
OOP
Laravel
English
JavaScript
Vue.js
.NET