Комментарии 16
Почему с криптопро и смэвом всегда всё не слава богу? Идут годы, меняются детали, не меняется главное — люди не прекращают пердолиться с этими вопросами снова и снова
Два года прошло вот с этой статьи: habrahabr.ru/post/282225
С тех пор у меня в личке отписались десятки людей, которые вообще не могут понять, что происходит и как подступиться к задаче. Учитывая что о своих проблемах пишут только самые активные — в реальности таких людей должно быть, сотни
Имхо, правильный способ — сделать такое SDK, которое бы своим API показывало, как решать типичные вопросы. У людей не должно возникать вообще никаких вопросов по поводу самого типового сценария использования, это должен быть 1 метод апи, который работает железно.
Два года прошло вот с этой статьи: habrahabr.ru/post/282225
С тех пор у меня в личке отписались десятки людей, которые вообще не могут понять, что происходит и как подступиться к задаче. Учитывая что о своих проблемах пишут только самые активные — в реальности таких людей должно быть, сотни
Имхо, правильный способ — сделать такое SDK, которое бы своим API показывало, как решать типичные вопросы. У людей не должно возникать вообще никаких вопросов по поводу самого типового сценария использования, это должен быть 1 метод апи, который работает железно.
+1
Здравствуйте, Олег!
Я читал Вашу статью про Побег из КриптоПро. Такое нельзя пропускать.
Безусловно мощно и полезно. Спасибо Вам!
Но есть одна загвоздка, когда дело касается промышленного общения через СМЭВ, то речь идет о квалифицированной ЭП, а значит, как одно из требований, выработанной на СКЗИ от разработчика лицензиата ФСБ. И тут не убежишь, предусмотрена ответственность.
В остальном для тестов и кейсов, что называется, для себя, то тут конечно можно достигнуть существенной экономии на лицензиях.
По поводу сложностей в использовании:
Это было бы идеально.
Но тут все усложняется тем, что лицензированный разработчик СКЗИ, например, КриптоПро — это одна организация, а ФГУП НИИ «Восход», на мощностях, которого подняты Головной удостоверяющий центр Минкомсвязь и СМЭВ — другая.
У каждой есть своя документация, SDK и API, примеры, форум, портал технической поддержки и ситуационный центр.
Причем есть конкретные примеры и инструкции, которые пересекаются, как например у КриптоПро для СМЭВ.
Информации, конечно, много, разобраться сложно, но можно.
Мне сразу вспоминается статья Каково оно учить JavaScript в 2016. Вот где зоопарк :-)
А вообще для разработчиков Open Source разбираться в чем-то таком должно доставлять какое-то свое особое удовольствие :-)
Я читал Вашу статью про Побег из КриптоПро. Такое нельзя пропускать.
Безусловно мощно и полезно. Спасибо Вам!
Но есть одна загвоздка, когда дело касается промышленного общения через СМЭВ, то речь идет о квалифицированной ЭП, а значит, как одно из требований, выработанной на СКЗИ от разработчика лицензиата ФСБ. И тут не убежишь, предусмотрена ответственность.
В остальном для тестов и кейсов, что называется, для себя, то тут конечно можно достигнуть существенной экономии на лицензиях.
По поводу сложностей в использовании:
правильный способ — сделать такое SDK, которое бы своим API показывало, как решать типичные вопросы.
Это было бы идеально.
Но тут все усложняется тем, что лицензированный разработчик СКЗИ, например, КриптоПро — это одна организация, а ФГУП НИИ «Восход», на мощностях, которого подняты Головной удостоверяющий центр Минкомсвязь и СМЭВ — другая.
У каждой есть своя документация, SDK и API, примеры, форум, портал технической поддержки и ситуационный центр.
Причем есть конкретные примеры и инструкции, которые пересекаются, как например у КриптоПро для СМЭВ.
Информации, конечно, много, разобраться сложно, но можно.
Мне сразу вспоминается статья Каково оно учить JavaScript в 2016. Вот где зоопарк :-)
А вообще для разработчиков Open Source разбираться в чем-то таком должно доставлять какое-то свое особое удовольствие :-)
+1
> И тут не убежишь, предусмотрена ответственность.
Конечно же убежишь, у меня получилось. Рассказываю как: 1) Увольняешься из компании, которая занимается этой лабудой 2) PROFIT
> А вообще для разработчиков Open Source
Для разработчиков Free Software — может быть да. Но государственные заказы — это не Free, и даже не Open, а иногда ещё и серкетка
> Информации, конечно, много, разобраться сложно, но можно.
Разобраться в Apache Kafka можно минут за 30. То есть, от того момента как ты на Википедии прочитал, что такое Kafka, до того как у тебя начнут ходить сообщения, может пройти всего минут 30.
Этого не происходит со СМЭВ, и у меня есть альтернативные объяснения, что происходит.
— СМЭВ, его документация, и его SDK сделаны отвратительно
— Крипто ПРО (по крайней мере Java-версия) сделаны отвратительно
— Почти все работы по координации и администрированию этих (и других связанных) проектов сделаны отвратительно
Этому уже никак не поможшь. Весь этот код можно только облить напалмом, сжечь, останки поместить в свинцовый гроб, замуровать в бетонный саркофаг с толщиной стенки сто метров, закопать на глубине 3 километров, и сверху насадить еловый лес, чтобы никто никогда не догадался, что ЭТО когда-то существовало.
Конечно же убежишь, у меня получилось. Рассказываю как: 1) Увольняешься из компании, которая занимается этой лабудой 2) PROFIT
> А вообще для разработчиков Open Source
Для разработчиков Free Software — может быть да. Но государственные заказы — это не Free, и даже не Open, а иногда ещё и серкетка
> Информации, конечно, много, разобраться сложно, но можно.
Разобраться в Apache Kafka можно минут за 30. То есть, от того момента как ты на Википедии прочитал, что такое Kafka, до того как у тебя начнут ходить сообщения, может пройти всего минут 30.
Этого не происходит со СМЭВ, и у меня есть альтернативные объяснения, что происходит.
— СМЭВ, его документация, и его SDK сделаны отвратительно
— Крипто ПРО (по крайней мере Java-версия) сделаны отвратительно
— Почти все работы по координации и администрированию этих (и других связанных) проектов сделаны отвратительно
Этому уже никак не поможшь. Весь этот код можно только облить напалмом, сжечь, останки поместить в свинцовый гроб, замуровать в бетонный саркофаг с толщиной стенки сто метров, закопать на глубине 3 километров, и сверху насадить еловый лес, чтобы никто никогда не догадался, что ЭТО когда-то существовало.
+1
Да. Под Open Source я имел в виду в широком понимании, например, Open-Source JDK — Oracle в части публичных классов и предоставляемых APIs и различные компоненты и библиотеки с лицензией свободного программного обеспечения.
Apache Kafka это конкретный инструмент со своим набором функций, tutorials и manuals, для которого тщательно обстругиваются сообществом.
С RabbitMQ у меня тоже сообщения за день начали ходить.
Другое дело, когда речь идет о целой распределенной инфраструктуре – Public Key Infrastructure.
Куда можно отнести СКЗИ и СМЭВ, как разные ее составные инструменты, компоненты, системы.
Инфраструктура с открытым ключом вбирает в себя технологии и знания из совершенно разных областей, с которыми требуется разбираться.
Начиная с наборов различных стандартов X. группы PKIX, стандартов криптографии PKCS#, способов описания структур данных на ASN.1 с древовидной идентификацией OID и наборов криптографических алгоритмов до принципов работы Центров регистрации и сертификации, протоколов взаимодействия, стандартов ЭП. И заканчивая Java Cryptography Architecture (если используем Java) и знаниями в области XML (для XMLDSig и СМЭВ) и инструментов для работы с ним применительно к платформе.
Дикая смесь и много чего еще, к которой добавляются описания и интерфейсы конкретных реализаций СКЗИ, СМЭВ, программно-аппаратных комплексов для УЦ и защиты и хранения ключей.
Поэтому временные затраты на то, чтобы разобраться не сопоставимы.
Apache Kafka это конкретный инструмент со своим набором функций, tutorials и manuals, для которого тщательно обстругиваются сообществом.
С RabbitMQ у меня тоже сообщения за день начали ходить.
Другое дело, когда речь идет о целой распределенной инфраструктуре – Public Key Infrastructure.
Куда можно отнести СКЗИ и СМЭВ, как разные ее составные инструменты, компоненты, системы.
Инфраструктура с открытым ключом вбирает в себя технологии и знания из совершенно разных областей, с которыми требуется разбираться.
Начиная с наборов различных стандартов X. группы PKIX, стандартов криптографии PKCS#, способов описания структур данных на ASN.1 с древовидной идентификацией OID и наборов криптографических алгоритмов до принципов работы Центров регистрации и сертификации, протоколов взаимодействия, стандартов ЭП. И заканчивая Java Cryptography Architecture (если используем Java) и знаниями в области XML (для XMLDSig и СМЭВ) и инструментов для работы с ним применительно к платформе.
Дикая смесь и много чего еще, к которой добавляются описания и интерфейсы конкретных реализаций СКЗИ, СМЭВ, программно-аппаратных комплексов для УЦ и защиты и хранения ключей.
Поэтому временные затраты на то, чтобы разобраться не сопоставимы.
+1
Разработчику, которому нужно послать сообщение по СМЭВу, для выполнения этой задачи совершенно не нужна никакая криптография. Ему нужна функция sendMessage(что, куда).
Всё остальное можно скрыть под капотом, и эта подкапотная часть будет подходить почти для всех аналогичных проектов. Обычно все именно так и делают.
Ибо никому обычно не нужна вся эта муть с разными реализациями криптографии, от неё можно отбрехаться на уровне ТЗ.
Трюк с запугиванием умными словами у тебя не получился :-)
Никакого Open Source сообщества не нужно, чтобы догадаться о наличии метода sendMessage(что, куда) — для этого нужен всего лишь 1 программист, который хоть раз попробовал воспользоваться шнягой, которую он написал.
То, что этот вопрос не проработан, навевает самые печальные мысли. Например о том, что писалось всё это силами десятка год-назад-студентов за еду.
Всё остальное можно скрыть под капотом, и эта подкапотная часть будет подходить почти для всех аналогичных проектов. Обычно все именно так и делают.
Ибо никому обычно не нужна вся эта муть с разными реализациями криптографии, от неё можно отбрехаться на уровне ТЗ.
Трюк с запугиванием умными словами у тебя не получился :-)
Никакого Open Source сообщества не нужно, чтобы догадаться о наличии метода sendMessage(что, куда) — для этого нужен всего лишь 1 программист, который хоть раз попробовал воспользоваться шнягой, которую он написал.
То, что этот вопрос не проработан, навевает самые печальные мысли. Например о том, что писалось всё это силами десятка год-назад-студентов за еду.
0
Просто для интересу прошёл на портал (https://smev3.gosuslugi.ru/portal/)
Увидел следующее:
* Рекомендуемая версия библиотек для сборки клиента СМЭВ 3. Схема версии 1.1.
* Рекомендуемая версия библиотек для сборки клиента СМЭВ 3. Схема версии 1.2.
Самые важные ссылки расположены в самой жопе сайта, а сверху идёт всякий мусор (как и было всю дорогу, впрочем). Чудно.
Кстати о мусоре. Методические рекомендации, не в маркдауне в гите, а в вордовских файлах. Ченжлог в начале документа. Прямо как в 2001 году оказался, верхом на машине времени. Внутри всё тот же позор, что и раньше. Судя по ченжлогу, несколько допиленный.
Вернемся к «библиотекам». Открываю ссылку — там какой-то зип-архив. В корне всё так же нет LICENSE.txt.
Ни тебе публичного гита, чтобы посмотреть конкретные коммиты. Ни лицензии. Ни ченжлога. Ни-че-го.
Прошли годы, ага.
Необучаемые.
Вроде ко мне это уже и не относится никак, а от ярости руки трясутся, когда на всё это смотришь.
Там в документах имена каких-то «инженеров» написаны. Инженеры они, значит. Вот бы им выдать люлей размером с дом.
Увидел следующее:
* Рекомендуемая версия библиотек для сборки клиента СМЭВ 3. Схема версии 1.1.
* Рекомендуемая версия библиотек для сборки клиента СМЭВ 3. Схема версии 1.2.
Самые важные ссылки расположены в самой жопе сайта, а сверху идёт всякий мусор (как и было всю дорогу, впрочем). Чудно.
Кстати о мусоре. Методические рекомендации, не в маркдауне в гите, а в вордовских файлах. Ченжлог в начале документа. Прямо как в 2001 году оказался, верхом на машине времени. Внутри всё тот же позор, что и раньше. Судя по ченжлогу, несколько допиленный.
Вернемся к «библиотекам». Открываю ссылку — там какой-то зип-архив. В корне всё так же нет LICENSE.txt.
Ни тебе публичного гита, чтобы посмотреть конкретные коммиты. Ни лицензии. Ни ченжлога. Ни-че-го.
Прошли годы, ага.
Необучаемые.
Вроде ко мне это уже и не относится никак, а от ярости руки трясутся, когда на всё это смотришь.
Там в документах имена каких-то «инженеров» написаны. Инженеры они, значит. Вот бы им выдать люлей размером с дом.
0
olegchir, а как же путь Бусидо́ 武士道
Путь воина, который без ропота вступит в противоборство с самым отвратительным API или его отсутствием и разберется со всеми сложностями?! :-)
Полезность здравой критики оспаривать не стану. :-)
Путь воина, который без ропота вступит в противоборство с самым отвратительным API или его отсутствием и разберется со всеми сложностями?! :-)
Полезность здравой критики оспаривать не стану. :-)
+1
ПОЛНОСТЬЮ ПОДДЕРЖИВАЮ!
Ядро линукс пересобрать легче чем установить смэв. Я до этого никогда не работал в гос секторе. Но тут пришлось. И в этой статье пишут как у них все круто сделано? это отвратительнейшая из программ когда либо созданный. что криптопро что смэв.
делаю докер контейнер для этого всего. и обертку к нему на python. чтобы у пользователя было 1 функция sent_message.
у меня впервые возникло желание убить человека. когда я начал пробывать пользоваться этим говном. я потратил на него неделю. НЕДЕЛЮ, КАРЛ!
Ядро линукс пересобрать легче чем установить смэв. Я до этого никогда не работал в гос секторе. Но тут пришлось. И в этой статье пишут как у них все круто сделано? это отвратительнейшая из программ когда либо созданный. что криптопро что смэв.
делаю докер контейнер для этого всего. и обертку к нему на python. чтобы у пользователя было 1 функция sent_message.
у меня впервые возникло желание убить человека. когда я начал пробывать пользоваться этим говном. я потратил на него неделю. НЕДЕЛЮ, КАРЛ!
0
С ним хэш стал совпадать, а подпись успешно проходить валидацию.
Вот это кстати, полная засада.
Реализация трансформатора не должна меняться.
Каждая релизная версия трансформатора должна иметь уникальное имя.
Если эти два требования не соблюдаются — то можно ЭЦП не использовать, он не выполняет своей функции.
0
ggo,
реализованная в SmevTransformSpi трансформация нормализует по заданным правилам XML документ перед тем, как будет посчитан его хэш и поставлена электронная подпись.
Так что трансформация может быть какой угодно и на основные функции ЭП — защита от подмены информации и однозначное установление ее автора, трансформация не влияет.
реализованная в SmevTransformSpi трансформация нормализует по заданным правилам XML документ перед тем, как будет посчитан его хэш и поставлена электронная подпись.
Так что трансформация может быть какой угодно и на основные функции ЭП — защита от подмены информации и однозначное установление ее автора, трансформация не влияет.
+1
Насколько я понимаю, перед тем как xml будет подписан к нему применяются разные трансформации, и уже результат подается на вход подписания.
Если одна и та же трансформация, но из разных версий, дает разные результаты, то встает вопрос, как третья сторона будет доказывать или опровергать корректность подписи? Экспериментировать с доступными версиями трансформатора?
Если одна и та же трансформация, но из разных версий, дает разные результаты, то встает вопрос, как третья сторона будет доказывать или опровергать корректность подписи? Экспериментировать с доступными версиями трансформатора?
0
Уважаемые коллеги,
Всем привет!
Пара важных дополнений:
1) Я привел пример, как сначала подписать SOAP запрос, который можно еще корректировать в его части не подлежащей подписанию, а затем отправить.
Мне поступил вопрос, как на лету сделать бесшовный вызов веб сервиса СМЭВ с подписанным запросом и так же проверить ответ.
Хочу посоветовать мощную статью Aleksey Sushko на Old council
Apache CXF и ЭЦП для SOAP сообщений СМЭВ
В этой статье про квинтэссенцию использования технологии расширения SOAP запросов — WS-Security, Apache WSS4J и реализации JAX-WS — Apache CXF и все это на ГОСТ алгоритмах.
Мне в свое время очень помогло, за что еще раз спасибо Алексею.
2) Я сообщил в ФГУП НИИ «Восход» об опечатке в документе Методические рекомендации по работе с ЕСМЭВ версия 3.4.0.3.
Всем привет!
Пара важных дополнений:
1) Я привел пример, как сначала подписать SOAP запрос, который можно еще корректировать в его части не подлежащей подписанию, а затем отправить.
Мне поступил вопрос, как на лету сделать бесшовный вызов веб сервиса СМЭВ с подписанным запросом и так же проверить ответ.
Хочу посоветовать мощную статью Aleksey Sushko на Old council
Apache CXF и ЭЦП для SOAP сообщений СМЭВ
В этой статье про квинтэссенцию использования технологии расширения SOAP запросов — WS-Security, Apache WSS4J и реализации JAX-WS — Apache CXF и все это на ГОСТ алгоритмах.
Мне в свое время очень помогло, за что еще раз спасибо Алексею.
2) Я сообщил в ФГУП НИИ «Восход» об опечатке в документе Методические рекомендации по работе с ЕСМЭВ версия 3.4.0.3.
+2
НЛО прилетело и опубликовало эту надпись здесь
m1ld, да плотная работа в этом направлении ведется.
— в документе Методические рекомендации по работе с ЕСМЭВ версия 3.4.0.3 есть термин Каталог типов данных и атрибутов (КТДА).
— создан специальный модуль Руководство пользователя Модуля «Каталог типов данных и атрибутов» (СМЭВ.КТДА), в ктоором уполномоченный пользователь может заводить и согласовывать новые атрибуты и посмотреть существующие утвержденные.
— разработана целая концепция для решения проблемы взаимодействия именно в части унификации набора согласованных и используемых сущностей Концепция по использованию КТДА
— в документе Методические рекомендации по работе с ЕСМЭВ версия 3.4.0.3 есть термин Каталог типов данных и атрибутов (КТДА).
— создан специальный модуль Руководство пользователя Модуля «Каталог типов данных и атрибутов» (СМЭВ.КТДА), в ктоором уполномоченный пользователь может заводить и согласовывать новые атрибуты и посмотреть существующие утвержденные.
— разработана целая концепция для решения проблемы взаимодействия именно в части унификации набора согласованных и используемых сущностей Концепция по использованию КТДА
0
В свете последних событий и ухода сертификационных органов от Java, как реализовать подпись на, к примеру, libxml2, libxmlsec1?
Каноникализация там есть, а вот что делать с трансформацией СМЭВ3 ума не приложу 🤷♂️
0
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
СМЭВ 3. Электронная подпись сообщений на Java и КриптоПро