<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<title type="html"><![CDATA[Форум Рутокен &mdash; параллельный запуск jarsigner/jsign с рутокен 3.0]]></title>
	<link rel="self" href="https://forum.rutoken.ru/feed/atom/topic/4316/" />
	<updated>2024-05-27T08:36:36Z</updated>
	<generator>PunBB</generator>
	<id>https://forum.rutoken.ru/topic/4316/</id>
		<entry>
			<title type="html"><![CDATA[Re: параллельный запуск jarsigner/jsign с рутокен 3.0]]></title>
			<link rel="alternate" href="https://forum.rutoken.ru/post/24977/#p24977" />
			<content type="html"><![CDATA[<p>Здравствуйте <strong>Abramova56</strong>, попробуйте для начала отключить антивирус на вашем компьютере.<br />Еще советуем обратиться напрямую в техническую поддержку личного кабинета ИП.</p>]]></content>
			<author>
				<name><![CDATA[Николай Киблицкий]]></name>
				<uri>https://forum.rutoken.ru/user/10598/</uri>
			</author>
			<updated>2024-05-27T08:36:36Z</updated>
			<id>https://forum.rutoken.ru/post/24977/#p24977</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: параллельный запуск jarsigner/jsign с рутокен 3.0]]></title>
			<link rel="alternate" href="https://forum.rutoken.ru/post/24972/#p24972" />
			<content type="html"><![CDATA[<p>Здравствуйте, на этапе&nbsp; &quot;Проверка защищённого соединения с сервером Личного кабинета индивидуального предпринимателя&quot; зависает, постоянно кружится и все. Буквально на прошлой неделе все получалось, но сам сервис личного кабинета налогоплательщика работал плохо, а сейчас заканчивается ошибкой. Что делать?</p>]]></content>
			<author>
				<name><![CDATA[Abramova56]]></name>
				<uri>https://forum.rutoken.ru/user/15400/</uri>
			</author>
			<updated>2024-05-27T06:46:29Z</updated>
			<id>https://forum.rutoken.ru/post/24972/#p24972</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: параллельный запуск jarsigner/jsign с рутокен 3.0]]></title>
			<link rel="alternate" href="https://forum.rutoken.ru/post/24970/#p24970" />
			<content type="html"><![CDATA[<p><strong>cy</strong>, добрый день.<br />Нет, программно вернуть не получится. Если только использовать управляемый USB хаб.</p>]]></content>
			<author>
				<name><![CDATA[Аверченко Кирилл]]></name>
				<uri>https://forum.rutoken.ru/user/11551/</uri>
			</author>
			<updated>2024-05-27T05:27:53Z</updated>
			<id>https://forum.rutoken.ru/post/24970/#p24970</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: параллельный запуск jarsigner/jsign с рутокен 3.0]]></title>
			<link rel="alternate" href="https://forum.rutoken.ru/post/24889/#p24889" />
			<content type="html"><![CDATA[<p>Спасибо. запросил у наших закупщиков.</p><p>а есть все таки способ, программно вернуть токен к жизни?</p>]]></content>
			<author>
				<name><![CDATA[cy]]></name>
				<uri>https://forum.rutoken.ru/user/14885/</uri>
			</author>
			<updated>2024-05-21T10:57:18Z</updated>
			<id>https://forum.rutoken.ru/post/24889/#p24889</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: параллельный запуск jarsigner/jsign с рутокен 3.0]]></title>
			<link rel="alternate" href="https://forum.rutoken.ru/post/24887/#p24887" />
			<content type="html"><![CDATA[<p><strong>cy</strong>, да, Рутокен ЭЦП 3.0 3220, к сожалению, имеет отнюдь не лучшую скорость подписи RSA4096. По нашим внутренним измерениям одна операция подписи без накладных расходов на токенах этой модели занимает 6 секунд.<br />Быстрая подпись RSA4096 реализована в токенах Рутокен ЭЦП 3.0 3120 и Рутокен ЭЦП 3.0 3150: в них само выполнение команды подписи RSA4096 занимает около 250 мс. С учетом накладных расходов у меня с токеном Рутокен ЭЦП 3.0 3120 подпись 256 файлов четырьмя батчами по 64 файла занимает около 75 секунд (время может немного плавать), 8 батчей по 32 файла -- около 70 секунд.</p>]]></content>
			<author>
				<name><![CDATA[Евгений Мироненко]]></name>
				<uri>https://forum.rutoken.ru/user/8673/</uri>
			</author>
			<updated>2024-05-21T10:33:44Z</updated>
			<id>https://forum.rutoken.ru/post/24887/#p24887</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: параллельный запуск jarsigner/jsign с рутокен 3.0]]></title>
			<link rel="alternate" href="https://forum.rutoken.ru/post/24886/#p24886" />
			<content type="html"><![CDATA[<p><span class="postimg"><a class="fancybox fancybox.image" rel="group" href="https://forum.rutoken.ru/uploads/images/2024/05/9d377c14932663e72896502a52a79108.png"><img class="fb_img" src="https://forum.rutoken.ru/uploads/previews/2024/05/9d377c14932663e72896502a52a79108.png" alt="" /></a></span> <br />модель нашего токена.<br />GlobalSign не дает возможности использовать ECDSA.<br />По возможности, подскажите с какой моделью токена получится ускорить подпись файлов при использовании RSA.</p><p>Спасибо за рекомендацию, про одновременное подписывание нескольких файлов, будем думать как ее в текущие процессы встроить.</p>]]></content>
			<author>
				<name><![CDATA[cy]]></name>
				<uri>https://forum.rutoken.ru/user/14885/</uri>
			</author>
			<updated>2024-05-21T09:42:33Z</updated>
			<id>https://forum.rutoken.ru/post/24886/#p24886</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: параллельный запуск jarsigner/jsign с рутокен 3.0]]></title>
			<link rel="alternate" href="https://forum.rutoken.ru/post/24804/#p24804" />
			<content type="html"><![CDATA[<p>Воспроизвели проблему.</p><p>1. Процессы <strong>java -jar jsign-5.0.jar ...</strong>, действительно, падают с ошибкой о нехватке памяти. Судя по дампу ошибки, проблема вызвана нехваткой виртуальной памяти (RAM + swap). Нагуглил: значение по умолчанию для Initial Heap Size в jdk22 (и ранее как будто тоже) -- 1/64 от физической RAM (<a href="https://docs.oracle.com/en/java/javase/22/gctuning/ergonomics.html#GUID-DA88B6A6-AF89-4423-95A6-BBCBD9FAE781">https://docs.oracle.com/en/java/javase/ … CBD9FAE781</a>). Так что падение от нехватки памяти выглядит ожидаемым.</p><p>2. Наблюдаю: некоторые процессы упали не на запуске, а в процессе выполнения (опять же из-за исчерпания heap). Считаю справедливым предположение, что нативные библиотеки используют не тот Heap, который выделился на этапе запуска JVM (это heap, управляемый GC java-машины), а общий Heap процесса (отъедают виртуальной памяти). Соответственно, если по 1/64 физической RAM на java-процесс в виртуальной памяти зарезервировано, и возникают попытки еще аллоцировать виртуальной памяти, в какой-то момент одна из попыток аллокации завершится ошибкой. В самом неудачном случае это происходит в тот момент, когда токен выполняет неразрывную &quot;цепочку&quot; APDU-команд. Ошибка выделения памяти в процессе, как правило, является ситуацией, в которой ничего нельзя поделать, и поэтому грациозно завершить цепочку не удается.</p><p>3. Удалось параллельно запускать 200+ процессов <strong>java -jar jsign-5.0.jar ...</strong> при условии указания опции <strong>-Xms</strong> (Initial Heap Size), например:</p><div class="codebox"><pre><code>java -Xms128m -jar ../jsign-5.0.jar --keystore ../eToken.cfg --alias &quot;Rutoken Plugin&quot; --storetype PKCS11 --storepass 12345678 --alg SHA-256 --tsaurl http://timestamp.globalsign.com/tsa/r6advanced1 --tsmode RFC3161 ${FILELIST}&amp;</code></pre></div><p>256 процессов по 128Mb -- это 32 Gb виртуальной памяти. Если RAM и swap меньше, стоит указывать меньшие значения (-Xms64m, -Xms32m) или же запускать меньше параллельных процессов <strong>java -jar jsign-5.0.jar ...</strong>.</p><div class="quotebox"><cite>cy пишет:</cite><blockquote><p>1. какие ограничения, на параллельное подписывание?</p></blockquote></div><p>Со стороны нашего middleware ограничений на параллельное его использование нет.<br />Со стороны timestamp сервера можно огрести (воспроизвелось): <br /></p><div class="codebox"><pre><code>jsign: Couldn&#039;t sign File197_0.exe
net.jsign.timestamp.TimestampingException: Unable to complete the timestamping after 3 attempts
        at net.jsign.timestamp.Timestamper.timestamp(Timestamper.java:122)
        at net.jsign.AuthenticodeSigner.createSignedData(AuthenticodeSigner.java:393)
        at net.jsign.AuthenticodeSigner.sign(AuthenticodeSigner.java:348)
        at net.jsign.SignerHelper.sign(SignerHelper.java:394)
        at net.jsign.JsignCLI.execute(JsignCLI.java:132)
        at net.jsign.JsignCLI.main(JsignCLI.java:40)
        Suppressed: java.io.IOException: Unable to complete the timestamping due to HTTP error: 429 - Too Many Requests
                at net.jsign.timestamp.RFC3161Timestamper.timestamp(RFC3161Timestamper.java:69)
                at net.jsign.timestamp.Timestamper.timestamp(Timestamper.java:127)
                ... 5 more
        Suppressed: java.io.IOException: Unable to complete the timestamping due to HTTP error: 429 - Too Many Requests
                at net.jsign.timestamp.RFC3161Timestamper.timestamp(RFC3161Timestamper.java:69)
                at net.jsign.timestamp.Timestamper.timestamp(Timestamper.java:127)
                ... 5 more
        Suppressed: java.io.IOException: Unable to complete the timestamping due to HTTP error: 429 - Too Many Requests
                at net.jsign.timestamp.RFC3161Timestamper.timestamp(RFC3161Timestamper.java:69)
                at net.jsign.timestamp.Timestamper.timestamp(Timestamper.java:127)
                ... 5 more
Try `java -jar jsign.jar --help&#039; for more information.</code></pre></div><p>Со стороны документации jsign есть намек на то, что много файлов стоит подписывать в одном вызове, а не в нескольких (<a href="https://ebourg.github.io/jsign/">https://ebourg.github.io/jsign/</a>):<br /></p><div class="quotebox"><blockquote><p>Implementation note: Jsign performs an extra call to the signing API to retrieve the current certificate chain before signing. When signing multiple files it&#039;s recommended to invoke Jsign only once with the list of files to avoid doubling the quota usage.</p></blockquote></div><div class="quotebox"><blockquote><p>2. есть ли программный способ вернуть токен в рабочее состояние?, найденное на текущий момент решение: физическое отключение подключение.</p></blockquote></div><p>Зависит от версии токена (скриншот окна &quot;Информация о Рутокен&quot; Панели управления Рутокен поможет уточнить). </p><div class="quotebox"><blockquote><p>3. есть ли какие-то варианты ускорения? при последовательном подписывании, подпись с сертификатом на рутокен, в 3-4 раза медленнее чем с сертификатом на SafeNet eToken.</p></blockquote></div><p>Для некоторых моделей Рутокен ЭЦП RSA-подпись -- не самая быстрая операция. Чтобы понять, каких значений скорости подписи можно достичь, опять же нужно знать версию используемого токена. Сам токен параллельно выполнять операции подписи не умеет (это специфика любой смарт-карты), так что ускорение при параллельном вызове <strong>java -jar jsign-5.0.jar ...</strong> может быть связано только с тем, что в промежутках между обращением к токену за подписью jsign выполняет какие-то еще операции.</p><p>Текущие опыты паралелльной подписи показывают, что подпись 256 файлов в два параллельных запуска <strong>java -jar jsign-5.0.jar ...</strong> с батчами по 128 файлов показывает улучшение в скорости подписания в 1.5 -- 2 раза по сравнению с запуском <strong>java -jar jsign-5.0.jar ...</strong> с одним батчем из 256 файлов. Между вариантами &quot;запустить 256 процессов подписи по одному файлу&quot; и &quot;запустить 2 процесса подписи по 128 файлов&quot; разница в выполнении незначительна (от запуска к запуску плавает в пользу одного из вариантов).</p><p>Если есть возможность (не знаю, можно ли в случае выпуска сертификата у Globalsign этим управлять), стоит запрашивать сертификат подписи с ECDSA-ключами, а не RSA-ключами. ECDSA-подпись на Рутокен в подавляющем большинстве моделей быстрее подписи RSA4096.</p><p>Резюмирую про варианты ускорения:<br />1. Подписывать в несколько параллельных запусков jsign (двух может быть достаточно).<br />2. Подбор/приобретение модели токена с самой быстрой подписью (нужно знать, каким алгоритмом вы подписываете).<br />3. Использование ECDSA, а не RSA (если у Globalsign есть такая опция).</p>]]></content>
			<author>
				<name><![CDATA[Евгений Мироненко]]></name>
				<uri>https://forum.rutoken.ru/user/8673/</uri>
			</author>
			<updated>2024-05-15T18:35:10Z</updated>
			<id>https://forum.rutoken.ru/post/24804/#p24804</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: параллельный запуск jarsigner/jsign с рутокен 3.0]]></title>
			<link rel="alternate" href="https://forum.rutoken.ru/post/24798/#p24798" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>Евгений Мироненко пишет:</cite><blockquote><p><strong>cy</strong>, добрый день!</p><p>1. Правильно ли я понимаю, что вы выполняете подпись исполняемых файлов в соответствии с разделом &quot;Using Code Signing and EV Code Signing (Rutoken, Driver version below 4.17.0.0)&quot; инструкции GlobalSign (<a href="https://support.globalsign.com/code-signing/download-and-install-code-signing-rutoken-30">https://support.globalsign.com/code-sig … rutoken-30</a>)? Есть ли какие-то отклонения от данной инструкции? <br />2. При каком количестве параллельно подписываемых файлов можно ожидать стабильного воспроизведения проблемы?<br />3. Ошибка &quot;Ошибка Рутокен 0x6883. Ожидается завершающая команда цепочки.&quot; отображается в Панели Управления &quot;Рутокен&quot; после того, как некоторые из запусков jsign завершились неудачно?</p><div class="quotebox"><cite>cy пишет:</cite><blockquote><p>4. есть ли возможность совместить работу signtool и jarsign/jsign (как я понимаю для работы первой утилиты нужны драйвера 4.17 и новее, для вторых утилит, не новее 4.16)</p></blockquote></div><p>Не готов утверждать с полной уверенностью, но выглядит так, будто в драйверах 4.17 и новее не вносились никакие изменения, блокирующие выполнение подписи при помощи jsign. Скорее всего, в инструкции подразумевается, что в поддержка подписи signtool гарантируется с драйверами 4.17 и новее, а с драйверами не новее 4.16 гарантируется только подпись при помощи jsign.</p></blockquote></div><p>1. да по инструкции<br />2. 257 копий запустилось, примерно от 10 экземпляров пришла ошибка о нехватке памяти, потом пошли ошибки доступа к токену.<br />3. да, мы считаем что ошибка в консоли после этого &quot;массового&quot; запуска с ошибками.<br />4. вопрос снят.</p>]]></content>
			<author>
				<name><![CDATA[cy]]></name>
				<uri>https://forum.rutoken.ru/user/14885/</uri>
			</author>
			<updated>2024-05-15T12:08:34Z</updated>
			<id>https://forum.rutoken.ru/post/24798/#p24798</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: параллельный запуск jarsigner/jsign с рутокен 3.0]]></title>
			<link rel="alternate" href="https://forum.rutoken.ru/post/24774/#p24774" />
			<content type="html"><![CDATA[<p><strong>cy</strong>, добрый день!</p><p>1. Правильно ли я понимаю, что вы выполняете подпись исполняемых файлов в соответствии с разделом &quot;Using Code Signing and EV Code Signing (Rutoken, Driver version below 4.17.0.0)&quot; инструкции GlobalSign (<a href="https://support.globalsign.com/code-signing/download-and-install-code-signing-rutoken-30">https://support.globalsign.com/code-sig … rutoken-30</a>)? Есть ли какие-то отклонения от данной инструкции? <br />2. При каком количестве параллельно подписываемых файлов можно ожидать стабильного воспроизведения проблемы?<br />3. Ошибка &quot;Ошибка Рутокен 0x6883. Ожидается завершающая команда цепочки.&quot; отображается в Панели Управления &quot;Рутокен&quot; после того, как некоторые из запусков jsign завершились неудачно?</p><div class="quotebox"><cite>cy пишет:</cite><blockquote><p>4. есть ли возможность совместить работу signtool и jarsign/jsign (как я понимаю для работы первой утилиты нужны драйвера 4.17 и новее, для вторых утилит, не новее 4.16)</p></blockquote></div><p>Не готов утверждать с полной уверенностью, но выглядит так, будто в драйверах 4.17 и новее не вносились никакие изменения, блокирующие выполнение подписи при помощи jsign. Скорее всего, в инструкции подразумевается, что в поддержка подписи signtool гарантируется с драйверами 4.17 и новее, а с драйверами не новее 4.16 гарантируется только подпись при помощи jsign.</p>]]></content>
			<author>
				<name><![CDATA[Евгений Мироненко]]></name>
				<uri>https://forum.rutoken.ru/user/8673/</uri>
			</author>
			<updated>2024-05-15T09:45:02Z</updated>
			<id>https://forum.rutoken.ru/post/24774/#p24774</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[параллельный запуск jarsigner/jsign с рутокен 3.0]]></title>
			<link rel="alternate" href="https://forum.rutoken.ru/post/24772/#p24772" />
			<content type="html"><![CDATA[<p>при параллельном запуске утилит подписывания, токен переходит в состояние: &quot;Ошибка Рутокен 0x6883. Ожидается завершающая команда цепочки.&quot; <br />1. какие ограничения, на параллельное подписывание?<br />2. есть ли программный способ вернуть токен в рабочее состояние?, найденное на текущий момент решение: физическое отключение подключение.<br />3. есть ли какие-то варианты ускорения? при последовательном подписывании, подпись с сертификатом на рутокен, в 3-4 раза медленнее чем с сертификатом на SafeNet eToken.</p><p>все происходит с версией драйверов 4.16</p><p>4. есть ли возможность совместить работу signtool и jarsign/jsign (как я понимаю для работы первой утилиты нужны драйвера 4.17 и новее, для вторых утилит, не новее 4.16)</p>]]></content>
			<author>
				<name><![CDATA[cy]]></name>
				<uri>https://forum.rutoken.ru/user/14885/</uri>
			</author>
			<updated>2024-05-15T09:10:37Z</updated>
			<id>https://forum.rutoken.ru/post/24772/#p24772</id>
		</entry>
</feed>
