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

Уведомление

Icon
Error

2 Страницы12>
Опции
К последнему сообщению К первому непрочитанному
Offline Polox  
#1 Оставлено : 24 июня 2009 г. 12:50:04(UTC)
Polox

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

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

Коллеги,
1) использую cryptopro CSP 3.0

2) при вызове функиции CryptAcquireContext получаю диалог(см аттач) на две-три секунды, затем диалог пропадает сам-собой и проблем при работе с контекстом нет.

3) если в системе оставить только один считыватель eToken - проблем нет. Диалог не показывается

4) Если при вызове CryptAcquireContext указать CRYPT_SILENT диалог не показывается, но и получение контекста заканчивается ошибкой.

5) Пробовал задавать в качестве имени контейнера задавать FQCN имя (предварительно получив его с помощью PP_ENUMCONTAINERS и FQCN флага) + CRYPT_SILENT - тоже получаю ошибку.

6) Устройство на котором лежит контейнер - [Athena ASEDrive IIIe USB]

Скажите, можно ли сделать так, чтобы диалог не показывался. Диалог какой-то странный да и зачем он нужен ведь выбрать в нем все равно ничего нельзя. Есть только кнопки "отмена" и "сведения". К тому же появляется на пару секунд, а потом исчезает

Пользователь Polox прикрепил следующие файлы:
Диалог.PNG (10kb) загружен 564 раз(а).

У Вас нет прав для просмотра или загрузки вложений. Попробуйте зарегистрироваться.
Offline Василий Дементьев  
#2 Оставлено : 24 июня 2009 г. 21:08:27(UTC)
Василий Дементьев

Статус: Администратор

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

Поблагодарили: 6 раз в 5 постах
Да, для CSP 3.0 при чтении контейнера показывается диалог выбора носителя.
При этом, если считыватель реально подключен - то он будет найден и окно пропадёт.

Если считыватель в CSP настроен единственный - то, конечно, выбора нет и окна не будет.
Чтобы окна не было - рекомендуется использовать уникальное имя контейнера (флажок CRYPT_UNIQUE).

В CSP 3.6 окно не будет показано, если носитель реально подключен.
Offline Polox  
#3 Оставлено : 24 июня 2009 г. 22:09:35(UTC)
Polox

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

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

Я не написал к сожалению, но я как-раз и использую этот флажок. Я и с ним проверял и с CRYPT_FQCN.
Получаю имя контейнера так

HCRYPTPROV cryptProv = NULL;
BOOL res = ::CryptAcquireContext(&cryptProv, NULL, CP_GR3410_2001_PROV, PROV_GOST_2001_DH, CRYPT_VERIFYCONTEXT);

if(res)
{
DWORD len = 0;
res = CryptGetProvParam(cryptProv, PP_ENUMCONTAINERS, NULL, &len, CRYPT_FIRST | CRYPT_UNIQUE);
DWORD last_error = GetLastError();

if(last_error == ERROR_NO_MORE_ITEMS)
{
return(result); // There is no any entry
}

if(res)
{
char* container = new char[len + 1];
memset(container, 0x0, len + 1);
res = CryptGetProvParam(cryptProv, PP_ENUMCONTAINERS, (BYTE*)container, &len, CRYPT_FIRST | CRYPT_UNIQUE);

if(res)
{
result->push_back(container);

do
{
res = CryptGetProvParam(cryptProv, PP_ENUMCONTAINERS, NULL, &len, CRYPT_UNIQUE);
if(!res)
{
break;
}

char* container = new char[len + 1];

res = CryptGetProvParam(cryptProv, PP_ENUMCONTAINERS,(BYTE*)container, &len, CRYPT_UNIQUE);

if(res)
{
result->push_back(container);
}
else
{
delete[] container;
}
}while(res);

}
else
{
delete[] container;
}
}
итд

потом его использую.

Я ведь верно понял, что под использованием флажка CRYPT_UNIQUE вы имели ввиду его использование совместно с CryptGetProvParam(cryptProv, PP_ENUMCONTAINERS, NULL, &len, CRYPT_UNIQUE); или есть еще место где его нужно поставить ?


Offline Polox  
#4 Оставлено : 25 июня 2009 г. 18:48:48(UTC)
Polox

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

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

Висилий(Дементьев),
простите за назойливость, но куда можно капать далее ? Я использую имя полученное с помощью флага CRYPT_UNIQUE. Мы не могли бы помочь(если это вообще можно сделать для 3.0) ?
Offline Василий Дементьев  
#5 Оставлено : 26 июня 2009 г. 20:18:00(UTC)
Василий Дементьев

Статус: Администратор

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

Поблагодарили: 6 раз в 5 постах
А можете привести, что возвращается в качестве имён контейнеров?
Offline Polox  
#6 Оставлено : 26 июня 2009 г. 20:28:49(UTC)
Polox

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

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

Конечно,
вот такое например

SCARD\ETOKEN_PRO32_2533c7011a19\CC00\BD9A

или такое

SCARD\ETOKEN_PRO32_268979183006\CC00\2EF8
Offline Василий Дементьев  
#7 Оставлено : 26 июня 2009 г. 20:37:17(UTC)
Василий Дементьев

Статус: Администратор

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

Поблагодарили: 6 раз в 5 постах
Ясно. Тогда окошка не будет, если в CSP настроен только один считыватель смарткарт.
Если таких больше (например. кроме упоминаемого вами Athena имеется ещё "AKS ifdh 0" или другие), то можно использовать флажок CRYPT_FQCN - тогда будет добавлен префикс конкретного считывателя.
Offline Polox  
#8 Оставлено : 26 июня 2009 г. 21:57:01(UTC)
Polox

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

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

Василий,

я в первом посте писал : "5) Пробовал задавать в качестве имени контейнера задавать FQCN имя (предварительно получив его с помощью PP_ENUMCONTAINERS и FQCN флага) + CRYPT_SILENT - тоже получаю ошибку." (c).

Без CRYPT_SILENT и с FQCN именем я по-моему не пробовал получать контекст, но с CRYPT_SILENT флагом и FQCN именем я получаю ошибку при получении контекста.
Могу попробовать сделать тест с FQCN именем и без SILENT флага. Когда будут готовы результаты напишу что получилось.


Скажите,
а для чего понадобилось делать три разных типа для имен контейнеров в cryptopro? Я имею ввиду CRYPT_UNIQUE,CRYPT_FQCN и без этих флагов.
Если скажем мое приложение должно быть абстрагировано от физической природы считывателя какой флаг я должен использовать при этом ?
Offline Polox  
#9 Оставлено : 29 июня 2009 г. 15:37:47(UTC)
Polox

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

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

Василий,
я попробовал получить имя контейнера с флагом CRYPT_FQCN. Получается такое имя
\\.\Athena ASEDrive IIIe USB 0\RaUser-5a8178bd-d0fe-4e0b-a6f7-9435582f5c75
или например такое
\\.\Athena ASEDrive IIIe USB 0\RaUser-9dca2db9-945b-41ea-be58-4d9cd91434fe

Далее по этому имени я пытаюсь получить контекст провайдера вот так

HCRYPTPROV cryptProv = NULL;

BOOL res = ::CryptAcquireContext(&cryptProv, container_name,
CP_GR3410_2001_PROV, PROV_GOST_2001_DH, 0);

и получаю ошибку.

Итого имеет:
1) при получении контекста по имени контейнера, полученного с флагом CRYPT_UNIQUE получаю диалог на пару секунд если CRYPT_SILENT не указан.
2) при получении контекста по имени контейнера, полученного с флагом CRYPT_UNIQUE получаю ошибку(CryptAcquireContext возвращает false) если CRYPT_SILENT указан.
3) при получении контекста по имени контейнера, полученного с флагом CRYPT_FQCN получаю ошибку(CryptAcquireContext возвращает false) в любом случае(и в случае если CRYPT_SILENT указан и в случае если нет).

Что еще посоветуете ?
Offline Василий Дементьев  
#10 Оставлено : 29 июня 2009 г. 17:07:34(UTC)
Василий Дементьев

Статус: Администратор

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

Поблагодарили: 6 раз в 5 постах
Ага, вот оно в чём дело.
Суммарная длина FQCN-имени больше 64 байт.

А в CSP 3.0 допускается не более 64 байт (просто стоит проверка в ф-и CryptAcquireContext).

Варианты:

1) сократить имя контейнера
2) сократить имя считывателя

Проще сделать второе, т.к. контейнер, по-видимому, делается с автоматически сделанным случайным именем.

Для этого нужно переименовать два раздела реестра:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Cryptography\Calais\Readers\Athena ASEDrive IIIe USB 0
и аналогичный раздел в
HKEY_LOCAL_MACHINE\SOFTWARE\Crypto Pro\Cryptography\CurrentVersion\KeyDevices\PCSC
В качестве имени раздела можете оставить просто Athena


Кстати, в CSP 3.6 такого ограничения нет.

Отредактировано пользователем 29 июня 2009 г. 17:10:29(UTC)  | Причина: Не указана

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