Обсуждение статьи тематического каталога: Настройка SSL-шифрования между Linux и Microsoft SQL сервероСсылка на текст статьи: http://www.opennet.me/base/sec/openssl_freetds_ssl.txt.html
Спаисбо! Очень!От себя добавлю, что не обязательно класть имя сервера в CN (правда, это очень распространённая ошибка). Для DNS записей в сертификате есть специальное место (и винда во всех её проявлениях его понимает). Это расширение 2.5.29.17 - Альтернативный сабжект (туда можно много что заносить, не только DNS).
Выглядит так
...
X509v3 Subject Alternative Name: DNS:cfweb, DNS:10.2.1.44
...
> От себя добавлю, что не обязательно класть имя сервера в CN (правда, это очень
> распространённая ошибка).Нет, имя сервера в CN класть все-таки обязательно. :)
Но не в виде DNS-записи, конечно же, а в виде dc=host,dc=domain,dc=tld. А вот если в сертификат хочется положить host.domain.tld -- тогда и нужно пользовать 2.5.29.17.
:) Хех.
Ну, раз уж такие дела...
Конечно, _можно_ класть имя сервера (заметьте, одно!) в Subject в виде
dc=host,dc=domain,dc=tld
Но, повторюсь, _одно_. Остальное - всё туда же, в расширение.НО! Где ГОСТ, там и закон! :) А закон гласит о поэкземплярном, персонифицированном учёте.
А персонификацию, всё-таки, удобно проводить по Subject.
Т.о. считаю, что лучше сразу заносить DNS в расширение.
Вот :)
> OpenVPN и подобное не разрешены.Ээээ а если его собрать с новым OpenSSL и заэнфорсить алгоритм шифрования гост, если уж его так хотят?Там cipher который будет юзать SSL можно выбирать AFAIK.Ну и все что сертификатов касается к нему тоже применимо в принципе :)
Кстати да, у упомянутого криптокома лежит патч на OpenVPN для тех кому не повезло.
Э, если вы возьмете сертифицированный продукт МагПро КриптоПакет (та же OpenSSL 0.9.8e с поддержкой ГОСТ) и собранный нами бинарник OpenVPN - тогда да, это будет сертифицированное решение. А если пересоберете, и хэш-сумма бинарника будет отличаться от хэш-суммы указанной в формуляре продукта, то это будет несертифицированное решение.
Что за "вставьте после" и "получается вот так", блин? patch и diff для кого сделаны?
>Что за "вставьте после" и "получается вот так", блин? patch и diff
>для кого сделаны?и то правда! и зачем вообще статья?.. исхоников что ли не хватает? :-D
...
автору - спасибо.
>Что за "вставьте после" и "получается вот так", блин? patch и diff
>для кого сделаны?Когда написано как написано, то несколько проще понять, что именно сделано и почему. А если понять, то этот же алгоритм можно применить к любому другому продукту, использующему OpenSSL.
Собственно, есть два основных условия, после которых с ГОСТ начинает работать любой OpenSSL-enabled продукт:
1. Подгружается engine, реализующая ГОСТ (либо через зачитывание openssl.cnf вызовом OPENSSL_config(NULL), либо если продукт имеет собственные средства работы с engine, то через них. Тогда надо еще убедиться что он вызывает ENGINE_set_default(e,ENGINE_METHOD_ALL)). Обратите внимание, что engine должна быть загружена до SSL_library_init. Поскольку иначе SSL_library_init не найдет доступных реализаций алгоритмов ГОСТ и запретит гостовские шифрсьюты.2. В списке разрешенных шифрсьютов, задаваемых SSL_set_cipher_list лии SSL_CTX_set_cipher_list присутствует GOST2001-GOST89-GOST89. (в случае патченной OpenSSL 0.9.8 должны еще быть явно запрещены шифрсьюты с DSA, поскольку они конфликтуют. В 0.9.9 этой проблемы нет)
Есть еще третье условие - для загрузки секретного ключа (если у нас сервер или если используется клиентский сертификат) не должна использоваться функция
SSL_use_RSAPrivateKey_file, которая, по очевидным причинам, ключи ГОСТ грузить не умеет.
Заменить её на более общую SSL_use_PrivateKey_file
Мда. Виндовс в заголовке упомянули - ожидай чего-то нездорового от статьи. Это же надо было додуматься, текст через жпег выкладывать. Ну, и про diff уже сказали выше. Да уж, трамвай обходи спереди, автобус сзади, в венду стороной.
Я пользуюсь другим клиентом - squish:
Sqsh (pronounced skwish) is short for SQshelL (pronounced s-q-shell), and is intended as a replacement for the venerable ‘isql’ program supplied by Sybase. It came about due to years of frustration of trying to do real work with a program that was never meant to perform real work.Sqsh is much more than a nice prompt, it is intended to provide much of the functionality provided by a good shell, such as variables, aliasing, redirection, pipes, back-grounding, job control, history, command substitution, and dynamic configuration. Also, as a by-product of the design, it is remarkably easy to extend and add functionality.
Мне хватает. Бабушке не хватает, а мне хватает. :)
Объясните, плиз, новичку, что значит
Читаем секцию "CONFIGURATION FILE" в файле
<source-openssl>/engines/ccgost/README.gost. Выполняем то, что нам
советуют.?
Я прочитал - ничего не понял
статья была бы полной, если б приведен был кусок конфига, который необходимо вставить для работы GOST. а без него ... README.gost ничего особо из себя не представляет
Для не осиливших README.gost:openssl_conf = openssl_def
CRL_URI=http://localhost/democa/current.crl
CAROOT=./demoCA
KEY_USAGE=digitalSignature,nonRepudiation,keyEncipherment
EXT_USAGE=serverAuth
E=root@localhost
L=Nowhere
O=Misconfigured site
CN=Lazy admin
[openssl_def]
engines = engine_section
[engine_section]
gost = gost_section
[ ca ]
default_ca = CA_default
[ CA_default ]
dir = $ENV::CAROOT
database = $dir/index.txt
new_certs_dir = $dir/newcerts
certificate = $dir/cacert.pem
serial = $dir/serial
private_key = $dir/private/cakey.pem
RANDFILE = /dev/urandom
default_days = 365
default_crl_days= 30
default_md = md5
policy = policy_any
email_in_dn = yes
x509_extensions= x509_extensions
nameopt = utf8,sep_comma_plus
certopt = utf8,sep_comma_plus
copy_extensions = copy
[ ca_cert_extensions ]
basicConstraints=critical,CA:TRUE,pathlen:1
keyUsage=keyCertSign,cRLSign
crlDistributionPoints = URI:$ENV::CRL_URI
[ x509_extensions ]
basicConstraints=CA:FALSE
crlDistributionPoints = URI:$ENV::CRL_URI
[ policy_anything ]
countryName = optional
stateOrProvinceName = optional
localityName = optional
organizationName = optional
organizationalUnitName = optional
commonName = supplied
emailAddress = optional
[ policy_any ]
countryName = supplied
stateOrProvinceName = optional
organizationName = optional
organizationalUnitName = optional
commonName = supplied
emailAddress = supplied
[req]
prompt=no
distinguished_name = req_dn
string_mask = pkix
default_md = sha1
utf8=yes
req_extensions = req_exts
[req_exts]
basicConstraints = CA:FALSE
keyUsage = $ENV::KEY_USAGE
extendedKeyUsage = $ENV::EXT_USAGE
[ req_dn ]
C = $ENV::C
L = $ENV::L
CN= $ENV::CN
O= $ENV::O
OU= $ENV::OU
emailAddress = $ENV::E
[ gost_section ]
engine_id = gost
default_algorithms = ALL