Назад | Перейти на главную страницу

Выдача клиентам SSL-сертификатов для сервера MySQL - это безопасно?

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

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

Мой вопрос: сервер MySQL deamon использует один и тот же сертификат / ключ SSL-сервера для связи с каждым клиентом. Достаточно ли будет у каждого клиента отдельного клиентского сертификата, чтобы гарантировать, что они не смогут подслушивать обмен данными с сервером базы данных?

Насколько я понимаю, SSL / TLS-соединения сервера вполне достаточно для предотвращения подслушивания. Сертификат клиента не обеспечивает дополнительного шифрования (кроме, возможно, во время рукопожатия), он нужен для аутентификации клиента.

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

Это нормально, что сервер MySQL использует один и тот же сертификат TLS / SSL для связи со всеми клиентами, потому что у каждого из них будет разное рукопожатие. Как и в случае с веб-сервером, вы можете общаться с несколькими клиентами, используя один и тот же сертификат.

Короткий ответ: да.

Более длинный ответ: да, потому что обе пары ключей клиента и сервера участвуют в обмене одноразовыми сеансовыми ключами, которые защищают данную транзакцию. Если клиент B получает полный сеанс зашифрованного текста между клиентом A и сервером, он мог бы его расшифровать, если бы у него был либо закрытый ключ сервера, либо закрытый ключ клиента A. Но у клиента B есть только собственный закрытый ключ и открытый ключ сервера; это не поможет ей расшифровать транзакции клиента A с сервером.