<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title><![CDATA[Форум Рутокен &mdash; Подпись данные Rutoken Plugin без сертификата]]></title>
		<link>https://forum.rutoken.ru/topic/3251/</link>
		<atom:link href="https://forum.rutoken.ru/feed/rss/topic/3251/" rel="self" type="application/rss+xml" />
		<description><![CDATA[Недавние сообщения в теме «Подпись данные Rutoken Plugin без сертификата».]]></description>
		<lastBuildDate>Tue, 29 Sep 2020 07:20:17 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[Re: Подпись данные Rutoken Plugin без сертификата]]></title>
			<link>https://forum.rutoken.ru/post/14847/#p14847</link>
			<description><![CDATA[<p>Пётр, большое спасибо за ответ! Приношу извинения, что запутал с хэшем и подписью. Понятно, что это разные вещи. Я привел информацию о хэше, чтобы исключить вопрос: &quot;А точно ли я проверяю тот же текст, что и подписываю, может случайно добавил спецсимволы и т.п.&quot;.</p><p>Вопрос был как раз как проверять &quot;сырую&quot; подпись полученную из плагина на сервере с Linux публичным ключом.<br />Спасибо за пояснение о другом формате подписи из плагина, команда преобразования подписи помогла<br /></p><div class="codebox"><pre><code>cat test.sign | tr -d : | xxd -r -p &gt; test.sign_pure</code></pre></div><p>Подпись успешно проверяется через openssl на сервере. Еще раз спасибо!</p>]]></description>
			<author><![CDATA[null@example.com (Wildtuna)]]></author>
			<pubDate>Tue, 29 Sep 2020 07:20:17 +0000</pubDate>
			<guid>https://forum.rutoken.ru/post/14847/#p14847</guid>
		</item>
		<item>
			<title><![CDATA[Re: Подпись данные Rutoken Plugin без сертификата]]></title>
			<link>https://forum.rutoken.ru/post/14846/#p14846</link>
			<description><![CDATA[<p>Добрый день,</p><p>У вас хеш и подпись перемешались.<br />Команда:<br /></p><div class="codebox"><pre><code>openssl dgst -engine gost -md_gost12_256 test.txt</code></pre></div><p>это команда получения хеша от текста.</p><p>Чтобы вычислить подпись, нужно выполнить:<br /></p><div class="codebox"><pre><code>openssl
Openssl&gt;engine dynamic -pre SO_PATH:/usr/lib/x86_64-linux-gnu/engines-1.1/librtengine.so  -pre ID:rtengine -pre LIST_ADD:1 -pre LOAD -pre MODULE_PATH:librtpkcs11ecp.so
Openssl&gt;dgst -engine rtengine -keyform engine -md_gost12_256 -sign &quot;pkcs11:id=%46%42%15%c9%49%b1%6a%09%71%f9%43%1b%2a%51%35%6b%4f%80%6e%11&quot; -out test.sign test.text</code></pre></div><p>%46%42%15%c9%49%b1%6a%09%71%f9%43%1b%2a%51%35%6b%4f%80%6e%11 -- идентификатор ключа на токене, у вас он будет отличаться. В качестве разделителей используется %.</p><p>test.text -- файл, для которого считается подпись<br />test.sign -- файл, куда запишется результат подписи</p><p>Результат будет храниться в бинарном формате (не текстовом в hex).</p><p>На странице <a href="https://aktivco.github.io/rutoken-plugin-demo/">https://aktivco.github.io/rutoken-plugin-demo/</a> получается подпись, разделенная двоеточиями и в шестнадцатеричном формате. Для этого сначала подсчитайте хеш (операция &quot;Вычислить хеш&quot;), от текста. Полученный хеш скопируйте на вкладку &quot;Подпись на ключе&quot;. Выход и будет подписью.</p><p>OpenSSL работает с другим форматом подписи. Чтобы конвертировать подпись полученную из Плагина выполните<br /></p><div class="codebox"><pre><code>cat test.sign | tr -d : | xxd -r -p &gt; test.sign_pure</code></pre></div><p> </p><p>Дальше уже можно выполнить проверку подписи:<br /></p><div class="codebox"><pre><code> 
openssl dgst -engine gost -md_gost12_256 -verify pubkey.pem -signature test.sign_pure  test.text</code></pre></div><p> </p><p>Если вы получили подпись с помощью openssl, то шаг конвертации можно пропустить.</p><p>Напомню, что подсчет подписи по ГОСТ состоит из двух этапов. Подсчет хеша, затем непосредственно подпись от полученного значения. Именно поэтому при работе через сайт мы выполняем два действия.</p>]]></description>
			<author><![CDATA[null@example.com (Пётр Михалицын)]]></author>
			<pubDate>Mon, 28 Sep 2020 16:59:49 +0000</pubDate>
			<guid>https://forum.rutoken.ru/post/14846/#p14846</guid>
		</item>
		<item>
			<title><![CDATA[Re: Подпись данные Rutoken Plugin без сертификата]]></title>
			<link>https://forum.rutoken.ru/post/14845/#p14845</link>
			<description><![CDATA[<p>Пробовал через openssl dgst, но подпись не проходит проверку:<br />openssl dgst -engine gost -md_gost12_256 -verify pubclear.pem -signature test.sgn test.txt<br />engine &quot;gost&quot; set.<br />Verification Failure</p><p>pubclear.pem - это экспортированный публичный ключ из сертификата.<br />test.sgn - подпись по ключу из демо-страницы РуТокен (<a href="https://aktivco.github.io/rutoken-plugin-demo/">https://aktivco.github.io/rutoken-plugin-demo/</a>)<br />test.txt - файл с подписанными данными</p><p>При этом хэш сделанный на демо-странице совпадает с хешем, который снимаю через openssl.<br />openssl dgst -engine gost -md_gost12_256 test.txt<br />engine &quot;gost&quot; set.<br />md_gost12_256(test.txt)= 5bcf7369336eb76fe916f83974cdc21ac677b5af8e25061495395c257ecdecb0</p><p>На демо-странице:<br />Хеш (размер должен соответствовать алгоритму хеширования): 5b:cf:73:69:33:6e:b7:6f:e9:16:f8:39:74:cd:c2:1a:c6:77:b5:af:8e:25:06:14:95:39:5c:25:7e:cd:ec:b0</p><p>Единственное отличие - это наличие двоеточий, через каждые 2 символа.</p><br /><p>Пробовал полученную подпись на ключе (&quot;сырую&quot;) писать в test.sgn как с двоеточием, так и без, но все равно Verification Failure.</p>]]></description>
			<author><![CDATA[null@example.com (Wildtuna)]]></author>
			<pubDate>Mon, 28 Sep 2020 14:24:22 +0000</pubDate>
			<guid>https://forum.rutoken.ru/post/14845/#p14845</guid>
		</item>
		<item>
			<title><![CDATA[Re: Подпись данные Rutoken Plugin без сертификата]]></title>
			<link>https://forum.rutoken.ru/post/14841/#p14841</link>
			<description><![CDATA[<div class="quotebox"><cite>Павел Анфимов пишет:</cite><blockquote><p><strong>Wildtuna</strong>, добрый день!</p><p>Через cryptcp нельзя ни создать, ни проверить &quot;сырую&quot; подпись. Только в CMS-конверте.</p></blockquote></div><p>А не подскажете через какой инструмент можно проверить &quot;сырую&quot; подпись?</p>]]></description>
			<author><![CDATA[null@example.com (Wildtuna)]]></author>
			<pubDate>Mon, 28 Sep 2020 09:31:58 +0000</pubDate>
			<guid>https://forum.rutoken.ru/post/14841/#p14841</guid>
		</item>
		<item>
			<title><![CDATA[Re: Подпись данные Rutoken Plugin без сертификата]]></title>
			<link>https://forum.rutoken.ru/post/14840/#p14840</link>
			<description><![CDATA[<p><strong>Wildtuna</strong>, добрый день!</p><p>Через cryptcp нельзя ни создать, ни проверить &quot;сырую&quot; подпись. Только в CMS-конверте.</p>]]></description>
			<author><![CDATA[null@example.com (Павел Анфимов)]]></author>
			<pubDate>Mon, 28 Sep 2020 08:58:02 +0000</pubDate>
			<guid>https://forum.rutoken.ru/post/14840/#p14840</guid>
		</item>
		<item>
			<title><![CDATA[Re: Подпись данные Rutoken Plugin без сертификата]]></title>
			<link>https://forum.rutoken.ru/post/14839/#p14839</link>
			<description><![CDATA[<div class="quotebox"><cite>Евгений Мироненко пишет:</cite><blockquote><p><strong>Wildtuna</strong>, добрый вечер!</p><div class="quotebox"><blockquote><p>У нас процесс построен так:<br />1. На токене создаем ключевую пару;<br />2. Формируем запрос на сертификат в УЦ и издаем сертификат;<br />3. Не записывая сертификат на токен формируем подпись данных и проверяем сертификатом на сервере.</p></blockquote></div><p>Видимо, возникает какое-то недопонимание по причине недосказанности и различий в предположениях об области применения. Заранее прошу прошения, если написанное ниже окажется очевидным и не требующим уточнения -- оно написано только для того, чтобы убедиться, что мы находимся в одинаковой системе координат.</p><p>В инфраструктуре PKI, а в нее мы попадаем, если начинаем говорить о сертификатах <a href="https://tools.ietf.org/html/rfc5280">X.509</a>, под электронной подписью обычно понимают подпись в формате <a href="https://tools.ietf.org/html/rfc5652">CMS</a>. Для формирования данной структуры требуется указание сертификата (как минимум, для заполнения структуры SignerInfo). </p><p>Если вы говорите о том же формате, то согласитесь, что для подписи необходима передача сертификата в интерфейс функции подписи. Кроме того, данный формат допукает включение в подписанное сообщение произвольного набора сертификатов, включая сертификат подписанта, так что пропадает необходимость хранить его централизованно у получателя -- сервера, в вашем случае.</p><p>В случае если вы все-таки подразумеваете так называемую &quot;сырую&quot; электронную подпись, не предполагающую формирование специальных структур сообщений, можете воспользоваться функцией rawSign. Документацию, включающую описание этой функции можно найти <a href="https://dev.rutoken.ru/pages/viewpage.action?pageId=72451568">на портале документации</a>. Проверить работу этой и других функций можно на <a href="https://aktivco.github.io/rutoken-plugin-demo/">демо-площадке</a>.</p></blockquote></div><br /><p>Евгений, большое спасибо за такой развернутый ответ!<br />Да, в данном случае интересует именно &quot;Сырая&quot; подпись. Спасибо, нашел раздел &quot;Подпись на ключе&quot; на вашем демо-сайте.</p><p>Подскажите, а как потом эту подпись проверить через вашу утилиту на Linux cryptcp при условии, что сертификаты не установлены в хранилище? Как я понял из сообщений на форуме у команды -vsignf&nbsp; есть ключ -f, который позволяет указать путь до сертификата. использовать эту команду для проверки такой подписи, при условии, что в cert.cer цепочка серитфикатов из пользовательского сертификата и сертификата УЦ?</p>]]></description>
			<author><![CDATA[null@example.com (Wildtuna)]]></author>
			<pubDate>Sat, 26 Sep 2020 08:00:09 +0000</pubDate>
			<guid>https://forum.rutoken.ru/post/14839/#p14839</guid>
		</item>
		<item>
			<title><![CDATA[Re: Подпись данные Rutoken Plugin без сертификата]]></title>
			<link>https://forum.rutoken.ru/post/14838/#p14838</link>
			<description><![CDATA[<p><strong>Wildtuna</strong>, добрый вечер!</p><div class="quotebox"><blockquote><p>У нас процесс построен так:<br />1. На токене создаем ключевую пару;<br />2. Формируем запрос на сертификат в УЦ и издаем сертификат;<br />3. Не записывая сертификат на токен формируем подпись данных и проверяем сертификатом на сервере.</p></blockquote></div><p>Видимо, возникает какое-то недопонимание по причине недосказанности и различий в предположениях об области применения. Заранее прошу прошения, если написанное ниже окажется очевидным и не требующим уточнения -- оно написано только для того, чтобы убедиться, что мы находимся в одинаковой системе координат.</p><p>В инфраструктуре PKI, а в нее мы попадаем, если начинаем говорить о сертификатах <a href="https://tools.ietf.org/html/rfc5280">X.509</a>, под электронной подписью обычно понимают подпись в формате <a href="https://tools.ietf.org/html/rfc5652">CMS</a>. Для формирования данной структуры требуется указание сертификата (как минимум, для заполнения структуры SignerInfo). </p><p>Если вы говорите о том же формате, то согласитесь, что для подписи необходима передача сертификата в интерфейс функции подписи. Кроме того, данный формат допукает включение в подписанное сообщение произвольного набора сертификатов, включая сертификат подписанта, так что пропадает необходимость хранить его централизованно у получателя -- сервера, в вашем случае.</p><p>В случае если вы все-таки подразумеваете так называемую &quot;сырую&quot; электронную подпись, не предполагающую формирование специальных структур сообщений, можете воспользоваться функцией rawSign. Документацию, включающую описание этой функции можно найти <a href="https://dev.rutoken.ru/pages/viewpage.action?pageId=72451568">на портале документации</a>. Проверить работу этой и других функций можно на <a href="https://aktivco.github.io/rutoken-plugin-demo/">демо-площадке</a>.</p>]]></description>
			<author><![CDATA[null@example.com (Евгений Мироненко)]]></author>
			<pubDate>Fri, 25 Sep 2020 19:09:09 +0000</pubDate>
			<guid>https://forum.rutoken.ru/post/14838/#p14838</guid>
		</item>
		<item>
			<title><![CDATA[Re: Подпись данные Rutoken Plugin без сертификата]]></title>
			<link>https://forum.rutoken.ru/post/14837/#p14837</link>
			<description><![CDATA[<div class="quotebox"><cite>Vladimir Ivanov пишет:</cite><blockquote><div class="quotebox"><cite>Wildtuna пишет:</cite><blockquote><p>Добрый день, если на токене есть ключевая пара, а сертификат только на сервере. Как можно подписать данные приватным ключом с токена без помещения сертификата в токен?</p></blockquote></div><p>Добрый день!</p><p>Если кратко, то никак нельзя подписать данные без сертификата через плагин.<br />А в чем проблема поместить сертификат на токен?</p></blockquote></div><p>У нас процесс построен так: <br />1. На токене создаем ключевую пару;<br />2. Формируем запрос на сертификат в УЦ и издаем сертификат;<br />3. Не записывая сертификат на токен формируем подпись данных и проверяем сертификатом на сервере.</p><p>С Рутокен схема не работает, так как не дает этого сделать без сертификата. А зачем ему сертификат для подписи, если для этого нужен только приватный ключ?</p>]]></description>
			<author><![CDATA[null@example.com (Wildtuna)]]></author>
			<pubDate>Fri, 25 Sep 2020 15:32:27 +0000</pubDate>
			<guid>https://forum.rutoken.ru/post/14837/#p14837</guid>
		</item>
		<item>
			<title><![CDATA[Re: Подпись данные Rutoken Plugin без сертификата]]></title>
			<link>https://forum.rutoken.ru/post/14836/#p14836</link>
			<description><![CDATA[<div class="quotebox"><cite>Wildtuna пишет:</cite><blockquote><p>Добрый день, если на токене есть ключевая пара, а сертификат только на сервере. Как можно подписать данные приватным ключом с токена без помещения сертификата в токен?</p></blockquote></div><p>Добрый день!</p><p>Если кратко, то никак нельзя подписать данные без сертификата через плагин.<br />А в чем проблема поместить сертификат на токен?</p>]]></description>
			<author><![CDATA[null@example.com (Vladimir Ivanov)]]></author>
			<pubDate>Fri, 25 Sep 2020 14:52:45 +0000</pubDate>
			<guid>https://forum.rutoken.ru/post/14836/#p14836</guid>
		</item>
		<item>
			<title><![CDATA[Подпись данные Rutoken Plugin без сертификата]]></title>
			<link>https://forum.rutoken.ru/post/14835/#p14835</link>
			<description><![CDATA[<p>Добрый день, если на токене есть ключевая пара, а сертификат только на сервере. Как можно подписать данные приватным ключом с токена без помещения сертификата в токен?</p>]]></description>
			<author><![CDATA[null@example.com (Wildtuna)]]></author>
			<pubDate>Fri, 25 Sep 2020 14:39:01 +0000</pubDate>
			<guid>https://forum.rutoken.ru/post/14835/#p14835</guid>
		</item>
	</channel>
</rss>
