- Дмитрий Кривокрысенко
- Дмитрий Кривокрысенко
- Дмитрий Кривокрысенко
- Дмитрий Кривокрысенко
- Дмитрий Кривокрысенко
- Дмитрий Кривокрысенко
- Windows 7
- Важное примечание о версиях Windows 7
- Повышение издания Windows 7
- Какие издания можно повысить
- Как изменить издание
- Совет
- Повышение издания Windows Server 2008 R2
- Понижение издания Windows 7
- Почему не работает изменение издания путем обновления системы
- Предупреждение
- Процесс изменения издания
- Дискуссия
- Каким изданием Windows 7 вы пользуетесь?
- Есть ли у вас опыт переустановки Windows 7 поверх установленной ОС?
- Настройка «КриптоПро» CSP
- Настройка работы с Рутокен ЭЦП 2
- Получаем тестовый сертификат
- Подпись средствами «КриптоПро CSP»
- Rosa Crypto Tool
- Trusted eSign
- Резюме
- .
- Установка сертификатов используя КриптоПРО в Linux
- Пример установки отдельно взятого сертификата из контейнера
Дмитрий Кривокрысенко
Здравствуйте Господа!Благодарю за оказанную помощь.Подскажите пожалуйста пути решения в установке личного сертификата пользователя *.cer в систему Alt Linux 7KDE x64, необходимо для работы с системой “ГАС Управление”. Все остальные шаги по установке КриптоПро и КриптоФокс прошел.А с установкой сертификата проблемы.Заранее благодарен
Дмитрий Кривокрысенко
Error(0x2). Can not open file at /dailybuildsbranches/CSP_4_0/CSPbuild/CSP/src/certmgr/certmgr.cpp:2329
Подскажите пожалуйста, что это значит и как это решить, ибо только учусь.
КриптоПро не может найти файл сертификата. Зачем Вы под root его запускали, а в пути указали домашний каталог (то есть /root), где ничего не лежит?КриптоПро прекрасно работает под обычным пользователем. Под ним и скачивайте cer и запускайте certmgr (с установленным cryptopro-preinstall не нужно вводить полные пути к исполняемым файлам.
Дмитрий Кривокрысенко
при установке от имени пользователя тоже есть ошибка
А не связана она с кириллическим названием каталога “Загрузки” ?
[ErrorCode: 0x00000000]
Код ошибки 0 – не означает-ли, что ошибки нет?
Нет никакой ошибки, код 0.
Дмитрий Кривокрысенко
Благодарю за информацию!при попытке использовать token-manager, происходит импорт, даже сообщение об успешном импорте выходит, а самого файла сертификата не видно. Только после импорта через certmgr, сертификат появляется в списке установленных. В чем причина может быть?
Дмитрий Кривокрысенко
В том случае, если используется Linux с rpm-пакетами, то необходимо его распаковать и скопировать в соответствующие каталоги/директории/папки. Необходимо также будет выполнить скрипт postinst от имени root:
#sh –xv postinst
сработало с установленным firefox-gost
« Последнее редактирование: 08.12.2016 14:20:25 от ruslandh »
пытаюсь сделать по этой инструкции https://geektimes.ru/post/280268/
сработало с установленным firefox-gost
Видимо нужно иметь несколько компьютеров для доступа к разным госсайтам
при попытке использовать token-manager, происходит импорт, даже сообщение об успешном импорте выходит, а самого файла сертификата не видно. Только после импорта через certmgr, сертификат появляется в списке установленных. В чем причина может быть?
Дмитрий Кривокрысенко
в результате танца с бубном добился появления плагина в списке Firefox!!!!Дальше интересней!При входе на gasu.gov.ru всплывает окно плагина ура!Но пишет нет действующих сертификатов после установки token-manager, бывшему пользователю винды наглядно видны установленные корневые сертификаты! Но при установке личного сертификата вышло сообщение “импорт успешно!” и все в окне просмотра его нет. если выполнить certmgr -list то все пристойно, под номером 1 пользовательский под номером 2 корневой.где затык не пойму
Вы тут: Главная → Popular → Как изменить издание Windows, сохранив настройки и установленные программы
Если вы какое-то время уже пользуетесь одним из младших изданий Windows, возможно, вы задумывались над его обновлением до более красивой и функциональной системы.
Из этой статьи вы узнаете самый простой способ повышения издания Windows без потери привычной рабочей среды. При этом вам понадобится только ключ продукта. Здесь также описан способ понижения издания Windows 7 с сохранением всех настроек и программ с помощью ключа продукта и установочного диска.
В общем случае повышение издания Windows 10 достигается установкой старшего издания поверх. В ряде случаев можно обойтись просто вводом ключа продукта. У Microsoft есть подробная документация в двух статьях, хотя русский перевод в них машинный. Для каждой статьи я приведу основные тезисы.
Сводная таблица путей апгрейда различных версий и изданий Windows
- Возможно только повышение издания (Home → Pro или Home → Education)
- Enterprise LTSC можно обновить только до Enterprise или более новой версии Enterprise LTSC
- Даунгрейд с сохранением файлов, но потерей программ и настроек возможен для Pro → Home и Education → Enterprise
Способы апгрейда и даунгрейда различных изданий Windows 10
- Почти во всех случаях работает ввод ключа подходящего издания в Параметрах или из командной строки (changepk)
- В ряде случаев даже не требуется перезагрузка (Pro → Education или Pro ← → Enterpise)
- Даунгрейд до более ранних версий (1809 → 1803) невозможен за исключением отката
- Поддерживаемые сценарии даунгрейда до младших изданий при истечении лицензии
Бонус! Как перейти с издания LTSC на Pro с сохранением программ и настроек.
Windows 7
Важное примечание о версиях Windows 7
Повысить или понизить издание Windows 7 с помощью установочного диска можно только в том случае, если выполняется любое из этих условий:
- SP1 интегрирован в установочный диск (рекомендуется)
- SP1 не установлен на ОС и не интегрирован в установочный диск
В противном случае, вы получите сообщение о том, что устанавливаемая система имеет более старую версию, чем текущая.
Повышение издания Windows 7
Перед вами меню «Пуск» только что установленной Windows 7 «Домашняя базовая».
Элемент Windows Anytime Upgrade (WAU) также доступен из панели управления, поэтому вы всегда найдете его поиском во всех изданиях, кроме «Максимальной». Кстати, WAU является единственным официально поддерживаемым способ обновления издания Windows.
Вам понадобится: ключ продукта.
Какие издания можно повысить
С помощью WAU вы можете очень быстро повысить любое издание, за исключением «Максимальной», конечно. В таблице перечислены все возможные пути обновления Windows 7.
Как изменить издание
Запустите WAU и введите ключ продукта. Его можно приобрести здесь же, оплатив кредитной картой, хотя это работает только для некоторых стран. Впрочем, ничто не мешает вам купить ключ в магазине Microsoft или в известных Интернет-магазинах AllSoft.ru и SoftKey.ru.
Перед изменением издания необходимо обновить систему, поэтому WAU автоматически загрузит все исправления после вашего одобрения. От вас больше не потребуется ничего, разве что немного терпения.
Процесс подразумевает даже меньше телодвижений, чем переустановка поверх установленной системы, хотя используется тот же самый подход, в том числе и к сохранению данных.
Совет
Чтобы ускорить дело, предварительно сделайте очистку диска. Людей с маленьким системным разделом или большим объемом личных файлов Windows может огорчить сообщением о недостатке места на системном разделе. В этом случае достаточно перенести файлы на другой раздел или внешний диск.
Повышение издания Windows Server 2008 R2
В серверных системах нет функции Windows Anytime Upgrade, зато аналогичная возможность заложена в DISM.
Dism /online /Set-Edition:Datacenter /ProductKey:12345-67890-12345-67890-12345
Причем такой путь доступен только для серверных систем. Честно говоря, я не проверял команду на практике, поэтому сообщите, если она не работает.
Аналогичные команды можно применять и к автономным образам, о чем можно узнать во всех подробностях из справки.
Понижение издания Windows 7
К понижению издания могут быть вполне обоснованные причины. Например, вы хотите перейти с пиратской Windows 7 «Максимальная» на лицензионную «Домашняя расширенная», которую получили в подарок за хорошее поведение. При этом вам не хочется заново настраивать систему и программы.
В принципе, этим способом можно не только понизить, но и повысить издание. Однако второе удобнее делать с помощью WAU.
- установочный диск с изданием, которое вы хотите установить
- ключ продукта, подходящий к изданию
Почему не работает изменение издания путем обновления системы
Программа установки Windows проверяет текущее издание перед его изменением, поэтому попытка обновления будет заблокирована на этапе проверки совместимости.
В сообщении излагается поддерживаемый путь, пусть и не слишком удобный. Тем не менее, есть и более короткий обходной путь, хотя и не имеющий официальной поддержки.
Предупреждение
Мне неизвестно, нарушает ли этот способ священное EULA. В любом случае, я привожу информацию исключительно с целью продемонстрировать, что заложенный в Windows механизм обновления системы может работать на повышение и понижение издания.
Процесс изменения издания
В библиотеке TechNet четко прописано, что переустановка поверх установленной системы возможна только в пределах текущего издания. Отсюда вытекает обходной путь: чтобы механизм заработал, надо изменить издание установленной системы на то, которое вы собираетесь установить.
- Откройте редактор реестра и перейдите в раздел
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion
- Измените значение параметра EditionID в соответствии с устанавливаемой системой.
Допустимые значения Windows 7:Enterprise Ultimate Professional HomePremium HomeBasic Starter
Этого достаточно, чтобы пройти проверку совместимости.
- Запустите setup.exe с установочного диска и начните установку (можно по ходу дела установить недостающие обновления).
- В качестве типа установки выберите «Обновление».
Увеличить рисунок
По завершении процесса установки в вашем распоряжении окажется новое издание со всеми программами и настройками предыдущего.
Дискуссия
Если у вас есть вопросы по материалу, я с удовольствием отвечу на них. Предполагаю, что их будет немного, поэтому хочу обсудить два других момента.
Каким изданием Windows 7 вы пользуетесь?
Если честно, для моей повседневной работы вполне хватило бы «Домашней расширенной». Однако для ведения блога и ответов на форуме мне больше подходит «Максимальная». Причем удобнее использовать ее в качестве основной рабочей системы, чем держать на виртуальной машине.
Если вы проголосовали за один из двух первых пунктов, расскажите о тех возможностях «Максимальной», которые вам необходимы и отсутствуют в младших изданиях.
Есть ли у вас опыт переустановки Windows 7 поверх установленной ОС?
Я неоднократно выполнял переустановку поверх на виртуальных и физических машинах, и механизм обновления работал без сбоев. Поэтому я смело рекомендую этот способ в форуме, когда стандартный набор решений не устраняет системную проблему.
Однако некоторые участники воспринимают такое предложение в штыки – мол, переустановка не является приемлемым решением. В XP так и было, но в Windows 7 можно не ждать у моря погоды, а исправить проблему в течение получаса.
Вам доводилось переустанавливать Windows 7 поверх? Сталкивались ли вы с проблемами? Расскажите о своем опыте!
Результаты голосования утеряны в связи с прекращением работы веб-сервиса опросов.
Любой язык – Крипто про он же csptest.exe
<!– –> Новый участник Сообщения: 46 Благодарности: 0 | |
Здравствуйте! Уважаемые умы! |
02-07-2019 |
<!– –> Новый участник Сообщения: 46 Благодарности: 0 |
| | Цитировать Цитата YuS_2: Если код работает теперь, то его надо привести к автоматизации. Для этого необходимо определиться с этим: Не совсем… Он по прежнему ругается на номер дома после , .bbccode{ width: 600px; } Код: PS C:\Windows\system32> $subject = (($str[1].p2 -replace ',(?=[^=,]*,)') -split ',') PS C:\Windows\system32> $subject ОГРН=1234567890 СНИЛС=1234567890 ИНН=1234567890 E=1234567890_1234567890 OU=Общее подразделение T=Генеральный директор CN=Иванов Иванов Иванович SN=Иванов G=Иванов Иванович C=RU L=Москва STREET="ул.Лобненская 21" т.е. не по маске “имя=значение” 1. Есть список в файле такого вида: 2. Копирование так и не работает ругается: .bbccode{ width: 600px; } Код: >> cmd /c """C:\Program Files\Crypto Pro\CSP\csptest.exe"" -keycopy -contsrc "$fld" -contdest ""\\.\FAT12_D$a""" -pindest=""""" WARNING: Useless positional arguments found: "Наталья", "Николаевна" C:\Program Files\Crypto Pro\CSP\csptest.exe -keycopy [<options>] CSPTEST copy container <options>: -provsrc <name> Specify source provider name -provdest <name> Specify destination provider name -typesrc <type> Specify source provider type -typedest <type> Specify destination provider type -silent Do not show any user interface -machinesrc Use CRYPT_MACHINE_KEYSET -machinedest Use CRYPT_MACHINE_KEYSET -contsrc <cont> Source container -contdest <cont> Destination container -archivable Generate source key with CRYPT_ARCHIVABLE flag -pinsrc <PIN> Source container pin -pindest <PIN> Destination container pin -trace <mode> Log level for internal messages -tfmt <flags> Log format for internal messages -help Print this help Total: SYS: 0,000 sec USR: 0,000 sec UTC: 0,034 sec [ErrorCode: 0x00000001] |
| #31 |
<!– –> Crazy Сообщения: 906 Благодарности: 400 |
| | Цитировать Цитата ownsmir: из вывода конец строки Suject вместе с STREET=”ул.Лобненская 21″ » а, да, что-то про конец строки я и не подумал … вот так должно быть: .bbccode{ width: 600px; } Код: $issuer = ($str[0].p2 -replace ',(?=[^=,]*(,|$))') -split ','|convertfrom-stringdata $subject = ($str[1].p2 -replace ',(?=[^=,]*(,|$))') -split ','|convertfrom-stringdata Цитата ownsmir: 2. Копирование так и не работает ругается: » тут я пока не могу ничего подсказать, ибо криптопро у меня нет. Но здесь важно определить, на всех контейнерах такая беда или на каком-то конкретном? Цитата ownsmir: 1. Есть список в файле такого вида: » с этим понятно, осталось только с копированием разобраться… |
——-
| #32 |
<!– –> Новый участник Сообщения: 46 Благодарности: 0 |
| | Цитировать YuS_2, YuS_2, YuS_2, YuS_2, YuS_2, YuS_2, YuS_2, Цитата YuS_2: Цитата ownsmir: С копированием разобрался) еще пару кавычек добавил к “$fld” и все сработало. .bbccode{ width: 600px; } Код: #requires -v 3.0 $fld = "\\.\FAT12_H#requires -v 3.0 $fld = "\\.\FAT12_H\0c91ac552c88477eb85fb27ec79fe7df" $tmp = cmd /c """C:\Program Files\Crypto Pro\CSP\certmgr.exe"" -list -cont ""$fld""" $str = $tmp|?{$_ -match 'Not valid after|Subject|Issuer'}|convertfrom-string -d ' : ' $issuer = ($str[0].p2 -replace ',(?=[^=,]*(,|$))') -split ','|convertfrom-stringdata $subject = ($str[1].p2 -replace ',(?=[^=,]*(,|$))') -split ','|convertfrom-stringdata $date = [datetime]::parse(($str[2].p2 -replace 'UTC','GMT')) $a = ($subject.o -replace '"')+$(" {0:dd.MM.yyyy} " -f $date)+($issuer.o -replace '"') cmd /c """C:\Program Files\Crypto Pro\CSP\csptest.exe"" -keycopy -contsrc ""$fld"" -contdest ""\\.\FAT12_D\$a"" -pindest="""c91ac552c88477eb85fb27ec79fe7df" $tmp = cmd /c """C:\Program Files\Crypto Pro\CSP\certmgr.exe"" -list -cont ""$fld""" $str = $tmp|?{$_ -match 'Not valid after|Subject|Issuer'}|convertfrom-string -d ' : ' $issuer = ($str[0].p2 -replace ',(?=[^=,]*(,|$))') -split ','|convertfrom-stringdata $subject = ($str[1].p2 -replace ',(?=[^=,]*(,|$))') -split ','|convertfrom-stringdata $date = [datetime]::parse(($str[2].p2 -replace 'UTC','GMT')) $a = ($subject.o -replace '"')+$(" {0:dd.MM.yyyy} " -f $date)+($issuer.o -replace '"') cmd /c """C:\Program Files\Crypto Pro\CSP\csptest.exe"" -keycopy -contsrc ""$fld"" -contdest ""\\.\FAT12_D$a"" -pindest=""" Как бы теперь сделать: |
| #33 |
<!– –> Crazy Сообщения: 906 Благодарности: 400 |
| | Цитировать Пробуйте: .bbccode{ width: 600px; } Код: #requires -v 3.0 $list = 'listcontainer.txt' $certmgr = 'C:\Program Files\Crypto Pro\CSP\certmgr.exe' $csptest = 'C:\Program Files\Crypto Pro\CSP\csptest.exe' $dst = '\\.\FAT_D' gc $list -enc utf8|%{ try{ [string]$container = $_ $tmp = cmd /c """$certmgr"" -list -cont ""$_""" $str = $tmp|?{$_ -match 'Not valid before|Subject|Issuer'}|convertfrom-string -d ' : ' $issuer = ($str[0].p2 -replace ',(?=[^=,]*(,|$))') -split ','|convertfrom-stringdata $subject = ($str[1].p2 -replace ',(?=[^=,]*(,|$))') -split ','|convertfrom-stringdata $date = [datetime]::parse(($str[2].p2 -replace 'UTC','GMT')) $a = ($subject.o -replace '"')+' '+($subject.cn -replace '"')+ ` $(" {0:dd.MM.yyyy} " -f $date)+($issuer.o -replace '"')+' '+($issuer.cn -replace '"') cmd /c """$csptest"" -keycopy -contsrc ""$_"" -contdest ""$dst$a"" -pindest=""""" } catch { write-output "Произошла ошибка: $_ , контейнер: $container"|out-file error.log -enc utf8 } } Только учтите, здесь добавлено поле “O” дополнительно к “CN” . |
——- Последний раз редактировалось YuS_2, 06-07-2019 в 17:41. Причина: поправки в коде
| #34 |
<!– –> Новый участник Сообщения: 46 Благодарности: 0 |
| | Цитировать Доброго дня… Хочу вернуться к данной теме… .bbccode{ width: 600px; } Код: #requires -v 3.0 $list = 'C:\erkey.txt' $certmgr = 'C:\Program Files\Crypto Pro\CSP\certmgr.exe' $csptest = 'C:\Program Files\Crypto Pro\CSP\csptest.exe' $dst = '\\.\FAT12_J' gc $list -enc utf8|%{ try{ [string]$container = $_ $tmp = cmd /c """$certmgr"" -list -cont ""$_""" $str = $tmp|?{$_ -match 'Not valid before|Subject|Issuer'}|convertfrom-string -d ' : ' $issuer = ($str[0].p2 -replace ',(?=[^=,]*(,|$))') -split ','|convertfrom-stringdata $subject = ($str[1].p2 -replace ',(?=[^=,]*(,|$))') -split ','|convertfrom-stringdata $date = [datetime]::parse(($str[2].p2 -replace 'UTC','GMT')) $a = ($subject.o -replace '"')+ ` $(" {0:dd.MM.yyyy} " -f $date)+($issuer.o -replace '"') $container $a cmd /c """$csptest"" -keycopy -contsrc ""$_"" -contdest ""$dst$a"" -pindest=""""" } catch { write-output "Произошла ошибка: $_ , контейнер: $container"|out-file error.log -enc utf8 } } |
| #35 |
<!– –> Новый участник Сообщения: 46 Благодарности: 0 |
| | Цитировать И было бы идеально еще перебор паролей сделать в команде .bbccode{ width: 600px; } Код: cmd /c """$csptest"" -keycopy -contsrc ""$_"" -pinsrc=""123456"" -contdest ""$dst$a"" -pindest=""""" -pinsrc=””123456″” чтобы при неправльном пароле он попробЫвал другой который указан в переменной например. |
| #36 |
<!– –> Crazy Сообщения: 906 Благодарности: 400 |
| | Цитировать Цитата ownsmir: Доброго дня… Хочу вернуться к данной теме… » “Вспомнить всё”©фильм Цитата ownsmir: чтобы он дополнительно сравнил дату выпуска ключа » непросто вспомнить о чем шла речь полгода назад, для разовой-то задачи… .bbccode{ width: 600px; } Код: #requires -v 3.0 $d = get-date('16.12.2018') $list = 'C:\erkey.txt' $certmgr = 'C:\Program Files\Crypto Pro\CSP\certmgr.exe' $csptest = 'C:\Program Files\Crypto Pro\CSP\csptest.exe' $dst = '\\.\FAT12_J' gc $list -enc utf8|%{ try{ [string]$container = $_ $tmp = cmd /c """$certmgr"" -list -cont ""$_""" $str = $tmp|?{$_ -match 'Not valid before|Subject|Issuer'}|convertfrom-string -d ' : ' $issuer = ($str[0].p2 -replace ',(?=[^=,]*(,|$))') -split ','|convertfrom-stringdata $subject = ($str[1].p2 -replace ',(?=[^=,]*(,|$))') -split ','|convertfrom-stringdata $date = [datetime]::parse(($str[2].p2 -replace 'UTC','GMT')) $a = ($subject.o -replace '"')+ ` $(" {0:dd.MM.yyyy} " -f $date)+($issuer.o -replace '"') $container $a if ($date -gt $d){ cmd /c """$csptest"" -keycopy -contsrc ""$_"" -contdest ""$dst$a"" -pindest=""""" } } catch { write-output "Произошла ошибка: $_ , контейнер: $container"|out-file error.log -enc utf8 } } Цитата ownsmir: чтобы при неправльном пароле он попробЫвал другой который указан в переменной например. » Для этого необходимо получать код возврата от “csptest.exe” и если он возвращает какой-либо уникальный код, в случае неправильного ввода пароля, тогда можно что-нибудь будет придумать. Но, напомню: крипто про у меня не установлен, поэтому проверять и тестировать не на чем… |
——-
| #37 |
Поговорим немного про средства электронной подписи (ЭП) с использованием отечественных ГОСТ-алгоритмов в Linux. Несмотря на то, что различные средства и интерфейсы по работе с ЭП в Linux развиты даже лучше, чем в Windows, использовать их не так просто.
Такое положение вещей сохранялось последние несколько лет. Но с конца 2016 года ситуация изменилась в лучшую сторону. Появилось сразу два продукта, которые позволяют работать с электронной подписью по стандарту ГОСТ и шифрованием без использования консоли – это Rosa Crypto Tool и Trusted eSign. Оба эти продукта для работы с криптографией используют «КриптоПро CSP» для Linux. Поэтому, перед тем как обратиться к описанию самих продуктов, поговорим немного про «КриптоПро CSP».
«КриптоПро CSP» под Linux — неоднозначный продукт. С одной стороны, это одно из самых распространенных и мощных сертифицированных средств по работе с криптографией как в Windows, так и в Linux. С другой стороны, для простого человека пользоватся его интерфейсами даже в Windows не так-то просто. А в Linux доступен только консольный интерфейс. Надеюсь, что компания «КриптоПро» в курсе этой ситуации, и в будущем нас ждут новые красивые и удобные интерфейсы, как для Windows, так и для Linux.
Для настройки нам понадобится:
- Любимый дистрибутив Linux. Я использовал Ubuntu Linux 16.04 LTS и ROSA Fresh GNOME R8;
- Сертифицированная версия КриптоПро CSP 4.0 R2 для Windows, UNIX и macOS;
- Рутокен ЭЦП 2.0.
Настройка «КриптоПро» CSP
Несмотря на то, что есть несколько неплохих статей по настройке «КриптоПро CSP» под Linux (например, тут или тут), я опишу здесь свой вариант. Основная причина в том, что большинство инструкций написаны для «Крипто Про CSP» версии 3.x. А современная версия «КриптоПро CSP» 4.0 не является 100% совместимой с 3.x. Дополнительная причина – всегда приятно иметь полную инструкцию по настройке в одном месте, а не переключаться с одного окна на другое.
Приступаем к настройке.
Скачиваем «КриптоПро CSP» для Linux с официального сайта КриптоПро — www.cryptopro.ru/downloads
Распаковываем «КриптоПро CSP» для Linux:
tar -zxf ./linux-amd64_deb.tgz
Далее у нас есть 2 варианта – автоматическая установка и установка вручную. Автоматическая установка запускается командой:
sudo ./install.sh
или
sudo ./install_gui.sh
Здесь надо отдать должное разработчикам «КриптоПро» – автоматическая установка для большинства дистрибутивов отрабатывает успешно. Хотя бывают и нюансы. Например, если у вас не хватает некоторых пакетов, то установка будет успешно завершена, хотя некоторый функционал работать не будет.
Если что-то пошло не так, или вы по тем или иным причинам хотите использовать установку в ручном режиме, то вам необходимо выполнить:
dpkg -i ./cprocsp-curl-64_4.0.0-4_amd64.deb lsb-cprocsp-base_4.0.0-4_all.deb lsb-cprocsp-capilite-64_4.0.0-4_amd64.deb lsb-cprocsp-kc1-64_4.0.0-4_amd64.deb lsb-cprocsp-rdr-64_4.0.0-4_amd64.deb
Для установки пакетов в ROSA используйте urpmi, вместо dpkg -i.
Устанавливаем лицензию для «КриптоПро CSP» для Linux и проверяем, что все работает нормально:
cpconfig -license -set <серийный_номер>
cpconfig -license –view
Мы должны получить что-то вроде:
License validity:
XXXXX-XXXXX-XXXXX-XXXXX-XXXXX
Expires: 3 month(s) 2 day(s)
License type: Server.
Настройка работы с Рутокен ЭЦП 2
Сделаем небольшое отступление. Для работы с электронной подписью и шифрованием нам не обойтись без ключевых пар и сертификатов. Надежное хранение закрытых ключей – один из основных факторов безопасности. А более надежных средств хранения, чем токен или смарт-карта, человечество пока не придумало. Я буду использовать Рутокен ЭЦП 2.0, который имеет сертификат ФСБ и поддерживает работу как с новыми, так и со старыми ГОСТами.
Для работы с токенами в ОС Linux есть масса различных средств и драйверов. Для описания всех этих средств понадобится отдельная статья. Поэтому я не буду подробно описывать, как это работает, и почему нам нужны именно эти пакеты.
Устанавливаем пакеты для работы с Рутокен ЭЦП 2.0:
apt-get install libpcsclite1 pcscd libccid
Нам также необходимо установить пакеты КриптоПро CSP для поддержки работы с токенами:
dpkg -i ./cprocsp-rdr-gui-gtk-64_4.0.0-4_amd64.deb ./cprocsp-rdr-rutoken-64_4.0.0-4_amd64.deb ./cprocsp-rdr-pcsc-64_4.0.0-4_amd64.deb ./lsb-cprocsp-pkcs11-64_4.0.0-4_amd64.deb
Получаем тестовый сертификат
Перед тем как перейти непосредственно к работе с подписью, надо сгенерировать ключевую пару и создать сертификат электронной подписи. Если у вас уже есть Рутокен с контейнером «КриптоПро», то эту часть можно смело пропустить.
Воспользуемся тестовым УЦ компании «КриптоПро» по адресу — https://www.cryptopro.ru/certsrv/
Создаем запрос на сертификат с параметрами по умолчанию.
Проверим, что сертификат получен успешно.
Чтобы убедиться, что «КриптоПро CSP» успешно увидел токен, выполним:
list_pcsc
Мы должны получить что-то вроде:
Aktiv Rutoken ECP 00 00
Теперь проверяем, что сертификат на токене видится успешно:
csptest -keyset -enum_cont -verifyc -fq
Получаем:
CSP (Type:80) v4.0.9014 KC1 Release Ver:4.0.9842 OS:Linux CPU:AMD64 FastCode:READY:AVX.
AcquireContext: OK. HCRYPTPROV: 13476867
\\.\Aktiv Rutoken ECP 00 002506788-dfcd-54c9-3a5e-e0a82a2d7f0
OK.
Total: SYS: 0,020 sec USR: 0,160 sec UTC: 0,870 sec
[ErrorCode: 0x00000000]
Записываем в хранилище сертификатов КриптоПро информацию об этом сертификате:
csptestf -absorb -cert -pattern 'rutoken'
Match: SCARD\rutoken_ecp_351d6671csptestf -absorb -cert -pattern 'rutoken'
Match: SCARD\rutoken_ecp_351d6671\0A00\62AC
OK.
Total: SYS: 0,010 sec USR: 0,140 sec UTC: 1,040 sec
[ErrorCode: 0x00000000]
A00AC
OK.
Total: SYS: 0,010 sec USR: 0,140 sec UTC: 1,040 sec
[ErrorCode: 0x00000000]
Проверим, что сертификат успешно сохранился в хранилище:
certmgr -list -cert -store uMy
Certmgr 1.0 (c) "CryptoPro", 2007-2010.
program for managing certificates, CRLs and stores
=============================================================================
1-------
Issuer : E=support@cryptopro.ru, C=RU, L=Moscow, O=CRYPTO-PRO LLC, CN=CRYPTO-PRO Test Center 2
Subject : CN=Trusted eSign Test
Serial : 0x120019F5D4E16D75F520A0299B00000019F5D4
SHA1 Hash : 0x016f443df01187d5500aff311ece5ea199ff863e
SubjKeyID : 204e94f63c68595e4c521357cf1d9279bff6f6e5
Signature Algorithm : ГОСТ Р 34.11/34.10-2001
PublicKey Algorithm : ГОСТ Р 34.10-2001 (512 bits)
Not valid before : 22/02/2017 10:53:16 UTC
Not valid after : 22/05/2017 11:03:16 UTC
PrivateKey Link : Yes
Container : SCARD\rutoken_ecp_351d6671certmgr -list -cert -store uMy
Certmgr 1.0 (c) "CryptoPro", 2007-2010.
program for managing certificates, CRLs and stores
=============================================================================
1-------
Issuer : E=support@cryptopro.ru, C=RU, L=Moscow, O=CRYPTO-PRO LLC, CN=CRYPTO-PRO Test Center 2
Subject : CN=Trusted eSign Test
Serial : 0x120019F5D4E16D75F520A0299B00000019F5D4
SHA1 Hash : 0x016f443df01187d5500aff311ece5ea199ff863e
SubjKeyID : 204e94f63c68595e4c521357cf1d9279bff6f6e5
Signature Algorithm : ГОСТ Р 34.11/34.10-2001
PublicKey Algorithm : ГОСТ Р 34.10-2001 (512 bits)
Not valid before : 22/02/2017 10:53:16 UTC
Not valid after : 22/05/2017 11:03:16 UTC
PrivateKey Link : Yes
Container : SCARD\rutoken_ecp_351d6671\0A00\62AC
Provider Name : Crypto-Pro GOST R 34.10-2012 KC1 CSP
Provider Info : ProvType: 80, KeySpec: 1, Flags: 0x0
CA cert URL : http://testca.cryptopro.ru/CertEnroll/test-ca-2014_CRYPTO-PRO%20Test%20Center%202.crt
OCSP URL : http://testca.cryptopro.ru/ocsp/ocsp.srf
CDP : http://testca.cryptopro.ru/CertEnroll/CRYPTO-PRO%20Test%20Center%202.crl
Extended Key Usage : 1.3.6.1.5.5.7.3.2
=============================================================================
[ErrorCode: 0x00000000]
A00AC
Provider Name : Crypto-Pro GOST R 34.10-2012 KC1 CSP
Provider Info : ProvType: 80, KeySpec: 1, Flags: 0x0
CA cert URL : http://testca.cryptopro.ru/CertEnroll/test-ca-2014_CRYPTO-PRO%20Test%20Center%202.crt
OCSP URL : http://testca.cryptopro.ru/ocsp/ocsp.srf
CDP : http://testca.cryptopro.ru/CertEnroll/CRYPTO-PRO%20Test%20Center%202.crl
Extended Key Usage : 1.3.6.1.5.5.7.3.2
=============================================================================
[ErrorCode: 0x00000000]
На этом основная настройка завершена, и мы можем начинать подписывать или шифровать файлы с использованием различных средств. Переходим к тому, зачем задумывалась эта статья.
Подпись средствами «КриптоПро CSP»
В составе «КриптоПро CSP» есть утилита csptestf, позволяющая выполнять различные криптографические операции. Как я уже писал выше, у этой утилиты есть 2 недостатка:
- Отсутствие хорошей документации;
- Отсутствие графического интерфейса.
Подписать можно с помощью команды:
csptestf –sfsign –sign –in <имя файла> -out <имя файла> -my ‘Trusted eSign Test’ –detached –alg GOST94_256
Здесь,
my — параметр, в котором надо указать часть Common Name сертификата для подписи;
detached — позволяет создать открепленную подпись;
alg GOST94_256 — задает алгоритм хэширования, который будет использоваться при создании подписи.
Более подробную информацию о возможных параметрах вы можете получить, выполнив команду:
csptestf –sfsign
Такой интерфейс отлично подходит для подготовленного пользователя или для автоматизации операций в скриптах.
Поговорим теперь об утилитах, которые облегчают жизнь обычным пользователям при работе с подписью и шифрованием в Linux.
Rosa Crypto Tool
Как следует из названия, это утилита для работы с электронной подписью и шифрованием для дистрибутива ROSA Linux. В данный момент утилита доступна в репозиториях Rosa Linux и Alt Linux.
Эта утилита разрабатывается одним человеком – Михаилом Вознесенским. У нее простой, но удобный интерфейс. На данный момент утилита находится в активной разработке – с ноября 2016 года мне удалось протестировать три версии. Последняя версия, доступная на момент написание статьи — 0.2.2. Сейчас утилита поддерживает работу только с «КриптоПро CSP» для Linux, однако в ближайшее время будет добавлена поддержка других криптопровайдеров.
Что внутри? Утилита написана на Python с использованием PyQt4 для графического интерфейса.
Установить ее можно, использовав «Управление программами» в Rosa Linux.
Вставляем токен и запускаем утилиту.
Видим, что токен определился успешно и был найден наш сертификат.
Интерфейс программы настолько прост, что описывать и показывать в статье все его функции не имеет смысла. Попробуем только подписать файл.
Выбираем файл и жмем “Подписать файл”. Получаем вот такое предупреждение.
Нажимаем «OK» и получаем информацию о том, что файл был подписан успешно.
Основное достоинство этой утилиты в том, что она совершенно бесплатная, в отличии нашего следующего продукта.
По сравнению с использованием «КриптоПро CSP» из консоли:
+ На порядок проще использовать;
— Отсутствуют различные параметры подписи.
Исходный код программы доступен в публичном репозитории на ABF:
abf.io/uxteam/rosa-crypto-tool-devel
Система контроля версий, которую использует «НТЦ ИТ РОСА», интегрирована в сборочную среду и базируется на Git. Можно вполне использовать любой клиент git.
Надеюсь, разработчики других отечественных дистрибутивов Linux, таких как Astra Linux, GosLinux и другие добавят в свои дистрибутивы пакеты с rosa-crypto-tool.
Trusted eSign
Второй продукт, про который мы поговорим, это Trusted eSign от компании “Цифровые технологии”. Она известна на российском рынке ИБ как разработчик средства по работе с подписью и шифрованием для ОС Windows – «КриптоАРМ».
Главное, не путать этот продукт с Trusted.eSign – web-сервисом по работе с подписью этой же компании.
Найти продукт на сайтах компании “Цифровые технологии” непросто. Небольшое описание есть в магазине http://www.cryptoarm.ru/shop/trusted_esign, продукт также можно скачать в разделе «Центр загрузки» на сайте trusted.ru — https://trusted.ru/support/downloads/?product=133
К сожалению, продукт пока доступен только в виде deb пакета для 64-битных систем. С чем связано такое ограничение, непонятно. Будем надеяться, что в ближайшее время компания выпустит и rpm пакет, а также версии для 32-битных дистрибутивов Linux.
Скачиваем с официального сайта deb-пакет и устанавливаем командой:
dpkg –i ./trustedesign-x64.deb
Запускаем Trusted eSign.
Сразу видно, что разработка не обошлась без дизайнера. Никакого сарказма. Все действия делаются просто и логично, а внешний вид радует глаз. К сожалению, большинство средств и программ в области ИБ от российских разработчиков разработаны без привлечения UX-специалистов и дизайнеров и заставляют своих пользователей страдать и плакать кровавыми слезами. Создается впечатление, что другими средства информационной безопасности просто не могут быть. “Цифровые технологии” опровергают это. Плата за красоту и удобство – необходимость платить за лицензию.
Но вернемся к подписи.
Выбираем раздел “Электронная подпись”:
Выбираем «Сертификат для подписи»:
Выбираем файлы для подписи и жмем «Подписать»:
Что под капотом? Процитирую с сайта: “Приложение создано на современном движке Electron, для вызова криптографических операций применяется библиотека OpenSSL. Совместимо с СКЗИ “КриптоПро CSP 4.0” и поддерживает все криптографические алгоритмы, реализованные в нем.” Для тех, кто ещё не в курсе Electron — это фреймворк для создания десктопных приложений на платформе node.js.
Сравним Trusted eSign с Rosa crypto tool:
+ Более удобный и красивый интерфейс
— Платная лицензия
Резюме
Подведем итог. В конце 2016 – начале 2017 года наметился неплохой прогресс в средствах по работе с электронной подписью под Linux. Информационная безопасность начинает поворачиваться к пользователю лицом, и с каждым годом требуется все меньше действий для такого простого действия, как подписать или зашифровать файл с использованием отечественных алгоритмов.
Хочется дополнительно отметить такое развитие отечественных продуктов, учитывая современный тренд на замену Windows на Linux в государственных и муниципальных организациях. В рамках этого тренда становится актуальным использование средств криптографической защиты информации под Linux. Хорошие и удобные продукты российских разработчиков помогут государственным организациям и структурам нормально работать и выполнять требования по импортозамещению.
Такое развитие не может не радовать, особенно когда это происходит под Linux.
.
Наверняка есть немало пользователей, особенно пользователей Linux, кто считает, что консольных утилит достаточно. А также специалистов по информационной безопасности, которые считают, что дизайн и удобство — излишество в ИБ. Но я не могу с ними согласиться. Консольные утилиты, несомненно, идеальны для автоматизации. Но большинству пользователей удобнее работать с графическими интерфейсами. Даже в Linux.
Установка сертификатов используя КриптоПРО в Linux
Описание процесса установки приведено на примере дистрибутива семейства Debian (x64).Названия файлов и директорий могут варьироваться от системы к системе.
При установке личных сертификатов не нужны права суперпользователя, и наоборот, при установке сертификатов УЦ(корневых и промежуточных) могут потребоваться такие права.
Подключите USB носитель с ключевыми контейнерами и проверьте результат команды:
/opt/cprocsp/bin/amd64/csptest -keyset -enum_cont -fqcn -verifycCSP (Type:80) v4.0.9009 KC1 Release Ver:4.0.9797 OS:Linux CPU:AMD64 FastCode:READY:AVX.
AcquireContext: OK. HCRYPTPROV: 16188003
\\.\FLASH\ivanov
\\.\FLASH\petrov
\\.\FLASH\sidorov
\\.\FLASH\vasiliev
\\.\FLASH\smirnov
OK.
Total: SYS: 0,020 sec USR: 0,060 sec UTC: 0,180 sec
Можно сразу установить личные сертификатов из всех доступных контейнеров одной командой:/opt/cprocsp/bin/amd64/csptestf -absorb -certsПроизойдет установка сертификатов, находящихся во всех доступных в момент запуска команды контейнерах (съемных флэш-носителях, жесткого диска и т. д.) в хранилище uMy.
Пример установки отдельно взятого сертификата из контейнера
При необходимости скопируйте ключевой контейнер \\.\FLASH\.\sidorov на жесткий диск:
/opt/cprocsp/bin/amd64/csptest -keycopy -contsrc '\\.\FLASH\sidorov' -contdest '\\.\HDIMAGE\sidor'CSP (Type:80) v4.0.9009 KC1 Release Ver:4.0.9797 OS:Linux CPU:AMD64 FastCode:READY:AVX.
CryptAcquireContext succeeded.HCRYPTPROV: 38556259
CryptAcquireContext succeeded.HCRYPTPROV: 38770755
Total: SYS: 0,000 sec USR: 0,100 sec UTC: 14,920 sec
[ErrorCode: 0x00000000]
Наличие [ErrorCode: 0x00000000] в завершении каждой команды КриптоПРО говорит о ее успешном выполнении.
Проверьте наличие нового контейнера \\.\HDIMAGE\sidor:
/opt/cprocsp/bin/amd64/csptest -keyset -enum_cont -fqcn -verifycCSP (Type:80) v4.0.9009 KC1 Release Ver:4.0.9797 OS:Linux CPU:AMD64 FastCode:READY:AVX.
AcquireContext: OK. HCRYPTPROV: 34554467
\\.\FLASH\ivanov
\\.\FLASH\petrov
\\.\FLASH\sidorov
\\.\FLASH\vasiliev
\\.\FLASH\smirnov
\\.\HDIMAGE\sidor
OK.
Total: SYS: 0,010 sec USR: 0,050 sec UTC: 0,130 sec
[ErrorCode: 0x00000000]
Установите личный сертификат:
/opt/cprocsp/bin/amd64/certmgr -inst -cont '\.HDIMAGEsidor'Certmgr 1.0 (c) "CryptoPro", 2007-2010.
program for managing certificates, CRLs and stores
Install:
=============================================================================
1-------
Issuer : OGRN=1234567890123, INN=1234567890, STREET=Арбат, E=info@berkut.ru, C=RU, S=77 г.Москва, L=Москва, O=ООО 'Беркут', OU=Удостоверяющий центр, CN=UCESTP
Subject : SNILS=12345678901, OGRN=1234567890123, INN=0011234567890, E=sidorov@mail.ru, C=RU, S=10 Республика Карелия, L=Петрозаводск, O=ООО Ромашка, CN=Сидоров Николай Павлович, T=Администратор, G=Николай Павлович, SN=Сидоров
Serial : 0x12C40953000000000019
SHA1 Hash : 0xdd0ea8db46a372571c55315cd7e4d8e2de8fb9b6
SubjKeyID : 5fc37e578cce0abe739c4da227f68a2f9abcb128
Signature Algorithm : ГОСТ Р 34.11/34.10-2001
PublicKey Algorithm : ГОСТ Р 34.10-2001 (512 bits)
Not valid before : 09/08/2016 06:07:00 UTC
Not valid after : 09/11/2017 06:17:00 UTC
PrivateKey Link : No
CA cert URL : <mark>http://cert1.ucestp.ru/estp.crt</mark>
Extended Key Usage : 1.3.6.1.5.5.7.3.4
1.3.6.1.5.5.7.3.2
=============================================================================
[ErrorCode: 0x00000000]
Скачайте корневой сертификат по ссылке выше (из поля CA cert URL
): http://cert1.ucestp.ru/estp.crt и перенесите его, например, в домашнюю папку:
cp ~/Загрузки/estp.crt ~/estp.crt
Установите корневой сертификат (возможно потребуются права суперпользователя):
/opt/cprocsp/bin/amd64/certmgr -inst -store uroot -file ~/estp.crtCertmgr 1.0 (c) "CryptoPro", 2007-2010.
program for managing certificates, CRLs and stores
Install:
=============================================================================
1-------
Issuer : OGRN=1234567890123, INN=1234567890, STREET=Арбат, E=info@berkut.ru, C=RU, S=77 г.Москва, L=Москва, O=ООО 'Беркут', OU=Удостоверяющий центр, CN=UCESTP
Subject : OGRN=1234567890123, INN=1234567890, STREET=Арбат, E=info@berkut.ru, C=RU, S=77 г.Москва, L=Москва, O=ООО 'Беркут', OU=Удостоверяющий центр, CN=UCESTP
Serial : 0x50D7BC0E4A3EC9994454EB83013EE5F5
SHA1 Hash : 0xd2144a3e098b6f2decb224257f48e2b7c6d85209
SubjKeyID : 07b753cd561dee8e5e83407be4575ecc05bfec14
Signature Algorithm : ГОСТ Р 34.11/34.10-2001
PublicKey Algorithm : ГОСТ Р 34.10-2001 (512 bits)
Not valid before : 17/06/2016 13:15:21 UTC
Not valid after : 17/06/2021 13:25:01 UTC
PrivateKey Link : No
=============================================================================
[ErrorCode: 0x00000000]
Проверьте установку личного сертификата:
/opt/cprocsp/bin/amd64/certmgr -list -store uMyCertmgr 1.0 (c) "CryptoPro", 2007-2010.
program for managing certificates, CRLs and stores
=============================================================================
1-------
Issuer : OGRN=1234567890123, INN=1234567890, STREET=Арбат, E=info@berkut.ru, C=RU, S=77 г.Москва, L=Москва, O=ООО 'Беркут', OU=Удостоверяющий центр, CN=UCESTP
Subject : SNILS=12345678901, OGRN=1234567890123, INN=0011234567890, E=sidorov@mail.ru, C=RU, S=10 Республика Карелия, L=Петрозаводск, O=ООО Ромашка, CN=Сидоров Николай Павлович, T=Администратор, G=Николай Павлович, SN=Сидоров
Serial : 0x12C40953000000000019
SHA1 Hash : 0xdd0ea8db46a372571c55315cd7e4d8e2de8fb9b6
SubjKeyID : 5fc37e578cce0abe739c4da227f68a2f9abcb128
Signature Algorithm : ГОСТ Р 34.11/34.10-2001
PublicKey Algorithm : ГОСТ Р 34.10-2001 (512 bits)
Not valid before : 09/08/2016 06:07:00 UTC
Not valid after : 09/11/2017 06:17:00 UTC
PrivateKey Link : Yes
Container : HDIMAGE\\sidor.000B01
Provider Name : Crypto-Pro GOST R 34.10-2012 KC1 CSP
Provider Info : ProvType: 80, KeySpec: 1, Flags: 0x0
CA cert URL : http://cert1.ucestp.ru/estp.crt
Extended Key Usage : 1.3.6.1.5.5.7.3.4
1.3.6.1.5.5.7.3.2
=============================================================================
[ErrorCode: 0x00000000]