Ключевое слово в защите информации
КЛЮЧЕВОЕ СЛОВО
в защите информации
Получить ГОСТ TLS-сертификат для домена (SSL-сертификат)
Добро пожаловать, Гость! Чтобы использовать все возможности Вход. Новые регистрации запрещены.

Уведомление

Icon
Error

3 Страницы<123>
Опции
К последнему сообщению К первому непрочитанному
Online nickm  
#11 Оставлено : 17 мая 2025 г. 18:00:45(UTC)
nickm

Статус: Активный участник

Группы: Участники
Зарегистрирован: 31.05.2016(UTC)
Сообщений: 2,654

Сказал(а) «Спасибо»: 614 раз
Поблагодарили: 458 раз в 432 постах
Автор: Николай1987 Перейти к цитате
2 способ можно скопировать

+ ещё один способ забылся, и опять же не безопасный.

Отредактировано пользователем 17 мая 2025 г. 18:01:57(UTC)  | Причина: Не указана

Offline Николай1987  
#12 Оставлено : 24 мая 2025 г. 21:31:22(UTC)
Николай1987

Статус: Участник

Группы: Участники
Зарегистрирован: 14.05.2025(UTC)
Сообщений: 12
Российская Федерация

Автор: nickm Перейти к цитате
Автор: Николай1987 Перейти к цитате
2 способ можно

Для обеспечения доступа к ключу можно нафантазировать несколько способов, попробуем...

Когда ключ доступен на некоторых зарегистрированных носителях, например:

Когда ключ не требуется "размножать" и он доступен в "единственном" экземпляре:
- использовать токен на сервере (можно предположить, что это самый безопасный сценарий использования ключа);
- использовать сетевой диск;
- использовать флэш-накопитель;

Когда ключ требуется "размножать" и он доступен во "множественных" экземплярах:
- использовать выше указанный каталог "КриптоПро" в профиле пользователя "\\HDIMAGE";
- использовать реестр "КриптоПро" в профиле пользователя "\\REGISTRY";

Установку сертификата из уже доступного контейнера пользователю, тем более в Вашем сценарии он без ПИН'а, можно осуществлять командой, например:
Код:
"%ProgramFiles%\Crypto Pro\CSP\csptest.exe" -absorb -certs -autoprov


Когда требуется заморочиться импортом из *.pfx - команду Вы уже знаете, как ограничить исполнение этой команды одним разом, то один из возможных вариантов Вам уже был предложен, просто созданием и проверкой файла-флага, можно придумать и др. способы, например чтение личного хранилища и поиск сертификата по отпечатку:
Код:
@echo off
SetLocal EnableExtensions EnableDelayedExpansion

For /F "Tokens=1,2* Delims=:" %%a In ('"%ProgramFiles%\Crypto Pro\CSP\certmgr.exe" -list -store uMy ^| FindStr b19982a8d10f9f3265007e06f808e7c97fbf4b67 ^2^>nul') Do (
set "CertExist=%%b"
)

if DEFINED CertExist (echo."Сертификат с указанным отпечатком в хранилище присутствует, скорее всего *.pfx был импортирован ранее. Импорт *.pfx производиться не будет!") else (echo."Сертификат с указанным отпечатком в хранилище отсутствует. Импорт *.pfx будет произведен!")


Ну допустим установленый сертификат в личные находит по отпечатку, но если закртый контейнер для этого сертификата не установлен то не сработает скрипт. нужно делать проверку как то по закрытому контейнеру? как сделать проверку по закрытому контейнеру по отпечатку?

Offline Николай1987  
#13 Оставлено : 24 мая 2025 г. 21:36:10(UTC)
Николай1987

Статус: Участник

Группы: Участники
Зарегистрирован: 14.05.2025(UTC)
Сообщений: 12
Российская Федерация

$currentSid = [System.Security.Principal.WindowsIdentity]::GetCurrent().User.Value
Write-Host "Текущий SID: $currentSid"
$regPath = "HKLM:\SOFTWARE\WOW6432Node\Crypto Pro\Settings\Users\$currentSid\Keys\5465000653 30654542"
if (Test-Path -Path $regPath) {
Write-Host "Раздел реестра уже существует:" -ForegroundColor Yellow
Write-Host $regPath -ForegroundColor Yellow
Write-Host "Выполнение скрипта прекращено." -ForegroundColor Red
exit 1
} else {
Write-Host "Раздел реестра не найден, можно продолжать выполнение." -ForegroundColor Green
}
& "C:\Program Files (x86)\Crypto Pro\CSP\certmgr.exe" -install -file D:\1\2\certorg.pfx -pfx -autodist -pin 1 -newpin '""' -carrier \\.\REGISTRY\
& "C:\Program Files (x86)\Crypto Pro\CSP\csptest.exe" -absorb -provtype 75 -cert


Проблема в том что генерируется новый раздел в реестре "HKLM:\SOFTWARE\WOW6432Node\Crypto Pro\Settings\Users\$currentSid\Keys\pfx-607d2d86-7a18-7bb0-5b59-0da704e20ead"
Проблема в том что генерируется новый раздел в реестре "HKLM:\SOFTWARE\WOW6432Node\Crypto Pro\Settings\Users\$currentSid\Keys\pfx-6e7e6bad-47b0-5ff9-0590-0fba6c4837fc"
и тд
Offline Николай1987  
#14 Оставлено : 24 мая 2025 г. 21:37:04(UTC)
Николай1987

Статус: Участник

Группы: Участники
Зарегистрирован: 14.05.2025(UTC)
Сообщений: 12
Российская Федерация

Интересует не cmd а powershell


# Включаем строгую проверку ошибок
Set-StrictMode -Version Latest

# Отпечаток сертификата для поиска
$thumbprint = "5454a21545453883e4473154545454"

# Проверяем наличие сертификата в хранилище "My" (личном хранилище пользователя)
$certExists = Get-ChildItem -Path Cert:\CurrentUser\My | Where-Object { $_.Thumbprint -eq $thumbprint }

if ($certExists) {
Write-Host "Сертификат с указанным отпечатком в хранилище присутствует, скорее всего *.pfx был импортирован ранее. Импорт *.pfx производиться не будет!"
exit 1
} else {
Write-Host "Сертификат с указанным отпечатком в хранилище отсутствует. Импорт *.pfx будет произведен!"

# Пример команды для импорта PFX (раскомментируйте и настройте при необходимости)
# $pfxPath = "C:\path\to\certificate.pfx"
# $password = ConvertTo-SecureString -String "your_password" -AsPlainText -Force
# Import-PfxCertificate -FilePath $pfxPath -Password $password -CertStoreLocation Cert:\CurrentUser\My
}
& "C:\Program Files (x86)\Crypto Pro\CSP\certmgr.exe" -install -file D:\1\2\certorg.pfx -pfx -autodist -pin 1 -newpin '""' -carrier \\.\REGISTRY\
& "C:\Program Files (x86)\Crypto Pro\CSP\csptest.exe" -absorb -provtype 75 -cert



Этот скрипт проверяет по отпечатку но не проверяет есть ли закрытый контейнер для него

Отредактировано пользователем 24 мая 2025 г. 21:41:20(UTC)  | Причина: Не указана

Online Андрей *  
#15 Оставлено : 24 мая 2025 г. 22:08:04(UTC)
Андрей *

Статус: Сотрудник

Группы: Участники
Зарегистрирован: 26.07.2011(UTC)
Сообщений: 13,734
Мужчина
Российская Федерация

Сказал «Спасибо»: 574 раз
Поблагодарили: 2304 раз в 1805 постах
Автор: Николай1987 Перейти к цитате
Интересует не cmd а powershell


# Включаем строгую проверку ошибок
Set-StrictMode -Version Latest

# Отпечаток сертификата для поиска
$thumbprint = "5454a21545453883e4473154545454"

# Проверяем наличие сертификата в хранилище "My" (личном хранилище пользователя)
$certExists = Get-ChildItem -Path Cert:\CurrentUser\My | Where-Object { $_.Thumbprint -eq $thumbprint }

if ($certExists) {
Write-Host "Сертификат с указанным отпечатком в хранилище присутствует, скорее всего *.pfx был импортирован ранее. Импорт *.pfx производиться не будет!"
exit 1
} else {
Write-Host "Сертификат с указанным отпечатком в хранилище отсутствует. Импорт *.pfx будет произведен!"

# Пример команды для импорта PFX (раскомментируйте и настройте при необходимости)
# $pfxPath = "C:\path\to\certificate.pfx"
# $password = ConvertTo-SecureString -String "your_password" -AsPlainText -Force
# Import-PfxCertificate -FilePath $pfxPath -Password $password -CertStoreLocation Cert:\CurrentUser\My
}
& "C:\Program Files (x86)\Crypto Pro\CSP\certmgr.exe" -install -file D:\1\2\certorg.pfx -pfx -autodist -pin 1 -newpin '""' -carrier \\.\REGISTRY\
& "C:\Program Files (x86)\Crypto Pro\CSP\csptest.exe" -absorb -provtype 75 -cert



Этот скрипт проверяет по отпечатку но не проверяет есть ли закрытый контейнер для него



понимаете, что из pfx при -install -> создаётся контейнер с закрытый ключом в указанном месте (считыватель) -> carrier -> реестр
+ устанавливается сертификат в Личное ? И что дальше делать? Создать файл\запись в реестре - по которым понимать, что скрипт успешно ранее установил всё нужное - с этим проблемы?




Цитата:

csptest.exe -absorb -provtype 75 -cert

из контейнеров устанавливает сертификаты и проставляет связь сертификат -> контейнер.

ps
75 - это ГОСТ 2001, должно быть 80, либо универсальное -autoprov:
Цитата:
csptest -absorb -certs -autoprov






Техническую поддержку оказываем тут
Наша база знаний
Online Андрей *  
#16 Оставлено : 24 мая 2025 г. 22:13:56(UTC)
Андрей *

Статус: Сотрудник

Группы: Участники
Зарегистрирован: 26.07.2011(UTC)
Сообщений: 13,734
Мужчина
Российская Федерация

Сказал «Спасибо»: 574 раз
Поблагодарили: 2304 раз в 1805 постах
ощущается как будто "требуется" ещё одна мини утилита под такой частный или нет случай, но странно, что такого нет в природе до сих пор или никому оно не нужно \ автоматизировали, по аналогии как было предложено...

либо почитать справку к текущим утилитам, вдруг всё реализовано, но не явно просматривается связь что сделать\выполнить. Boo hoo!
Техническую поддержку оказываем тут
Наша база знаний
Online Андрей *  
#17 Оставлено : 24 мая 2025 г. 22:18:56(UTC)
Андрей *

Статус: Сотрудник

Группы: Участники
Зарегистрирован: 26.07.2011(UTC)
Сообщений: 13,734
Мужчина
Российская Федерация

Сказал «Спасибо»: 574 раз
Поблагодарили: 2304 раз в 1805 постах
а что мешает контейнер (папку с файлами) (или из zip извлекать) копировать в папку...
в профиль пользователя при входе и проставлять ссылку через
csptest.exe -absorb -certs -autoprov

? Задача минутная, а прошло 10 дней уже...
Техническую поддержку оказываем тут
Наша база знаний
Online nickm  
#18 Оставлено : 24 мая 2025 г. 22:22:45(UTC)
nickm

Статус: Активный участник

Группы: Участники
Зарегистрирован: 31.05.2016(UTC)
Сообщений: 2,654

Сказал(а) «Спасибо»: 614 раз
Поблагодарили: 458 раз в 432 постах
Автор: Николай1987 Перейти к цитате
Ну допустим установленный сертификат в личные находит по отпечатку, но если закрытый контейнер для этого сертификата не установлен то не сработает скрипт.

Что не сработает?

Автор: Николай1987 Перейти к цитате
Нужно делать проверку как то по закрытому контейнеру? Как сделать проверку по закрытому контейнеру по отпечатку?

Зачем?

Смотрите, сертификат ведь самостоятельно в хранилище не появляется, ведь этому какие-то события предшествуют, верно? А предшествует этому как раз следующие события: импорт из *.pfx (создание контейнера в реестре) и последующая команда установки сертификатов из доступных контейнеров. Вот Вам выше и предложен такой алгоритм.


Online Андрей *  
#19 Оставлено : 24 мая 2025 г. 22:23:16(UTC)
Андрей *

Статус: Сотрудник

Группы: Участники
Зарегистрирован: 26.07.2011(UTC)
Сообщений: 13,734
Мужчина
Российская Федерация

Сказал «Спасибо»: 574 раз
Поблагодарили: 2304 раз в 1805 постах
C:\Users\логин\AppData\Local\Crypto Pro\

Snimok ehkrana ot 2025-05-24 23-21-11.png (6kb) загружен 2 раз(а).

вот... 3 папки - 3 ключа...

но это не точно Dancing
Техническую поддержку оказываем тут
Наша база знаний
Online Андрей *  
#20 Оставлено : 24 мая 2025 г. 22:26:00(UTC)
Андрей *

Статус: Сотрудник

Группы: Участники
Зарегистрирован: 26.07.2011(UTC)
Сообщений: 13,734
Мужчина
Российская Федерация

Сказал «Спасибо»: 574 раз
Поблагодарили: 2304 раз в 1805 постах
Автор: nickm Перейти к цитате
Автор: Николай1987 Перейти к цитате
Ну допустим установленный сертификат в личные находит по отпечатку, но если закрытый контейнер для этого сертификата не установлен то не сработает скрипт.

Что не сработает?

Автор: Николай1987 Перейти к цитате
Нужно делать проверку как то по закрытому контейнеру? Как сделать проверку по закрытому контейнеру по отпечатку?

Зачем?

Смотрите, сертификат ведь самостоятельно в хранилище не появляется, ведь этому какие-то события предшествуют, верно? А предшествует этому как раз следующие события: импорт из *.pfx (создание контейнера в реестре) и последующая команда установки сертификатов из доступных контейнеров. Вот Вам выше и предложен такой алгоритм.




может уже беспокоится, вдруг контейнер снесут из реестра\папки...
а скрипт не узнает... читать имя контейнера, с которым связан сертификат -> проверять, есть ли он в реестре\папке.
Техническую поддержку оказываем тут
Наша база знаний
RSS Лента  Atom Лента
Пользователи, просматривающие эту тему
Guest
3 Страницы<123>
Быстрый переход  
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.