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

Чувствительность использования общих клиентских ключей с openvpn в этом сценарии

Я настроил рабочий openvpn-сервер (ubuntu 10.04) и клиент, никаких проблем.

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

Мы развертываем несколько таких типовых клиентских машин для сбора данных от 10 до 20 в месяц. Причина использования VPN - возможность удаленного входа в систему для периодической поддержки и мониторинга. Они отправляют свои данные домой другими способами (не через VPN).

Я рассматриваю возможность сделать файлы конфигурации клиента универсальными и использовать их на всех развернутых машинах (опция «duplicate-cn» на стороне сервера).

Я рассуждаю так:

  1. Сервер vpn явно запрещает вход по ssh из любого места, кроме нашего офиса, поэтому подключенный клиент не может подключиться к серверу по ssh
  2. Кроме того, для входа на сервер openvpn требуется файл ключей X509 .pem (это экземпляр Amazon EC2).
  3. Сервер не позволяет клиентам видеть друг друга («клиент-клиент» закомментировано), и нет доступа к каким-либо другим сетям, это чисто для того, чтобы мы могли подключиться к клиенту по ssh.
  4. Мы ленивы и не хотим, чтобы администратор генерировал сертификаты, применяя их к машине (следовательно, они больше не являются универсальными и больше не поддерживают горячую замену и т. Д.), И люди запутаются и ошибаются.

Основным недостатком вроде бы является:

  1. Трудно сказать, что это за машина, где много подключений (я еще не нашел для этого решения)

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

Итак, мой вопрос ... что самое худшее может случиться в этом сценарии? Если компьютер был скомпрометирован напрямую, худшее, что она могла сделать, - это открыть VPN-туннель (что он и так делает автоматически!), Но дальше этого ничего не вышло. После обнаружения мы могли бы просто заблокировать этот IP-адрес на уровне брандмауэра.

Правильно ли здесь мой мыслительный процесс или я что-то упустил?

Редактировать:

Возможно, мне следовало сказать, что клиентские машины не имеют головы (без видео / клавиатуры) и не доступны напрямую с клиентских сайтов (хотя вы не можете этого прямо гарантировать!). Это среда «машина-2-машина» (M2M). Это не (например) ноутбуки, которые носят продавцы.

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

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

Не, НЕ, НЕ сделай это. Вы полностью игнорируете все цели аутентификации на основе сертификатов.

  • То, что вы делаете, нарушает идентификацию
    Если у всех одинаковая пара ключей, вы не сможете отличить одну машину от другой.

  • То, что вы делаете, нарушает безопасность.
    Если у всех одна и та же пара ключей, и закрытый ключ скомпрометирован ВСЕ соединения ваших систем скомпрометированы, и каждый необходимо изменить пару ключей.

  • То, что вы делаете, нарушает безопасность (опять же).
    Если все используют одну и ту же пару ключей, вы не можете отозвать доступ к отдельному объекту, отозвав сертификат.
    Сейчас это может показаться неважным, но однажды вам нужно будет удалить чей-то доступ. Можете ли вы быть уверены, что они не сохранили копию закрытого ключа? (Подсказка: НЕТ - теперь вам нужно изменить каждый ключ снова.)


Безопасность не должна быть удобной и не предназначена для ленивых. Если вам нужны дополнительные преимущества аутентификации с открытым ключом, вы должны быть готовы взять на себя (небольшую) дополнительную нагрузку по правильному управлению ключами.
Если вам не нужна эта дополнительная рабочая нагрузка, сделайте так, как предлагал DrGkill, и просто настройте предварительно общие ключи (по одному на каждую сторону - общий предварительно общий ключ имеет все те же проблемы, которые я перечислил выше для общих сертификатов ...).