Чи добре обмінюватися файлом приватного ключа між декількома комп'ютерами / службами?


110

Таким чином, ми всі знаємо, як використовувати відкритий ключ / приватні ключі за допомогою SSH тощо. Але який найкращий спосіб їх використання / повторного використання? Чи слід тримати їх у безпечному місці назавжди? Тобто, мені потрібна була пара ключів для доступу до GitHub. Я створив пару з нуля і використовував її деякий час для доступу до GitHub. Потім я відформатував свій жорсткий диск і втратив цю пару. Велика справа, я створив нову пару і налаштував GitHub на використання своєї нової пари. Або це щось, що я не хочу втрачати?

Також мені знадобилася пара відкритих / приватних ключів для доступу до систем нашої компанії. Наш адміністратор попросив мене відкрити ключ, і я створив нову пару і передав його йому. Чи взагалі краще створити нову пару для доступу до різних систем або краще мати одну пару і повторно використовувати її для доступу до різних систем? Аналогічно, чи краще створити дві різні пари і використовувати одну для доступу до систем наших компаній з дому, а іншу для доступу до систем з роботи, або краще просто мати одну пару і використовувати її з обох місць?


Це не є безпосередньо відповіддю на ваше запитання, але бажано мати також фрази для кожного ключа. В ідеалі окремі парольні фрази для кожного ключа (використовуйте диспетчер паролів). Причина полягає в наступному: якщо приватний ключ порушений (ноутбук викрали, комп'ютер зламали), у вас є певний час, перш ніж ключ може бути жорстоким, і ви можете замінити відкритий ключ на всіх машинах, у яких його є , перш ніж ваш зловмисник зможе. Джерело: help.ubuntu.com/community/SSH/OpenSSH/…
Xandor Schiefer

Відповіді:


86

Ви обов'язково повинні мати окремі приватні ключі за походженням . В основному це означає, що зазвичай має бути одна копія кожного приватного ключа (не рахуючи резервних копій). Добре використовувати той самий приватний ключ від тісно пов’язаної машини, коли ситуація, коли ввірвання в один, в основному дає вам доступ до іншого (наприклад, якщо вони знаходяться один у одному shosts.equiv). Не використовуйте один і той же приватний ключ на машинах в різних сферах (наприклад, вдома та на роботі), ніколи не діліться приватним ключем між двома користувачами та ніколи не діліться приватним ключем між ноутбуком та будь-якою іншою машиною.

Здебільшого я не бачу сенсу мати різні приватні ключі для різних напрямків. Якщо приватний ключ порушений, усі інші приватні ключі, що зберігаються в одному каталозі, також будуть порушені, тому не буде додано жодних ускладнень без жодної користі для безпеки.

Якщо дотримуватися цих принципів, кожна пара ключів ідентифікує одну (машину, користувача) пару, що полегшує управління авторизацією.

Я можу придумати два винятки із загального правила одного приватного ключа за походженням:

  • Якщо у вас ключ без пароля, який надає доступ лише до певної команди на певній машині (наприклад, автоматизованого резервного копіювання або механізму сповіщення), цей ключ повинен відрізнятися від загального ключа доступу до оболонки.
  • Якщо деякі машини періодично підключені, у вас може бути старий приватний ключ поряд із новим приватним ключем, поки ви не обходитесь, щоб закінчити розгортання нового ключа.

5
Ось так я завжди використовував свою клавіатуру. Я не розумів, чому GitHub виступає за створення нового ключа в своїх інструкціях із налаштування. Я проігнорував це і використав свій стандартний ключ. Я припускаю, що вони консервативні.
toolbear74

Гаразд, ви кажете "Не використовуйте один і той же приватний ключ на машинах в різних областях", але що робити, якщо DNS вирішить задане ім'я хоста на будь-якій машині залежно від вашого місця? Не ділячись приватним ключем, я отримую попередження або збої, коли намагаюся сш або rsync до цього імені хоста, оскільки ssh плутається при наявності двох окремих ключів для того ж імені хоста.
Майкл

@Michael Я не розумію, яка проблема може виникнути з ключами користувача в описуваному вами сценарії, в чому полягає ця нитка. SSH заплутався б у ключах хоста , але, як ви бачите, це відкритий ключ хоста, а не приватний ключ хоста, і обмін приватним ключем хоста є небезпечним - я рекомендував би лише якщо хости повністю еквівалентні (надмірність у випадку, якщо одна з них виходить з ладу), а можливо, навіть тоді.
Жиль

Ну, тоді добре. Здається, існує не так багато чіткого розрізнення між ними, і просто припускається, що ви знаєте, про кого йдеться.
Майкл

1
@JSBach Наявність окремих ключів у царині дозволяє визначити досконаліші дозволи (ключ, що зберігається у царині низької безпеки A, дозволений для використання між машинами A, але вхід у B вимагає більш сильного коефіцієнта аутентифікації) і дозволяє відкликати їх окремо (царство A зіпсовано, але я все одно можу увійти в C з B). SSO - це випадок, коли ви входите в систему найвищої безпеки, а потім можете ввійти в інше місце. Я не знаю, які ризики вони бачать у наявності декількох ключів на користувача. Це було б темою інформаційної безпеки .
Жиль

4

Я не знаю, який найкращий спосіб, але я можу сказати, який мій шлях.

Як sysadmin я використовую інший ключ для доступу до кожного сервера / послуги як root. Таким чином, якщо ключ загублений або порушений, я обмежую ризик одним сервером, і мені не потрібно оновлювати всі свої служби абсолютно новими ключами.

Говорячи про користувачів, я використовую різний ключ для кожного з них. Цим ключем користувач може отримати доступ до послуги, яка йому потрібна як непривілейований користувач. Таким чином я можу легко надати або відкликати доступ до окремих послуг кожному користувачеві. У випадку, якщо користувач втратить ключ, я можу його видалити з усіх служб і обмежити ризик несанкціонованого доступу.


+1 Я збираюся поговорити зі своїм начальником про нову політику використання ключів ;-) на сервер / службу звучить ще безпечніше, ніж просто в мережі
Diskilla

1

Я вважаю, що ви могли використовувати приватний ключ де завгодно, доки ви накладете на нього парольну фразу, тобто сказати, чи хочете ви поділитися своїм приватним ключем з кількома машинами, скажімо, ноутбук 1, 2, робочий стіл 1, 2, має бути добре.

З мого досвіду, моя головна машина - це настільний робочий стіл, який я більшу частину своєї роботи виконую з його потужним процесором, але часом мені потрібно використовувати свій ноутбук на мобільному пристрої, усунення несправностей у дата-центрі та ін. що я маю свій відкритий ключ.


1
Прочитайте найкращу відповідь тут. Ви робите це неправильно. Справа не в тому, що ти не можеш це зробити, але не повинен.
PhilT

2
Не можу зрозуміти, чому всі голоси. Університетські мережі (наприклад) часто мають мережевий домашній каталог, тому користувач користується повсюдно тим самим приватним ключем, навіть на ноутбуках, яким ви надаєте. Поки ви не копіюєте її незашифрованою через Інтернет, я вважаю, що це добре, якщо ви розумієте ризик. Кривавіше зручніше і тому, що не потрібно додавати свій відкритий ключ до 2000 різних місць тільки тому, що ви ввійшли в іншу машину.
Асфанд Казі

Оновлено, тому що ви не повинні втрачати представника для цієї відповіді. Це особисті переваги. Очевидно, що використання окремого ключа на послугу та машину в кінцевому підсумку дає вам більше контролю, але іноді це лише витрата часу в залежності від вашого випадку використання.
Даніель Девхерст

0

У моїй компанії ми використовуємо ці ключові користувачі. Це означає випадок другий. У користувача є свій ключ, і цей використовується для кожної машини, яку він використовує для підключення до системи компанії. моя думка - використовувати один ключ для однієї системи. Це означає, що ви використовуєте цю клавішу на кожному пристрої, який потрібно підключити до певних мереж. Для вашого випадку це був би один ключ для GitHub та один ключ для системи компанії. Отже, якщо ваш адміністратор знову вас запитає, я б дав йому той самий ключ, що і минулого разу. не новий. Але я не знаю, чи існує загальна політика використання цих ключів, і я роблю це з тих пір неправильно. Це точно можливо ;-)


0

Створений вами відкритий ключ призначений для всіх. Це дозволить їм a) перевірити автентичність b) шифрувати для вас

Приватний ключ - ну, приватний. Це тільки для вас. І це ключ, який слід резервувати десь у захищеному місці. Ви також можете зашифрувати його захищеним паролем, якщо, наприклад, збережете його на USB-накопичувачі.

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


3
Дякую, але ваша відповідь, здебільшого, не пов'язана з моїм запитанням. Дивіться відповідь @ Diskilla.
Беранг
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.