Author Topic: Клиент серверное приложение  (Read 4135 times)

0 Members and 1 Guest are viewing this topic.

Offline Fedor

  • Full Member
  • ***
  • Posts: 186
  • Karma: +0/-0
Клиент серверное приложение
« on: October 15, 2007, 13:38:48 »
Ситуация такая, в базу данных на сервере должна складываться информация, допустим в поле BLOP, т.е. базе данных не важно какие данные это будут. Суть вот в чём, соединение с базой данных производиться с по протоколу SSL, т.е. создаём защищенное соединение. Нужен совет 1) как положить данные в базу данных 2) как производить аутентификацию клиента

Offline never hood

  • Hero Member
  • *****
  • Posts: 845
  • Karma: +16/-10
  • www.4job.co
    • Работа, которую ты искал
Клиент серверное приложение
« Reply #1 on: October 15, 2007, 23:30:52 »
Возможны некоторые нюансы реализации, поэтому платформа (винды, никсы...) вашей разработки существенна.
1) так же, как и без SSL, ибо SSL дает вам только защищенное соединение (туннель), не изменяя механизмов взаимодействия с сервером.
2) можно не обращать внимания на SSL и делать ААА также, как и без него, но с большей уверенностью за сохранность паролей на пути от клиента к серверу. Самым, однако, интересным вариантом является использование сертификатов, т.е. использовать взаимную верификацию клиентом сервера и наоборот. В этом случае вся информация о клиенте содержится в CommonName сертификата, а протокол обеспечивает ее неопровержимость, полностью исключая применение паролей (если не считать паролей, которыми "закрыты" ваши ключи, но они уже применяются локально). Однако, этот путь весьма не дешев, поскольку для его реализации вам потребуется построить целую инфраструктуру работы с ключами и сертификатами - PKI.
Нередко овчинка стоит выделки!
Тема немаленькая, так что гугль и RTFM вам во спасение!

Offline Fedor

  • Full Member
  • ***
  • Posts: 186
  • Karma: +0/-0
Клиент серверное приложение
« Reply #2 on: October 16, 2007, 12:31:22 »
Quote from: never hood
Возможны некоторые нюансы реализации, поэтому платформа (винды, никсы...) вашей разработки существенна.
1) так же, как и без SSL, ибо SSL дает вам только защищенное соединение (туннель), не изменяя механизмов взаимодействия с сервером.
2) можно не обращать внимания на SSL и делать ААА также, как и без него, но с большей уверенностью за сохранность паролей на пути от клиента к серверу. Самым, однако, интересным вариантом является использование сертификатов, т.е. использовать взаимную верификацию клиентом сервера и наоборот. В этом случае вся информация о клиенте содержится в CommonName сертификата, а протокол обеспечивает ее неопровержимость, полностью исключая применение паролей (если не считать паролей, которыми "закрыты" ваши ключи, но они уже применяются локально). Однако, этот путь весьма не дешев, поскольку для его реализации вам потребуется построить целую инфраструктуру работы с ключами и сертификатами - PKI.
Нередко овчинка стоит выделки!
Тема немаленькая, так что гугль и RTFM вам во спасение!

Как сделать связку MySQL + SSL в Win2K3. Во фре делал, там всё указывается при установке.

Offline never hood

  • Hero Member
  • *****
  • Posts: 845
  • Karma: +16/-10
  • www.4job.co
    • Работа, которую ты искал
Клиент серверное приложение
« Reply #3 on: October 16, 2007, 12:53:48 »
Quote from: Fedor
Как сделать связку MySQL + SSL в Win2K3. Во фре делал, там всё указывается при установке.
А что вам поведала документация на MySQL?

гугление, опять-таки?
Quote
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

Offline Fedor

  • Full Member
  • ***
  • Posts: 186
  • Karma: +0/-0
Клиент серверное приложение
« Reply #4 on: October 16, 2007, 13:52:09 »
Quote from: never hood
А что вам поведала документация на MySQL?

гугление, опять-таки?

Как теперь сюда прикрутить openssl
http://www.option-c.com/xwiki/MySQL_Replication_with_SSL
http://www.openssl.org/source/ здесь бинарники
http://openmaf.cineca.it/maf/download/addo...0_9_8d.exe/view для Win32 инсталлятор Win32OpenSSL-0_9_8d.exe

Не могу найти конкретного описания для винды как прикрутить библиотеки openssl

http://gnuwin32.sourceforge.net/install.html нашёл как установить openssl
« Last Edit: October 16, 2007, 14:14:35 by Fedor »

Offline never hood

  • Hero Member
  • *****
  • Posts: 845
  • Karma: +16/-10
  • www.4job.co
    • Работа, которую ты искал
Клиент серверное приложение
« Reply #5 on: October 16, 2007, 14:32:46 »
ну... как и говорилось - бинарники для винды не поддерживают SSL.