По предварительным прогнозам, стандартные на сегодняшний день 2048-битные ключи шифрования, в 2015 году рекомендованные к использованию NIST, Национальным институтом стандартов и технологий, все еще будут достаточно безопасны вплоть до 2030 года. Тем не менее в целом ряде систем безопасности уже сейчас можно встретить новые 4096-битные ключи. С чем связано их «преждевременное» появление, поговорим под катом.

Как мы уже написали выше, предполагается, что RSA-ключи длиной 2048 бит должны продержаться еще приблизительно 8-10 лет. Этот прогноз основан на статистике увеличения вычислительных мощностей и развития методов математического анализа. Грубо говоря, чем мощнее компьютер и сложнее алгоритм вычисления зашифрованных данных, тем более уязвимы ключи малого размера. К примеру, в 2010 году, когда в ходу были используемые с 2007 года 1024-битные ключи, группе ученых успешно удалось вычислить данные, зашифрованные 768-битным ключом. Следовательно, вероятность уязвимости 1024-битных ключей существенно возросла.

На самом деле, одним эмпирическим подходом дело не ограничивается: у криптологов есть целый набор индикаторов потенциальной уязвимости ключей.

Итак, в ближайшем будущем ожидается переход на новые 4096-битные ключи. Значит ли это, что 2048-битные ключи уязвимы прямо сейчас?

В двух словах – нет, всё в порядке. Обратимся к специальной публикации NIST 800-57, часть 1. Это уже 5 ревизия этого документа, датированная маем 2020 года. В таблице 2 упомянутого выше раздела приводится информация о стойкости ключей, измеренной в единицах уровня криптостойкости ("bits of security"). Вот как документ расшифровывается этот показатель:

Это число, связанное с объемом работы (то есть количеством операций), которая требуется для взлома криптографического алгоритма или системы.

В данной Рекомендации степень безопасности определена в битах и является определённым значением из множества {80, 112, 128, 192, 256}. Отметим, что уровень безопасности в 80 бит более не считается приемлемым.

А вот и сама таблица:

Обратите внимание на любопытную сноску: система оценки уровня криптостойкости будет существенно пересмотрена после начала практического использования квантовых компьютеров.

Здесь стоит сделать некоторую оговорку. NIST утверждает, что для сбора данных они используют «известные на сегодняшний день способы взлома шифрованных данных», но кое-кто на Crypto Stack Exchange выяснил, что NIST использует для вычисления сложности факторизационной атаки, алгоритм, предложенный голландским ученым Ардженом К. Ленстрой под названием «метод решета числового поля». Это весьма удобно, поскольку в рекомендациях NIST указаны далеко не все варианты размеров ключей. Если вам захочется поупражняться в прикладной криптологии, запустите программу Mathematica. С ее помощью можно вычислить уровень безопасности ключа любого размера. Вот, например, формула для 2048-битного:

> N[Log2[Exp[(64/9Log[2^2048])^(1/3)(Log[Log[2^2048]])^(2/3)]]]

В результате получится число 116.884. Таким образом, 2048-битный RSA-ключ эквивалентен 116 «битам» при условии округления в меньшую сторону. Отметим, что NIST также округляет результат сложности GNFS до 112 бит, некоего общего значения для симметричных алгоритмов шифрования, чтобы позволить людям применять те же политики, которые они применяли бы, если бы рассматривали симметричные алгоритмы. Наш JS и приведенный выше код Mathematica дают необработанную сложность GNFS.

Но вернемся к отчету NIST. Как следует из таблицы, уровень менее 80 (ему соответствуют максимум 1024-битные ключи) не считается приемлемым. 2048-битные ключи имеют уровень безопасности 112 и разрешены к использованию.

Еще один важный момент: в сноске к строке 3TDEA говорится о том, что согласно документу SP 800-131A этот алгоритм шифрования, несмотря на обеспечиваемый им уровень безопаности, можно использовать лишь до 2023 года, после чего его применение будет запрещено для криптографической защиты данных, исключая частные случаи, когда риск является оправданным.

Чуть ниже в том же документе есть еще одна таблица, описывающая примерные временные ограничения по использованию методов шифрования в зависимости от их уровня безопасности.

Как видно, уровень 112 остается приемлемым вплоть до 2030 года.

Итак, выходит, что 2048-битные ключи, обеспечивающий уровень безопасности 112, можно без проблем использовать еще 8 лет. К 2030 году продуктивные среды должны полностью адаптировать и принять новый, более безопасный стандарт без каких-либо проблем. А пока что в 4096-битных ключах толком нет смысла. Но так ли это?

Многие приложения и системы безопасности уже предлагают пользователям сгенерировать новые 4096-битные ключи.

4096-битный ключ предлагается в качестве опции при генерации ключа сервера на JSCAPE MFT Server v10.2

На то есть сразу несколько причин. Во-первых, это так называемая работа на опережение. Производители софта предпочитают заранее подготовиться к переходу и обеспечить своим пользователям поддержку средств повышения киберустойчивости «завтрашнего дня». Никто не даст вам гарантии, что где-то в глубоком подполье ученый-злоумышленник не запускает квантовый суперкомпьютер, чтобы добраться до ваших данных. Это, конечно, шутка. Но важно помнить: никто, включая специалистов NIST не знает, насколько верны временные прогнозы. Соответственно, нет 100% уверенности в том, что до 2030 года никому не удастся взломать 2048-битный ключ, поэтому лучше перестраховаться и оказаться на шаг впереди злоумышленников.

Казалось бы, на этом моменте можно закрыть статью и пойти сгенерировать для себя новенький 4096-битный ключ. Но не спешите: помимо безопасности существует еще и производительность. Чем длиннее ключ, тем больше процессорного времени уходит на его генерацию и последующие операции шифрования и расшифровки. Поэтому если ваш физический сервер находится на грани оптимальной производительности, стоит ли его дополнительно нагружать применением ключей чрезмерного (во всяком случае, пока что) размера? Давайте копнем чуть глубже.

В реальном мире безопасные протоколы передачи файлов, такие как HTTPS, FTPS или SFTP, как правило используют ключи RSA только в самом начале соединения, для шифрования симметричных ключей. Как только начинается непосредственно передача данных, все дальнейшие процессы шифрования будут опираться непосредственно на симметричные ключи.

Таким образом, падение производительности вследствие применения 4096-битного ключа будет ощущаться лишь в течение малой части сеанса передачи файлов. Конечно, если ваш сервер должен обслуживать множество одновременных операций передачи файлов, это может существенно сказаться на производительности. Без знания четких цифр и некоторых вводных данных (обычная/пиковая нагрузка на сервер, CPU, пропускная способность сети и т.п.) сложно просчитать, насколько критичным станет применение 4096-битных ключей.

Поэтому прежде, чем вы внедрите 4096-битные ключи в «боевую» среду, имеет смысл всё грамотно проверить на тестовом стенде, чтобы исключить неожиданности. Например, IBM заявляет следующее:

Если 4096-битные криптографические операции полностью рассчитываются программно, все имеющиеся ресурсы ЦП достаточно быстро истощаются.

Один из технических блогеров, «ранний последователь» технологии в 2015 году приводил следующие данные:

Как следует из представленных результатов, для подписания 4096-битных RSA-ключей требуется более чем в 7 раз больше процессорного времени, чем для 2048-битных.

Проверить свой сервер на «совместимость» с 4096-битными ключами можно с помощью OpenSSL.

Еще один немаловажный момент – прямо сейчас вряд ли имеет смысл переходить на 4096-битные ключи, если у вас нет на то значительных и серьезных причин, так как не все вендоры готовы их поддерживать. Так, Amazon CloudFront, Cisco IOS XE версий ниже 2.4, а также Cisco IOS Release 15.1(1)T до сих пор не поддерживают 4096-битные ключи.

В заключение скажем: всему свое время. Вряд ли в ближайшие 2-4 года имеет смысл всерьез говорить о 4096-битных ключах. Вполне достаточно будет держать руку на пульсе и не спеша перевести инфраструктуру на новые ключи, когда это станет действительно важно и нужно.

Комментарии (11)


  1. skymal4ik
    00.00.0000 00:00

    Уже много лет использую 4096 для https и ecdsa 512 для ssh. Проблем с производительностью не ощущаю.


    1. AlexGluck
      00.00.0000 00:00

      А я сразу столкнулся с проблемами, старые смартфоны и роутеры напрягаются. Решил вернуться на 2048 пока, для моих задач достаточно. Только в финансах я бы использовал более стойкую криптографию сейчас. Между безопасностью и удобством эксплуатации необходим баланс.


      1. skymal4ik
        00.00.0000 00:00
        +1

        Да, есть нюансы с некоторыми устройствами, например для доступа к микротику сгенерирован отдельный rsa ключ, ибо он не понимает ecdsa. Но у меня это единственное исключение. На и со временем таких устройств всё меньше и меньше будет.


        1. AlexGluck
          00.00.0000 00:00

          Вы хотели сказать устройств для которых необходимы свои исключения будет всё больше и больше. ;)


        1. lrrr11
          00.00.0000 00:00
          -1

          роутеры, или еще какое железо - это я понимаю. Но уж чтобы на гитхаб пушить коммиты, явно нет никаких причин не использовать ed25519 c 256-битными ключами.

          Жаль что через несколько лет все это видимо объявят устаревшим и начнут переходить на всякие дилитиумы, с ключами и подписями снова размером как в RSA


      1. tbp2k5
        00.00.0000 00:00
        +2

        Странное пишете. Чуть больше 20 лет тому у нас в организации возникла проблема создания своего СА (защита внутренних сервисов типа почты, LDAP и т.п.): в ту эпоху покупать на все сертификаты официально было долго, дорого и сложно. Я протестировал ключи вплоть до 16384 — все прекрасно работало, правда с ключом 16384 установление коннекта, в ту эпоху, заметно притормаживало. В результате — для СА сделал ключ 8192 на 20 лет, а обычные ключи на пару лет размером 2048. За время активного использования ~15 лет, десятки тысяч пользователей — заметных проблем не было.
        Безопасности много не бывает, особенно такой которая мешает только тем кто хочет взломать.


  1. Maxim_Q
    00.00.0000 00:00

    Сколько времени займет взлом RSA 2048 ключа в 2030 году? Думаю даже в 2030 году на взлом потребуется суперкомпьютер из TOP-100 на планете и время несколько лет.


    1. dreesh
      00.00.0000 00:00

      Для взлома ключа длиной 80 разрядов нужно 10 минут на процессоре Athlon 64 2200 МГц, а для 100 разрядов 4 часа (240 минут). Рост сложности геометрический. для TOP-100 нужна примерно сотня лет для 1024. https://ru.m.wikipedia.org/wiki/RSA-числа до rsa-1024 еще далеко.


    1. maxivanuk
      00.00.0000 00:00
      +1

      Речь идёт о квантовых компьютерах - с их использованием текущие алгоритмы шифрования подвержены более лёгкому и быстрому перебору (ну в сравнении с классическими компьютерами). Есть предположение, что такие компьютеры получат более широкое распространение и станут доступны, в том числе, для использования в качестве инструментов взлома шифрованных данных. Вот исходя из этих посылок и был сделан этот прогноз, я так понимаю...


      1. dreesh
        00.00.0000 00:00
        +1

        Для взлома rsa-1024 нужно 2 регистра по 1024 кубит, а для вентилей и системы коррекции ошибок вагон и маленькая тележка. Сейчас квантовое превосходство у гугла это 80 кубит которые занимают нехило места и прожирают огромный бюджет... имхо более широкое распространение сказка которая даже в 2030 году будет сказкой, а использовать для взлома дурость (если разработки идут только ради этого, то этот мир обречен)