Вопрос или проблема
Многие люди рекомендуют использовать Ed25519
вместо RSA
ключей для SSH.
На странице введения в Ed25519
(http://ed25519.cr.yp.to/) говорится:
[..] сломать это имеет схожую сложность с тем, чтобы сломать [..] RSA с ключами ~3000 бит [..]
Так что, говоря только о безопасности (не о скорости!), почему кто-то не должен предпочитать RSA 4096
вместо Ed25519
?
Если Ed25519
предоставляет только ~3000 бит силы ключа, то RSA
с 4096 бит должен быть гораздо более безопасным?
Силы ключей и их эквиваленты теряют смысл, когда они достигают зоны “не могут быть сломаны с помощью существующих и предсказуемых технологий”, потому что нет ничего более безопасного, чем это. Это общая рефлексивная реакция пытаться воспринимать размеры ключей как обеспечивающие некоторый резерв безопасности, но такое рассуждение не срабатывает после определенного момента.
В основном, лучшие известные алгоритмы для взлома RSA и для взлома эллиптических кривых были известны уже 25 лет назад. С тех пор эффективность взлома улучшилась благодаря более быстрым компьютерам, с темпом, который был правильно предсказан. Это дань уважения исследователям, что они могли, путем большого количества тонкой настройки, держаться в ногу с этим темпом, как показано на этом графике:
(извлечено из этого ответа).
Суть в том, что хотя больший ключ предлагает большую предсказуемую устойчивость, такое предсказание работает только до тех пор, пока улучшения в технологиях действительно могут быть предсказаны, и любой, кто утверждает, что знает, что компьютеры смогут делать более чем через 50 лет, либо пророк, либо сумасшедший, либо лжец, либо все это вместе.
Через 50 лет оптимистическая формула, представленная в ответе, указанном выше ((год – 2000) * 32 + 512) означает, что в лучшем случае, рекорды RSA могут приблизиться к 2592 битам.
Вывод заключается в том, что нет значимого способа, при котором 3000-битные и 4000-битные RSA ключи могут быть сравнены друг с другом с точки зрения безопасности. Они оба “неразрушимы в предсказуемом будущем”. Ключ не может быть менее сломанным, чем не сломанный.
Дополнительный и важный момент заключается в том, что “постоянные” ключи в SSH (ключи, которые вы генерируете и храните в файлах) используются только для подписей. Взлом такого ключа позволил бы злоумышленнику выдать себя за сервер или клиента, но не расшифровать ранее записанную сессию (фактический ключ шифрования извлекается из эфемерного обмена ключами Диффи-Хеллмана или его эллиптической кривой). Таким образом, имеет ли значение, может ли ваш ключ быть сломан или нет, в следующем столетии? Нет, совершенно никакого значения. Для достижения “наконечная” безопасности (хотя бы в контексте компьютерного мира) все, что вам нужно для вашего SSH-ключа, — это ключ, который не может быть сломан сейчас, с наукой и технологиями, как они известны сейчас.
Еще одна точка зрения на то же самое заключается в том, что ваши соединения могут быть такими же безопасными, как два конечных узла. Ничто не сдерживает ваших врагов, будь то злонамеренные преступники, шпионы или что-то еще, пытаться одолеть вас, играя “по правилам” и пытаясь взломать вашу криптографию заранее. Нанимать тысячи информаторов для слежки за всеми (и друг за другом) очень дорого, но это уже делалось, что гораздо больше, чем можно сказать о взломе единого RSA ключа длиной 2048 бит.
Согласно gitlab
Книга “Практическая криптография с Go” предполагает, что ключи ED25519 более безопасны и эффективны, чем ключи RSA.
Если вы используете RSA ключ … рекомендуется размер ключа как минимум 2048 бит.
Ключ ED25519 лучше
ssh-keygen -t ed25519 -C "<комментарий>"
Если используется rsa, минимальный размер составляет 2048, но лучше использовать размер 4096:
ssh-keygen -o -t rsa -b 4096 -C "[email protected]"
ED25519 уже шифрует ключи в более безопасный формат OpenSSH.
Ответ или решение
SSH ключи: Ed25519 против RSA
Вопрос использования ключей Ed25519 вместо RSA в контексте SSH стал предметом обсуждения среди специалистов по информационным технологиям. Вставим дополнительные детали и проанализируем аспекты, касающиеся безопасности, производительности и долгосрочной устойчивости этих криптографических технологий.
1. Безопасность
Основная причина, по которой многие эксперты рекомендуют Ed25519, заключается в его безопасности. Несмотря на то, что Ed25519 может быть эквивалентен RSA с ключами около 3000 бит, важно учитывать, что оба алгоритма обеспечивают уровень безопасности, который в настоящее время считается недоступным для взлома с помощью актуальных технологий. Как указывает авторитетный источник, превышение этого уровня безопасности не дает никакого реального преимущества в ближайшие десятилетия.
Тем не менее, постараемся рассмотреть, почему выбор в пользу Ed25519 может быть более оправданным:
-
Устойчивость к квантовым угрозам: Хотя Ed25519 не является полностью защищенным от возможных атак на квантовых вычислительных системах, его конструкция подразумевает, что даже если такие системы станут причиной нарушений, ключи Elliptic Curve будут все еще более стойкими, чем RSA.
-
Упрощенная и более быстрая проверка подлинности: Алгоритм Ed25519 требует меньше вычислительных ресурсов для создания подписей и проверки подлинности, что делает его более эффективным в условиях ограниченных вычислительных ресурсов.
-
Сила короткого ключа: Dong напоминал, что в случае Ed25519 существует меньше вероятности ошибок при генерации ключей из-за его более устойчивой структуры. Длина ключа не всегда прямо пропорциональна безопасности.
2. Производительность
Ed25519 не только высокозащищенный, но и более производительный по сравнению с RSA, особенно на устройствах с ограниченными вычислительными мощностями. Отметим, что:
-
Быстрота работы: Создание и верификация Ed25519 подписей происходит быстрее и требует меньше ресурсов по сравнению с аналогичными операциями для RSA.
-
Оптимальная длина ключа: Ключи Ed25519 имеют фиксированную длину (256 бит), что уменьшает объем памяти, необходимый для их хранения, в отличие от RSA, где эффективные длины начинаются от 2048 бит и могут достигать 4096 бит.
3. Адаптация и будущее
При выборе между Ed25519 и RSA, важным аспектом становится долгосрочное использование и совместимость:
-
Современные стандарты: Ed25519 рекомендуется как новый стандарт в SSH. Многие современные сервисы и платформы, такие как GitLab, активно поддерживают Ed25519, что делая его предпочтительным выбором для новых проектов.
-
Заключение: Хотя RSA с ключами 4096 бит и предлагает высокий уровень безопасности, Ed25519 обеспечивает значительно большую производительность, более высокую степень защиты и лучшую совместимость с современными стандартами.
Заключение
В контексте нынешних требований к безопасности и производительности, использование ключей Ed25519 представляет собой более разумный выбор для большинства приложений SSH. Обеспечивая необходимую защиту, скорость и ресурсную эффективность, Ed25519, безусловно, будет актуален и в ближайшие десятилетия. Таким образом, вместо того чтобы зацикливаться на потенциальных различиях в битности ключей, лучше направить усилия на внедрение более безопасных и эффективных решений, соответствующих современному уровню технологического развития.