ALT Linux Team development discussions
 help / color / mirror / Atom feed
* Re: [devel] Вопросы новичка
@ 2009-05-07  8:38 Victor B. Wagner
  2009-05-07  8:41 ` Anton Farygin
                   ` (4 more replies)
  0 siblings, 5 replies; 24+ messages in thread
From: Victor B. Wagner @ 2009-05-07  8:38 UTC (permalink / raw)
  To: devel

On 2009.05.07 at 10:13:51 +0400, Afanasov Dmitry wrote:

> On Tue, May 05, 2009 at 06:11:13PM +0400, Victor B. Wagner wrote:
> > On 2009.05.05 at 16:26:09 +0300, Alexander Bokovoy wrote:
> > > "Список, сестра!". 
> > Лично у меня план действий такой:
> > 
> > 1. Запакетировать openssl-1.0. С тем чтобы она максимально
> > соответстовала текущей полиси дистрибутива и перевод приложений на неё
> > был возможно более безболезненным. 
> мне как админу от сертификатов хотелось бы:
> 1. иметь "машинный" сертификат, которым автоматом бы подписывались все
> остальные сервисные. подписать этот сертификат чем-нибудь другим, как я
> помнимаю, можно и позже.

Насчет подписать можно и позже - будут проблемы.
Если вы отправите заявку на получение сертификата intermediate CA на 
свой ключ, которым вы уже подписали несколько сертификатов,
то вам будет выдан сертификат с определенным сроком действия. 

Честно сказать, никогда не проверял, как различный софт относится к
тому, что сертификат сервера имеет срок действия, начавшийся раньше, чем
срок действия сертификата CA, на котором он выдан. 

Но в принципе "подписать на чем-нибудь" сертификат своего CA - не
обязательно. Можно распространить самоподписанный сертификат вашего CA
по всем клиентским машинам и установить его там в Trusted CA store. 
После этого он будет ничем не хуже Verisign-а.

В принципе, и перевыпустить сертификаты серверов после получения
сертификата CA недолго.



> 2. иметь возможность подставлять свои параметры в автогенерируемые
> сертификаты: organization там, organizationUnit, ссылку на crl.

Угу. Причем по-русски. Сделать это можно достаточно просто. Для этого
необходимо, чтобы

1. При установке сервисов сертификаты генерировались с использованием
системного openssl.cnf.

2. Иметь какой-то достаточно удобный инструмент, чтобы в этот самый
openssl.cnf прописывать параметры вашей организации.

3. Не забыть прописать в openssl.cnf прямо при создании пакета
необходимые параметры, которые обеспечат корректную обработку кириллицы.

Тогда все, что будет создавать сертификаты, после того как посредством п
2. вы сконфигурировали параметры будет писать правильный DN.

1-е и 3-е я уже делал в CryptoPack 1.0. К сожалению, до второго - руки
не дошли.


> все пакеты, что используют ssl, при установке генерируют сертификаты.

Что вообще говоря, не обязательно. В Debian, например, есть отдельный
пакет ssl-cert, который генерирует один-единственный сертификат на
hostname данной машины, которым потом польузются все установленные
сервисы.

> как сделать эту генерацию интерактивной при установке пакета я не
> представляю - rpm и все такое. но пусть хотя бы берут мои данные, а не
> какой-нибудь cat << EOF | openssl req. и ещё и подпишутся напоследок
> "машинным CA" :)
> 
> subject'ом таким сертификатам можно проставлять имя сервиса. ftp - для
> ftp, mail - для MTA, etс. мыло - одно на всех мыло админа. suport@, или
> личное.

subject сертификата - это набор полей. Куда входят как раз
organization, unit etc. Вы, наверное, имеете в виду поле CN (Common
Name). Так оно ОБЯЗАНО в случае серверного сертификата TLS совпадать
с именем хоста. Причем именно того, к которому идет обращение со стороны
клиента. До OpenSSL 0.9.8f не было никакой возможности иметь разные 
сертификаты на разные виртуальные хосты на одном IP, что создавало
определенные проблемы с виртуальными хостами в apache.

Начиная с 0.9.8f поддерживается TLS extension SNI (Server Name
Indication), так что теперь в принципе можно делать виртуальные хосты с
разными сертификатами. При условии что SNI поддерживается и клиентским
приложением (Firefox >= 2, MSIE >= 7 его поддерживают), и сервером (не
только на уровне библиотеки, но и на уровне приложения, так как именно
приложение решает какой именно сертификат отдать)

Что сейчас с поддержкой SNI у Apache - давно не смотрел.
Feature Request с соответствующим патчем был в апачевском SVN еще год
назад, но попал он в релиз или нет - не в курсе.

Для других сервисов, как правило, задача виртуальных хостов менее
актуальна.

Но общий принцип такой - иметь имя сервиса в CN можно только если 
имеется алиас в DNS (CNAME или A), содержащий это имя в DNS-имени
машины.



> > 2. Взаимодействие с мейнтейнерами
> если что нужно сделать в gnutls - предлагайте. к сожалению, "как это
> тикает" я не разобрался, но будет задача - будем думать :)

В данном случае, я имел в виду скорее мейнтейнеров приложений.
Apache, openvpn, postfix, dovecot, postgresql, mysql etc - неполный список тех
приложений которые я уже тестировал на работу с российской криптографией
и точно знаю что нужно, чтобы оно работало.

(например, в случае с postgresql нужно только его пересобрать с OpenSSL 
поддерживающей российскую криптографию и прописать в openssl.cnf
соответствующий модуль)

В gnutls - нужно начать и кончить. Написать поддержку российских
алгоритмов, поддержку российских шифрсьютов etc. Если алгоритмы
шифрования и хэширования можно тупо содрать из моей реализации для
OpenSSL (они там ни от чего не зависят), то алгоритмы подписи и
распределения ключей там сильно завязаны на библиотеку длинной
арифметики и эллиптических кривых OpenSSL, так что придется переписывать 
с нуля.

И, насколько я понимаю, нет никаких шансов сделать на базе gnutls
сертифицированное решение. В результате чего оно абсолютно неинтересно
моему руководству.


----- End forwarded message -----


^ permalink raw reply	[flat|nested] 24+ messages in thread

end of thread, other threads:[~2009-05-07 15:51 UTC | newest]

Thread overview: 24+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2009-05-07  8:38 [devel] Вопросы новичка Victor B. Wagner
2009-05-07  8:41 ` Anton Farygin
2009-05-07  9:00   ` Victor B. Wagner
2009-05-07  9:14     ` Max Ivanov
2009-05-07  9:45     ` Alexander Bokovoy
2009-05-07 10:16     ` Anton Farygin
2009-05-07 10:55       ` Mykola S. Grechukh
2009-05-07 11:10         ` Victor B. Wagner
2009-05-07 11:13           ` Mikhail Gusarov
2009-05-07  8:45 ` Aleksey Avdeev
2009-05-07  9:12   ` Victor B. Wagner
2009-05-07  9:26     ` Aleksey Avdeev
2009-05-07  9:53       ` Victor B. Wagner
2009-05-07 11:08         ` Aleksey Avdeev
2009-05-07  9:20 ` Afanasov Dmitry
2009-05-07  9:24 ` Afanasov Dmitry
2009-05-07  9:24 ` Afanasov Dmitry
2009-05-07 10:01   ` Victor B. Wagner
2009-05-07 10:12     ` Ivan Fedorov
2009-05-07 11:21     ` Ivan Fedorov
2009-05-07 13:43       ` Victor B. Wagner
2009-05-07 13:49         ` Ivan Fedorov
2009-05-07 14:08           ` Victor B. Wagner
2009-05-07 15:51             ` Ivan Fedorov

ALT Linux Team development discussions

This inbox may be cloned and mirrored by anyone:

	git clone --mirror http://lore.altlinux.org/devel/0 devel/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 devel devel/ http://lore.altlinux.org/devel \
		devel@altlinux.org devel@altlinux.ru devel@lists.altlinux.org devel@lists.altlinux.ru devel@linux.iplabs.ru mandrake-russian@linuxteam.iplabs.ru sisyphus@linuxteam.iplabs.ru
	public-inbox-index devel

Example config snippet for mirrors.
Newsgroup available over NNTP:
	nntp://lore.altlinux.org/org.altlinux.lists.devel


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git