Чи безпечний обмін ключами SSH, ніж автентифікація пароля?


9

Віддалені користувачі підключаються до кількох сервісів у нашому головному офісі через Інтернет за допомогою SSH. Пароль SSH синхронізується з їх обліковим записом A / D LAN.

Чи було б користувачі принести копію ключа SSH додому, використовуючи щось на зразок компакт-диска або аркуша паперу, бути більш безпечним, ніж використання користувачам пароля? Або мені потрібно вимагати обох?

Моє запитання, можливо, може бути сформульовано так: чи є вразливість протоколу автентифікації пароля SSH?

Саме це повідомлення змушує мене сумніватися:

The authenticity of host 'xxx.xxx.xxx.xxx (xxx.xxx.xxx.xxx)' can't be established.
RSA key fingerprint is xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:.
Are you sure you want to continue connecting (yes/no)?

Відповіді:


22

Повідомлення, яке ви бачите, є окремим питанням. Він просить вас підтвердити, що хост, з яким ви підключаєтесь, справді такий, якого ви очікуєте. З сервера ви можете отримати відбиток пальців, запустивши ssh-keygen -l -f /etc/ssh/ssh_host_rsa_key.pub. Потім, коли ви вперше підключаєтесь віддалено, ви можете переконатися, що відбитки пальців збігаються.

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

Однак проблема залишається - як дізнатися, який ключ є правильним? Після першого з'єднання відкритий ключ зберігається у вашому ~/.ssh/known_hostsфайлі, тому наступні з'єднання є нормальними. Але в перший раз вам або потрібен якийсь позаширокий спосіб отримання відбитка пальців, або ж ви слідуєте моделі "TOFU": довіра на перше використання.

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

Існують (принаймні) три причини паролів гірші за ключі:

  1. Вони можуть бути жорстокими. Типовий вибраний користувачем 8-символьний пароль містить близько 30 біт відгадки-ентропії. Пара відкритого / приватного ключів ssh становить 1024 біт або більше. Фактично неможливо переправити ssh-ключ, але автоматичне відгадування пароля відбувається постійно.
  2. Вони можуть бути німими. Користувачі звичайно вибирають жахливі паролі, навіть із встановленими обмеженнями, і вони, як правило, використовують більш жорсткі паролі в декількох місцях. Це очевидно полегшує атаки.
  3. Паролі можна вкрасти віддалено. Коли ви використовуєте SSH, пароль шифрується на дроті, але дуже часто звичайно замінювати ssh-сервер на компрометованих системах таким, який реєструє всі паролі. За допомогою ключів приватний ключ залишається в локальній системі і взагалі ніколи не надсилається, і тому його неможливо вкрасти без фактичного збитку клієнтської машини.

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

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


Чудова відповідь. Саме те, що я шукав. Дякую!
srmark

щодо номера 3) Якщо ви входите на вже скасований сервер ... навіщо хтось хоче ваш пароль? Єдина причина, про яку я можу подумати, - це якщо ви використовуєте один і той же пароль скрізь.
Sirex

Сірекс - справа; вони крадуть ваш пароль і використовують його в інших системах. Зауважте у питанні, що паролі використовуються як "LAN A / D". Отже, вони викрадають ваш пароль з сервера входу в ssh, а потім отримують доступ до сервера Windows. Крім того, тепер, коли система порушена, вам доведеться пройти проти "вогнем, всі знову змінюють ваш пароль".
mattdm

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

вниз з набридливими користувачами! :(
Sirex

1

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

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

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


Так, я розумію, що ти кажеш. Однак у цьому випадку я просто намагаюся з’ясувати, чи можна зламати автентифікацію пароля, використовуючи щось на зразок людини посередині.
srmark

для ssh, як конкретного прикладу, ні, оскільки розділ із введенням пароля також зашифрований, і ключі змінюються під час сеансу (я вважаю, 30 секунд). Але це не відображення пароля проти пароля
Sirex
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.