Чи один безпечніший за інший?
Відповіді:
id_rsa.pub
і id_dsa.pub
є відкритими ключами для id_rsa
і id_dsa
.
Якщо ви запитуєте стосовно SSH
, id_rsa
це ключ RSA і може використовуватися з протоколом SSH 1 або 2, тоді id_dsa
як ключ DSA може використовуватися лише з протоколом SSH 2. Обидва вони дуже безпечні, але DSA, схоже, є стандарт на сьогодні (припускаючи, що всі ваші клієнти / сервери підтримують SSH 2).
Оновлення: Оскільки це було написано, DSA виявилося небезпечним. Більше інформації можна знайти у відповіді нижче.
SSH використовує пари відкритого / приватного ключів , а
id_rsa
також ваш приватний ключ RSA (на основі простих чисел), який є більш безпечним, ніж ваш приватний ключ id_dsa
DSA (на основі показників). Тримайте ваші особисті ключі безпечно і ділитися своїми id_rsa.pub
і id_dsa.pub
відкриті ключі широко.
DSA має параметр, який можна вгадати, якщо генератор випадкових чисел вашого комп’ютера є нижчим, що відкриє ваш секретний ключ. ECDSA (АППИ еліптичної кривої поновлення) є так само вразлива . Навіть при хороших випадкових числах DSA має інші проблеми щодо сили (вони також є у Діффі-Хеллмана ).
OpenSSH створює небезпечні 1024-бітові ключі ( обхідний шлях ) і тепер за замовчуванням вимикає DSA .
Криптографія еліптичної кривої пропонує підвищену складність із меншими розмірами ключів. Ed25519 (заснований на складності плоскомодельованих еліптичних кривих ) є кращим варіантом реалізації через передбачувану відсутність втручання (документи, що просочуються, показують, що АНБ США послаблює крипто-стандарти ).
На жаль, Ed25519 все ще досить новий, що вимагає OpenSSH 6.5 або GnuPG 2.1 (див. Повний список ).
Розміри ключів RSA 4096 біт повинні мати складність, порівнянну з Ed25519.
Ed25519 все ще віддають перевагу RSA через побоювання, що RSA може бути вразливим до тих самих проблем, що і DSA, хоча застосовувати цей експлойт до RSA, як очікується, буде значно складніше.
Так, RSA вважається більш безпечним.
У жовтні 2014 року OpenSSH 7 (за замовчуванням для Ubuntu 16.04LTS) вимкнув підтримку DSA за замовчуванням. Прийміть це як сильний знак того, що DSA вже не є рекомендованим методом.
https://www.gentoo.org/support/news-items/2015-08-13-openssh-weak-keys.html
RSA вважається більш безпечним.
Чи не більше (травень 2020 року, десять років по тому), з OpenSSH 8.2 , як і повідомлялося на Хуліо
Повідомлення про застаріле майбутнє
Тепер можна 1 виконувати атаки з обраним префіксом проти алгоритму хешування SHA-1 менш ніж за 50 тис. Доларів США.
З цієї причини ми вимкнемо алгоритм підпису відкритого ключа "ssh-rsa", який за замовчуванням залежить від SHA-1 у найближчому майбутньому випуску .
(Див. " SHA-1 - це розбіжність: Перше зіткнення обраного префіксу на SHA-1 та застосування до мережі PGP Web of Trust " Леран, Г. і Пейрін, Т (2020))
На жаль, цей алгоритм досі широко використовується, незважаючи на існування кращих альтернатив, будучи єдиним алгоритмом підпису з відкритим ключем, що залишився, визначеним оригінальними RFC SSH.
Кращі альтернативи включають:
Алгоритми підпису RFC8332 RSA SHA-2 rsa-sha2-256 / 512.
Ці алгоритми мають перевагу у використанні того самого типу ключа, що і "ssh-rsa
", але використовують безпечні алгоритми хешування SHA-2.
Вони підтримуються з OpenSSH 7.2 і вже використовуються за замовчуванням, якщо клієнт і сервер їх підтримують.Алгоритм підпису ssh-ed25519.
Він підтримується в OpenSSH з випуску 6.5.Алгоритми ECDSA RFC5656: ecdsa-sha2-nistp256 / 384/521.
Вони підтримуються OpenSSH з випуску 5.7.Щоб перевірити, чи використовує сервер слабкий алгоритм відкритого ключа ssh-rsa для автентифікації хосту, спробуйте підключитися до нього, видаливши
ssh-rsa
алгоритм із дозволеного списку ssh (1):ssh -oHostKeyAlgorithms=-ssh-rsa user@host
Якщо перевірка ключа хосту не вдається, і немає інших підтримуваних типів ключів хосту, серверне програмне забезпечення на цьому хості слід оновити.
Майбутній випуск OpenSSH дозволить
UpdateHostKeys
за замовчуванням дозволити клієнту автоматично переходити на кращі алгоритми.
Користувачі можуть розглянути можливість увімкнення цієї опції вручну .