Чи безпечно видавати свій відкритий ключ SSH для роботи?


60

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

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


Відповіді:


77

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

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

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

Публічний ключ вводить елемент конфіденційності: якщо хтось знає, що ви використовували той самий відкритий ключ для входу в A і для входу в B, він знає, що ця особа, яка увійшла в A і B. Просто володіння відкритим ключем змушує вас підозрюваний, що у вас також є приватний ключ, тому ви втрачаєте деяку анонімність. Але це зазвичай незначно, особливо якщо ви просто зберігаєте ключ ~/.sshтам, де його можуть бачити лише системні адміністратори (які також знають, з якої IP-адреси ви входили).

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


@NaftuliTzviKay Насправді є щось, що тут слід врахувати, що є оманом. Щоб використовувати ваш відкритий ключ, система, з якої ви обстрілюєтесь, повинна мати доступ до вашого приватного ключа. Це добре. Якщо цей приватний ключ зберігається в цій системі, він вразливий, а віддалена система стає вразливою. У цьому допомагають дві речі, зашифровані домашні папки та пароль вашого ключа. Тому для досягнення повного підвищення безпеки, що надається PKI, ви втратите деяку ефективність. Вам або вашій організації потрібно зробити аналіз ризику, щоб визначити, де провести межу.
Xalorous

16

Жиля відповідь , як правило , добре, за винятком

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

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


2
Ви завжди повинні використовувати зашифровані SSH ключі з цієї причини
ItalyPaleAle
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.