LINUX.ORG.RU
ФорумTalks

Впечатления от КриптоПро


0

1

Есть у нас такая Компания - КРИПТО-ПРО, оплот российской безопасности и криптования по ГОСТу. (Вы же знаете, что если жрать что дают не по ГОСТу, то и сгущенка будет невкусная, и криптография ненадежная.)

У них есть готовое решение для жавы - КриптоПро JCP. Возникла задачка потестить модуль с его применением (часть веб-сайта, крутящегося на Java+JBoss).

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

Поимев по почте архив с файлами для установки, оно таки взлетело. Теперь впечатления.

(настоящим нацистам: в этом посте будет винда, но через час буду заводить и на линуксе тоже).

1) При установке оно валит многостраничными стектрейсами. Ошибки в них написаны на русском языке, поэтому в вендовой консольке (даже с ttf-шрифтами) ничего непонятно. Вкратце (если воткнуть негуманоидные коды в онлайн-перекодировщик), они рассказывают о невозможности установить необязательные компоненты.
2) При установке оно говорит, что серийник невалидный и падает. На самом деле это не так. Ключ отлично подхватывается уже из специальной админской гуйни, доступной уже после установки. За неимением других вариантов, исходную установку нужно делать без ключа, в триальном режиме.
3) Сам установщик запускается из консольки, батниками (продублированными шеллскриптами), и лежат они почему-то в каталоге lib, что само по себе нимало доставляет.
4) Установщик нужно натравить не на что-нибудь, а на развернутый дистрибутив JDK — он его будет модифицировать.
5) Зависимости нужно копировать прямо из дистрибутива веб-сервера (в моем случае JBoss) прямо в JRE. Да-да, копировать файлы. Конкретно, мне для счастья нужны были xmlsec.jar xalan.jar serializer.jar commons-logging.jar
6) Чтобы прописать путь до секретного ключа, нужно использовать свинговую гуёвую админку, которая ставится отдельно.
7) Мало того что она ставится отдельно, так еще и запускается не по-человечьи:
из консоли нужно набрать нечто вроде:
<путь к java>java ru.CryptoPro.JCP.ControlPane.MainControlPane
либо
\lib>ControlPane.bat «С:\Java\jdk\jre»
8) Админка по-страшному глючит. Например, она так и не дала посмотреть на импортированный ключик, выдавая ошибку «store wasn't opened» (грамматика сохранена). Впрочем, при попытке создать еще один store, ключик появлялся! Но открыть его всё равно было нельзя, из-за какой-то подобной же ошибки.
9) В админке постоянно встречаются пути к файлам. Ага, начинающиеся с ${user.home} и тому подобного. Кто не знает, это Java System Properties. Но это ведь не код на жаве, это гуевая админка. Что они тут делают? Почему не переменные окружения?
10) У меня админка запустилась в английской локали, невзирая на системную. То есть, все названия на английском. При этом в консоли появилась надпись «Determined encoding IBM866 not supported. Use English locale.»


Ну... не то чтобы это всё было так уж плохо. В конце концов, оно работает. Слава Эрафии! Но откуда такой привкус наколенной поделки? :)

★★★★☆

Слава Эрафии!

Какой либеральный патриот. ПЖИВ! ПЖИВ!

Fredrik
()

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

Sadler ★★★
()

оно валит многостраничными стектрейсами

Как и любое другое поделие на джаве.

shahid ★★★★★
()

Сталкивался, впечатления такие же, соболезную.

ollowtf ★★★
()

Ты, конечно же позвонил топ-манагарем Крипто-РогаКопыта и пояснил грамотно, почему их продукт и программисты = *****?

FiXer ★★☆☆☆
()

Ну... не то чтобы это всё было так уж плохо. В конце концов, оно работает. Слава Эрафии! Но откуда такой привкус наколенной поделки? :)

Конкуренции почти нет, вот и изгаляются.

praseodim ★★★★★
()

Ну, вот

А виноватой оказывается Java™, конечно же?

iZEN ★★★★★
()
Ответ на: комментарий от Dragon59

Рекомендую почитать бложик: samolisov.blogspot.com — если делать всё по науке, то ощущения от «наколенности поделок» не возникает.

iZEN ★★★★★
()

Думается мне, что все дело в том, что всякие API для всего на свете писались по остаточному принципу (прописано в ГОСТе что должен быть у этой хероты внешний API и хоть сдохни, а роди).
С другой стороны ясно, что 99.99% будут использовать криптоАРМ и не париться на счет внедрения в свои поделки (ибо самих поделок нет). А подписать и проверить файл можно и штатными средствами.
Опять же все эти API делаются не с целью продемонстрировать отказо- и дурако- устойчивость, а всего лишь минимальный набор нужного функционала, который можно заставить работать (никто не обещал и не гарантировал наличие волшебной кнопки «сделать пи***то»). Поэтому использовать его надо именно так, предельно нежно и осторожно, не перегружая и не насилуя.

Ну про «Эрафию», уже сказали. Если вам так глубоко противна наша страна, чего же вы не телепортируетесь на другой глобус. Или «кактус и мыши» это про вас?

yax123 ★★★★★
()

Ошибки в них написаны на русском языке, поэтому в вендовой консольке (даже с ttf-шрифтами) ничего непонятно.

Можно попробовать chcp 65001, но надежды не очень много, т.к. это utf-8, а java использует usc-16.

atrus ★★★★★
()
Ответ на: комментарий от yax123

Ну про «Эрафию», уже сказали. Если вам так глубоко противна наша страна, чего же вы не телепортируетесь на другой глобус. Или «кактус и мыши» это про вас?

Молоток! Поддерживаю.

Fredrik
()
Ответ на: комментарий от yax123

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

мешает разница в стоимости недвижимости

Karapuz ★★★★★
()
Ответ на: комментарий от yax123

Ну про «Эрафию», уже сказали. Если вам так глубоко противна наша страна, чего же вы не телепортируетесь на другой глобус. Или «кактус и мыши» это про вас?

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

stevejobs ★★★★☆
() автор топика

Но откуда такой привкус наколенной поделки? :)

сделано не людьми и для людей, а военными и для военных. вот и привкус

Karapuz ★★★★★
()
Ответ на: комментарий от stevejobs

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

yax123 ★★★★★
()

Сферическое быдлокодерство просто... Почему наши реализации местных (а местами они совпадают с российскими) крипто-ГОСТов просто работают?

segfault ★★★★★
()

то и сгущенка будет невкусная, и криптография ненадежная.

Сгущенка ГОСТ-овская действительно хороша (т.е. строго по советскому ГОСТ 2903-78, а не современным). А что касается криптологии - то тут наши доблестные защитники правильно сделали, не оставив пользователю выбора, какие шифры использовать. Ибо как показывает практика, стрельба себе по ногам нестойкими шифрами в нашем мире популярна.

segfault ★★★★★
()

Правда в том, что КриптоПро развивает С-шный криптопровайдер, а на JCP там уже много лет назад все забили. Как собрали что-то хрен знает когда(2-3 года назад), так оно и существует.

bo_geschopf
()

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

bo_geschopf
()

Наслождайся своей JAVA в чем проблема то?

bhfq ★★★★★
()
Ответ на: комментарий от bo_geschopf

есть всё на форуме, гуглится. Просто я как-то привык к «жава»=«искаробочно и удобно», а тут не совсем так.

stevejobs ★★★★☆
() автор топика
Ответ на: комментарий от bo_geschopf

:) ты же понимаешь, что, даже если бы это была новая версия портала госуслуг, я не могу сказать о об этом из-за NDA.

stevejobs ★★★★☆
() автор топика
Ответ на: комментарий от stevejobs

Честно говоря, не знаю как дела в джаве, но часто в системах, куда можно добавить свою криптографическую библиотеку, библиотеку-то добавить можно, но список криптоалгоритмов где-то захардкожен. Например у мозиллы все так — хотите свою реализацию RSA — нет проблем; хотите ГОСТ добавить — извольте похачить NSS и сделать свою сборку FF с ГОСТом, а потом добавляйте. Возможно, у этих плясок с бубном и хаков JRE такие же предпосылки.

bo_geschopf
()
Ответ на: комментарий от stevejobs

Насколько я знаю, там пашет конторка AT-консалтинг и никто из них не подписывал NDA, заставляющее скрывать, то, что они используют криптопро jcp на сервере, аладдиновские токены в качестве уэк и криптопро уц, чтобы их клепать.

bo_geschopf
()
Ответ на: комментарий от bo_geschopf

и никто из них не подписывал NDA

вполне возможно, у них самих вообще и их подрядчиков в частности, когда оформляешься на работу, подписываешь стандартный документ, по которому 1) не имеешь права говорить об этом договоре (как в бойцовском клубе) 2) ты не имеешь права говорить где работаешь 3) не имеешь права раскрывать размер заработной платы 4) отчаянно не рекомендуется говорить с посторонними лицами о работе, да и с непосторонними тоже 5) на срок не менее 3х лет после увольнения ты не имеешь право использовать полученную в ходе работы информацию. И там такого страниц десять. Хотя, может и нет, откуда мне знать :)

stevejobs ★★★★☆
() автор топика
Ответ на: комментарий от bo_geschopf

Возможно, у этих плясок с бубном и хаков JRE такие же предпосылки.

возможно. Я не очень шарю во всех этих криптостандартах, может это вообще по стандарту нужно пихать либы именно в JRE.

В Java есть системы для сборки и работы с зависимостями (ant+ivy, maven, gradle, разные специфичные штуки), плюс стандартные инфраструктуры (типа ынтерпрайз-веба, или десктопа, или эклипсовых плагинов). Если грамотно сделать интеграцию со всеми этими штуками - любая либа будет подключаться фантастически удобно. Правда для этого придется угрохать огромное время. Но для проектов широкого пользования, типа фреймворков, это время более чем оправдано - людям _приятно_ пользоваться такими штуками.

stevejobs ★★★★☆
() автор топика
Ответ на: комментарий от stevejobs

Я сказала не «не подписывал нда», а «не подписывал нда, заставляющее скрывать, что они юзают етокенф, криптопро уц и жсп». Согласись, глупо было бы это скрывать и при этом раздавать етокены в качестве уэк;) остальное столь же очевидно.

bo_geschopf
()

Потому что в России криптография = винда, а под винду и ISS вполне работает КриптоПро CSP.
JCP, судя по всему, был сделан чисто чтоб был.

yirk ★★★
()
Ответ на: комментарий от bo_geschopf

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

Legioner ★★★★★
()
Ответ на: комментарий от stevejobs

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

Ты главное скажи:
есть смысл сюда кидать пожелания, может типа кто то всё таки прочтёт?

Atlant ★★★★★
()
Ответ на: комментарий от baverman

Откуда дровишки?

Эм... Не помню уже, вроде всегда было известно. Ещё с момента появления, когда всем FIDO ржали над предупреждением, что оно не пригодно для ядерных реакторов.

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

atrus ★★★★★
()
Ответ на: комментарий от atrus
Versions of the Java programming language prior to 1.1 used Unicode version 1.1.5. Upgrades to newer versions of the Unicode Standard occurred in JDK 1.1 (to Unicode 2.0), JDK 1.1.7 (to Unicode 2.1), J2SE 1.4 (to Unicode 3.0), and J2SE 5.0 (to Unicode 4.0).

The Unicode standard was originally designed as a fixed-width 16-bit character encoding. It has since been changed to allow for characters whose representation requires more than 16 bits. The range of legal code points is now U+0000 to U+10FFFF, using the hexadecimal U+n notation. Characters whose code points are greater than U+FFFF are called supplementary characters. To represent the complete range of characters using only 16-bit units, the Unicode standard defines an encoding called UTF-16. In this encoding, supplementary characters are represented as pairs of 16-bit code units, the first from the high-surrogates range, (U+D800 to U+DBFF), the second from the low-surrogates range (U+DC00 to U+DFFF). For characters in the range U+0000 to U+FFFF, the values of code points and UTF-16 code units are the same.

The Java programming language represents text in sequences of 16-bit code units, using the UTF-16 encoding. A few APIs, primarily in the Character class, use 32-bit integers to represent code points as individual entities. The Java platform provides methods to convert between the two representations.

Пруфлинк http://docs.oracle.com/javase/specs/jls/se5.0/html/lexical.html#3.1

(The Java Language Specification, Third Edition)

stevejobs ★★★★☆
() автор топика
Ответ на: комментарий от yax123

Ну про «Эрафию», уже сказали.

Вы чо такие тут все дерзкие и без паранжи ходите? Это меня оскробляет. У нас лингвистическая свобода. Слово эрафия не несет заведомо отрицательной коннотации. даже игрушка такая была, «Restoration of Erathia».

Если вам так глубоко противна наша страна, чего же вы не телепортируетесь на другой глобус. Или «кактус и мыши» это про вас?

а если вам не нравится, что мы тут пишем на лоре, что же вы не идете на другой сайт?

gods-little-toy ★★★
()
Ответ на: комментарий от gods-little-toy

Это что, была вялая попытка спровоцировать «танцпол»?
Лингвистическая швободка говорите?
Ну тогда, ПНХ.

yax123 ★★★★★
()
Ответ на: комментарий от Legioner

Класс, видимо такая жопа только в NSS и мелких поделках. Буду знать:)

bo_geschopf
()

Ты жжош! Все решения от КриптоПРО созданы для установки на ОДНУ машину. И для работы только на ней. Стыдно не знать.

Suntechnic ★★★★★
()
Ответ на: комментарий от stevejobs

Все решения от криптопро написаны что бы запускаться только на ОДНОЙ машине - машине их разработчика. На другом компьютере их запускать себе дороже. Ну как бывают пишут - у меня компиляется и хорошо... А тут брутальние - у меня запускается и устанавливается без ошибок - то что у вас - ваши проблемы.

Suntechnic ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.