Pull to refresh

Comments 10

но и повышаем уровень защищенности (подделка сертификата немножко сложнее угадывания любимого пароля, который у меня - "qwerty").

Ну если честно, то это далеко не очевидно. У вас же много пользователей, правда? Представим что в какой-то момент вы их всех решили тоже аутентифицировать по сертификатам. Бац - и у вас в компании появился свой Удостоверяющий Центр (это перевод CA, если что). И у вас вместо записанных там и сям на бумажке паролей - валяющиеся там и сям на дисках пользовательские сертификаты. Много. В непонятном состоянии. Непонятно когда протухнут.

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

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

Вы ведь не забыли себе в календарь записать, что нужно перевыпустить сертификат через годик, да? :)

Я в самом начале упомянул

при локальной разработке

намеренно, чтобы сгладить некоторые углы, которые вы подсветили =)

Пользователей то много, да. Но вот если всем нужен доступ до прода, то, кажется, это больше про характеристику компании / процесса разработки будет, нежели про проблематику валяющихся пользовательских сертификатов.

Опять же, если будет утечка корневого сертификата да еще из абстрактного УЦ с СКЗИ класса защиты КС3, то это будет новость интереснее свежей новости про xz.

Вы ведь не забыли себе в календарь записать, что нужно перевыпустить сертификат через годик, да? :)

Без шуток - да.

Ну и говоря про проблематику ротации сертификатов, есть же уже действующие решения. Vault + agent / импортозамещенный вариант под названием SecMan

Опять же, если хочется говорить про применимость к prod environment, там можно и скомбинировать полную взаимную проверку сертификатов с проверкой пароля. Добавим конфигурацию проверки по IP (все та же строчка в pg_hba.conf). Плюсом кажется сетевая инфраструктура организации должна быть настроена правильным образом ;)

Опять же, если будет утечка корневого сертификата да еще из абстрактного УЦ с СКЗИ класса защиты КС3, то это будет новость интереснее свежей новости про xz.

Да не то слово.

Я знаю про vault, мы как раз в процессе внедрения. Поэтому и решил позадавать вопросы в том числе.

Для локальной разработки вам хватит файла .pgpass

У автора лапки, macOS и в домашней сети не оказалось нужной инфраструктуры.

Поднять хотя бы Samba DC можно и в контейнере. Зато это будет масштабируемо.

LDAP с Kerberos можно запускать даже в той же вируталке, что и PostgreSQL. Раньше так и делал.

Зато это будет масштабируемо.

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

LDAP с Kerberos можно запускать даже в той же вируталке, что и PostgreSQL. Раньше так и делал.

Где-то я пропустил в тексте, что запускаю это все на виртуалке. Как обнаружу - дам более развернутый комментарий.

В любом случае, получаем дополнительный сервис, а хочется побриться бритвой Оккама.

Ну и просто вопрос. А GSSAPI точно удовлетворяет требованию 4? Я его, конечно, сформулировал в слишком фривольной манере, но подразумевалось что непосредственный канал связи с сервером БД должен быть mTLS.

в какой момент у сертификатов пропало масштабирование?

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

Но главная проблема масштабирования - доверительность по отношению ко всем сервисам, а не только к KDC. Билетики выдаются пользователям всегда на конкретный сервис, тогда как сертификаты пользователей к сервисам не привязаны. Когда у Вас лишь один сервис (PostgreSQL) - это значения не имеет. Но когда у Вас сотни сервисов - это уже дыра в безопасности.

Где-то я пропустил в тексте, что запускаю это все на виртуалке

Вы пропустили слова даже и раньше. Я указал, что Kerberos я использовал еще до появления в природе докера. Лет 25 назад.

В любом случае, получаем дополнительный сервис

В подавляющем большинстве случаев, как только решение будет масштабировано за пределы локального хоста, Kerberos будет доступен. Более того, в моей практике, Kerberos всегда был доступен, пусть даже и через VPN. То, что из-за бюрократии не всегда оперативно добавлялись SPN для сервисов моего локального хоста - это уже другой вопрос.

подразумевалось что непосредственный канал связи с сервером БД должен быть mTLS.

Kerberos иначе и не умеет. Разница в том, как я указал выше, что сертификат (билетик) клиенту выдается KDC на конкретный сервис, а не на всё скопом.

П.0 - я как пользователь _не хочу_ трогать pgAdmin даже ОЧЕНЬ длинной палкой. Можно? Ну позя-зя-зя?!

Sign up to leave a comment.

Articles