Re: PKCS12 как?

2007-08-14 Пенетрантность Victor Wagner
On 2007.07.23 at 09:11:18 -, Dmitry Zhukov wrote:

 Добрый день!
 Вот какой вопрос возник.
 На сайте хочу сделать авторизацию пользователей подобно WebMoney -
 через сертификаты.
 На сколько я понимаю, браузеры понимают сертификат в формате pkcs12.

Неправильно. Сертификаты бывают в формате X509. А pkcs12 это контейнер
такой, куда укладывается  секретный ключ и сертификат на открытый ключ к
нему. Например, для перетаскивания ключевой пары из одного браузера в
другой (на другой машине).

Можно годами работать с клиентскими сертификатами и ни разу не
воспользоваться pkcs12 (правда, это неправильно, ибо надо иметь бэкап).

В норме браузер генерирует ключевую пару (для чего в MSIE применяется
ActiveX элемент Xenroll, а в Mozilla есть javascript API) и формирует
заявку на сертификат в формате PKCS10. Эта заявка отправляется в центр
сертификации (обычно, посредством той же web-формы, которая вызывала
функцию генерации ключевой пары) и там генерируется сертификат, который
возвращается браузеру. Естественно, он при этом идет не в PKCS12, так
как у центра сертификации нет секретного ключа от открытого ключа
сертификата. На то он и секретный, чтобы никому кроме владельца не был
доступен. Так что сертификат отправляют либо непосредственно в X509,
либо в виде PKCS7 контейнера, содержащего кроме заказанного сертификата
еще и сертификат удостоверяющего центра и список отзыва сертификатов,
выданных раннее, а затем отозванных этим центром.



 Но как его сгенерировать?
 В Debian для сертификатов и ЭЦП нашел пока что 2 утилиты:
 gpg и openssl.
 Но никак не понял, можно ли с помощью этих программ сгенерировать эти
 сертификаты?

С помощью OpenSSL можно организовать полноценный центр сертификации.
Кроме того, можно ещё много чего, например создавать ключевые пары,
заявки на сертификацию, заворачивать секретный ключ и сертификат в
PKCS12 и т.д.


 И еще вопрос, браузер по умолчанию будет спрашивать пароль сертификата
 при первом использовании после перезагрузки системы?

Будет. Только не после перезагрузки а после перезапуска браузера.  

 И последний вопрос. Вот пользователь выбрал авторизацию по сертификату
 X.509 браузер автоматически отправит этот сертификат серверу? И как на

Отправит. В процессе TLS Handshake. Если сервер его об этом просил (для
чего нужно указать соответствующую директиву для соответствующего
модуля)

 сервере обработать этот сертификат?

Обработает его соответствующий модуль в web-сервере,
например mod_ssl, mod_nss или mod_gnutls. 

Для этого серверу должен быть доступен сертификат удостоверяющего
центра. Чтобы можно было проверить подпись под клиентским сертификатом.

И выставит соответствующие
переменные окружения, которые можно в своем скрипте проанализировать.
Подробности - в документации на соответствующий модуль.

Кстати, поскольку TLS handshake происходит до начала переговоров по
HTTP-протоколу, при работе с TLS возникают проблемы с использованием
name-based virtual хостов. Уже стандартизовано расширение TLS, которое
эти проблемы решает, и вроде уже даже браузерами поддерживается.
Но в OpenSSL оно поддерживается только в development-ветке 0.9.9, а
когда будет поддерживаться в mod_ssl для apache-мне пока неизвестно.

 Заранее всем большое спасибо за ответы!
 


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]



Re: PKCS12 как?

2007-08-14 Пенетрантность Nick Nick
Есть утилита tinyca. Это такой маленький центр сертификации. Хотя все
сертификаты генерятся в три команда, эта штука может облегчить жизнь
тем кому лень разбираться ;)


Re: PKCS12 как?

2007-07-23 Пенетрантность Pavel Ammosov
On Mon, Jul 23, 2007 at 09:11:18AM -, Dmitry Zhukov wrote:
 На сколько я понимаю, браузеры понимают сертификат в формате pkcs12.
 Но как его сгенерировать?

http://www.lexa.ru/apache-talk/msg09651.html

 И еще вопрос, браузер по умолчанию будет спрашивать пароль сертификата
 при первом использовании после перезагрузки системы?

Браузер будет спрашивать пароль к своему приватному ключу.

 И последний вопрос. Вот пользователь выбрал авторизацию по сертификату
 X.509 браузер автоматически отправит этот сертификат серверу? И как на
 сервере обработать этот сертификат?

http://www.modssl.org/docs/2.8/ssl_howto.html#ToC6


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]