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

Обеспечение безопасности приватных ключей SSH

У меня есть центральный сервер, на котором я хранил все приватные ключи ssh для разных машин, на которые я хочу использовать ssh. В настоящее время доступ к этому «центральному» серверу имеют только системные администраторы.

Учитывая описанный выше сценарий, я хотел бы задать следующие вопросы:

  1. Как вы защищаете свои приватные ключи ssh? Я читал о ssh-agent, но не знаю, как его использовать и можно ли его использовать в этой ситуации.
  2. Если системный администратор уходит и копирует все закрытые ключи ssh, то он получает доступ ко всем серверам. Как вы справляетесь с этой ситуацией?

Закрытые ключи SSH никогда не должны покидать машину, на которой они были сгенерированы, если только они не будут перемещены на более безопасную платформу, такую ​​как HSM. Точно так же они никогда не должны быть доступны никому, кроме человека, который их создал и будет их использовать, например рабочее место администратора, а лучше - HSM / смарт-карту. Если вы собираетесь получать доступ к серверу с нескольких машин, сгенерируйте уникальный ключ на каждой машине и соответствующим образом разверните открытые ключи или поместите открытый ключ со смарт-карты или другого надежного аутентификатора в авторизованные ключи.

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

Как вы защищаете свои приватные ключи ssh? Я читал о ssh-agent, но не уверен, как его использовать и можно ли его использовать в этой ситуации.

ssh-agent используется в сеансе терминала для кэширования незашифрованной версии закрытого ключа, что избавляет вас от необходимости вводить ключевую фразу каждый раз, когда она используется. Вы также можете использовать внешний аутентификатор, с помощью которого вы используете запрос / ответ аутентификации, но никогда не имеете доступа к открытому тексту. Пожалуйста, взгляните на http://www.gooze.eu/howto/using-openssh-with-smartcards/using-ssh-authentication-agent-ssh-add-with-smartcards чтобы узнать, как можно использовать ssh с безопасным аутентификатором.

Если системный администратор уходит и копирует все закрытые ключи ssh, то он получает доступ ко всем серверам. Как вы справляетесь с этой ситуацией?

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

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

Секретные ключи SSH-ключей могут быть компонентом системы многофакторной аутентификации, например смарт-картой, или другим типом аппаратного модуля безопасности (форм-фактор USB, карта PCIe, fortezza, сетевой HSM и т. Д.). Сейчас это довольно стандартно для безопасности. сознательный бизнес, правительства и военные действуют просто потому, что один компромисс может привести к массовому разоблачению; пароли слишком слабые.

Смарт-карта, в зависимости от ее безопасности, может быть либо (A) непроверенной, (B) устройством уровня 2 FIPS 140-2, вплоть до (C) управляемого криптографического устройства, используемого для сверхсекретной информации SCI и Алгоритмы Suite B. В случае (B) уполномоченная правительством лаборатория независимо проверила криптографию, а (C) АНБ провело оценку рассматриваемого устройства. B считается эквивалентом наилучшего коммерческого уровня безопасности, а C считается уровнем безопасности военного / разведывательного сообщества. Цены на прочные вещи растут!

Я согласен с ErikA. Однако бывают ситуации, когда вам не нужны закрытые ключи, защищенные парольной фразой (например, для автоматического резервного копирования). В этом случае у вас и у каждого системного администратора есть закрытый ключ.

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

В зависимости от важности каждой машины у вас может быть свое решение для каждой.