| ||||
| ||||
Нужен совет по использованию CSP совместно с Клиент-Банком от R-Style. Как лучше и с помощью чего осуществлять регистрацию и хранение ключей в банке и у клиентов? | ||||
Ответы: | ||||
| ||||
Трудно дать такой совет. Дело в том, что CSP используется в варианте программной библиотеки и используется через интерфейс CryptoAPI. А вот как это встроено в R-Style, как происходит формирование ключей, регистрация сертификатов и т.д. на это может ответить R-Style. | ||||
| ||||
R-Style, говорит, что в своем плагине осуществляет только подписание/проверка подписи, шифрование/дешифрация, получение списка сертификатов криптосистемы. Используемое плагином системное хранилище сертификатов текущего пользователя (в Microsoft формате задания наименования хранилища сертификатов. Предопределенные системные хранилища: MY, Root, Trust и CA) Так хотелось бы знать как организовать у пользователя на Win9x какое либо из этих хранилищь и какое лучше? Где взять инфу по ним (желательно на русском языке)? А так же что лучше использовать в банке на сервере для хранения и регистрации ключей? | ||||
| ||||
>>>> Так хотелось бы знать как организовать у пользователя на Win9x какое либо из этих хранилищь и какое лучше? Где взять инфу по ним (желательно на русском языке)? Не нужно ничего организовывать. Все уже сделано Микрософтом. Названные справочники сертификатов существуют на каждом компьютере. Описание интерфейса CryptoAPI и в частности справочников приведено в MSDN в разделе Platform SDK\Security\Cryptography\CryproAPI. >>>> А так же что лучше использовать в банке на сервере для хранения и регистрации ключей? Вопрос скорее всего не корректный. Разве R-Style требует от вас про внедрении системы предусмотреть разработку службы для хранения ключей (вернее сертификатов) пользуемых в системе? Вопрос может стоять так: как в системе генераться ключи пользователей (ими самими, централизованно) и как пользователям доставляются сертификаты (открытые ключи). | ||||
| ||||
Тогда сформулируем вопрос так: Если я хочу ключи генерить у себя в банке и выдавать сертификаты пользователям на дискете, что мне для этого нужно использовать и как пользователь будет использовать выданные сертификаты у себя на машине (что он должен сделать что бы система знала, где находятся сертификаты)? | ||||
| ||||
Самый простой вариант и как мне кажется (а больше информации я не имею) использовать стандартный центр сертификации Микрософт, входящий в windows 2000 server. Но R-Style могла эти функции (выпуск сертификатов) реализовать у себя через CryptoAPI. Потом дискета приходит к пользователю, он нажимает кнопку установить сертификат и работает. | ||||
| ||||
Глупый вопрос: а где у клиента кнопка? :) | ||||
| ||||
Через панель управления (Пуск, Панель управления) КриптоПро во второй закладке нажмите кнопку "Сертификаты на носителе". Выберите это имя ключа (контейнера) и при просмотре сертификата внизу "Установить" | ||||
| ||||
Не подскажите как в центре сертификатов в win2k генерировать новые сертификаты? | ||||
| ||||
Информация от Микрософт. Что такое службы сертификации: http://www.microsoft.com/technet/treeview/default.asp?url=/TechNet/prodtechnol/windows2000serv/deploy/2000cert.asp Как генерить ключи и сертификаты подробно описано во встроенном help консоли центра сертификации w2k. | ||||
| ||||
Ответте хотя бы на такой вопрос: Как делается запрос на создание сертификата? с помощью certreq.exe? если да, то какой формат файла для запроса? | ||||
| ||||
certreq.exe не используется для создания запроса на сертификат. Он используется только для передачи запроса на центр сертификации (certreq /?). Не совсем понятно, какую задачу нужно решить. Делать ключи пользователй через интерфейс центра? Так при установки центра устанавливается веб интерфейс и он доступен через http (например, www.cryptopro.ru/certsrv это стандарный микрософтовый центр, немножко с измененными словами). Вообще для генерации ключей и запросов на сертификат обычно используется COM интерфейс xenroll (его пользуют все центры, включая Verisign). Можно конечно запрос делать и функциями CryptoAPI. Формат запроса определен рекомендациями RSA PKCS#10. | ||||
| ||||
Задача у нас в общем такая: в банке надо организовать службу хранения и выдачи сертификатов, которая будет установлена на одной машине и с интернетом общаться не будет. Клиентам надо выдавать сертификаты, с помощь которых они будут общаться по системе Клиент-Банк от R-Style с банком. Поэтому ключи надо делать через интерфейс центра (желательно) и писать прогу для этого не хотелось бы (со сроками внедрения у нас напряженка) | ||||
| ||||
Ну так совсем просто. Поставили центр сертификации на сервере w2k. К сети не подключили. Через web интерфейс с того же самого рабочего места (центра) (например: http://localhost/certsrv) админ. заходит и делает ключ и сертификат пользователя. Сертификат автоматически записывается на ключевой носитель пользователя (ну как на нашем тестовом сервера) и ему передается. Пользователя приход на рабочее место и через панель управления КриптоПро CSP, устанавливает сертификат в справочник. | ||||
| ||||
Спасибо большое за советы. Но по ходу дела возникают еще вопросы. >Пользователя приход на рабочее место и через панель управления КриптоПро CSP, устанавливает сертификат в справочник Разве на ключевой дискете находится открытый ключ? Я пробую установить сертификат с дискеты, но Крипто Про ругается и говорит, что в контейнере отсутствует сертификат ключа шифрования | ||||
| ||||
На ключевой дискете (прямо в ключе) может содержаться сертификат. CryptoAPI содержит вункию, которая это делает. А интерфейс центра сертификации в некоторых режимах работы ее вызывает. Если вы получаете сертификат с нашего тестового центра, то по ссылке "установить сертификат" он записывается в справочник и в ключ. | ||||
| ||||
А в каких режимах центр записывает сертификат на дискету? я так и не смог добится от него этого. Как это сделать? | ||||
| ||||
Только в одном режиме. Когда вы делается запрос со страницы /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. | ||||
| ||||
Большое спасибо. Сертификат установил. Но у меня еще один вопрос: Ведь нужен еще открытый ключ банка, как быть с ним? или он уже имеется в этом сертификате? | ||||
| ||||
Конечно нет. Это только личный сертификат пользователя. Но я не могу сказать, как передается сертификат банка. Может есть кнопка в ПО "Установить". | ||||
| ||||
А в сертификате который устанавливается у пользователя храниться только открытый ключ? Как вы смотрите на вариант (хоть он явно и не правильный): приходить к пользователю с копией ключевой дискеты банка и устанавливать пользователю сертификат? Правильного варианта у вас никто не знает? | ||||
| ||||
Ключевую дискету банка нужно держать в банке, желательно в сейфе в опечатанном виде. И ходить с ее копией никуда не нужно (да и нельзя). Нужно просто взять сертификат банка и передать его каждому пользователя. | ||||
| ||||
возникает вполне нормальный вопрос: КАК? | ||||
| ||||
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 | ||||
| ||||
А неподскажите еще, как посмотреть под 98 виндами какие сертификаты установлены на данном компьютере? | ||||
| ||||
Смотрится через Internet Explorer. По "Tools" (Свойства) "Internet Options" (Опции) закладка "Content" (Содержание) кнопка "Certificates". | ||||