19.03.2002 16:26:15Нужен совет по использованию CSP совместно ... Ответов: 25
kazbich
Нужен совет по использованию CSP совместно с Клиент-Банком от R-Style.
Как лучше и с помощью чего осуществлять регистрацию и хранение ключей в банке и у клиентов?
 
Ответы:
20.03.2002 10:20:34kure
Трудно дать такой совет.
Дело в том, что CSP используется в варианте программной библиотеки и используется через интерфейс CryptoAPI.
А вот как это встроено в R-Style, как происходит формирование ключей, регистрация сертификатов и т.д. на это может ответить R-Style.

20.03.2002 12:54:09kazbich
R-Style, говорит, что в своем плагине осуществляет только подписание/проверка подписи, шифрование/дешифрация, получение списка сертификатов криптосистемы.
Используемое плагином системное хранилище сертификатов текущего пользователя (в Microsoft
формате задания наименования хранилища сертификатов. Предопределенные системные хранилища: MY, Root, Trust и CA)

Так хотелось бы знать как организовать у пользователя на Win9x какое либо из этих хранилищь и какое лучше? Где взять инфу по ним (желательно на русском языке)?
А так же что лучше использовать в банке на сервере для хранения и регистрации ключей?
20.03.2002 13:10:13kure
>>>> Так хотелось бы знать как организовать у пользователя на Win9x какое либо из этих хранилищь и какое лучше? Где взять инфу по ним (желательно на русском языке)?

Не нужно ничего организовывать. Все уже сделано Микрософтом. Названные справочники сертификатов существуют на каждом компьютере.
Описание интерфейса CryptoAPI и в частности справочников приведено в MSDN в разделе Platform SDK\Security\Cryptography\CryproAPI.

>>>> А так же что лучше использовать в банке на сервере для хранения и регистрации ключей?

Вопрос скорее всего не корректный.
Разве R-Style требует от вас про внедрении системы предусмотреть разработку службы для хранения ключей (вернее сертификатов) пользуемых в системе?

Вопрос может стоять так: как в системе генераться ключи пользователей (ими самими, централизованно) и как пользователям доставляются сертификаты (открытые ключи).


20.03.2002 14:12:58kazbich
Тогда сформулируем вопрос так: Если я хочу ключи генерить у себя в банке и выдавать сертификаты пользователям на дискете, что мне для этого нужно использовать и как пользователь будет использовать выданные сертификаты у себя на машине (что он должен сделать что бы система знала, где находятся сертификаты)?
20.03.2002 14:20:34kure
Самый простой вариант и как мне кажется (а больше информации я не имею) использовать стандартный центр сертификации Микрософт, входящий в windows 2000 server.
Но R-Style могла эти функции (выпуск сертификатов) реализовать у себя через CryptoAPI.
Потом дискета приходит к пользователю, он нажимает кнопку установить сертификат и работает.
20.03.2002 14:24:33kazbich
Глупый вопрос: а где у клиента кнопка? :)
20.03.2002 16:30:52kure
Через панель управления (Пуск, Панель управления) КриптоПро во второй закладке нажмите кнопку "Сертификаты на носителе". Выберите это имя ключа (контейнера) и при просмотре сертификата внизу "Установить"
27.03.2002 12:59:28kazbich
Не подскажите как в центре сертификатов в win2k генерировать новые сертификаты?
27.03.2002 13:05:26kure
Информация от Микрософт. Что такое службы сертификации: http://www.microsoft.com/technet/treeview/default.asp?url=/TechNet/prodtechnol/windows2000serv/deploy/2000cert.asp

Как генерить ключи и сертификаты подробно описано во встроенном help консоли центра сертификации w2k.
27.03.2002 13:47:50kazbich
Ответте хотя бы на такой вопрос:
Как делается запрос на создание сертификата?
с помощью certreq.exe?
если да, то какой формат файла для запроса?
27.03.2002 14:40:02kure
certreq.exe не используется для создания запроса на сертификат. Он используется только для передачи запроса на центр сертификации (certreq /?).

Не совсем понятно, какую задачу нужно решить.
Делать ключи пользователй через интерфейс центра?
Так при установки центра устанавливается веб интерфейс и он доступен через http (например, www.cryptopro.ru/certsrv это стандарный микрософтовый центр, немножко с измененными словами).

Вообще для генерации ключей и запросов на сертификат обычно используется COM интерфейс xenroll (его пользуют все центры, включая Verisign). Можно конечно запрос делать и функциями CryptoAPI.
Формат запроса определен рекомендациями RSA PKCS#10.
27.03.2002 14:49:31kazbich
Задача у нас в общем такая:
в банке надо организовать службу хранения и выдачи сертификатов, которая будет установлена на одной машине и с интернетом общаться не будет.
Клиентам надо выдавать сертификаты, с помощь которых они будут общаться по системе Клиент-Банк от R-Style с банком.
Поэтому ключи надо делать через интерфейс центра (желательно) и писать прогу для этого не хотелось бы (со сроками внедрения у нас напряженка)
27.03.2002 14:55:30kure
Ну так совсем просто.
Поставили центр сертификации на сервере w2k. К сети не подключили.
Через web интерфейс с того же самого рабочего места (центра) (например: http://localhost/certsrv) админ. заходит и делает ключ и сертификат пользователя.
Сертификат автоматически записывается на ключевой носитель пользователя (ну как на нашем тестовом сервера) и ему передается.

Пользователя приход на рабочее место и через панель управления КриптоПро CSP, устанавливает сертификат в справочник.
27.03.2002 16:18:45kazbich
Спасибо большое за советы.
Но по ходу дела возникают еще вопросы.

>Пользователя приход на рабочее место и через панель управления КриптоПро CSP, устанавливает сертификат в справочник

Разве на ключевой дискете находится открытый ключ?
Я пробую установить сертификат с дискеты, но Крипто Про ругается и говорит, что в контейнере отсутствует сертификат ключа шифрования
27.03.2002 18:02:28kure
На ключевой дискете (прямо в ключе) может содержаться сертификат.
CryptoAPI содержит вункию, которая это делает. А интерфейс центра сертификации в некоторых режимах работы ее вызывает.
Если вы получаете сертификат с нашего тестового центра, то по ссылке "установить сертификат" он записывается в справочник и в ключ.
28.03.2002 8:46:26kazbich
А в каких режимах центр записывает сертификат на дискету?
я так и не смог добится от него этого.
Как это сделать?
28.03.2002 9:48:27kure
Только в одном режиме.
Когда вы делается запрос со страницы
/certsrv/certrqma.asp
После этого попадаете на /certsrv/certfnsh.asp
и по ссылке "Установить сертификат" выполняется скрипт, в котором присутствуют команды:
XEnroll.DeleteRequestCert=FALSE
XEnroll.AcceptPKCS7(sPKCS7)

Во время выполнения AcceptPKCS7 одновременно происходит запись сертификата в ключ (задается это флагом WriteCertToCSP, который по default TRUE). Но это может произойти только при условии, что запрос на сертификат делался на той же машине, и если нужно будет повторно установить сертификат, запрос не должен быть удален.
XEnroll.DeleteRequestCert=FALSE

Вот что пишут в MSDN:
The WriteCertToCSP property specifies whether a certificate should be written to the cryptographic service provider (CSP). This is typically used with smart cards, where the certificate is written to the smart card in addition to being written to the "MY" store.

The default value is TRUE, meaning that the Certificate Enrollment Control will try to write the certificate to the CSP; but will not fail unless a hardware token error is encountered. (If this value is TRUE, but no smart card or other hardware-dependent CSP is installed, then hardware token errors will be ignored).

To explicitly force that the Certificate Enrollment Control not attempt to write to the CSP, set this value to FALSE.


28.03.2002 10:06:46kazbich
Большое спасибо. Сертификат установил.
Но у меня еще один вопрос:
Ведь нужен еще открытый ключ банка,
как быть с ним?
или он уже имеется в этом сертификате?
29.03.2002 13:12:09kure
Конечно нет.
Это только личный сертификат пользователя.
Но я не могу сказать, как передается сертификат банка.
Может есть кнопка в ПО "Установить".
01.04.2002 9:17:44kazbich
А в сертификате который устанавливается у пользователя храниться только открытый ключ?

Как вы смотрите на вариант (хоть он явно и не правильный):
приходить к пользователю с копией ключевой дискеты банка и устанавливать пользователю сертификат?

Правильного варианта у вас никто не знает?
01.04.2002 9:53:15kure
Ключевую дискету банка нужно держать в банке, желательно в сейфе в опечатанном виде.
И ходить с ее копией никуда не нужно (да и нельзя).
Нужно просто взять сертификат банка и передать его каждому пользователя.
01.04.2002 10:00:08kazbich
возникает вполне нормальный вопрос: КАК?
01.04.2002 10:58:44kure
1. Просто положить файл сертификата, имеющий расширение (.cer) на дикету (диск) и нажать на него мышкой.
После этого запускается стандартный микрософтовский манагер по установке сертификатов.
2. Запустить скрипт с параметром в виде имени файла сертификата. Имя справочника в скрипте определяется требованиями прикладного ПО, т.е. в каком справочнике будет искаться сертификат банка.

Option Explicit
Const ForReading = 1, ForWriting = 2


Dim xenroll
Dim PKCS7, ret

Set xenroll = CreateObject("CEnroll.CEnroll.1")


LoadFile Wscript.Arguments(0), PKCS7


xenroll.DeleteRequestCert = FALSE
xenroll.WriteCertToCSP = TRUE

Wscript.Echo xenroll.MyStoreName
Wscript.Echo xenroll.MyStoreFlags
'Wscript.Echo xenroll.MyStoreType

Wscript.Echo PKCS7

'xenroll.MyStoreName = "ROOT"
xenroll.CAStoreName = "CA"


xenroll.InstallPKCS7 (PKCS7)

If 0=Err.Number Then
Wscript.Echo "Сертификат OK"
Else
Wscript.Echo "Сертификат не мог быть инсталлирован"
End If



Sub LoadFile (FileName, Buffer)
Dim fso
Set fso = CreateObject("Scripting.FileSystemObject")

If Not fso.FileExists(FileName) Then
MsgBox "Error: " & FileName & " file not found."
Exit Sub
End If

Dim ts
Set ts = fso.OpenTextFile(FileName, ForReading)
Buffer = ts.ReadAll
End Sub

02.04.2002 15:31:50kazbich
А неподскажите еще, как посмотреть под 98 виндами какие сертификаты установлены на данном компьютере?
02.04.2002 16:37:55kure
Смотрится через Internet Explorer.
По "Tools" (Свойства) "Internet Options" (Опции) закладка "Content" (Содержание) кнопка "Certificates".