From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Message-ID: <45CBA28F.9020804@altlinux.org> Date: Fri, 09 Feb 2007 01:22:07 +0300 From: Mikhail Yakshin User-Agent: Thunderbird 1.5.0.8 (X11/20061205) MIME-Version: 1.0 To: ALT Devel discussion list X-Enigmail-Version: 0.94.1.0 Content-Type: text/plain; charset=KOI8-R Content-Transfer-Encoding: 8bit Subject: [devel] I: TLS/SSL policy - broken packages X-BeenThere: devel@lists.altlinux.org X-Mailman-Version: 2.1.9rc1 Precedence: list Reply-To: ALT Devel discussion list List-Id: ALT Devel discussion list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 08 Feb 2007 22:22:22 -0000 Archived-At: List-Archive: List-Post: Приветствую! У нас формально введена в действие новая TLS/SSL policy. Ниже приведен некий анализ пакетов, которые ей пока (возможно, я ошибаюсь) не следуют. Текст получился довольно объемным, но я очень прошу всех мейнтейнров перечисленных пакетов найти время и прочитать его внимательно. ========================================================================== Клиентские пакеты ========================================================================== curl - несет в себе ca-bundle.crt в формате PEM, вытащенный аж из Netscape Communicator 4.72. Ввиду довольно нетривиальной обработки местоположения этого файла, предлагается просто убрать из пакета файл ca-bundle.crt и в вызове configure указать на наш файл. kdelibs - несет в себе /usr/share/apps/kssl/ca-bundle.crt, не очень понятно откуда. Либо патчить на OPENSSL_config, либо просто показать при сборке на наш единый файл. Некие патчи есть, насколько я понял, в Fedora и Debian, к сожалению, быстро разобраться не удалось. libgwenhywfar - несет в себе /etc/gwen-public-ca.crt в формате PEM, вытащенный из какой-то неопознанной версии Netscape. Есть функция GWEN_NetLayerSsl_new, которую теоретически несложно пропатчить на предмет использования OPENSSL_config(3). libqca2 - моя библиотека, все в курсе, все знаю, буду делать. mutt1.5 - несет в себе древний /usr/share/doc/mutt1.5-1.5.13/samples/ca-bundle.crt из Netscape 4.72, который рекомендуется копировать в ~/.smime/ca-bundle.crt, чтобы mutt его нашел и использовал. Прошу пояснений мейнтейнера, можно ли заставить mutt использовать стандартные механзимы поиска списка CA через openssl? firefox, thunderbird, xulrunner, seamonkey, libnspr - общая замечание ко всем, использующим NSS - имеет смысл, видимо, при сборке добавлять новый ALT CA таким builtin token, как сейчас добавляется старый (в файле типа firefox-0.9-alt-ssl-addon-certs.txt). В идеале - не просто добавлять один CA, а устроить обратное преобразование из PEM в формат файла сертификатов Gecko-образных. ========================================================================== Особые случаи: ========================================================================== unreal - несет в себе некий серверный самоподписанный сертификат с такими параметрами: Issuer: C=RU, ST=Moskovskaya Oblast, L=Korolev, O=Fly Net, OU=Server development team, CN=irc.fly Subject: C=RU, ST=Moskovskaya Oblast, L=Korolev, O=Fly Net, OU=Server development team, CN=irc.fly Validity Not Before: Apr 19 17:46:40 2005 GMT Not After : Apr 19 17:46:40 2006 GMT Самое главное - он уже давно просрочен. Прошу комментариев у мейнтейнера, что это за сертификат и не имеет ли смысл заменить его либо на автоматически генерящийся, либо на подписанный нашим CA, например? ntop - несет в себе самоподписанный /etc/ntop-cert.pem, который точно так же выдан на некоего не очень понятного субъекта и очень давно просрочен: Issuer: C=IT, ST=Pisa, O=ntop.org, CN=Luca Subject: C=IT, ST=Pisa, O=ntop.org, CN=Luca Deri/emailAddress=deri@ntop.org Deri/emailAddress=deri@ntop.org Validity Not Before: Dec 23 16:58:34 2001 GMT Not After : Dec 23 16:58:34 2002 GMT Прошу комментариев мейнтейнера - зачем такой сертификат лежит в пакете? MySQL-server - несет в себе в документации пример сертификата CA, который используется как сервером, так и клиентом. Несмотря на то, что сертификат в документации и отключен по умолчанию, при реальном использовании его или аналогов требуется указание положения некоего CA bundle через ключ типа "ssl-ca=SSL/cacert.pem". Вопрос к мейнтейнеру - нет ли возможности / стоит ли патчить или что-то менять в MySQL, чтобы по умолчанию он имел в виду наш общий CA bundle? freeradius - практически тот же вопрос, что и про MySQL. Пакет несет у себя внутри примеры сертификатов и CA, но после прочтения /etc/raddb/certs/README возникает вопрос - что будет, если положить ему просто один сертификат, подписанный тем CA, что указан у нас в bundle? Подхватится ли? nut-server - несет в себе файл /etc/nut/upsd.pem, который пуст. Хотелось бы услышать комментарии мейнтейнера, зачем он такой? ========================================================================== Языки программирования ========================================================================== erlang, plt2, php5-devel, perl-Net-SSLeay, python-module-m2crypto, python-module-twisted - это все языки программирования, имеющие биндинги на OpenSSL внутри самого пакета с языком или в отдельном пакете. Здесь сложная ситуация: по логике вещей во всех приведенных пакетах тоже просто примеры (правда, лежащих в довольно нетрадиционных местах вроде /usr/lib/erlang/lib/ssl-3.0.11/examples/certs/etc/erlangCA), но возникает резонный вопрос: если в этих языках программирования использовать их встроенные биндинги на OpenSSL - будет ли автоматически подхватываться наш CA bundle? Это вопрос к мейнтейнерам или лучше даже просто тем, кто знает эти языки. К сожалению, я erlang и scheme не знаю в той степени, чтобы ответить на такой вопрос. Про php, perl и, возможно, python, посмотрю либо позже сам, либо ответят мейнтейнеры. ========================================================================== Нет major претензий к серверным пакетам: ========================================================================== apache2-mod_ssl, mod_ssl, sendmail - просто несут в себе примеры сертификатов openvpn-docs - примеры сертификатов в документации courier-imap, dovecot, exim, monit, uw-imap, stunnel - генерят простые самоподписанные сертификаты автоматически в пост-инсталл скрипте. Единственное - есть предложение - не плодить столько много разных хитрых скриптов - может быть сделать один макрос на всех? Ко всем этим пакетам есть minor замечания по поводу п.5 полиси. ========================================================================== Финальное замечание: рассмотрены были пока только пакеты, которые явно несли в себе некие признаки использования openssl, не соответствующего policy. Кроме того, нужно просто вручную рассмотреть все пакеты, которые зависят от libssl с куда более пристрастной проверкой: внутри каждого из них может быть инициализация openssl с использованием наших общих CA или без. Во втором случае это предполагается исправлять. Дополнительный список: appliance-fake-utm aria2 asterisk1.4 asterisk1.4-res_crypto astmanproxy AutoScan balsa bloom captive centericq claws-mail claws-mail-plugin-spamassassin cups cyrus-imapd cyrus-imapd-murder cyrus-imapd-utils cyrus-sasl2 dillo dsniff elinks fetchmail fuse-encfs gftp-gtk gftp-text git-core gkrellm gnubiff gnubiff-gnome gnugk gq gtkjournal hostapd httperf httping hydra-common imapfilter inn ipsec-tools ipv6calc irssi iscsitarget-utils jabber jabberd2-c2s jabberd2-resolver jabberd2-router jabberd2-s2s jabberd2-sm jpilot kasablanca kdebase-kcontrol kdebase-konqueror kdenetwork-kopete keyring-link kftpgrabber kvirc lftp libbind libchipcard libchipcard-tools libclip-common libcups libdar libecore libesmtp libesmtp-devel libfwbuilder libgnomedb libldap2.3 libmnetutil libmutil libMySQL41 libMySQL libneon libneon0.25 libneon0.26 libnet-snmp libomniORB libopal libopenh323_1.19 libopensc libopenslp libpq4.0 libpq4.1 libpw librtorrent libsasl2 libsmbclient-devel libssl-devel libucd-snmp libxmlsec1-openssl libyaz licq-common licq-msn lighttpd links1 links2 lynx mailfilter mail-notification mcabber micq msmtp msmtp-ssl mtree mutt MySQL41-client MySQL41-server nagios-nrpe nagios-plugins-network nagios-plugins-nrpe netams net-snmp nginx nmap nut nut-cgi openldap-servers openntpd opensc openslp-daemon openssh openssh-clients openssh-keysign openssh-server openssl-engines osec pam_mount pam_usb parsecvs pavuk perl-Crypt-OpenSSL-Bignum perl-Crypt-OpenSSL-Random perl-Crypt-OpenSSL-RSA perl-Crypt-SSLeay perl-Cyrus php5-imap php5-openssl php-imap php-openssl pine postal postfix-tls postgresql8.0 postgresql8.0-server postgresql8.1 postgresql8.1-contrib postgresql8.1-server proftpd-mod_tls python-module-OpenSSL python-module-pycurl python-modules qca-tls qpamat rdesktop ruby-module-digest ruby-module-openssl seirospbx1.4 seirospbx1.4-res_crypto sendmail-submit siege sim sim-qt sipp snort-snmp snort-snmp+flexresp socat spamassassin-spamc squid-helpers squid-server ssmtp-ssl sylpheed tcl-tls tcpdump tinc tor vtund w3c-libwww w3m wget wine wpa_supplicant x11vnc xchat X-Downloader xen xrdp yaz -- WBR, Mikhail Yakshin AKA GreyCat ALT Linux [http://www.altlinux.ru] [xmpp:greycat@altlinux.org]