<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title><![CDATA[Форум Рутокен &mdash; Работа с RuToken средствами CryptoAPI]]></title>
		<link>https://forum.rutoken.ru/topic/2375/</link>
		<atom:link href="https://forum.rutoken.ru/feed/rss/topic/2375/" rel="self" type="application/rss+xml" />
		<description><![CDATA[Недавние сообщения в теме «Работа с RuToken средствами CryptoAPI».]]></description>
		<lastBuildDate>Fri, 25 Mar 2016 15:03:00 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[Re: Работа с RuToken средствами CryptoAPI]]></title>
			<link>https://forum.rutoken.ru/post/9467/#p9467</link>
			<description><![CDATA[<p>2а - можно, например в PFX (но если устройство не Рутокен ЭЦП, в Рутокен ЭЦП экспорт закрытого ключа невозможен)<br />2б - тоже можно (импорт PFX)<br />3. в Актив Рутокен CSP этот флаг вообще не поддерживается</p>]]></description>
			<author><![CDATA[null@example.com (Кирилл Мещеряков)]]></author>
			<pubDate>Fri, 25 Mar 2016 15:03:00 +0000</pubDate>
			<guid>https://forum.rutoken.ru/post/9467/#p9467</guid>
		</item>
		<item>
			<title><![CDATA[Re: Работа с RuToken средствами CryptoAPI]]></title>
			<link>https://forum.rutoken.ru/post/9466/#p9466</link>
			<description><![CDATA[<p>Тема всё ещё актуальна.</p>]]></description>
			<author><![CDATA[null@example.com (apixosoft)]]></author>
			<pubDate>Fri, 25 Mar 2016 11:27:44 +0000</pubDate>
			<guid>https://forum.rutoken.ru/post/9466/#p9466</guid>
		</item>
		<item>
			<title><![CDATA[Re: Работа с RuToken средствами CryptoAPI]]></title>
			<link>https://forum.rutoken.ru/post/9405/#p9405</link>
			<description><![CDATA[<p>И ещё пара вопросов:<br /> • можно ли сгенерировать ключ на токене, а потом экспортировать его <strong>(2а)</strong>? Но только однажды, сразу после создания, как CRYPT_ARCHIVABLE. Либо, в противном случае, сгенерировать его локально и записать на токен <strong>(2б)</strong>, потому что локально нужно иметь всю ключевую пару.<br /> • надо ли для генерации ключа получать контекст с флагом CRYPT_MACHINE_KEYSET, или ключи должны быть пользовательские, т.е. использовать параметры по умолчанию? <strong>(3)</strong></p>]]></description>
			<author><![CDATA[null@example.com (apixosoft)]]></author>
			<pubDate>Tue, 15 Mar 2016 06:07:08 +0000</pubDate>
			<guid>https://forum.rutoken.ru/post/9405/#p9405</guid>
		</item>
		<item>
			<title><![CDATA[Re: Работа с RuToken средствами CryptoAPI]]></title>
			<link>https://forum.rutoken.ru/post/9392/#p9392</link>
			<description><![CDATA[<div class="quotebox"><cite>Кирилл Мещеряков пишет:</cite><blockquote><p>Да, вы правильно нашли тонкое место :)<br />Если вы создаете закрытый ключ на токене - то вы не сможете его извлекать. <br />Каждый раз нужно будет расшифровывать что-то только с&nbsp; использованием токена.</p></blockquote></div><p>Вы, верно, не очень внимательно читали тему :) Как раз-таки этого я и добиваюсь, чтобы расшифровывать можно было только с помощью токена. То есть та же самая последовательность инструкций (за исключением того, что я создаю не локально ключ, а на токене, и ничего не экспортирую/импортирую) будет работать и при использовании токена? <strong>(0)</strong></p><div class="quotebox"><cite>Кирилл Мещеряков пишет:</cite><blockquote><p>К первому вашему посту, есть вопрос:<br />Что значит шифруется сначала открытым, а потом закрытым?<br />В схеме RSA возможно шифрование только на открытом ключе, а расшифрование на закрытом. <br />Вы ничего не путаете?</p></blockquote></div><p>Кажется, немного попутал, да ☺ Вернее, не уточнил — имелась в виду цифровая подпись, ведь она делается закрытым ключом в источнике, верно? <strong>(1)</strong></p>]]></description>
			<author><![CDATA[null@example.com (apixosoft)]]></author>
			<pubDate>Fri, 04 Mar 2016 17:52:37 +0000</pubDate>
			<guid>https://forum.rutoken.ru/post/9392/#p9392</guid>
		</item>
		<item>
			<title><![CDATA[Re: Работа с RuToken средствами CryptoAPI]]></title>
			<link>https://forum.rutoken.ru/post/9391/#p9391</link>
			<description><![CDATA[<p>Да, вы правильно нашли тонкое место :)<br />Если вы создаете закрытый ключ на токене - то вы не сможете его извлекать. <br />Каждый раз нужно будет расшифровывать что-то только с&nbsp; использованием токена.</p><p>К первому вашему посту, есть вопрос:<br /></p><div class="quotebox"><cite>apixosoft пишет:</cite><blockquote><p>сгенерированный файл лицензии сначала шифруется на выпускающей стороне 1-м закрытым ключом, а затем — 2-м открытым</p></blockquote></div><p>Что значит шифруется сначала открытым, а потом закрытым? </p><p>В схеме RSA возможно шифрование только на открытом ключе, а расшифрование на закрытом. <br />Вы ничего не путаете?</p>]]></description>
			<author><![CDATA[null@example.com (Кирилл Мещеряков)]]></author>
			<pubDate>Fri, 04 Mar 2016 13:22:03 +0000</pubDate>
			<guid>https://forum.rutoken.ru/post/9391/#p9391</guid>
		</item>
		<item>
			<title><![CDATA[Re: Работа с RuToken средствами CryptoAPI]]></title>
			<link>https://forum.rutoken.ru/post/9386/#p9386</link>
			<description><![CDATA[<p>Постановку задачи можно немного облегчить, интересует именно вопрос с «собственным» ключом — как реализовать этот вариант с модулем RuToken и какой лучше использовать?<br />Я сделал тестовый пример, реализующий следующие действия:<br />а) на выпускающей стороне:<br /> — открываю контейнер посредством <em>CryptAcquireContext</em> (или создаю новый, генерирую асимметричный ключ с помощью <em>CryptGenKey(AT_KEYEXCHANGE,CRYPT_ARCHIVABLE)</em> и экспортирую PRIVATEKEYBLOB);<br /> — получаю дескриптор ключа посредством <em>CryptGetUserKey(AT_KEYEXCHANGE)</em>;<br /> — генерирую сессионный ключ с помощью <em>CryptGenKey(CALG_RC4)</em> и экспортирую его посредством <em>CryptExportKey(SIMPLEBLOB)</em> совместно с зашифрованными им через <em>CryptEncrypt</em> данными, сохраняя это в одно сообщение;<br /> — разрушаю/закрываю ключи/хранилища.<br />б) на принимающей стороне:<br /> — открываю контейнер посредством <em>CryptAcquireContext</em> (или создаю новый, импортировав экспортированный на стороне а) ключ посредством <em>CryptImportKey</em>;<br /> — получаю дескриптор ключа посредством <em>CryptGetUserKey(AT_KEYEXCHANGE)</em>;<br /> — открываю сообщение, импортируя оттуда ключ через <em>CryptImportKey</em> и расшифровывая им остаток сообщения;<br /> — разрушаю/закрываю ключи/хранилища.</p><p>Тонким местом здесь является экспорт ключевой пары в источнике и импорт оной в приёмнике. Разумеется, конечному пользователю эта информация не должна быть доступна, дабы он не завладел закрытым ключом, для этой цели как раз и служит токен. Сохранится ли эта последовательность в случае работы с токеном, или надо будет внести какие-то серьёзные изменения? Возможно, также будут какие-то тонкости, которые мне неизвестны.</p>]]></description>
			<author><![CDATA[null@example.com (apixosoft)]]></author>
			<pubDate>Thu, 03 Mar 2016 09:01:55 +0000</pubDate>
			<guid>https://forum.rutoken.ru/post/9386/#p9386</guid>
		</item>
		<item>
			<title><![CDATA[Работа с RuToken средствами CryptoAPI]]></title>
			<link>https://forum.rutoken.ru/post/9335/#p9335</link>
			<description><![CDATA[<p>Добрый день! Есть задача лицензирования ПО. Суть в следующем: есть выпускающая сторона, и есть клиент. Есть 2 пары ключей RSA: 1-я — «собственный» ключ, 2-я — «экспортный»; сгенерированный файл лицензии сначала шифруется на выпускающей стороне 1-м закрытым ключом, а затем — 2-м открытым. 1-й открытый ключ хранится в модуле лицензирования (поэтому он «собственный»), 2-й записывается на токен. Соответственно, у клиента надо сначала расшифровать лицензию 2-м закрытым, а затем — 1-м открытым (который хранится в модуле). Такова постановка задачи, менять её не надо.<br />Вопрос: как средствами CryptoAPI расшифровать лицензию закрытым ключом неявно (например, сделать это средствами самого токена), т.е. чтобы его нельзя было извлечь и, соответственно, использовать в своих целях? Интересует подробный алгоритм как шифрования и записи данных на токен, так и обратного процесса (просто я пока слабо представляю себе эту картину даже в общих деталях).</p><p>Т.к. я новичок в крипции вообще и в вопросах использования RuToken — в частности, просьба разворачивать свой ответ, дабы было понятно не только профессионалам ☺ И просьба простить меня за возможные некорректные формулировки в вопросах.<br />Заранее спасибо!</p>]]></description>
			<author><![CDATA[null@example.com (apixosoft)]]></author>
			<pubDate>Mon, 15 Feb 2016 12:05:13 +0000</pubDate>
			<guid>https://forum.rutoken.ru/post/9335/#p9335</guid>
		</item>
	</channel>
</rss>
