Какую длину ключа RSA следует использовать для сертификатов SSL?

96

Я в процессе создания CSR, и мне интересно, какая, возможно, лучшая длина для моего ключа RSA.

Конечно, 384, вероятно, слишком слабый, а 16384, вероятно, слишком медленный.

Есть ли консенсус относительно длины ключа, который следует использовать в зависимости от срока действия сертификата?

Изменить: Как и большинство людей, я хочу, чтобы мой ключ был достаточно сильным. Меня не беспокоит, что АНБ может сломать мой ключ в 2019 году. Я просто хочу знать, что лучше всего, когда кто-то планирует заниматься обычным бизнесом (например, сайт электронной коммерции)

Бранн
источник

Ответы:

103

По состоянию на 2020 год ключи RSA должны быть 2048 бит.

1024 бит

  • 1024-битные сертификаты RSA устарели и не принимаются браузерами.
  • Firefox перестал принимать 1024-битные сертификаты RSA в 2014 году.
  • Центры сертификации перестали доставлять 1024-битные сертификаты RSA в 2014 году или ранее. См. Уведомление GlobalSign или Comodo .
  • 1024-битные ключи устарели, потому что их можно было взломать в небольшом центре обработки данных (тысячи ЦП или сотни ГП, может быть, за несколько месяцев). Это может показаться большим, но это было вполне доступно для любой крупной организации или правительства.

2048 бит

  • 2048-битные сертификаты RSA в настоящее время являются принятой нормой.
  • Базовый план по умолчанию, предоставляемый CA и используемый программным обеспечением.
  • Со временем тоже будет взломан. Не знаю когда, но могут потребоваться десятилетия.
  • Для взлома удвоения размера требуется на много порядков больше вычислительной мощности. Посмотрите вопрос, насколько сильнее RSA 2048 по сравнению с 1024 .

4096 бит

  • 4096-битные сертификаты RSA - следующий шаг
  • Широко доступен и поддерживается. Все основные центры сертификации могут предоставлять RSA как 2048, так и 4096 бит, включая Let's encrypt .
  • Стоимость вычислений не зависит от размера ключа. 4096 не вдвое медленнее 2048, возможно, он в 10 раз медленнее обрабатывается. Не обновляйте сертификаты вслепую до 4096 бит, не принимая во внимание влияние на производительность .
  • «Сеть» в основном остается на 2048-битных сертификатах, потому что она не может нести стоимость оборудования для 4096-битных сертификатов. Рассмотрим крупных игроков, таких как Google, CloudFlare, NetFlix, с огромным трафиком и огромным объемом оборудования.

3072 бит

  • 3072 бита - это не вещь. Переходите прямо к 4096 битам.
  • Совершенно возможно сделать 3072-битную криптографию, просто никакое программное обеспечение не реализует, не поддерживает и не рекламирует ее официально.
  • Исторически сложилось так, что примерно в 2010-2015 годах была предпринята попытка запустить 3072 для случаев использования, когда дополнительные вычислительные затраты 4096 не идеальны. Он исчез, но есть еще несколько старых статей, раскрывающих достоинства (более быстрого) 3072.

Extra

  • Впервые RSA был публично описан в 1977 году, и он все еще силен почти 50 лет спустя. Просто нужно увеличить количество бит, чтобы не отставать от более быстрых компьютеров.
  • Существует еще один метод криптографии с открытым ключом, основанный на эллиптических кривых, см. ECDSA (1992).
  • Существует огромный разрыв между возможностями пользователя и злоумышленника. Веб-сервер или мобильный клиент имеют один (маломощный) процессор. У злоумышленника может быть целый центр обработки данных, для справки, недавно построенный центр обработки данных AWS содержит около 60 000 серверов.
  • Невероятно, что одно мобильное устройство может вычислить некоторые математические вычисления за несколько секунд ... что миллионы компьютеров не могли даже мечтать угадать за всю жизнь.
Георг Шелли
источник
13
Различия («256-битный алгоритм будет работать вечно» с одной стороны, и «1024-битный уже мусор» с другой) обусловлены различиями между симметричными и асимметричными алгоритмами, а также типами ключей, используемых в каждом из них. При любом заданном «эквивалентном уровне безопасности» вы увидите очень разные исходные числа для длин ключей в симметричном и асимметричном режимах.
Ti Strga 01
1
По состоянию на сентябрь 2015 года, похоже, отрасль перешла к тому, чтобы не принимать менее 2048-битных CSR. См. Ответы ниже и статью поддержки Comodo
angularsen
2
@anjdreas, хотя и правда, что 2048 - это абсолютный минимум , я буду очень осторожен при цитировании пунктов из статей CA.
Pacerier
Ссылка RSA Labs теперь 404, кстати
jocull
2
примечание: полностью переписал ответ через 11 лет, с актуальными рекомендациями и ссылками. комментарии выше здесь комментировали предыдущие исправления.
user5994461
12

Поскольку многие клиенты требуют соблюдения криптографических стандартов NIST, я использую рекомендации в специальной публикации NIST 800-57, Рекомендации по управлению ключами, часть 1, §5.6. Большинство наших приложений хорошо подходят для 112 «бит» безопасности, так что это соответствует тройному DES (или небольшому увеличению до 128-битного AES) для симметричных шифров и 2048-битному ключу для RSA. См. Таблицу 2 для приблизительной эквивалентности.

Верно или нет, но возможность направить их к публикации NIST помогает клиентам лучше чувствовать безопасность (если они потрудятся спросить).

Эриксон
источник
Статья, упомянутая в этом ответе, преобразована в Рекомендацию по управлению ключами: Часть 1: Общие (Редакция 3) . Текущая редакция - июль 2012 г.
AaA
Я вижу, что страница NIST была удалена и заменена сообщением: «В связи с прекращением государственного финансирования сайт csrc.nist.gov и все связанные с ним действия в Интернете будут недоступны до дальнейшего уведомления».
wu-lee
Вот эта страница, на которой сравниваются некоторые рекомендации по длине ключей keylength.com/en/compare
wu-lee
10

Центры сертификации не будут подписывать csr размером менее 2048 бит, поэтому вам следует сгенерировать csr размером 2048 бит.

Йог
источник
6
[необходима цитата]
CodesInChaos
2
Источник - answers.ssl.com/877/… - некоторые центры сертификации, такие как Affirmtrust / Trend Micro, уже встраивают 4096-битные корни, поэтому мы, вероятно, поменяем их в ближайшие годы
Йоги
Я только что попробовал Comodo, и они не принимают меньше 2048 бит .
angularsen
7

В августе этого года Microsoft собирается развернуть исправление для Server 2003/2008, Win7 и т. Д., Которое потребует использования как минимум 1024-битного ключа RSA. Так что вы можете начать делать это своим «минимальным» стандартом.

кормили
источник
6

Для сертификатов SSL, используемых на веб-сайтах, важно отметить этот текст с веб-сайта Thawte.com (по состоянию на 2014-07-22):

Отраслевые стандарты, установленные Форумом центров сертификации / браузеров (CA / B), требуют, чтобы сертификаты, выпущенные после 1 января 2014 г., ДОЛЖНЫ иметь длину ключа не менее 2048 бит.

Майк
источник
Муа, Facebook по-прежнему использует длину ключа 256 => b3.ms/XmWn0e1BMYOk
Thomas Decaux
Чтобы уточнить, что Facebook не использует RSA, он использует ECDHE_ECDSA, следовательно, меньшую длину ключа.
Майкл
5

Мне нужно было создать несколько новых сертификатов SSL, и ответы выше меня не удовлетворили, потому что они казались расплывчатыми или устаревшими, поэтому я немного покопался. Итог: выбранный ответ правильный, используйте "2048-битные ключи ... больше не имеет смысла" .

Увеличение длины бит до 4096 добавляет потенциально значимую нагрузку на ваш сервер (в зависимости от вашей существующей нагрузки), предлагая в основном незначительное обновление безопасности.

Если вы находитесь в ситуации, когда вам нужен ключ длиной более 2048 бит, вам не нужна более длинная длина в битах, вам нужен новый алгоритм

SemanticZen
источник
1

Я думаю, что 4096 подходит для RSA

Проверить эту ссылку

В конце подписи SHA-1 нет ничего нового, но Google ускорил процесс хромирования. В ближайшие несколько недель вам следует проверить их сертификаты SSL.

Это может быть полезно

Vim
источник
1
Не могли бы вы также разместить несколько ссылок на английском языке? Мой немецкий слабоват.
Вай Ха Ли
Де-юро ключи RSA могут иметь длину только 1024, 2048 или 3072 бит (согласно PKCS # 1 2.2 и FIPS 186-4).
апрелев
Flame показал, что злоумышленники будут атаковать хэш, а не более крупный модуль. Если вы используете SHA-1, вы также можете использовать 1024-битный модуль, поскольку хэш и модуль обеспечивают эквивалентную безопасность. 1024-битный модуль обеспечивает более быстрые операции, чем более крупный 4096-битный модуль.
jww
0

ENISA рекомендует 15360 бит. Взгляните на PDF-файл (стр. 35)

http://www.enisa.europa.eu/activities/identity-and-trust/library/deliverables/algorithms-key-sizes-and-parameters-report/at_download/fullReport

Миха
источник
4
Не совсем. Рекомендация на краткосрочный период (не менее десяти лет) - 3072. RSA 15360 рассчитан на длительный срок (от тридцати до пятидесяти лет) и имеет смысл только в том случае, если вы ожидаете, что сможете хранить секретный ключ в секрете в течение этого времени.
Henrick Hellström