У меня есть центральный сервер, на котором я хранил все приватные ключи ssh для разных машин, на которые я хочу использовать 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: центральный сервер - это уникальное место, откуда кто-то может подключиться к другим машинам.
В зависимости от важности каждой машины у вас может быть свое решение для каждой.