Tomsk Sysadmins Forum
Windows => Программирование => Topic started by: Fedor on October 15, 2007, 13:38:48
-
Ситуация такая, в базу данных на сервере должна складываться информация, допустим в поле BLOP, т.е. базе данных не важно какие данные это будут. Суть вот в чём, соединение с базой данных производиться с по протоколу SSL, т.е. создаём защищенное соединение. Нужен совет 1) как положить данные в базу данных 2) как производить аутентификацию клиента
-
Возможны некоторые нюансы реализации, поэтому платформа (винды, никсы...) вашей разработки существенна.
1) так же, как и без SSL, ибо SSL дает вам только защищенное соединение (туннель), не изменяя механизмов взаимодействия с сервером.
2) можно не обращать внимания на SSL и делать ААА также, как и без него, но с большей уверенностью за сохранность паролей на пути от клиента к серверу. Самым, однако, интересным вариантом является использование сертификатов, т.е. использовать взаимную верификацию клиентом сервера и наоборот. В этом случае вся информация о клиенте содержится в CommonName сертификата, а протокол обеспечивает ее неопровержимость, полностью исключая применение паролей (если не считать паролей, которыми "закрыты" ваши ключи, но они уже применяются локально). Однако, этот путь весьма не дешев, поскольку для его реализации вам потребуется построить целую инфраструктуру работы с ключами и сертификатами - PKI.
Нередко овчинка стоит выделки!
Тема немаленькая, так что гугль и RTFM вам во спасение!
-
Возможны некоторые нюансы реализации, поэтому платформа (винды, никсы...) вашей разработки существенна.
1) так же, как и без SSL, ибо SSL дает вам только защищенное соединение (туннель), не изменяя механизмов взаимодействия с сервером.
2) можно не обращать внимания на SSL и делать ААА также, как и без него, но с большей уверенностью за сохранность паролей на пути от клиента к серверу. Самым, однако, интересным вариантом является использование сертификатов, т.е. использовать взаимную верификацию клиентом сервера и наоборот. В этом случае вся информация о клиенте содержится в CommonName сертификата, а протокол обеспечивает ее неопровержимость, полностью исключая применение паролей (если не считать паролей, которыми "закрыты" ваши ключи, но они уже применяются локально). Однако, этот путь весьма не дешев, поскольку для его реализации вам потребуется построить целую инфраструктуру работы с ключами и сертификатами - PKI.
Нередко овчинка стоит выделки!
Тема немаленькая, так что гугль и RTFM вам во спасение!
Как сделать связку MySQL + SSL в Win2K3. Во фре делал, там всё указывается при установке.
-
Как сделать связку MySQL + SSL в Win2K3. Во фре делал, там всё указывается при установке.
А что вам поведала документация на MySQL?
гугление, опять-таки?
Re: MySQL SSL on Windows
You can check to see if MySQL support openssl by type this on the MySQL
command line:
Show variables like 'have_openssl';
In Linux and BSD systems you can download openssl and build mysql with ssl
support by adding --with-vio and --with-openssl options to the configure
command. In windows though, I think you buy the binary from mysql that has
openssl already built into it.
Anyways, once you have openssl enabled in myssql, each end of a connection
uses 3 files to set up secure communication: a CA certificate, a certificate
file (authenticates one isde of the connection to the other), a key file
(servers public key).
The server cert and key files must be installed first. Once this is done you
can modify your my.cnf file (my.ini in windows) to inlcude entries like
this:
[mysqld]
Ssl-ca=/usr/local/mysql/data/ca-cert.pm
Ssl-cert=/usr/local/mysql/data/server-cert.pem
Ssl-key=/usr/local/mysql/data/server-key.pem
Restart the server and if the paths are good, your server is now ready to
accept encrypted connections; however the clients also need to use secure
connections. In nix os's, what happens is that the same ca-cert file can be
used in the client side also. just copy it to each user's home dir and then
the user's individual my.cnf which is named .my.cnf will include lines like
this:
[mysql]
Ssl-ca=/Users/JohnDoe/ca-cert.pem
Ssl-cert=/Users/JohnDoe/client-cert.pem
Ssl-key=/Users/JohnDoe/client-key.pem
Once that is done. Clients can successfully connect with ssl support
enabled. As you can see, it's not an easy process. The bulk of work is
creating the ssl cert and keys and such. Once you have those, it's just a
matter of referencing them in the configuration file
-
А что вам поведала документация на MySQL?
гугление, опять-таки?
Как теперь сюда прикрутить openssl
http://www.option-c.com/xwiki/MySQL_Replication_with_SSL (http://www.option-c.com/xwiki/MySQL_Replication_with_SSL)
http://www.openssl.org/source/ (http://www.openssl.org/source/) здесь бинарники
http://openmaf.cineca.it/maf/download/addo...0_9_8d.exe/view (http://openmaf.cineca.it/maf/download/addon/Win32OpenSSL-0_9_8d.exe/view) для Win32 инсталлятор Win32OpenSSL-0_9_8d.exe
Не могу найти конкретного описания для винды как прикрутить библиотеки openssl
http://gnuwin32.sourceforge.net/install.html (http://gnuwin32.sourceforge.net/install.html) нашёл как установить openssl
-
ну... как и говорилось - бинарники для винды не поддерживают SSL.