У меня есть клиент, который теперь требует от нас менять все пароли, каждый 90-й день из-за их толкование GDPR. Что's не хорошо для веб-системы мы разрабатываем для них, потому что мы можем просто выполнять эти правила. Но они также требуют от нас, чтобы изменить пароли на SSH-ключи, используемые для доступа к серверам, которые, ну, не в порядке.
а. Создавать новые ключи. б. Распределить все открытые ключи для существующих серверов. С. Удалить существующие открытые ключи. д. Старый архив закрытых ключей .
Я'ве читать здесь некоторые посты про кукол, но как я понимаю они стремятся только решить проблему с распространением открытых ключей между серверами и не создает новых ключей каждые N дней? Я должен идти дальше с моей исследования в кукол?
Клиент-то здесь не так и не понимает, что они'вновь говорю. Смена пароля на секретный ключ-это очень плохо идея, потому что она имеет очень нелогичным свойства безопасности.
Обычно пользователи думают о паролях, что они изменились как "уже не секрет, что". Они могут стать одноразовые пароли для недорогих сайтов, онлайн ручки/ников, punchlines до шуток, и т. д. и любые бумаги, на которой они'вновь написаны, может стать лома, что'с открытыми.
Пароль используется для шифрования закрытого ключа , , что's не как это работает! Пароль должен храниться в секрете навсегда если все привилегии, связанные с ключом были отозваны (и следующие Не'т обратиться к SSH ключи, но если пароль на ключ, который используется не только для подписания, но для получения приватных сообщений, то навсегда на самом деле означает навсегда). Это из-за возможности, что зашифрованный файл закрытого ключа был получен злоумышленником или где-то хранить (как в резервной копии), где она может быть получена злоумышленником в будущем. Если пароль не выявлено, это'затем с зараженным.
В некотором смысле, частным ключом, который прошел Н парольные фразы в своей жизни, составляет 1/N как безопасной, так как знание кто-то один из последних фраз достаточно, чтобы скомпрометировать ключ, если злоумышленник имеет доступ к зашифрованному файлу закрытого ключа.
Теперь вернемся к вашей проблеме.
Если клиент не ухватываются за это и"СШ пароли" в заблуждение и окопались на ней, правильно было бы сделать, просто не доведя ее до них, и следовать рекомендациям по ключевым регулировать себя. Но теперь, что они имеют, вам, возможно, придется что-то делать, чтобы их удовлетворить. Вы могли бы попробовать объяснить, как пароли шифрование закрытых ключей имеют различные свойства защиты от паролей, но учитывая то, как неправильно заказчика о многих вещах здесь (истечения срока действия пароля-плохая идея в общем) я сомневаюсь, что's идя на работу.
Что оставляет вас с задачей автоматизации системы распространения новых ключей. Я бы настоятельно рекомендуется от автоматизации системы генерации новых ключей централизованно, с секретные ключи никогда не должны быть перемещены между машин. Вместо этого, вы должны иметь процессы/памяток/скриптов, чтобы сделать его легким для сотрудников/подрядчиков на вашей стороне, которым необходим доступ для создания новых закрытых ключей, и опубликовать соответствующие открытые ключи, и система распространения публичных ключей (кукольный или иначе), которые вы используете подтолкнуть их к системам, они должны открыть.
Дополнительно: единственное, что может убедить клиента отказаться от этого, это отметить, что есть принципиально нет возможности обеспечить условия, новый отдельный ключ есть различные фразы, чем старый, или даже, что есть фразы на все.
Ответ на ваш первый вопрос: "это возможность изменить пароль на существующий ключ SSH?&и" это да. С OpenSSH, что так же просто, как SSH-ключей -п [-п old_passphrase] [-Н new_passphrase] [-F и ключей]
Проблема в том, что пароль на файл закрытого ключа, который представляет собой простой формат, который не'т иметь поддержку на дату истечения срока действия. Также большая часть концепции ключ проверки подлинности на основе в СШ заключается в том, что закрытый ключ не централизованно управляемой, она должна существовать только на пользователя'с рабочей станции, которая делает его почти невозможно применить пароль истекает политики на приватном ключе.
Вместо этого: в каждой среде я'ве было в позапрошлом политика паролей на объект учетной записи пользователя, а не на способ, используемый для доступа к учетной записи. Когда срок действия пароля истек, либо аккаунт заблокирован, все методы доступа вам заблокирована включая SSH-ключ.
Добавить многофакторной аутентификации, когда вам нужно больше безопасности на счете.
Но я'м любопытное, что другие люди сделали для решения ваших законных интересов.
Используя AuthorizedKeysCommand механизм действия может быть реализована на стороне сервера. От простой проверки файла метку времени на что-то более сложное.
Одна возможность, которые могут или не могут быть достаточно с помощью SSH пользователей Калифорния, которая позволяет установить срок службы на подпись ключа. Любой автоматизации вы поставили вокруг ключа подписи может отказаться подписать более 90 дней. Затем добавьте открытый ключ ЦС пользователю TrustedUserCAKeys в /etc/протокол ssh/sshd_config и установить AuthorizedKeysFile нет.
Вы могли бы использовать такой инструмент, как Hashicorp'ы хранилища для создания недолговечны, подписанные ключами SSH. Каждый пользователь может получить новый ключ каждый день (или около того). Вы хотели аутентификации в хранилище, чтобы получить сертификат, используя все, что вы используете сегодня, как LDAP-сервер.
Усилие это не огромно, но по моему опыту больше, что то, что @Марк затронул в своем комментарии. Вы в принципе замена одной проблемы (невежественный требованиям клиента) с другой (управления шард).
Но это позволит немного другой сценарий, как легко создавать в доме x509 в certs и управление паролями базы данных, секреты приложения в текстовый файл. Вы судите усилий и ROI.
Также обратите внимание, что открытым исходным кодом версия не имеет функции д (все остальное).
Вы можете использовать ключ агента, который включает в себя время на основе одноразовых паролей (аналогичного пароля). Теперь вашу "пароль" и меняется каждую минуту.
<суб>все здесь абсолютно верно: это глупо.</суб>