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

Уведомление

Icon
Error

2 Страницы12>
Опции
К последнему сообщению К первому непрочитанному
Offline arto  
#1 Оставлено : 12 ноября 2010 г. 13:01:54(UTC)
arto

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

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

Добрый день!

Каким образом формируются psk строки в UserSpace примере для ipsec?
(example.cpp, строка 116 и далее)

PSK1 и PSK2 сгенерить сумел, но d_PSKir не понял как, в результате вывод example:
...
Initiator Site PSK will live 8 months
Responder Site PSK will live 8 months
getPSKnotAfterFn:228. Error in PSK: SiteID 11783 SiteNetID Net73 PSK QDKGH0V30V8EHEVFAC4MGEKXYG572DPACK37A2D6KE7BFQQD8DHET0C7
main: fail at 238, rc=0x5

Offline Татьяна  
#2 Оставлено : 12 ноября 2010 г. 19:40:39(UTC)
Татьяна

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

Группы: Участники
Зарегистрирован: 06.02.2008(UTC)
Сообщений: 1,491
Откуда: Крипто-Про

Поблагодарили: 40 раз в 37 постах
в коде примера так:

Код:
static const char PSK1[] = "T02Z3KRLDV5UZ1Z715PVZF7M806K";
static const char PSK2[] = "DB16AAH2KC9L0CQZVPPCLFL6NYLX";
static const char d_PSKir[]="UYWQ1399AGLL48QDE5TCEX1CKLWQ9DCGZ49LCQ0W985BZ874XAK5PMKQ";
static const char fp1[] = "11783";
static const char fp2[] = "01:23:45:67:89:01:2345678901234567890123456780";
static const char NetID[] = "Net73";


fp1 - ID-узла-сети-1
ID-сети - NetID


вообще,
PSK1 генерируется командой
genpsk "что-угодоно" ID-сети 6m ID-узла-сети1

PSK2 генерируется командой
genpsk "что-угодоно" ID-сети 6m ID-узла-сети2

d_PSKir -- это PSK парной связи и генерируется командой

genpsk "что-угодоно" ID-сети 6m ID-узла-сети1 ID-узла-сети2
Татьяна
ООО Крипто-Про
Offline arto  
#3 Оставлено : 12 ноября 2010 г. 19:58:54(UTC)
arto

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

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

Все равно:
# genpsk "NodeA" Net73 6m NodeA
...
# genpsk "NodeB" Net73 6m NodeB
...
# genpsk "NodeA/NodeB" Net73 6m NodeA NodeB
...
в первых двух случаях конкатенировал 2 части ключей, во втором случае -- 4 части (правильно-ли это?)

результат:
...
Initiator Site PSK will live 5 months
Responder Site PSK will live 5 months
getPSKnotAfterFn:228. Error in PSK: SiteID NodeA SiteNetID Net73 PSK B3T0HY1QT6D1HTN1BNL8PM9A2KRTBPMYXY8VFHWXE4M8MWBR8KLQFF64
main: fail at 241, rc=0x5

Offline Татьяна  
#4 Оставлено : 12 ноября 2010 г. 20:32:06(UTC)
Татьяна

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

Группы: Участники
Зарегистрирован: 06.02.2008(UTC)
Сообщений: 1,491
Откуда: Крипто-Про

Поблагодарили: 40 раз в 37 постах
PSK выводится о двух частях
PSK парной связи выводится как 2 PSK о двух частях каждый
с одним PSK всё просто -- часть1+часть2 == PSK
с PSK парной связи чуть мудрее
на экран выводятся часть1-PSK1 часть1-PSK2 часть2-PSK1 часть2-PSK2
Пример
genpsk Moscow Net73 3m 11783 23447
UTC Fri Nov 12 14:19:23 2010

Moscow. Net73. Number of stations 3.
Stations: 11783 23447


это заголовок
потом
Part 0. Valid for (months) 3.

Moscow UTC Fri Nov 12 14:19:23 2010
11783 part 0 valid for (months) 3
D5ALM795NCVA4P
....
Moscow UTC Fri Nov 12 14:19:23 2010
23447 part 0 valid for (months) 3
ETWD2RQUGNKD9P
...



genpsk
UTC Fri Nov 12 14:19:23 2010

Moscow. Net73. Number of stations 3.
Stations: 11783 23447


Part 1. Valid for (months) 3.

Moscow UTC Fri Nov 12 14:19:23 2010
11783 part 1 valid for (months) 3
1Q14RRVPM6QCM1


Moscow UTC Fri Nov 12 14:19:23 2010
23447 part 1 valid for (months) 3
DLKZ2CYH3GXXV1


==> правильная последовательность для объединения частей для 11783 + 23447 такая:

D5ALM795NCVA4P1Q14RRVPM6QCM1 + ETWD2RQUGNKD9PDLKZ2CYH3GXXV1
Татьяна
ООО Крипто-Про
Offline arto  
#5 Оставлено : 12 ноября 2010 г. 21:09:35(UTC)
arto

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

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

большое спасибо, теперь понятна кобинация :)

Другая проблема возникла, при генерации и подписывания ключей:
CryptoPro CSP: Set password on produced container "IPsecB".
# sudo cryptcp -creatcert -CA 'http://www.cryptopro.ru/certsrv' -dn CN=IPsecB -certusage 1.3.6.1.5.5.8.2.2 -provtype 75 -both -cont '\\.\HDIMAGE\IPsecB' -exprt -ku
CryptCP 3.32 (Debug version) (c) "Crypto-Pro", 2002-2009.
Command prompt Utility for data protection.
Параметры: -creatcert -CA http://www.cryptopro.ru/certsrv -dn CN=IPsecB -certusage 1.3.6.1.5.5.8.2.2 -provtype
X11 connection rejected because of wrong authentication.
X11 connection rejected because of wrong authentication.
X11 connection rejected because of wrong authentication.
X11 connection rejected because of wrong authentication.
CryptoPro CSP: Set password on produced container "IPsecB".
Password:
Retype password:
Sending request to CA...
* About to connect() to www.cryptopro.ru port 80 (#0)
* Trying 195.133.54.251... * connected
* Connected to www.cryptopro.ru (195.133.54.251) port 80 (#0)
> POST /certsrv/certfnsh.asp HTTP/1.1
User-Agent: UrlRetriever {Mozilla MSIE 6 Win 2000}
Host: www.cryptopro.ru
Accept: */*
Content-Length: 1144
Content-Type: application/x-www-form-urlencoded
Expect: 100-continue

* Done waiting for 100-continue
< HTTP/1.1 100 Continue
< Via: 1.1 CRYPTO
* Empty reply from server
* Connection #0 to host www.cryptopro.ru left intact
* Server returned nothing (no headers, no data)
* Closing connection #0
Error: Incorrect response from the server. (0x200002BE)
[ErrorCode: 0x200002be]

#

Для чего cryptcp понадобился доступ к X11? Я, вроде, не ставил графического интерфейса:

# rpm -qa | grep lsb-cprocsp
lsb-cprocsp-base-3.6.1-4.noarch
lsb-cprocsp-devel-3.6.1-4.noarch
lsb-cprocsp-3.6.1-4.i486
lsb-cprocsp-ipsec-ike-3.6.1-4.i486
lsb-cprocsp-ipsec-devel-3.6.1-4.noarch
lsb-cprocsp-rdr-3.6.1-4.i486
lsb-cprocsp-drv-devel-3.6.1-4.noarch
lsb-cprocsp-capilite-3.6.1-4.i486
lsb-cprocsp-ipsec-genpsk-3.6.1-4.i486
#
Offline Татьяна  
#6 Оставлено : 15 ноября 2010 г. 13:18:46(UTC)
Татьяна

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

Группы: Участники
Зарегистрирован: 06.02.2008(UTC)
Сообщений: 1,491
Откуда: Крипто-Про

Поблагодарили: 40 раз в 37 постах
Конечная ошибка не связана с X11; это можно проверить, например создав тестовые ключи командой

csptest -keyset -newkeyset -cont имя_контейнера


Дело либо в проблеме подключения к удостоверяющему центру, либо в отсутствии библиотеки libcurl.so
Необходимо, чтобы в /etc/opt/cprocsp/config.ini в секции apppath была корректная ссылка на libcurl , проверьте это.
Татьяна
ООО Крипто-Про
Offline arto  
#7 Оставлено : 15 ноября 2010 г. 15:56:26(UTC)
arto

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

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

libcurl стоит, и в config.ini описан правильно.
в принципе, из лога видно, это на http://www.cryptopro.ru/certsrv/certfnsh.asp посылается POST-запрос с сертификатом,
обратно приходит 100 Continue, и уже ответ, скорее всего неверно обрабатывается/интерпретируется.
Кем -- непонятно. Библиотека curl в системе:

# grep libcurl /etc/opt/cprocsp/config.ini
"libcurl.so" = "/usr/lib/libcurl.so"
# ll /usr/lib/libcurl.so*
lrwxrwxrwx. 1 root root 12 Nov 11 20:00 /usr/lib/libcurl.so -> libcurl.so.4*
lrwxrwxrwx. 1 root root 16 Nov 11 17:48 /usr/lib/libcurl.so.4 -> libcurl.so.4.2.0*
-rwxr-xr-x. 1 root root 396376 Sep 7 23:51 /usr/lib/libcurl.so.4.2.0*
# rpm -qf /usr/lib/libcurl.so.4.2.0
libcurl-7.21.0-5.fc14.i686
Offline Татьяна  
#8 Оставлено : 15 ноября 2010 г. 18:02:34(UTC)
Татьяна

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

Группы: Участники
Зарегистрирован: 06.02.2008(UTC)
Сообщений: 1,491
Откуда: Крипто-Про

Поблагодарили: 40 раз в 37 постах
Как вариант, можно создать на машине с линуксом запрос на сертификат ( cryptcp -creatrqst ), затем запрос обработать на нашем центре: http://www.cryptopro.ru/certsrv/certrqxt.asp , затем установить полученный сертификат командой cryptcp -instcert .

Либо я могу прислать Вам новую версию CSP, в которой будет более подробная информация об ошибке, чем "Incorrect response from the server. ".

Если действие разовое, то первый способ кажется быстрее:)
Татьяна
ООО Крипто-Про
Offline arto  
#9 Оставлено : 15 ноября 2010 г. 19:30:54(UTC)
arto

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

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

Спасибо, отработало.

Теперь такой вопрос: я пишу интерфейс для работы с ipsec из языка C (у вас там смесь c/c++), и случился затык с созданием vblob'а:

time_t psk_not_after (char *psk,char *netid,char *hostid)
{
capi_result ret;
time_t not_after = 0;

const vblob psk_blob (DT_PSK, psk, 28); // strlen (psk));

if (psk_blob.is_valid () == 0 ||
psk_blob.is_usable () == 0 ||
psk_blob.dtype () != DT_PSK)
printf ("psk is invalid\n");

printf ("PSK is valid: %d\n",psk_blob.is_valid ());
printf ("PSK is usable: %d\n",psk_blob.is_usable ());
printf ("PSK is dtype: %d\n",psk_blob.dtype ());
printf ("PSK is size: %d\n",psk_blob.size ());

...

на вполен валидный psk выдает:

psk is invalid
PSK is valid: 0
PSK is usable: 0
PSK is dtype: 1
PSK is size: 0

в чем может быть причина?
в связке c/c++ ?
или я забыл сделать где-то инициализацию какую? (cpike_init_gost вызван и проинициализирован)

команда компиляции:

g++ -pipe -fno-exceptions -fno-rtti -c -Wall -ggdb3 -Wall -I. -I/opt/cprocsp/ipsec/include -I/opt/cprocsp/include/cpcsp -I/opt/cprocsp/include -DUNIX -DLINUX -DSIZEOF_VOID_P=4 -o initialize.o initialize.cpp
Offline Татьяна  
#10 Оставлено : 15 ноября 2010 г. 20:21:51(UTC)
Татьяна

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

Группы: Участники
Зарегистрирован: 06.02.2008(UTC)
Сообщений: 1,491
Откуда: Крипто-Про

Поблагодарили: 40 раз в 37 постах
arto написал:


const vblob psk_blob (DT_PSK, psk, 28); // strlen (psk));



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