LINUX.ORG.RU

Поддержка SASL в MySQL-5.0.15


0

0

"А вот, кому зайца, кому выбегайца?!" (Ц)

Выпущена альфа версия заплатки позволяющей пользователям MySQl регистрироваться не через проверку пароля по таблице mysql.user, а средствами библиотеки SASL. Те кто настраивал почтовые сервисы (где она наиболее широко используется) знают, что это за зверь. Если коротко, SASL позволяет клиенту и сервису автоматически договориться об использовании определенного механизма аутентификации пользователя. Среди поддерживаемых механизмов - одноразовые пароли, Керберос, использование SSL/TLS сертификатов и др.

Патч основан на коде http://rc.vintela.com/topics/labs/mysql/ , но по сравнению с ним имеет несколько немаловажных преимуществ - во-первых, расчитан на MySQL 5.0.15 и, во-вторых, работает ;) Проверялся на механизме GSSAPI и PLAIN с проверкой паролей в пользовательской базе Kerberos. Кстати, использование GSSAPI позволяет встроить MySQL в систему единой регистрации пользователей Kerberos (иными словами, пользователь получает прозрачный доступ к базам данным MySQL на основании своего супербилета-TGT, выдаваемого при логине на рабочую станцию).

Пока, тем не менее, ещё не реализована возможность шифрования данных с помощью SASL.

Благодарности и конструктивная критика одинаково приветствуются.

>>> Тянуть отсюда



Проверено: ivlad ()

GSSAPI - это мажорно. Попробуем. Хотя, конечно, приложений, разговаривающих напрямую с MySQL, используя аутентификационные данные пользователя, я не припомню.

ivlad ★★★★★
()
Ответ на: комментарий от suser

> А дефолтовый мускуль 4 или 5 шифрует как-нибудь трафик?

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

кому интересно, могут посмотреть код клиента - от mysql_query() до передачи данных 5-6 вызовов. Пример: ( mysql_query => ) mysql_real_query => mysql_send_query => simple_command/advanced_command => выбор метода передачи и сама передача

vadiml ★★★★★
()

> Пока, тем не менее, ещё не реализована возможность шифрования данных с помощью SASL.

а вот здесь, пожалуйста, подробнее - какие именно данные Вы хотите шифровать, для обычного трафика ведь можно собрать с тем же openssl, а если идти дальше, то есть openssl с алгоритмами ГОСТа, и.....

vadiml ★★★★★
()
Ответ на: комментарий от vadiml

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

Если клиент и сервер собраны с libcrypt, могу ли я быть уверенным, что трафик шифруется?

suser
()
Ответ на: комментарий от ivlad

Там пропатчена клиентская библиотека. Т.е. любое приложение использующее mysql_real_connect для подключения к серверу автоматически получает доступ к SASL, который уже сам разберётся откуда брать аутентификационные данные.
Я проверял на биндингах для mysqllib под R. Всё тут же заработало после пересборки с новой библиотекой - саму обертку править не понадобилось.

geekkoo
() автор топика
Ответ на: комментарий от ivlad

>SHOW VARIABLES LIKE 'have_openssl';

Там есть have_crypt = 'yes'. Каким алгоритмом шифруется?

suser
()
Ответ на: комментарий от vadiml

>>>какие именно данные Вы хотите шифровать

Весь обмен данными между клиентом и сервером. Про openssl я согласен, но в функции GSSAPI (если именно он используется при аутентификации в SASL) входит выдача двух одинаковых ключей клиенту и серверу. Одинаковость ключей подтверждает, с одной стороны, идентичность пользователя, а с другой, может применятся для шифрования (симметричного) всех данных получаемых/отправляемых клиентом/сервером. Т.е. шифрование можно обеспечить только средствами SASL, не прибегая к openssl.

geekkoo
() автор топика
Ответ на: комментарий от geekkoo

>Одинаковость ключей подтверждает, с одной стороны, идентичность пользователя, а с другой, может применятся для шифрования (симметричного) всех данных получаемых/отправляемых клиентом/сервером.

А как сам ключ передать второй стороне в случае симметричного шифрования?

suser
()
Ответ на: комментарий от suser

Не совсем в тему, но я пускал трафик mysql через openvpn. А так достаточно его с openssl собрать для шифрования.

McGray ★★
()
Ответ на: комментарий от suser

>>>А как сам ключ передать второй стороне в случае симметричного шифрования?

RTFM на тему Кербероса. На том же ftp лежит статейка heimdal_2.zip - её можно даже не читать, достаточно на схему взглянуть. В крайнем случае для передачи ключей можно использовать флоппи-диск.

geekkoo
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.