Исследование проприетарной модели разработки (ПО и периферии)

Аватар пользователя И-23

Разоблачение секретов удовлетворения требованиям ТЗ от ведущих профессионалов.

Помним, что уличение разработчика требует равных или превосходящих знаний и времени.
Ну и про стремление впарить оптимальное (все помнят определение задачи оптимизации из математики?) решение (в смысле — освоенное подрядчиком) за наилучшим образом соответствующее требованиям заказчика.

Самое печальное, когда таким разработчикам приходится поддерживать альтернативные (с совместимостью на уровне стандартов) или вообще свободные реализации:

или описание запуска в GNU/Linux типо «кроссплатформенного» приложения:

Для запуска TinyOPDS, наберите в приглашении шелла: mono TinyOPDS.exe

Кто-нибудь видит различие со случаем запуска нативно-виндового исполняемого файла через wine?


Тема на форуме технической поддержки разработчика оборудования:

Очередные проблемы с импортом ключей и сертификатов

Вопрос пользователя:

рутокен ецп, как обычно, радует пока его не трогаешь.
opensc 0.13, импортирую сертификат WebMoney взамест предыдущего. (Предыдущий был удален) На error можно не смотреть , пересоздание .p12 без пароля ситуацию не меняет.
pkcs15-init --store-private-key WM2018.p12 --format pkcs12 --auth-id 02 --ignore-ca-certificates
Using reader with a card: Aktiv Rutoken ECP 00 00
error:23076071:PKCS12 routines:PKCS12_parse:mac verify failure
Please enter passphrase to unlock secret key:
Importing 1 certificates:
0: /O=WebMoney Transfer/OU=WebMoney Certification Center/CN=WM id: 1234567890/emailAddress=1234567890@gmail.com
User PIN [****] required.
Please enter User PIN [****]:
Failed to store public key: File already exists
Что вообще означает «File already exists» в данном случае? Надеюсь, совета пересоздать все с нуля не воспоследует хотя бы на этот раз? :)

Ответ специалиста:

посмотрите какие у вас есть объекты через pkcs15-tool, возможно действительно нужно будет какой-нибудь объект удалить, чтобы ваш сценарий отработал.

Мы вообще то, утилиты opensc не поддерживаем. Лучше бы вы конечно импортировали бы объекты через pkcs11-tool и нашу библиотеку rtpkcs11ecp, тогда было бы гораздо понятнее и проще.
Для вас какой смысл использовать именно pkcs15-init, а потом opensc-pkcs11 ?

Реплика пользователя:

кроме card и pin* объектов на токене есть только x509+pub+priv для pam_p11 и pub+priv для авторизации по ssh. Возможно, там есть и еще объекты какие-то, но как их посмотреть, окромя pkcs11-tool -O и pkcs15-tool -D – я не в курсе.

про библиотеку rtpkcs11ecp – насколько я помню это не открытый код? Он предлагает какую-то нужную мне функциональность, отсутствующую в opensc? А оно есть в моем пакетном менеджере? Дальше я продолжать не буду, Вы сами понимаете, что это не взрослое решение а так, типа хелловорлд.

>Мы … opensc не поддерживаем. Лучше бы … через pkcs11-tool ну как бы pkcs11-tool как раз из opensc :)

по поводу «File already exists» – давайте разбираться, где и чей косяк. Очевидно, что проблема либо opensc и надо это унести в апстрим либо в устройстве. Я уже не в первый раз сталкиваюсь с непонятными проблемами импорта и это, надо сказать, утомляет. Прошу предложить схему отлакди проблемы.

Ответ специалиста:

Здравствуйте, не буду вступать в дискуссию по поводу хелловорлда и ваших пакетных менеджеров. Выбор - это личное дело каждого. Я хотел сказать, что если бы вы использовали rtpkcs11ecp + pkcs11-tool для импорта своих файлов и ключей, то такой ошибки бы не случилось. А если бы и случилось то мы бы разобрались и починили.

Почему утилита pkcs15-init пишет file already exist нам неведомо. И если интерфейс pkcs11 еще можно отлаживать с помощью pkcs11-spy то утилиты pkcs15 можно лишь на уровне исходного кода смотреть.

Если вы сами не владеете отладчиком, то можете оставить багрепорт сообществу OpenSC https://github.com/OpenSC/OpenSC (кнопочка issues). Они скорее всего попросят вас воспроизвести баг на свежеотформатированном устройстве и предоставить тестовый контейнер p12.

В принципе, все точно также как и здесь, но просто на другом сайте. :)

Реплика пользователя:

Уважаемый Кирилл! У меня создается впечатление, что я, заплатив деньги за устройство, получаю ровно 0 поддержки в данном случае. Хочу напомнить, что смысл поддержки в том, чтобы я получал ответы на *мои* вопросы и она помогала мне решать *мои* проблемы.. Иначе, чтобы оставаться честным, Вы должны декларировать *отсутствие* поддержки. Или наличие поддержки *только* при условии использования Вашей библиотеки. И давайте не будем иронизировать по поводу пакетных менеджеров – если Вы представляете свою библиотеку под Linux – так напомню, что в Linux принято устанавливать и обновлять что бы то ни было только их посредством. И разумеется, работа с майнтайнерами пакетов для наиболее распространенных дистрибутивов – Ваша забота ибо продукт платный (Вы же не будете пытаться заявить что платный только девайс? :) )

Давайте тогда предметно:
> если бы вы использовали rtpkcs11ecp + pkcs11-tool … то мы бы разобрались и починили отлично, прошу в студию подробный и последовательный список того, что можно делать и чего делать нельзя. И как делать. (Пакеты, версии, примеры команд). И *без* наколенных копирований файликов наугад (архитектуры, зависимости где?)
Кроме того, будьте любезны, разрулите явным и логичным образом дичайшую ситуацию с тем, что мы таки используем opensc (другого-то нет интерфейса управления), но должны использовать его только частично а-ля pkcs11* но не pkcs15* (это даже при написании звучит как-то бредово)

> Если вы сами не владеете отладчиком

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

Вы можете только *предполагать*, что проблема коренится в pkcs15 – хотя проблема может быть и в девайсе и в микропрограмме. Разобраться и обосновать Ваше предположение Вы не желаете, похоже. Вместо этого я вижу советы в стиле «переустановите Windows на чистый носитель и посмотрите повторится ли ошибка». Это как-то неуважительно даже.

Хорошо, если в ФС девайса все в порядке, то мы как-то можем это проверить и увидеть? Как именно это сделать? Возможно, это проблема pkcs15, но нужно знать и доказать, что это так, а потом только идти туда в апстрим.

И прошу не игнорировать мои просьбы по предоставлению инструкций для проведения разбора полетов. Давайте тратить мое и Ваше время на решение проблем а не на сомнительные дисклеймеры.

Ответ специалиста:

Уважаемый, beelze.

Устройства Рутокен производства компании ЗАО "Актив-Софт" поддерживаюся в программном обеспечении написанном компанией ЗАО "Актив-Софт" если особым образом не указано иное. Утилиты и библиотеки OpenSC поддерживаются сообществом OpenSC.

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

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

Ну а если окажется что команды посылаемые в токен неправильные - можно будет разбираться почему они такие и попытаться исправить это в программном коде библиотек и утилит OpenSC

Реплика пользователя:

Нет, Вы неправы, Кирилл.

Перед покупкой я уточнил у представителя продавца, будет ли поддерживаться девайс в линупсах и привел необходимые мне паттерны использования (упоминая явным образом непроприетарное ПО). Так что как минимум этическая обязанность поддержки есть. Юридически мы углубляться не будем, но Ваша позиция и тут слабая. Есть ли необходимость нарыть кучу скриншотов с форумов, которые подтверждают, что Вы (я имею в виду компанию) *рекомендует* для использования opensc? Ну и так далее.

Как я уже 100500 раз отметил, Ваше предложение использовать rtpkcs11ecp – не является готовым решением. Любому известно, что установка неконтролируемых бинарей в обход имеющейся системы управления пакетами – противоречит всем и любым рекомендациям и правилам. Стало быть что? Ее *нельзя* использовать, не нанося ущерба. Но Вы таки это рекомендуете? Это есть профессионально?

Далее – где-то есть явное, валидное в юридическом плане объявление, что гарантируется, что rtpkcs11ecp работает на любой конфигурации/инсталляции, не способно нанести вредя системе и владельцу, не собирает и не отправляет никаких данных без одобрения пользователя? Если есть, то я бы хотел это увидеть.

Еще далее – Вы таки одной рукой рекомендуете использовать pkcs11, а другой заявляете, что не несете никакой ответственности и не оказываете поддержки для случая СПО? То есть это надо понимать, что Вы сами определяете меру ответственности по своему желанию?

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

Ответ специалиста:

Уважаемый beelze

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

Перед покупкой я уточнил у представителя продавца

Если "представитель продавца" (кто это?) взял на себя такую ответственность - логично что к нему и следует обратиться.
beelze пишет:

Есть ли необходимость нарыть кучу скриншотов с форумов, которые подтверждают, что Вы (я имею в виду компанию) *рекомендует* для использования opensc?
>
Найдите официальное признание поддержки компанией Актив-Софт поддержки открытого проекта OpenSC и я буду вам благодарен.
beelze пишет:

Как я уже 100500 раз отметил, Ваше предложение использовать rtpkcs11ecp – не является готовым решением. Любому известно, что установка неконтролируемых бинарей в обход имеющейся системы управления пакетами – противоречит всем и любым рекомендациям и правилам. Стало быть что? Ее *нельзя* использовать, не нанося ущерба. Но Вы таки это рекомендуете? Это есть профессионально?

Ваше право считать что угодно.
Официальная позиция компании Актив-Софт такова: в операционных системах на базе GNU/Linux официально поддерживается библиотека rtpkcs11ecp. Те кто пользуются низкоуровневыми утилитами OpenSC (pkcs15-init, pkcs15-tool, opensc-tool и прочие) могут рассчитывать лишь на поддержку сообщества OpenSC.

beelze пишет:

противоречит всем и любым рекомендациям и правилам.

весьма "слабое" утверждение, если использовать вашу терминологию

beelze пишет:

Далее – где-то есть явное, валидное в юридическом плане объявление, что гарантируется, что rtpkcs11ecp работает на любой конфигурации/инсталляции, не способно нанести вредя системе и владельцу, не собирает и не отправляет никаких данных без одобрения пользователя? Если есть, то я бы хотел это увидеть.
Еще далее – Вы таки одной рукой рекомендуете использовать pkcs11, а другой заявляете, что не несете никакой ответственности и не оказываете поддержки для случая СПО? То есть это надо понимать, что Вы сами определяете меру ответственности по своему желанию?

https://download.rutoken.ru/License_Agreement.pdf

beelze пишет:

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


Вы меня плохо читаете или плохо понимаете.
1) мы указали вам канал, через который будет принята ваша заявка насчет утилиты pkcs15-tool и даже посоветовал как лучше оставить там заявку
2) мы посоветовали средства отладки для исключения проблем с прошивкой (лог команд мы готовы посмотреть немедленно и проверить что с токеном нет проблем)

Реплика пользователя:

> Вы меня плохо читаете или плохо понимаете.
Давайте уточним реалии наших взаимоотношений – я приобрел на платной основе девайс и вариантов с поддержкой тут 2:
1. У меня есть полная и непротиворечивая информация по поводу гарантированного оказания Вами поддержки и признание того факта, что недостатки данной формулировки – Ваша проблема и Вы ее решаете. Иными словами, условия оказания поддержки должны быть прозрачными, логичными, констистентыми и *исключать* любой человеческий фактор.
2. Несоответствие п.1 означает *отсутствие* поддержки. Иными словами, Вы либо другой представитель компании не может решать, оказывать поддержку или нет, он может исключительно реализовывать ранее софрмулированные условия ее оказания.

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

> мы указали вам канал, через который будет принята ваша заявка насчет утилиты pkcs15-tool я пропустил момент, в котором было доказано, что проблема вызвана pkcs15*? или вместо обоснования мне предлагается Вас процитировать?

> мы посоветовали средства отладки для исключения проблем с прошивкой
где? где методика отладки и подготовка для нее нужной среды? если одобряется использование одних утилит, а других запрещается – то давайте уж конкретный список что и как делать. У меня есть токен и сертификат. И проблема. Будем считать что более ничего у меня нет и все потребное я сделаю в соответтсвии с Вашими инструкциями.

Пока в этом посте достаточно, только одно отмечу:
> Если "представитель продавца" (кто это?) взял на себя такую ответственность - логично что к нему и следует обратиться.
Нет, нелогично, ибо:
Все что написано на этом форуме от лица сотрудников компании является выражением официальной позиции компании.
так представители компании представляют компанию или нет, я что-то не пойму? я совершал сделку по приобретению товара с компанией а не с «кто это». Как кого зовут и все нюансы персонала – это знает Ваша компания, я в это вникать не обязан. И давайте вести дискуссию цивилизованно – если Вы не можете опровергнуть мое утверждение, будьте любезны с ним согласиться, иначе Вы косвенно и бездоказательно меня упрекаете во лжи. Да, я где-то спрашивал и помню ситуацию и ее развитие в общих чертах – докажите что я ошибаюсь или не оспаривайте.

Ответ специалиста:

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

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

2) мы готовы проанализировать лог pcscd демона при обращении каких угодно утилит к нашему устройству, чтобы исключить неисправность или ошибки токена. Лог вы можете собрать любым удобным для вас способом. Официальных утилит или инструкций для этого мы не предоставляем. В качестве жеста доброй воли я вам написал, что нужно сделать, но вы, похоже, не читаете. Лог можно отправить любым официальным способом - это почта россии, форум или e-mail hotline@rutoken.ru

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

ИСТОЧНИК

Комментарий автора: 

Хорошая иллюстрация во-первых проблемы вхождения в мир СПО сплочённого сообщества профессиональных погромистов, твёрдо стоящих на том, что если УМВР то всё в порядке.

И перспектив бодания со службой поддержки, когда та упёрлась в букву Закона (все помнят фичу современной юридической Системы?).
Иллюстрацией к истории пользователя Apple пример из личной практики на совершенно другом устройстве и лет… как бы не с пятнадцать тому назад был совершенно аналогичный эпизод. Итого устройство вернуть удалось, но по следующему прекрасному алгоритму:
1. Ждём максимальный (!) отведённый законом срок экспертизы;
2. Выясняем что замена на аналогичное устройство невозможна, т.к. их уже нет;
3. Обязательство возврата денег законом тоже не предусмотрено (какая прелесть).
И вариант: возьмите с доплатой то, что продаётся сейчас и подходит конкретному потребителю.

Комментарии

Аватар пользователя apanas
apanas(7 лет 8 месяцев)

К чему весь этот базар? Предоставьте поддержке лог, как она Вас просит, инструкции на этот счёт достаточно прозрачны. Сами его почитайте, там нет ничего суперсложного. Вместо того, чтобы предметно разбирать проблему, устраиваете с поддержкой срач на ровном месте. У них таких как Вы много, и обсуждать со всеми преимущества\недостатки СПО нет ни времени, ни желания (и это тоже понятно). То, что они рекомендуют Вам использовать свою утилиту вполне логично. А замечание по поводу пакетов и пакетного менеджера вообще за рамками дискуссии, поддержке это на фига? Это Ваше дело.

 ЗЫ: сам, если что, в поддержке не работаю, просто замечания по сути выложенного. 

Аватар пользователя И-23
И-23(8 лет 7 месяцев)

Во-первых, Вы совершенно напрасно пропустили *принципиальный* вопрос, на котором стоит поддержка: используйте *наш* блоб (!).
Накостылить в котором для создания видимости *правильного* выполнения задачи пользователя на порядки проще, чем сделать то же в случае с *внешними* и *публичными* библиотеками.

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

ЗЫ: И да. Последовательно-упоротое игнорирование проприетарщиками Главного Правила решает наинасущнейшую задачу создания рынка для коллег, разрабатывающих антивирусы и озабоченных тенденцией к миграции целевой аудитории.

Аватар пользователя Another_jim
Another_jim(9 лет 5 дней)

Также, Ваше упущение или тех, кто занимался покупкой.

Обычно критичные моменты вносят в договор или дополнительное соглашение.

А так, сейл может что угодно рассказать. 

Аватар пользователя И-23
И-23(8 лет 7 месяцев)

Позвольте поинтересоваться: при чём здесь я?

Регламентация *всего* необходимого, *включая* банальное и самоочевидное уводит ресурсоёмкость проекта в бесконечность.
Ну и то, как на практике реализиуются прописанные «особо критичные моменты» я наблюдал лично. Больше достаточного.

Аватар пользователя apanas
apanas(7 лет 8 месяцев)

Во-первых: у них работа такая, на этом и должны стоять, им продукт двигать надо. А то что они там накосячили - этого Вы пока еще не знаете. Не знаю как кому, но мне, например, намного проще решить задачу через "внешние" публичные библиотеки, там все понятно и документация вменяемая (как правило, но не всегда).

Во-вторых: заявить производитель может что угодно, побейте его компетентностью и конкретными доказательствами (логами), типа "вот тут и тут смотрите-видите разницу?". Так, чтобы отпереться не мог. А просто словами биться с ними бессмысленно и неэффективно. Если 1й 2й уровень поддержки не решает проблему, сможете обоснованно эскалировать ситуацию и подняться выше, вплоть до разработчика. Вам же главное что? Проблему решить или уесть поддержку? По-моему как-то так...

Аватар пользователя И-23
И-23(8 лет 7 месяцев)

Угу. Удовлетворённый клиент — потерянный клиент (недополученная прибыль).
Разбираться по цепочке зависимостей кто, в чём и почему накосячил — интереснейший квест.

К сожалению в современных реалиях разработчик — не панацея.

ЗЫ: Я здесь только с точки зрения интереса к теме.

Аватар пользователя СВВ
СВВ(9 лет 3 месяца)

можно конечно накостылить вокруг их библиотеки чтобы быть уверенным что она никуда ничего не отправит. ldd и тот же selinux (или его аналог) в помощь, во вторых то что они именно в ручную установка - это надо задокументировать что оно устанавливается не штатным образом и подать возражение, замечание в тот же ФСТЭК или Минпром, кто следит за списком разрешенного ПО, чтобы им поставили это на вид. тогда возможно в линукс типа goslinux от фссп или альтовку или еще какой будет официальный пакет и для линукса придется пользоваться этим дистрибутивом. Если ваша заявка пойдет - секса им будет гарантировано. а так - как я сталкивался с такими из себя софтописаками - гонор до гонореи.

Аватар пользователя salvator
salvator(9 лет 3 месяца)

Звиздячий звиздец. По факту те кто делает проприетарное по под линукс стараются по возможности дистанцироваться от идеалогии дистров ибо их много и каждый гнет свое(это если надо все поддерживать), те да, инсталлятор в виде скрипа кидающего бинари в /usr/local или /opt. Наиболее правильный вариант для производиталя в данном случае если он поставляет готовое коробочное решение(вместе с железкой) использовать скажем только centos и упаковывать по человечески в rpm. 

Аватар пользователя И-23
И-23(8 лет 7 месяцев)

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

ЗЫ: В линее EL'я, если технологический процесс построен с отступлениями от широкоупотребимых стандартов (практически гарантируется сколько-нибудь сложной *реальной* задачей) трудо- и не только ёмкость относительно правильных решений растёт как бы не по… не люблю экспоненту, будем аппроксимировать факториалом.

Аватар пользователя apanas
apanas(7 лет 8 месяцев)

"...проприетарщики утратили Сокровенное Знание правильной технологии реализации условно-работоспособного ПО" -

с этим согласен, вообще всё больше и больше сильно мотивированных, но абсолютно некомпетентных...печаль печальная...

Аватар пользователя И-23
И-23(8 лет 7 месяцев)

Объективные факты существует вне зависимости от чьего-то согласия или несогласия ☺

На самом деле (см. проблему тенденции к упадку навыка абстрактного мышления) проблеме в цене *фундаментальных* знаний и навыков.
И упадке (или уже утрате, или просто разбалансировке) Культуры его поддержания/распространения.
Потому что занятие крайне неблагодарное. Стремящиеся (а таких почти все) к простоте/популярности изложения в лучшем случае докопаются до формы.
Тенденция воплотилась в том числе к повышению уровня абстракции языков программирования. Без хотя бы элементарной постановки вопроса об уровне, оптимальном для решения той или иной задачи.
Интеграция некоторых, даже типо «свободных» решений (обычно в виде OSE) с системным уровнем — страх и ужос.

Аватар пользователя И-23
И-23(8 лет 7 месяцев)

По факту продаваны условно-работоспособного ПО для фрюниксов не способны не только адекватно реализовать основную функцию (регистрации/проверки «лицензии»), но элементарно описать/проверить зависимости.

Аватар пользователя Varg
Varg(10 лет 1 месяц)

Ретроспектива борьбы бобра с ослом даже намека не даёт на решение того или иного вопроса, ибо противоборствующие стороны в корне склонны не замечать причину возникновения самой проблемы - а именно процесс, породивший условия возникновения вышеупомянутых вопросов - деньги. Так и что? В итоге все забывают, что свободное ПО прежде всего свободное, так как носит изыскательный характер, а если вы используете это программное обеспечение с открытым исходным кодом для зарабатывания бабла, то идите и кидайтесь головой в навоз!

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

Аватар пользователя И-23
И-23(8 лет 7 месяцев)

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

И другая сторона проблемы в людях, которые не представляют себе разницы между работой от рассвета до заката и работой головой.
Кто способен представить разницу между равномерной ИБД и решением *конкретной* задачи, тот поймёт, что переубеждать такого персонажа — только портить.
Если кому интересны примеры, могу рекомедовать эксперимент.