Статус: Активный участник
Группы: Участники
Зарегистрирован: 24.02.2011(UTC) Сообщений: 74 Откуда: Санкт-Петербург
|
Добрый день! В организации используются разные приложения, в которых используются сертификаты, хотелось бы чтобы сертификаты, выданные для одного приложения не могли быть использованы другом. Насколько я понял эту задачу можно решить с использованием различных OID. То есть выпускаем сертификат с OID 1.2.643.3.3.1.1.1.46 и предполагаем, что он будет использован в приложении 1, а сертификат с OID 1.2.643.3.3.1.1.1.47 в приложении 2. Если мы попытаемся сертификаты использовать наоборот, то не проверка ЭЦП, например, не даст положительный результат. Поправьте меня если я не так что-то сказал. Всвязи с этим возникло несколько вопросов: 1) Для того чтобы добавить новый OID в ЦС на базе Win server 2003 нужно в реестре HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Cryptography\OID\EncodingType 0\CryptDllFindOIDInfo добавить нужные нам OID 1.2.643.3.3.1.1.1.46 и 1.2.643.3.3.1.1.1.47. Когда создаешь в реестре эти разделы следующим шагом должен быть создание строкового параметра. В Руководстве по регистрации дополнительных объектных идентификаторов сказано строковому параметру значение Name, присваиваю значение "Использование в ИС". Далее насколько я понял надо перегрузить сервер и что-то должно уже получится. Возможно использование дополнительных OID таким способом, как я указал. 2) Как мне в дальнейшем и с помощью чего формировать запрос на сертификат, чтобы запросы содержали данный OID? 3) Есть ли в КриптоПро JCP функционал, который бы заставлял приложение проверять требуемый OID и в случае не соответствия давал отрицательный результат?
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 25.01.2011(UTC) Сообщений: 589 Откуда: Крипто-Про
|
По поводу приложений - да, именно так и будет. 1) Да, именно так все и происходит как описано в документации. 2) Вы создали новый OID, Вы делаете шаблон и ним, называете его, например, Приложение 1, ставите права на выпуск такого сертификата и все ок. 3) Да, такая возможность имеется, если Вы как разработчик это будете делать, советую Вам обратить внимание на это -> ftp://193.47.154.6/DBO4/...Doc/progguide.html#Paramболее подробно при примерам и их реализации Вам смогут ответить наши разработчики.
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 24.02.2011(UTC) Сообщений: 74 Откуда: Санкт-Петербург
|
Мне кажется в Microsoft CA на Win server 2003 нельзя делать шаблоны сертификатов (у нас не стоит Крипто Про УЦ)...или я ошибаюсь? А если нельзя, как тогда поступать?
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 25.01.2011(UTC) Сообщений: 589 Откуда: Крипто-Про
|
не смотрел такую возможность, только чутка погуглил :) работать Microsoft CA с шаблонами можно на technet.microsoft.com информация по этому поводу имеется, по поводу того как будет работать оно с добавленными не подскажу, но новые OID он увидит это 100%. можно еще в этом случае глупо поступить, если у Вас enterprise ca, то в файле, например, который является проверка подлинности клиента добавляете OID'ы нужные и выпускаете сертификаты с нужными OID.
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 24.02.2011(UTC) Сообщений: 74 Откуда: Санкт-Петербург
|
по второму предложению не уловил, что нужно сделать...не могли бы пояснить
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 25.01.2011(UTC) Сообщений: 589 Откуда: Крипто-Про
|
в папке куда у Вас ссылается IIS есть файлик certrqma.asp открываете его блокнотом, находите вот такое: Option ID=locCliAuthCert Selected Value="1.3.6.1.5.5.7.3.2"> Сертификат проверки подлинности клиента и добавляете следом такое: Option ID=test Value="1.3.6.1.5.5.7.3.2, 1.3.6.1.5.5.7.3.4"> Сертификат test только вместо тех oid которые я прописал Вы прописываете свои для приложений "а" и "б".
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 24.02.2011(UTC) Сообщений: 74 Откуда: Санкт-Петербург
|
Сделал следующим образом: В реестре добавил необходимый oid, как указано в документации на КриптоПро УЦ 1.5. После этого перезапустил УЦ. Можно использовать следующую команду через консоль, приведет к аналогичному результату, только значение NAME не добавится. certutil -setreg policy\EnableRequestExtensionList +<номер OID>, потом перезапуск УЦ. После всех этих манипуляций в КриптоАРМ добавил в закладку Сравочники номер OID, который мне был необходим и который я ранее ввел при настройке УЦ. На этапе запроса на сертификат с использованием КриптоАРМ включил данный OID в запрос. Подал в base-64 кодировке запрос в УЦ - результат положительный получил серт с необходимым OID. Все это конечно хорошо, когда я генерю ключи сам. А если пользователь подает запрос на сертификат сам да и если у него нет КриптоАРМ или чего-то такого сподручного формировать новые OID? Тут можно обойтись только шаблонами на сертификат, которые я насколько понял можно экспортировать каким-то не очень легким способом из win server 2008(у меня не получилось), доступными на web-морде УЦ. Второй путь - добавление необходимых расширений в сертификат с использованием команды следующего вида: certutil -setextension <№ запроса> 1.3.6.1.5.5.7.48.1.5 0 @<имя файла c закодированным значением> Вот только для меня пока не понятно,как определить это закодированное значение, чтобы получилось нужное мне расширение в сертификате. Например, когда боролся с расширением "id-pkix-ocsp-nocheck" в сертификате для службы ocsp файл должен был содержать значения 05 50 и тогда все было ок. Как здесь быть - кто подскажет?
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 24.02.2011(UTC) Сообщений: 74 Откуда: Санкт-Петербург
|
не видел предыдущего сообщения от господина rozhkov - сейчас попробую
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 24.02.2011(UTC) Сообщений: 74 Откуда: Санкт-Петербург
|
попробовал сделать как вы указали, к сожалению почему-то эта страница перестала загружаться... но получилось по-другому: через web-морду при расширенном запросе сертификата выбрал Другой... и ввел oid необходимый. УЦ отработал нормально, но минусы такого решения: в поле Использование ключа - выбираются стандартные значения, то есть Цифровая подпись, Неотрекаемость, Шифрование ключей, Шифрование данных, на мой взгляд это не очень хорошо, так как часть шифрование не требуется... 2-ой минус это то, что доступ к web-морде у нас только есть внутри организации, иногда приходится при взаимодействии с другими фирмами использовать запросы на сертификат в base-64 кодировке. Насколько я понимаю, добавить необходимое расширение через web-морду нельзя.
Поэтому стал рассматривать путь решения проблемы тем образом, как указал я в прошлом сообщении. Выпустил сертификат с необходимым расширением - посмотрел его ASCII-кодировке c помощью команды certutil -v mycert.cer Нашел нужное мне поле. И вот тут появился первый вопрос:
Сначала в сертификате, который я просматривал было два назначения в поле Улучшенный ключ 2.5.29.37: Флаги = 0, Длина = 15 Улучшенный ключ Проверка подлинности клиента (1.3.6.1.5.5.7.3.2) Доступ к XXXXXXXXXXXXX (1.2.643.555.1.1)
0000 30 13 06 08 2b 06 01 05 05 07 03 02 06 07 2a 85 0...+.........*. 0010 03 84 2b 01 01 ..+.. Отсюда сложно сказать, что соответствует Доступ к XXXXXXXXXXXXX (1.2.643.555.1.1)
Тогда я выпустил сертификат только с расширением Доступ к XXXXXXXXXXXXX (1.2.643.555.1.1) получилось при просмотре следуюее 2.5.29.37: Флаги = 0, Длина = b Улучшенный ключ Доступ к XXXXXXXXXXXXX (1.2.643.555.1.1)
0000 30 09 06 07 2a 85 03 84 2b 01 01 0...*...+.. Проанализировав можно понять, что одинаковые цифры и в том и другом случае 06 07 2a 85 03 84 2b 01 01. Соответственно в текстовый файл должен занести только их? я правильно рассуждаю?
Далее я сделал запрос на сертификат в base-64 кодировке, не включая в запрос расширение Доступ к XXXXXXXXXXXXX , сохранил в файл. Через web-морду подал запрос в УЦ. Затем выполнил следующую команду C:\>certutil -setextension 37 1.2.643.555.1.1 0 @oid.txt 0000 06 07 2a 85 03 84 2b 01 01 ..*...+.. CertUtil: -setextension - команда успешно выполнена. Выпустил сертификат и увидел что данное расширение Доступ к XXXXXXXXXXXXX добавилось не в поле Улучшенный ключ, а отдельным полем с символом некритичного расширения. Когда щелкаешь на этом расширении "Доступ к XXXXXXXXXXXXX" в поле "Поле " показывается значение 06 07 2a 85 03 84 2b 01 01, а в поле Значение ..*...+.. oid 1.2.643.555.1.1 нигде не видно. Для меня непонятно немного, правильно ли я сделал? Одинаковы ли сертификаты сделанный мною через web-морду при выдаче запроса с необходимым oid, и сертификат с таким расширением, которое я привел чуть выше. К слову сказать пробовал вставлять не только 06 07 2a 85 03 84 2b 01 01, но и 30 13 06 08 2b 06 01 05 05 07 03 02 06 07 2a 85 03 84 2b 01 01, и 03 84 2b 01 01. Команда во всех случаях выполнялось успешно, только менялось значение в поле "Поле" и "Значение".
и еще один вопрос, смогу ли я с использованием КриптоПро JCP или проверять значение oid, выданного мной сертификата по второму методу (то есть добавление необходимого расширения к запросу на сертификат из файла)? Будет ли отличаться метод проверки от первого случая (когда Доступ к XXXXXXXXXXXXX" находится в поле Улучшенный ключ и виден oid 1.2.643.555.1.1)?
Очень надеюсь на ответы)
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 24.02.2011(UTC) Сообщений: 74 Откуда: Санкт-Петербург
|
никто не может подсказать? или надо адресовать письмо в другую ветку форума?
|
|
|
|
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Important Information:
The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close