<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<title type="html"><![CDATA[Форум Рутокен &mdash; Рутокен ЭЦП 2.0 и XCA]]></title>
	<link rel="self" href="https://forum.rutoken.ru/feed/atom/topic/3052" />
	<updated>2019-10-24T11:57:45Z</updated>
	<generator>PunBB</generator>
	<id>https://forum.rutoken.ru/topic/3052/</id>
		<entry>
			<title type="html"><![CDATA[Re: Рутокен ЭЦП 2.0 и XCA]]></title>
			<link rel="alternate" href="https://forum.rutoken.ru/post/13465/#p13465" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>Евгений Рябцев пишет:</cite><blockquote><p>Такая частично видимая ключевая пара мне не подходит.</p></blockquote></div><p>Это потому что RSA и через PKCS#11. В этой ветке мы уже обсуждали что такие в панели управления не будут видны.<br /></p><div class="quotebox"><cite>Евгений Рябцев пишет:</cite><blockquote><p>При этом выбираться сертификат будет из списка, предоставляемого чем-то вроде нижеследующего кода C# или браузером при затребовании в соединении TLS клиентского сертификата.</p></blockquote></div><p>Давайте вернемся к изначальной задаче. Напрашивается два варианта реализации:</p><ol class="decimal"><li><p>Через Microsoft CryptoAPI</p></li><li><p>Через PKCS#11</p></li></ol><p>В <strong>первом варианте</strong> RSA-объекты будут отображаться в панели управления рутокен и автоматически попадать в личное хранилище пользователей Windows при помощи службы распространения сертификатов.<br /><strong>Но</strong> удалить их через панель управления можно при вводе PIN-кода пользователя.</p><p>Во <strong>втором варианте</strong> через панель управления видны только ГОСТ-объекты и их нельзя удалить при помощи PIN-кода пользователя. Служба распространения сертификатов такие устанавливать автоматически не умеет.<br /><strong>Но</strong> получить список сертификатов вы можете прямо из рутокена в коде своего приложения и уже из этого списка выбирать нужный.</p>]]></content>
			<author>
				<name><![CDATA[Антон Тихиенко]]></name>
				<uri>https://forum.rutoken.ru/user/8822/</uri>
			</author>
			<updated>2019-10-24T11:57:45Z</updated>
			<id>https://forum.rutoken.ru/post/13465/#p13465</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Рутокен ЭЦП 2.0 и XCA]]></title>
			<link rel="alternate" href="https://forum.rutoken.ru/post/13464/#p13464" />
			<content type="html"><![CDATA[<p>Таак... а вот про это, если можно, поподробнее. Пробую сейчас ваш SDK. Конкретно pkcs11\samples\Standard - это оно? Запускаю пример CreateGOST34.10-2012-256 - генерит две ключевые пары, обе видны в панели управления рутокена, обе неудаляемы пользователем. То есть всё как бы хорошо, но есть минус, что ГОСТ, а он пока не везде. Запускаю пример CreateRSA. На первый взгляд код вроде аналогичен. Создаёт ключевую пару &quot;Sample RSA Public Key (Aktiv Co.)&quot;, но она не видна в панели управления рутокена, а видна только в XCA. Такая частично видимая ключевая пара мне не подходит.</p>]]></content>
			<author>
				<name><![CDATA[Евгений Рябцев]]></name>
				<uri>https://forum.rutoken.ru/user/11280/</uri>
			</author>
			<updated>2019-10-24T10:11:24Z</updated>
			<id>https://forum.rutoken.ru/post/13464/#p13464</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Рутокен ЭЦП 2.0 и XCA]]></title>
			<link rel="alternate" href="https://forum.rutoken.ru/post/13462/#p13462" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>Евгений Рябцев пишет:</cite><blockquote><p>Вот как-то так:</p></blockquote></div><p>Да, вы правы, так действительно &quot;Панель управления Рутокен&quot; будет позволять удалять сертификаты и с PIN пользователя.</p><p>PIN администратора будет требоваться если ключи генерировались на токене через наш PKCS#11 — <a href="https://dev.rutoken.ru/x/FwAi">https://dev.rutoken.ru/x/FwAi</a></p>]]></content>
			<author>
				<name><![CDATA[Антон Тихиенко]]></name>
				<uri>https://forum.rutoken.ru/user/8822/</uri>
			</author>
			<updated>2019-10-24T07:58:06Z</updated>
			<id>https://forum.rutoken.ru/post/13462/#p13462</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Рутокен ЭЦП 2.0 и XCA]]></title>
			<link rel="alternate" href="https://forum.rutoken.ru/post/13459/#p13459" />
			<content type="html"><![CDATA[<p>Вот как-то так:</p><div class="codebox"><pre><code>        [DllImport(&quot;advapi32.dll&quot;, CharSet = CharSet.Unicode, SetLastError = true)]
        public static extern bool CryptAcquireContext(out IntPtr hProv, string pszContainer, string pszProvider, uint dwProvType, uint dwFlags);

        [DllImport(&quot;advapi32.dll&quot;, CharSet = CharSet.Unicode, SetLastError = true)]
        static extern bool CryptReleaseContext(IntPtr hProv, Int32 dwFlags);

        [DllImport(&quot;advapi32.dll&quot;, SetLastError = true)]
        public static extern bool CryptGetProvParam(IntPtr hProv, uint dwParam, [MarshalAs(UnmanagedType.LPStr)] StringBuilder pbData, ref uint dwDataLen, uint dwFlags);

        [DllImport(&quot;advapi32.dll&quot;, CharSet = CharSet.Unicode, SetLastError = true)]
        public static extern bool CryptGenKey(IntPtr hProv, uint Algid, uint dwFlags, out IntPtr phKey);

        const uint AT_SIGNATURE = 2;
        const uint CRYPT_FIRST = 1;
        const uint CRYPT_NEXT = 2;
        const uint CRYPT_NEWKEYSET = 8;
        const uint CRYPT_SILENT = 64;
        const uint PP_ENUMCONTAINERS = 2;
        const uint PROV_RSA_FULL = 1;

        const uint KEY_SIZE_1024 = 1024 &lt;&lt; 16;
        const uint KEY_SIZE_2048 = 2048 &lt;&lt; 16;

        const string ProviderName = &quot;Microsoft Base Smart Card Crypto Provider&quot;;

        private void btnCreatePrivateKey_Click(object sender, EventArgs e)
        {
            if (lstCerts.Items.Contains(txtContainer.Text)) {
                MessageBox.Show(String.Format(&quot;Контейнер ключей с именем &#039;{0}&#039; уже существует. Повторное использование контейнера для создания нового ключа не допускается. Выберите другое имя для контейнера.&quot;, txtContainer.Text), &quot;Контейнер уже существует&quot;, MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                return;
            }
            IntPtr provider;
            if (!CryptAcquireContext(out provider, txtContainer.Text, ProviderName, PROV_RSA_FULL, CRYPT_NEWKEYSET)) {
                MessageBox.Show(String.Format(&quot;Не удалось создать контейнер ключей &#039;{0}&#039;, код ошибки {1}. Убедитесь, что токен доступен.&quot;, txtContainer.Text, Marshal.GetLastWin32Error()), &quot;Операция неуспешна&quot;, MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                return;
            }
            IntPtr key;
            if (CryptGenKey(provider, AT_SIGNATURE, KEY_SIZE_2048, out key)) {
                RefreshContainers();
                MessageBox.Show(&quot;Новый ключ успешно создан. Используйте центр сертификации для создания сертификата к этому ключу. Используйте панель управления токенами для импорта сертификата на токен.&quot;, &quot;Ключ создан&quot;, MessageBoxButtons.OK, MessageBoxIcon.Information);
            } else {
                MessageBox.Show(String.Format(&quot;Не удалось создать новый ключ. Код ошибки {0}.&quot;, Marshal.GetLastWin32Error()), &quot;Операция неуспешна&quot;, MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
            }
            CryptReleaseContext(provider, 0);
        }</code></pre></div>]]></content>
			<author>
				<name><![CDATA[Евгений Рябцев]]></name>
				<uri>https://forum.rutoken.ru/user/11280/</uri>
			</author>
			<updated>2019-10-23T11:37:20Z</updated>
			<id>https://forum.rutoken.ru/post/13459/#p13459</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Рутокен ЭЦП 2.0 и XCA]]></title>
			<link rel="alternate" href="https://forum.rutoken.ru/post/13457/#p13457" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>Евгений Рябцев пишет:</cite><blockquote><p>Хм. Проверил. Создаю ключевую пару на токене средствами Windows Crypto API (токен какое-то время мигает, генерирует). Пробую удалить через панель управления рутокен - запрашивает пин пользователя, удаляет. Создаю ещё одну ключевую пару. Создаю к ней в XCA сертификат, через панель управления рутокен назначаю сертификат ключевой паре, сертификат назначается. Выхожу из панели управления, перевтыкаю токен, пробую удалить - запрашивает пин пользователя, удаляет. Что я делаю не так?</p></blockquote></div><p>Тогда опишите подробнее этот процесс генерации.</p>]]></content>
			<author>
				<name><![CDATA[Антон Тихиенко]]></name>
				<uri>https://forum.rutoken.ru/user/8822/</uri>
			</author>
			<updated>2019-10-23T09:39:35Z</updated>
			<id>https://forum.rutoken.ru/post/13457/#p13457</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Рутокен ЭЦП 2.0 и XCA]]></title>
			<link rel="alternate" href="https://forum.rutoken.ru/post/13456/#p13456" />
			<content type="html"><![CDATA[<p>Хм. Проверил. Создаю ключевую пару на токене средствами Windows Crypto API (токен какое-то время мигает, генерирует). Пробую удалить через панель управления рутокен - запрашивает пин пользователя, удаляет. Создаю ещё одну ключевую пару. Создаю к ней в XCA сертификат, через панель управления рутокен назначаю сертификат ключевой паре, сертификат назначается. Выхожу из панели управления, перевтыкаю токен, пробую удалить - запрашивает пин пользователя, удаляет. Что я делаю не так?</p><p><span class="postimg"><a class="fancybox fancybox.image" rel="group" href="https://forum.rutoken.ru/uploads/images/2019/10/5cbd1dcd8f2d7222dd7a2ac1b44a93c4.png"><img class="fb_img" src="https://forum.rutoken.ru/uploads/previews/2019/10/5cbd1dcd8f2d7222dd7a2ac1b44a93c4.png" alt="" /></a></span> </p><p>Для сравнения, как это выглядит в XCA. Видно различие между созданными и импортированными сертификатами (_S или _E на конце названия контейнера). XCA ведёт себя одинаково с импортированными и созданными ключами, отказываясь удалять что те, что другие (ну и бог бы с ней).</p><p><span class="postimg"><a class="fancybox fancybox.image" rel="group" href="https://forum.rutoken.ru/uploads/images/2019/10/7dd838e540dbedb2754601679bbbc094.png"><img class="fb_img" src="https://forum.rutoken.ru/uploads/previews/2019/10/7dd838e540dbedb2754601679bbbc094.png" alt="" /></a></span></p>]]></content>
			<author>
				<name><![CDATA[Евгений Рябцев]]></name>
				<uri>https://forum.rutoken.ru/user/11280/</uri>
			</author>
			<updated>2019-10-23T08:45:19Z</updated>
			<id>https://forum.rutoken.ru/post/13456/#p13456</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Рутокен ЭЦП 2.0 и XCA]]></title>
			<link rel="alternate" href="https://forum.rutoken.ru/post/13455/#p13455" />
			<content type="html"><![CDATA[<p>Потому что этот сертификат с ключами был импортирован на токен.<br />Если делать неизвлекаемые ключи на токене, то надо PIN администратора.</p>]]></content>
			<author>
				<name><![CDATA[Антон Тихиенко]]></name>
				<uri>https://forum.rutoken.ru/user/8822/</uri>
			</author>
			<updated>2019-10-23T07:29:35Z</updated>
			<id>https://forum.rutoken.ru/post/13455/#p13455</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Рутокен ЭЦП 2.0 и XCA]]></title>
			<link rel="alternate" href="https://forum.rutoken.ru/post/13454/#p13454" />
			<content type="html"><![CDATA[<p>Хм. У меня по-другому. Спрашивает пин-код <em>пользователя</em> и, при его вводе, сертификат успешно удаляется.</p><p><span class="postimg"><a class="fancybox fancybox.image" rel="group" href="https://forum.rutoken.ru/uploads/images/2019/10/047839250185328d60e21ef121d26fc2.png"><img class="fb_img" src="https://forum.rutoken.ru/uploads/previews/2019/10/047839250185328d60e21ef121d26fc2.png" alt="" /></a></span> <br /><span class="postimg"><a class="fancybox fancybox.image" rel="group" href="https://forum.rutoken.ru/uploads/images/2019/10/fd13b21c9476bff2a0db588ca8266b0d.png"><img class="fb_img" src="https://forum.rutoken.ru/uploads/previews/2019/10/fd13b21c9476bff2a0db588ca8266b0d.png" alt="" /></a></span></p>]]></content>
			<author>
				<name><![CDATA[Евгений Рябцев]]></name>
				<uri>https://forum.rutoken.ru/user/11280/</uri>
			</author>
			<updated>2019-10-23T05:08:44Z</updated>
			<id>https://forum.rutoken.ru/post/13454/#p13454</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Рутокен ЭЦП 2.0 и XCA]]></title>
			<link rel="alternate" href="https://forum.rutoken.ru/post/13451/#p13451" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>Евгений Рябцев пишет:</cite><blockquote><p>Ещё такой вопрос: можно ли как-нибудь перераспределить полномочия между пользователем и администратором токена? Например, чтобы пользователь не мог удалить ключ/сертификат?</p></blockquote></div><p>Именно через утилиту &quot;Панель управления Рутокен&quot; удалить сертификат можно только зная PIN-код администратора, поэтому, например, для системного администратора компании заказчика есть смысл менять стандартный PIN перед тем как отдать рутокен на руки пользователю. <span class="bbu">ВАЖНО — не потерять и не забыть</span> новый PIN администратора, т.е. нужно вести учет токенов.</p>]]></content>
			<author>
				<name><![CDATA[Антон Тихиенко]]></name>
				<uri>https://forum.rutoken.ru/user/8822/</uri>
			</author>
			<updated>2019-10-22T08:27:47Z</updated>
			<id>https://forum.rutoken.ru/post/13451/#p13451</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Рутокен ЭЦП 2.0 и XCA]]></title>
			<link rel="alternate" href="https://forum.rutoken.ru/post/13443/#p13443" />
			<content type="html"><![CDATA[<p>Боевой CA планировали отдать на откуп заказчику (мы изготовитель), но рекомендовать какой-то вариант как его сделать. Соответственно сам заказчик доверяет своему CA, доверие третьих лиц не требуется. Мы бы с изделием поставляли заводские номерные токены для первоначальной настройки, с однозначным соответствием между токеном и экземпляром изделия (сертификат токена ставится на изделие).</p><p>Попробовал создавать ключи через Windows Crypto API (CryptAcquireContext/CryptGenKey), ключи видны нормально. Благодарю за поддержку, по этому пункту больше помощь не требуется.</p><p>Ещё такой вопрос: можно ли как-нибудь перераспределить полномочия между пользователем и администратором токена? Например, чтобы пользователь не мог удалить ключ/сертификат?</p>]]></content>
			<author>
				<name><![CDATA[Евгений Рябцев]]></name>
				<uri>https://forum.rutoken.ru/user/11280/</uri>
			</author>
			<updated>2019-10-21T10:02:44Z</updated>
			<id>https://forum.rutoken.ru/post/13443/#p13443</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Рутокен ЭЦП 2.0 и XCA]]></title>
			<link rel="alternate" href="https://forum.rutoken.ru/post/13437/#p13437" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>Евгений Рябцев пишет:</cite><blockquote><p>Есть задумка использовать токены для аутентификации пользователей КИИ, вместо паролей.</p></blockquote></div><p>А как в рабочем варианте планировали выпускать сертификаты пользователей? Например, развернуть Microsoft CA или как?<br />XCA через PKCS#11 делает RSA ключи и именно они не отображаются в панели управления.</p><p>Как вариант можно выпускать через наш минидрайвер и тогда сертификаты будут видны ( вот статья для примера — <a href="https://habr.com/ru/company/aktiv-company/blog/327232/">https://habr.com/ru/company/aktiv-company/blog/327232/</a> ).<br />Если же даже на <a href="https://ra.rutoken.ru">https://ra.rutoken.ru</a> сгенерировать ГОСТ-ключи и сертификат к ним, то в панели управления они появятся.</p>]]></content>
			<author>
				<name><![CDATA[Антон Тихиенко]]></name>
				<uri>https://forum.rutoken.ru/user/8822/</uri>
			</author>
			<updated>2019-10-18T10:24:22Z</updated>
			<id>https://forum.rutoken.ru/post/13437/#p13437</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Рутокен ЭЦП 2.0 и XCA]]></title>
			<link rel="alternate" href="https://forum.rutoken.ru/post/13421/#p13421" />
			<content type="html"><![CDATA[<p>Пока получилось сделать отображаемыми в панели управления рутокен только сертификаты с секретным ключом, генерируемым вне рутокена. Для полного счастья хотелось бы добиться того же с секретным ключом, генерируемым непосредственно на токене.</p><p>По импорту - странно. У меня воспроизводится на обоих токенах. Может быть гляну поподробнее, ну да и бог бы с ним.</p>]]></content>
			<author>
				<name><![CDATA[Евгений Рябцев]]></name>
				<uri>https://forum.rutoken.ru/user/11280/</uri>
			</author>
			<updated>2019-10-16T13:13:08Z</updated>
			<id>https://forum.rutoken.ru/post/13421/#p13421</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Рутокен ЭЦП 2.0 и XCA]]></title>
			<link rel="alternate" href="https://forum.rutoken.ru/post/13419/#p13419" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>Евгений Рябцев пишет:</cite><blockquote><p>Такие, которые отображаются в панели управления рутокен, как раз подходят. Есть задумка использовать токены для аутентификации пользователей КИИ, вместо паролей. Не обязательно самоподписанные, это не принципиально. При этом выбираться сертификат будет из списка, предоставляемого чем-то вроде нижеследующего кода C# или браузером при затребовании в соединении TLS клиентского сертификата. И туда и туда попадают сертификаты, доступные Windows. Пока у меня наблюдается однозначное соответствие между сертификатами, доступными Windows и сертификатами, видимыми в панели управления рутокен.</p></blockquote></div><p>Честно говоря не совсем понял можно ли считать этот вопрос для вас решенным? Или нужно что-то большее, чем сертификаты, отображаемые в панели управления рутокен?<br /></p><div class="quotebox"><cite>Евгений Рябцев пишет:</cite><blockquote><p>К сожалению не помню как именно я создал не импортирующийся в токен сертификат. Сам сертификат прилагаю, пароль к нему 1. Для проверки импортировал его в XCA (всё норм) и экспортировал заново - ситуация та же.</p><p><a href="https://www.dropbox.com/s/uy0od26sp28c4">https://www.dropbox.com/s/uy0od26sp28c4</a> … 4.p12?dl=0</p></blockquote></div><p>Проверил импорт этого файла у себя и проблем не обнаружил, файл импортировался без ошибок — <a href="https://yadi.sk/i/kLcTpjAbIymw3Q">скриншот</a></p>]]></content>
			<author>
				<name><![CDATA[Антон Тихиенко]]></name>
				<uri>https://forum.rutoken.ru/user/8822/</uri>
			</author>
			<updated>2019-10-16T12:05:37Z</updated>
			<id>https://forum.rutoken.ru/post/13419/#p13419</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Рутокен ЭЦП 2.0 и XCA]]></title>
			<link rel="alternate" href="https://forum.rutoken.ru/post/13407/#p13407" />
			<content type="html"><![CDATA[<p>Такие, которые <em>отображаются</em> в панели управления рутокен, как раз подходят. Есть задумка использовать токены для аутентификации пользователей КИИ, вместо паролей. Не обязательно <em>само</em>подписанные, это не принципиально. При этом выбираться сертификат будет из списка, предоставляемого чем-то вроде нижеследующего кода C# или браузером при затребовании в соединении TLS клиентского сертификата. И туда и туда попадают сертификаты, доступные Windows. Пока у меня наблюдается однозначное соответствие между сертификатами, доступными Windows и сертификатами, видимыми в панели управления рутокен.</p><div class="codebox"><pre><code>X509Store store = new X509Store(StoreLocation.CurrentUser);
store.Open(OpenFlags.ReadOnly);
var certs = store.Certificates;</code></pre></div><p>К сожалению не помню как именно я создал не импортирующийся в токен сертификат. Сам сертификат прилагаю, пароль к нему 1. Для проверки импортировал его в XCA (всё норм) и экспортировал заново - ситуация та же.</p><p><a href="https://www.dropbox.com/s/uy0od26sp28c4cu/Test4.p12?dl=0">https://www.dropbox.com/s/uy0od26sp28c4 … 4.p12?dl=0</a></p>]]></content>
			<author>
				<name><![CDATA[Евгений Рябцев]]></name>
				<uri>https://forum.rutoken.ru/user/11280/</uri>
			</author>
			<updated>2019-10-15T11:19:37Z</updated>
			<id>https://forum.rutoken.ru/post/13407/#p13407</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Рутокен ЭЦП 2.0 и XCA]]></title>
			<link rel="alternate" href="https://forum.rutoken.ru/post/13405/#p13405" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>Евгений Рябцев пишет:</cite><blockquote><p>Хотелось бы использовать сертификаты с размещёнными на Рутокен ключами как будто они установлены в Windows (без плагинов браузера и т.п.). Пока у меня это получается только с сертификатами, видимыми через Панель управления Рутокен (т.е. устанавливаемыми через .p12).</p></blockquote></div><p>Расскажите, пожалуйста, для чего планируете использовать такие самоподписные-сертификаты?<br />Почему не подходят такие, которые отображаются в панели управления рутокен?<br /></p><div class="quotebox"><cite>Евгений Рябцев пишет:</cite><blockquote><p>Ещё, пока я всё это тестировал, создал сертификат (.p12), который Панель управления Рутокен отказывается импортировать. Сначала говорит &quot;Вставьте смарт-карту&quot;, потом, после отмены (Рутокен-то вставлен и видится, но кнопка ОК недоступна), &quot;Ошибка импорта. Подробности: : 0x8010006e&quot;.</p></blockquote></div><p>Тут поподробнее опишите как именно создаете такой сертификат?</p>]]></content>
			<author>
				<name><![CDATA[Антон Тихиенко]]></name>
				<uri>https://forum.rutoken.ru/user/8822/</uri>
			</author>
			<updated>2019-10-15T10:17:47Z</updated>
			<id>https://forum.rutoken.ru/post/13405/#p13405</id>
		</entry>
</feed>
