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

Уведомление

Icon
Error

2 Страницы12>
Опции
К последнему сообщению К первому непрочитанному
Offline al  
#1 Отправлено: : 23 октября 2013 г. 15:43:24(UTC)
al

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

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

Сказал(а) «Спасибо»: 16 раз
Поблагодарили: 1 раз в 1 постах
Пытаюсь скопировать ключевой контейнер из hdimage на карту.
Вот последовательность действий:

1) Смотрим, какие контейнеры у нас есть на карте (на целевом носителе, на который будем копировать контейнер):
Цитата:

user@debian:~$ csptest -keyset -provtype 75 -enum_containers -unique -cont "\\\\.\\OMNIKEY CardMan 3x21 00 00"
CSP (Type:75) v3.6.5364 KC1 Release Ver:3.6.7491 OS:Linux CPU:AMD64 FastCode:READY:AVX.
AcquireContext: OK. HCRYPTPROV: 11583379
ctc111_al |SCARD\MSkey_741ABCB2\C\8795
OK.
Total:
[ErrorCode: 0x00000000]

Видим, что на карте только один контейнер

2) Смотрим, что у нас в исходном контейнере (который будем копировать):
Цитата:

user@debian:~$ sudo /opt/cprocsp/bin/amd64/csptest -keyset -check -cont "\\\\.\\hdimage\\testcont" -machine
[sudo] password for user:
CSP (Type:75) v3.6.5364 KC1 Release Ver:3.6.7491 OS:Linux CPU:AMD64 FastCode:READY:AVX.
AcquireContext: OK. HCRYPTPROV: 12713875
GetProvParam(PP_NAME): Crypto-Pro GOST R 34.10-2001 KC1 CSP
Container name: "testcont"
Check header passed.
Signature key is available. HCRYPTKEY: 0xcf2593
Exchange key is available. HCRYPTKEY: 0xcf78e3
Check container passed.
Check sign passed.
Check import passed.
Check sign passed.
Check import passed.
Certificate in container matches AT_KEYEXCHANGE key.
Keys in container:
signature key
exchange key
Total:
[ErrorCode: 0x00000000]

Видим, что там две пары, на одну из которых есть сертификат. Всё нормально (допустимо).

3) Копируем на карту контейнер из hdimage:
Цитата:

user@debian:~$ sudo /opt/cprocsp/bin/amd64/csptest -keycopy -machine -src "\\\\.\\hdimage\\testcont" -dest "\\\\.\\OMNIKEY CardMan 3x21 00 00\\TestCardContNew"
[sudo] password for user:
CSP (Type:75) v3.6.5364 KC1 Release Ver:3.6.7491 OS:Linux CPU:AMD64 FastCode:READY:AVX.
CryptAcquireContext succeeded.HCRYPTPROV: 27549587
CryptAcquireContext succeeded.HCRYPTPROV: 28441843
An error occurred in running the program.
/dailybuilds/CSPbuild/CSP/samples/csptest/keycopy.c:431:CryptExportKey
Error number 0x8009000b (2148073483).
Key not valid for use in specified state.
An error occurred in running the program.
/dailybuilds/CSPbuild/CSP/samples/csptest/keycopy.c:196:CopyPrivateKey()
Error number 0x8009000b (2148073483).
Key not valid for use in specified state.
Total:
[ErrorCode: 0x8009000b]

Видим, что копирование выдает ошибки (но тем не менее производится, причем копируется только первая пара с назначением ключа AT_KEYEXCHANGE).
Странно, конечно, но возможно это правильно (в любом случае вопрос будет не об этом).

4) Смотрим, какие контейнеры у нас есть на карте:
Цитата:

user@debian:~$ csptest -keyset -provtype 75 -enum_containers -unique -cont "\\\\.\\OMNIKEY CardMan 3x21 00 00"
CSP (Type:75) v3.6.5364 KC1 Release Ver:3.6.7491 OS:Linux CPU:AMD64 FastCode:READY:AVX.
AcquireContext: OK. HCRYPTPROV: 13238163
TestCardContNew |SCARD\MSkey_741ABCB2\A\4195
ctc111_al |SCARD\MSkey_741ABCB2\C\8795
OK.
Total:
[ErrorCode: 0x00000000]

Видим, что на карте появился еще один контейнер

5) Пробуем работать с контейнером, например, генерим пару:
Цитата:

user@debian:~$ csptest -keyset -provtype 75 -cont "\\\\.\\OMNIKEY CardMan 3x21 00 00\\TestCardContNew" -addkeypair
CSP (Type:75) v3.6.5364 KC1 Release Ver:3.6.7491 OS:Linux CPU:AMD64 FastCode:READY:AVX.
AcquireContext: OK. HCRYPTPROV: 23261075
GetProvParam(PP_NAME): Crypto-Pro GOST R 34.10-2001 KC1 CSP
Container name: "TestCardContNew"
Signature key is not available.
Attempting to create a signature key...
a signature key created.
Exchange key is available. HCRYPTKEY: 0x17793f3
Exchange keypair already exist. GenKey() aborted!
Total:
[ErrorCode: 0x00000001]

Всё хорошо, пара сгенерилась.

6) Проверяем:
Цитата:

user@debian:~$ csptest -keyset -check -cont "\\\\.\\OMNIKEY CardMan 3x21 00 00\\TestCardContNew"
CSP (Type:75) v3.6.5364 KC1 Release Ver:3.6.7491 OS:Linux CPU:AMD64 FastCode:READY:AVX.
AcquireContext: OK. HCRYPTPROV: 14196627
GetProvParam(PP_NAME): Crypto-Pro GOST R 34.10-2001 KC1 CSP
Container name: "TestCardContNew"
Check header passed.
Signature key is available. HCRYPTKEY: 0xe64a23
Exchange key is available. HCRYPTKEY: 0xe642b3
Check container passed.
Check sign passed.
Check import passed.
Check sign passed.
Check import passed.
Certificate in container matches AT_KEYEXCHANGE key.
Keys in container:
signature key
exchange key
Total:
[ErrorCode: 0x00000000]

Пока всё хорошо

7) Удаляем только что созданный контейнер:
Цитата:

user@debian:~$ csptest -keys -provtype 75 -deletek -cont "SCARD\\MSkey_741ABCB2\\A\\4195"
CSP (Type:75) v3.6.5364 KC1 Release Ver:3.6.7491 OS:Linux CPU:AMD64 FastCode:READY:AVX.
Container SCARD\MSkey_741ABCB2\A\4195 deleted.
Total:
[ErrorCode: 0x00000000]

Все хорошо

8) Пытаемся проверить несуществующий (только что удаленный) контейнер:
Цитата:

user@debian:~$ csptest -keyset -check -cont "\\\\.\\OMNIKEY CardMan 3x21 00 00\\TestCardContNew"
CSP (Type:75) v3.6.5364 KC1 Release Ver:3.6.7491 OS:Linux CPU:AMD64 FastCode:READY:AVX.
An error occurred in running the program.
/dailybuilds/CSPbuild/CSP/samples/csptest/ctkey.c:881:AcquireContext("\\.\OMNIKEY CardMan 3x21 00 00\TestCardContNew")
Error number 0x80090019 (2148073497).
The keyset is not defined.
Total:
[ErrorCode: 0x80090019]

Контейнер не найден. Всё хорошо.

9) Смотрим, какие контейнеры есть на карте:
Цитата:

user@debian:~$ csptest -keyset -provtype 75 -enum_containers -unique -cont "\\\\.\\OMNIKEY CardMan 3x21 00 00"
CSP (Type:75) v3.6.5364 KC1 Release Ver:3.6.7491 OS:Linux CPU:AMD64 FastCode:READY:AVX.
AcquireContext: OK. HCRYPTPROV: 16625555
ctc111_al |SCARD\MSkey_741ABCB2\C\8795
OK.
Total:
[ErrorCode: 0x00000000]

Всё хорошо - там только один контейнер. Того, который удалили на карте нет.

10) Пытаемся снова скопировать контейнер из hdimage на карту:
Цитата:

user@debian:~$ sudo /opt/cprocsp/bin/amd64/csptest -keycopy -machine -src "\\\\.\\hdimage\\testcont" -dest "\\\\.\\OMNIKEY CardMan 3x21 00 00\\TestCardContNew"
[sudo] password for user:
CSP (Type:75) v3.6.5364 KC1 Release Ver:3.6.7491 OS:Linux CPU:AMD64 FastCode:READY:AVX.
CryptAcquireContext succeeded.HCRYPTPROV: 23412627
An error occurred in running the program.
/dailybuilds/CSPbuild/CSP/samples/csptest/keycopy.c:160:AcquireContext(destination)
Error number 0x8009000f (2148073487).
Object already exists.
Total:
[ErrorCode: 0x8009000f]

Не копирует, говорит, что объект уже существует.

Как же так? Объекта в целевом носителе нет, а копирование не работает ?
Может я что-то делаю не так?
Помогите разобраться, пожалуйста.
Offline al  
#2 Оставлено : 23 октября 2013 г. 17:09:39(UTC)
al

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

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

Сказал(а) «Спасибо»: 16 раз
Поблагодарили: 1 раз в 1 постах
Проверил носитель (карту). Там после удаления контейнера ничего не остается (чисто).
Такое ощущение, что имена контейнеров "кешируются" службами КриптоПро.
Если это так, то подскажите, пожалуйста, где это отключить (т.е. секция/параметр в файле конфигурации).
Offline Максим Коллегин  
#3 Оставлено : 23 октября 2013 г. 19:19:40(UTC)
Максим Коллегин

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

Группы: Администраторы
Зарегистрирован: 12.12.2007(UTC)
Сообщений: 6,408
Мужчина
Откуда: КРИПТО-ПРО

Сказал «Спасибо»: 37 раз
Поблагодарили: 722 раз в 626 постах
Вероятно последствия неудачного копирования (в контейнере неэкспортируемые ключи)
Знания в базе знаний, поддержка в центре поддержки
Offline al  
#4 Оставлено : 23 октября 2013 г. 19:44:12(UTC)
al

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

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

Сказал(а) «Спасибо»: 16 раз
Поблагодарили: 1 раз в 1 постах
Первая пара в hdimage создавалась командой:
cryptcp -creatrqst ~/testcont.req -cont "\\\\.\\hdimage\\testcont" -dn "CN=testcont" -provtype 75 -exprt -both -km

После чего я на эту пару получил сертификат:
http://www.cryptopro.ru/certsrv/, пункт "Сформировать ключи и отправить запрос на сертификат", "Дальше",
"расширенный запрос сертификата", вставил в первое окно содержимое файла ~/testcont.req
Нажал "Выдать", потом выбрал "Загрузить цепочку".
Получил файл certnew.p7b и установил его (цепочку) в контейнер:
cryptcp -instcert -provtype 75 -cont "\\\\.\\hdimage\\testcont" -km -dm certnew.p7b

После чего сгенерил вторую пару в контейнере:
csptest -keyset -provtype 75 -cont "\\\\.\\hdimage\\testcont" -machine -addkeypair

Правильно ли я понимаю, что именно в этой, второй паре есть неэкспортируемые ключи ?
Т.е. я просто забыл в конце вышеприведенной команды указать '-exportable'? да ?

Offline Максим Коллегин  
#5 Оставлено : 23 октября 2013 г. 20:03:15(UTC)
Максим Коллегин

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

Группы: Администраторы
Зарегистрирован: 12.12.2007(UTC)
Сообщений: 6,408
Мужчина
Откуда: КРИПТО-ПРО

Сказал «Спасибо»: 37 раз
Поблагодарили: 722 раз в 626 постах
Похоже, что да.
Знания в базе знаний, поддержка в центре поддержки
thanks 1 пользователь поблагодарил Максим Коллегин за этот пост.
al оставлено 23.10.2013(UTC)
Offline al  
#6 Оставлено : 23 октября 2013 г. 20:31:19(UTC)
al

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

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

Сказал(а) «Спасибо»: 16 раз
Поблагодарили: 1 раз в 1 постах
Провел чистый эксперимент:

1) Сгенерил пару, создал запрос на сертификат указав новый контейнер в hdimage:
user@debian:~$ sudo /opt/cprocsp/bin/amd64/cryptcp -creatrqst ~/tc_reg_002.req -cont "\\\\.\\hdimage\\tc_reg_002" -dn "CN=tc_reg_002" -provtype 75 -exprt -both -km
[sudo] password for user:
CryptCP 3.40 (c) "КРИПТО-ПРО", 2002-2012.
Утилита командной строки для подписи и шифрования файлов.
Запрос успешно создан и сохранен в файле.
[ReturnCode: 0]

2) Запросил с сайта цепочку, и установил её в новый контейнер в hdimage:
user@debian:~/csp$ sudo /opt/cprocsp/bin/amd64/cryptcp -instcert -provtype 75 -cont "\\\\.\\hdimage\\tc_reg_002" -km -dm ./certhdimg.p7b
CryptCP 3.40 (c) "КРИПТО-ПРО", 2002-2012.
Утилита командной строки для подписи и шифрования файлов.
Сертификат был успешно установлен.
[ReturnCode: 0]

3) Посмотрел, что в контейнере после этого:
user@debian:~/csp$ sudo /opt/cprocsp/bin/amd64/csptest -keyset -check -cont "\\\\.\\hdimage\\tc_reg_002" -machine
CSP (Type:75) v3.6.5364 KC1 Release Ver:3.6.7491 OS:Linux CPU:AMD64 FastCode:READY:AVX.
AcquireContext: OK. HCRYPTPROV: 24166291
GetProvParam(PP_NAME): Crypto-Pro GOST R 34.10-2001 KC1 CSP
Container name: "tc_reg_002"
Check header passed.
Signature key is not available.
Exchange key is available. HCRYPTKEY: 0x17de593
Check container passed.
Check sign passed.
Check import passed.
Certificate in container matches AT_KEYEXCHANGE key.
Keys in container:
exchange key
Total:
[ErrorCode: 0x00000000]

4) Сгенерил еще одну пару в этот контейнер указав, что ключи экспортируемые:
user@debian:~/csp$ sudo /opt/cprocsp/bin/amd64/csptest -keyset -provtype 75 -cont "\\\\.\\hdimage\\tc_reg_002" -machine -addkeypair -exportable
CSP (Type:75) v3.6.5364 KC1 Release Ver:3.6.7491 OS:Linux CPU:AMD64 FastCode:READY:AVX.
AcquireContext: OK. HCRYPTPROV: 29011859
GetProvParam(PP_NAME): Crypto-Pro GOST R 34.10-2001 KC1 CSP
Container name: "tc_reg_002"
Signature key is not available.
Attempting to create a signature key...
a signature key created.
Exchange key is available. HCRYPTKEY: 0x1d17dc3
Exchange keypair already exist. GenKey() aborted!
Total:
[ErrorCode: 0x00000001]
Сгенерилась (сказала, что exchange генерить не будет, т.к. он уже есть, это нормально).

5) Смотрю, что в контейнере в hdimage:
user@debian:~/csp$ sudo /opt/cprocsp/bin/amd64/csptest -keyset -check -cont "\\\\.\\hdimage\\tc_reg_002" -machine
CSP (Type:75) v3.6.5364 KC1 Release Ver:3.6.7491 OS:Linux CPU:AMD64 FastCode:READY:AVX.
AcquireContext: OK. HCRYPTPROV: 26775443
GetProvParam(PP_NAME): Crypto-Pro GOST R 34.10-2001 KC1 CSP
Container name: "tc_reg_002"
Check header passed.
Signature key is available. HCRYPTKEY: 0x1a5b593
Exchange key is available. HCRYPTKEY: 0x1a608e3
Check container passed.
Check sign passed.
Check import passed.
Check sign passed.
Check import passed.
Certificate in container matches AT_KEYEXCHANGE key.
Keys in container:
signature key
exchange key
Total:
[ErrorCode: 0x00000000]
Всё нормально - две пары.

6) Теперь смотрю, чего у меня на карте:
user@debian:~/csp$ csptest -keyset -provtype 75 -enum_containers -unique -cont "\\\\.\\OMNIKEY CardMan 3x21 00 00"
CSP (Type:75) v3.6.5364 KC1 Release Ver:3.6.7491 OS:Linux CPU:AMD64 FastCode:READY:AVX.
AcquireContext: OK. HCRYPTPROV: 33652627
TestCardCont777 |SCARD\MSkey_741ABCB2\A\AD16
ctc111_al |SCARD\MSkey_741ABCB2\C\8795
OK.
Total:
[ErrorCode: 0x00000000]

7) Копирую на карту новый контейнер из hdimage:
user@debian:~/csp$ sudo /opt/cprocsp/bin/amd64/csptest -keycopy -machine -src "\\\\.\\hdimage\\tc_reg_002" -dest "\\\\.\\OMNIKEY CardMan 3x21 00 00\\TestCardCont666"
CSP (Type:75) v3.6.5364 KC1 Release Ver:3.6.7491 OS:Linux CPU:AMD64 FastCode:READY:AVX.
CryptAcquireContext succeeded.HCRYPTPROV: 37904275
CryptAcquireContext succeeded.HCRYPTPROV: 38796531
Total:
[ErrorCode: 0x00000000]
на этот раз скопировалось без ошибок. Хорошо. Идем дальше.

8) Смотрю, что на карте получилось:
[ErrorCode: 0x8009000f]
user@debian:~/csp$ csptest -keyset -provtype 75 -enum_containers -unique -cont "\\\\.\\OMNIKEY CardMan 3x21 00 00"
CSP (Type:75) v3.6.5364 KC1 Release Ver:3.6.7491 OS:Linux CPU:AMD64 FastCode:READY:AVX.
AcquireContext: OK. HCRYPTPROV: 17194899
TestCardCont777 |SCARD\MSkey_741ABCB2\A\AD16
TestCardCont666 |SCARD\MSkey_741ABCB2\B\3C86
ctc111_al |SCARD\MSkey_741ABCB2\C\8795
OK.
Total:
[ErrorCode: 0x00000000]
Контейнер скопировался. Ок. Дальше идем.

9) Удалил с карты два контейнера (их там всего три было):
user@debian:~/csp$ csptest -keys -provtype 75 -deletek -cont "SCARD\\MSkey_741ABCB2\\A\\AD16"
CSP (Type:75) v3.6.5364 KC1 Release Ver:3.6.7491 OS:Linux CPU:AMD64 FastCode:READY:AVX.
Container SCARD\MSkey_741ABCB2\A\AD16 deleted.
Total:
[ErrorCode: 0x00000000]

user@debian:~/csp$ csptest -keys -provtype 75 -deletek -cont "SCARD\\MSkey_741ABCB2\\B\\3C86"
CSP (Type:75) v3.6.5364 KC1 Release Ver:3.6.7491 OS:Linux CPU:AMD64 FastCode:READY:AVX.
Container SCARD\MSkey_741ABCB2\B\3C86 deleted.
Total:
[ErrorCode: 0x00000000]

Хорошо.

10) Убеждаемся, что на карте всего один контейнер :
user@debian:~/csp$ csptest -keyset -provtype 75 -enum_containers -unique -cont "\\\\.\\OMNIKEY CardMan 3x21 00 00"
CSP (Type:75) v3.6.5364 KC1 Release Ver:3.6.7491 OS:Linux CPU:AMD64 FastCode:READY:AVX.
AcquireContext: OK. HCRYPTPROV: 34295699
ctc111_al |SCARD\MSkey_741ABCB2\C\8795
OK.
Total:
[ErrorCode: 0x00000000]

10) Пытаюсь снова скопировать контейнер из hdimage на карту:
user@debian:~/csp$ sudo /opt/cprocsp/bin/amd64/csptest -keycopy -machine -src "\\\\.\\hdimage\\tc_reg_002" -dest "\\\\.\\OMNIKEY CardMan 3x21 00 00\\TestCardCont666"
CSP (Type:75) v3.6.5364 KC1 Release Ver:3.6.7491 OS:Linux CPU:AMD64 FastCode:READY:AVX.
CryptAcquireContext succeeded.HCRYPTPROV: 37805971
An error occurred in running the program.
/dailybuilds/CSPbuild/CSP/samples/csptest/keycopy.c:160:AcquireContext(destination)
Error number 0x8009000f (2148073487).
Object already exists.
Total:
[ErrorCode: 0x8009000f]

Увы, не прошло...

maxdm, спасибо.
Если будут идеи, напишите, пожалуйста.
Offline al  
#7 Оставлено : 23 октября 2013 г. 21:13:31(UTC)
al

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

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

Сказал(а) «Спасибо»: 16 раз
Поблагодарили: 1 раз в 1 постах
Грешил на на нашу карту (на MSkey).
Но вот перегрузил машину и попробовал на Магистре:

1) Смотрим, что на карте:
user@debian:~$ csptest -keyset -provtype 75 -enum_containers -unique -cont "\\\\.\\OMNIKEY CardMan 3x21 00 00"
CSP (Type:75) v3.6.5364 KC1 Release Ver:3.6.7491 OS:Linux CPU:AMD64 FastCode:READY:AVX.
AcquireContext: OK. HCRYPTPROV: 31485843
ctc001_al |SCARD\MAGISTRA_C869875F\A\BB84
ctc002_al |SCARD\MAGISTRA_C869875F\B\BBC0
tc_mag_001 |SCARD\MAGISTRA_C869875F\C\FCC0
OK.
Total:
[ErrorCode: 0x00000000]
Да, есть какие-то контейнеры.

2) Копирую контейнер из hdimage (тот самый, что копировал "в предыдущем посте"):
user@debian:~$ sudo /opt/cprocsp/bin/amd64/csptest -keycopy -machine -src "\\\\.\\hdimage\\tc_reg_002" -dest "\\\\.\\OMNIKEY CardMan 3x21 00 00\\TestCardCont666"
[sudo] password for user:
CSP (Type:75) v3.6.5364 KC1 Release Ver:3.6.7491 OS:Linux CPU:AMD64 FastCode:READY:AVX.
CryptAcquireContext succeeded.HCRYPTPROV: 14581651
An error occurred in running the program.
/dailybuilds/CSPbuild/CSP/samples/csptest/keycopy.c:160:AcquireContext(destination)
Error number 0x8009000f (2148073487).
Object already exists.
Total:
[ErrorCode: 0x8009000f]

Вот. Значит, всё-таки не карта. Т.е. object exists где-то в кеше (я так думаю).

3) Если же целевому контейнеру дать имя, которое еще не известно системе, то всё ок:
user@debian:~$ sudo /opt/cprocsp/bin/amd64/csptest -keycopy -machine -src "\\\\.\\hdimage\\tc_reg_002" -dest "\\\\.\\OMNIKEY CardMan 3x21 00 00\\TestCardCont888"
CSP (Type:75) v3.6.5364 KC1 Release Ver:3.6.7491 OS:Linux CPU:AMD64 FastCode:READY:AVX.
CryptAcquireContext succeeded.HCRYPTPROV: 10456979
CryptAcquireContext succeeded.HCRYPTPROV: 11349235
Total:
[ErrorCode: 0x00000000]

4) Смотрим, скопировался ли:
user@debian:~$ csptest -keyset -provtype 75 -enum_containers -unique -cont "\\\\.\\OMNIKEY CardMan 3x21 00 00"
CSP (Type:75) v3.6.5364 KC1 Release Ver:3.6.7491 OS:Linux CPU:AMD64 FastCode:READY:AVX.
AcquireContext: OK. HCRYPTPROV: 34508691
ctc001_al |SCARD\MAGISTRA_C869875F\A\BB84
ctc002_al |SCARD\MAGISTRA_C869875F\B\BBC0
tc_mag_001 |SCARD\MAGISTRA_C869875F\C\FCC0
TestCardCont888 |SCARD\MAGISTRA_C869875F\D\D8E1
OK.
Total:
[ErrorCode: 0x00000000]

Offline Максим Коллегин  
#8 Оставлено : 23 октября 2013 г. 22:53:57(UTC)
Максим Коллегин

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

Группы: Администраторы
Зарегистрирован: 12.12.2007(UTC)
Сообщений: 6,408
Мужчина
Откуда: КРИПТО-ПРО

Сказал «Спасибо»: 37 раз
Поблагодарили: 722 раз в 626 постах
А на Windows все хорошо? Наши любители Linux в отпуске эту неделю. Посмотрите в config.ini - shortcuts удаляются?
Знания в базе знаний, поддержка в центре поддержки
thanks 1 пользователь поблагодарил Максим Коллегин за этот пост.
al оставлено 24.10.2013(UTC)
Offline al  
#9 Оставлено : 24 октября 2013 г. 8:55:18(UTC)
al

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

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

Сказал(а) «Спасибо»: 16 раз
Поблагодарили: 1 раз в 1 постах
Зашел на сайт, создал запрос на сертификат, указав, что имя контейнера задается порльзователем и ключи пометил как экспортируемые.
Сгенерил пару, установил её в контейнер, а сертификат в хранилище сертификатов. Всё ок.
Контейнер в регистри называется 'rc1111111'

1) Смотрим, что у нас в регистри:
C:\Program Files\Crypto Pro\CSP>csptest -keyset -check -cont "\\.\REGISTRY\rc1111111"
CSP (Type:75) v3.6.5359 KC1 Release Ver:3.6.6497 OS:Windows CPU:AMD64 FastCode:NoHardwareSupport.
AcquireContext: OK. HCRYPTPROV: 2823504
GetProvParam(PP_NAME): Crypto-Pro GOST R 34.10-2001 Cryptographic Service Provider
Container name: "rc1111111"

Signature key is not available.
Exchange key is available. HCRYPTKEY: 0x2ab9a0
Check key passed.
Certificate in container matches AT_KEYEXCHANGE key.

Keys in container:
exchange key
Total: SYS: 0,094 sec USR: 0,109 sec UTC: 47,437 sec
[ErrorCode: 0x00000000]
Видим, что там - контейнер, созданный при генерации пары на сайте.

2) смотрим, что на карте:
C:\Program Files\Crypto Pro\CSP>csptest -keyset -provtype 75 -enum_containers -unique -cont "\\.\OMNIKEY CardMan 3x21 0"
CSP (Type:75) v3.6.5359 KC1 Release Ver:3.6.6497 OS:Windows CPU:AMD64 FastCode:NoHardwareSupport.
AcquireContext: OK. HCRYPTPROV: 3020528
ctc111_al |SCARD\MSkey_741ABCB2\C\8795
OK.
Total: SYS: 0,078 sec USR: 0,063 sec UTC: 2,078 sec
[ErrorCode: 0x00000000]
Там один какой-то контейнер.

3) Генерить еще одну пару не будем. Сразу копируем контейнер из регистри на карту:
C:\Program Files\Crypto Pro\CSP>csptest -keycopy -provider "Crypto-Pro GOST R 34.10-2001 Cryptographic Service Provider" -provdest "Crypto-Pro GOST R 34.10-2001 Cryptographic Service Provider" -src "\\.\REGISTRY\rc1111111" -dest "\\.\OMNIKEY CardMan 3x21 0\TestCardCont999"
CSP (Type:75) v3.6.5359 KC1 Release Ver:3.6.6497 OS:Windows CPU:AMD64 FastCode:NoHardwareSupport.
CryptAcquireContext succeeded.HCRYPTPROV: 3218064
CryptAcquireContext succeeded.HCRYPTPROV: 3250080
Total: SYS: 0,172 sec USR: 0,078 sec UTC: 10,062 sec
[ErrorCode: 0x00000000]

4) Смотрим, что получилось:
C:\Program Files\Crypto Pro\CSP>csptest -keyset -provtype 75 -enum_containers -unique -cont "\\.\OMNIKEY CardMan 3x21 0"
CSP (Type:75) v3.6.5359 KC1 Release Ver:3.6.6497 OS:Windows CPU:AMD64 FastCode:NoHardwareSupport.
AcquireContext: OK. HCRYPTPROV: 2758384
TestCardCont999 |SCARD\MSkey_741ABCB2\A\6969
ctc111_al |SCARD\MSkey_741ABCB2\C\8795
OK.
Total: SYS: 0,078 sec USR: 0,016 sec UTC: 1,594 sec
[ErrorCode: 0x00000000]
Появился наш новый контейнер - TestCardCont999

5) Удаляем его:
C:\Program Files\Crypto Pro\CSP>csptest -keys -provtype 75 -deletek -cont "SCARD\MSkey_741ABCB2\A\6969"
CSP (Type:75) v3.6.5359 KC1 Release Ver:3.6.6497 OS:Windows CPU:AMD64 FastCode:NoHardwareSupport.
AcquireContext: OK. HCRYPTPROV: 0
Container SCARD\MSkey_741ABCB2\A\6969 deleted.
Total: SYS: 0,094 sec USR: 0,016 sec UTC: 6,578 sec
[ErrorCode: 0x00000000]

6) Проверяем, что удалился:
C:\Program Files\Crypto Pro\CSP>csptest -keyset -provtype 75 -enum_containers -unique -cont "\\.\OMNIKEY CardMan 3x21 0"
CSP (Type:75) v3.6.5359 KC1 Release Ver:3.6.6497 OS:Windows CPU:AMD64 FastCode:NoHardwareSupport.
AcquireContext: OK. HCRYPTPROV: 1840880
ctc111_al |SCARD\MSkey_741ABCB2\C\8795
OK.
Total: SYS: 0,203 sec USR: 0,031 sec UTC: 2,078 sec
[ErrorCode: 0x00000000]
Да, удалился.

7) Снова пытаемся копировать:
C:\Program Files\Crypto Pro\CSP>csptest -keycopy -provider "Crypto-Pro GOST R 34.10-2001 Cryptographic Service Provider" -provdest "Crypto-Pro GOST R 34.10-2001 Cryptographic Service Provider" -src "\\.\REGISTRY\rc1111111" -dest "\\.\OMNIKEY CardMan 3x21 0\TestCardCont999"
CSP (Type:75) v3.6.5359 KC1 Release Ver:3.6.6497 OS:Windows CPU:AMD64 FastCode:NoHardwareSupport.
CryptAcquireContext succeeded.HCRYPTPROV: 2366096
CryptAcquireContext succeeded.HCRYPTPROV: 2398112
Total: SYS: 0,188 sec USR: 0,156 sec UTC: 10,484 sec
[ErrorCode: 0x00000000]
Хм.., на этот раз скопировался.
Но мы не делали генерацию пары в исходном контейнере. Сделаем.

8) Генерим пару в регистри-контейнер:
C:\Program Files\Crypto Pro\CSP>csptest -keyset -provtype 75 -cont "\\.\REGISTRY\rc1111111" -addkeypair -exportable
CSP (Type:75) v3.6.5359 KC1 Release Ver:3.6.6497 OS:Windows CPU:AMD64 FastCode:NoHardwareSupport.
AcquireContext: OK. HCRYPTPROV: 2103008
GetProvParam(PP_NAME): Crypto-Pro GOST R 34.10-2001 Cryptographic Service Provider
Container name: "rc1111111"

Signature key is not available.
Attempting to create a signature key...
a signature key created.
Exchange key is available. HCRYPTKEY: 0x1fbeb0
Exchange keypair already exist. GenKey() aborted!
Total: SYS: 1,344 sec USR: 0,266 sec UTC: 18,844 sec
[ErrorCode: 0x00000001]

9) Смотрим, что получилось:
C:\Program Files\Crypto Pro\CSP>csptest -keyset -check -cont "\\.\REGISTRY\rc1111111"
CSP (Type:75) v3.6.5359 KC1 Release Ver:3.6.6497 OS:Windows CPU:AMD64 FastCode:NoHardwareSupport.
AcquireContext: OK. HCRYPTPROV: 3151184
GetProvParam(PP_NAME): Crypto-Pro GOST R 34.10-2001 Cryptographic Service Provider
Container name: "rc1111111"

Signature key is available. HCRYPTKEY: 0x2fb9a0
Exchange key is available. HCRYPTKEY: 0x2fba10
Check key passed.
Certificate in container matches AT_KEYEXCHANGE key.

Keys in container:
signature key
exchange key
Total: SYS: 0,094 sec USR: 0,094 sec UTC: 4,453 sec
[ErrorCode: 0x00000000]
Видим, что в регистри-контейнере две пары. Хорошо.

10) Копируем этот контейнер на карту (выбрав другое имя целевого контейнера - TC_NEW_1234):
C:\Program Files\Crypto Pro\CSP>csptest -keycopy -provider "Crypto-Pro GOST R 34.10-2001 Cryptographic Service Provider" -provdest "Crypto-Pro GOST R 34.10-2001 Cryptographic Service Provider" -src "\\.\REGISTRY\rc1111111" -dest "\\.\OMNIKEY CardMan 3x21 0\TC_NEW_1234"
CSP (Type:75) v3.6.5359 KC1 Release Ver:3.6.6497 OS:Windows CPU:AMD64 FastCode:NoHardwareSupport.
CryptAcquireContext succeeded.HCRYPTPROV: 2300512
CryptAcquireContext succeeded.HCRYPTPROV: 2332528
Total: SYS: 0,156 sec USR: 0,125 sec UTC: 9,375 sec
[ErrorCode: 0x00000000]

11) Смотрим, что на карте теперь:
C:\Program Files\Crypto Pro\CSP>csptest -keyset -provtype 75 -enum_containers -unique -cont "\\.\OMNIKEY CardMan 3x21 0"
CSP (Type:75) v3.6.5359 KC1 Release Ver:3.6.6497 OS:Windows CPU:AMD64 FastCode:NoHardwareSupport.
AcquireContext: OK. HCRYPTPROV: 2496240
TestCardCont999 |SCARD\MSkey_741ABCB2\A\6969
TC_NEW_1234 |SCARD\MSkey_741ABCB2\B\678F
ctc111_al |SCARD\MSkey_741ABCB2\C\8795
OK.
Total: SYS: 0,125 sec USR: 0,047 sec UTC: 1,688 sec
[ErrorCode: 0x00000000]
Всё правильно:
один старый контейнер, который мы не трогали (ctc111_al),
один, который мы добавили на предыдущих шагах (TestCardCont999),
и один новый (TC_NEW_1234).

12) Удаляем самый новый:
C:\Program Files\Crypto Pro\CSP>csptest -keys -provtype 75 -deletek -cont "SCARD\MSkey_741ABCB2\B\678F"
CSP (Type:75) v3.6.5359 KC1 Release Ver:3.6.6497 OS:Windows CPU:AMD64 FastCode:NoHardwareSupport.
AcquireContext: OK. HCRYPTPROV: 0
Container SCARD\MSkey_741ABCB2\B\678F deleted.
Total: SYS: 0,109 sec USR: 0,000 sec UTC: 6,468 sec
[ErrorCode: 0x00000000]

13) Проверяем, удалился ли:
C:\Program Files\Crypto Pro\CSP>csptest -keyset -provtype 75 -enum_containers -unique -cont "\\.\OMNIKEY CardMan 3x21 0"
CSP (Type:75) v3.6.5359 KC1 Release Ver:3.6.6497 OS:Windows CPU:AMD64 FastCode:NoHardwareSupport.
AcquireContext: OK. HCRYPTPROV: 2103024
TestCardCont999 |SCARD\MSkey_741ABCB2\A\6969
ctc111_al |SCARD\MSkey_741ABCB2\C\8795
OK.
Total: SYS: 0,063 sec USR: 0,047 sec UTC: 1,656 sec
[ErrorCode: 0x00000000]
Да, удалился.

14) Копируем его снова:
C:\Program Files\Crypto Pro\CSP>csptest -keycopy -provider "Crypto-Pro GOST R 34.10-2001 Cryptographic Service Provider" -provdest "Crypto-Pro GOST R 34.10-2001 Cryptographic Service Provider" -src "\\.\REGISTRY\rc1111111" -dest "\\.\OMNIKEY CardMan 3x21 0\TC_NEW_1234"
CSP (Type:75) v3.6.5359 KC1 Release Ver:3.6.6497 OS:Windows CPU:AMD64 FastCode:NoHardwareSupport.
CryptAcquireContext succeeded.HCRYPTPROV: 3218016
CryptAcquireContext succeeded.HCRYPTPROV: 3250048
Total: SYS: 0,188 sec USR: 0,125 sec UTC: 10,375 sec
[ErrorCode: 0x00000000]
Хм..Скопировался.

15) Проверяем, что на карте:
C:\Program Files\Crypto Pro\CSP>csptest -keyset -provtype 75 -enum_containers -unique -cont "\\.\OMNIKEY CardMan 3x21 0"
CSP (Type:75) v3.6.5359 KC1 Release Ver:3.6.6497 OS:Windows CPU:AMD64 FastCode:NoHardwareSupport.
AcquireContext: OK. HCRYPTPROV: 1644272
TestCardCont999 |SCARD\MSkey_741ABCB2\A\6969
TC_NEW_1234 |SCARD\MSkey_741ABCB2\B\678F
ctc111_al |SCARD\MSkey_741ABCB2\C\8795
OK.
Total: SYS: 0,125 sec USR: 0,047 sec UTC: 1,671 sec
[ErrorCode: 0x00000000]

Да. Контейнер скопировался.

Чудеса, под Windows всё работает.
Разница, как я понимаю, в том, что под линуксом я генерю пару и формирую запрос на сертификат в командной строке, а потом вставляю внутренности запроса в окно на сайте.
А под виндовс, я все эти операции делаю интерактивно - на сайте (понятно, что пара генерится у меня на машине, но тем не менее).
А и еще одно отличие (но не думаю, что это должно как-то влиять) - на виндовс, у меня BioДСЧ, а на линуксе - CryptoPro Source Data (/db1[db2]/kis_1)

Спасибо Вам, maxdm.
Буду ждать ответа от Linux-разработчиков.

Отредактировано пользователем 24 октября 2013 г. 9:18:55(UTC)  | Причина: команды копирования "не влезли" на экран, подправил

Offline al  
#10 Оставлено : 24 октября 2013 г. 9:03:55(UTC)
al

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

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

Сказал(а) «Спасибо»: 16 раз
Поблагодарили: 1 раз в 1 постах
А эту фразу я честно говоря не понял :
Цитата:

Посмотрите в config.ini - shortcuts удаляются?


В конфиге есть одна секция, в которой есть слово cache...может разгадка где-то здесь?
Цитата:

[Capilite\cache_settings]
# Параметры CryptRetriveObjectByURL
max_elements=100
fresh_time=3600

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