Могу ли я использовать 3DES в своем приложении в 2020 году? - PullRequest
0 голосов
/ 17 июня 2020

Мы пишем новое приложение, которое работает с относительно конфиденциальной информацией. Команда обсуждает, следует ли поддерживать шифрование 3DES и / или AES для данных. К сожалению, поиск в Google дает смешанные результаты.

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

1 Ответ

0 голосов
/ 17 июня 2020

Короткий ответ: нет, вы не можете использовать 3DES, потому что 3DES запрещено использовать по правилам.

Длинный ответ:

Существует три основных алгоритма DES. Я собираюсь охватить 3DES, 2-3DES и DES, все запрещено.

Нужно быть особенно осторожным при работе с XXXDES, потому что их легко спутать и неправильно настроить.

AES 128 бит - общепринятая замена.

DES

DES - это базовый алгоритм c, опубликованный в 1975 году, с использованием 56-битных ключей.

Это заложило фундамент симметрии c криптографии c / блочного шифра очень давно go.

DES небезопасен и запрещен к использованию с начала 2000-х годов. Вычислительная мощность со временем выросла до такой степени, что легко взломать 56-битные ключи.

2-клавишный 3DES (или 2TDES или 2DES)

2DES - аналогичный алгоритм, использующий два 56-битных ключа, обеспечивающий шифрование с надежностью 112 бит.

Это на самом деле 3DES (требуется 3 ключа) с неустановленным 3-м ключом. Я назову его 2DES, чтобы отличить guish.

2DES - это очень сложно, потому что оно практически неотличимо от 3DES. Оба они определены в стандарте и реализованы вместе. Возможно, что программное обеспечение, которое заявляет, что выполняет 3DES, на самом деле выполняет 2DES или любое другое в зависимости от настроек конфигурации, и это проблема.

Двухклавишный 3DES запрещено использовать в приложениях, начиная с Март 2019.

Цитата из официального NIST.SP.800-131Ar2 документа, страница 13:

Шифрование с использованием двухключевого TDEA запрещено. .

3DES (или TDES или TDEA)

3DES - это эволюция DES с использованием трех 56-битных ключей, обеспечивающая шифрование с надежностью 112 бит.

для строительства это всего лишь 2 ^ 112 + 2 ^ 56, а не 2 ^ 168. См. встречу в средней атаке .

3DES запрещено использовать в приложениях с 2023 года.

3DES запрещено использовать в новых приложениях с ноября 2017 года. .

3DES запрещено использовать в устаревших приложениях (созданных до 2017 г. и работающих до 2023 г.), если использование не соответствует ограничениям, установленным NIST, и в этом случае 3DES всего deprecated (можно использовать до 2023 года). В документах NIST распространено довольно много документов, включая, помимо прочего, не выполнение 2key 3DES, занесение в черный список ключей, перечисленных в spe c, не шифрование более 8 МБ данных и т. Д. c ...

Шансы удовлетворить все ограничения для статуса наследства и иметь возможность его подтвердить довольно низки. Сделайте себе одолжение и примите во внимание, что 3DES вообще запрещены с 2017 года. Если вы имеете дело с системами, использующими 3DES в 2020 году, они остро нуждаются в обновлении!

Дополнительные ограничения

3DES считается 112-битной стойкостью (слабая). Все, что ограничивает использование менее 128-битного шифрования, де-факто влияет на 3DES.

В правилах программного обеспечения не указываются принятые технические меры (они не говорят использовать 3DES или какой-либо алгоритм по имени), они обычно пишут, чтобы следовать рекомендуемым или общепринятым методам безопасности. Иногда прямо указывается на NIST или подобное агентство, которое издает стандарты.

Есть интересная загадка в том, как правила сочетаются. Например, существуют дополнительные правила, касающиеся систем обработки платежей или конфиденциальной информации или PII . В зависимости от интерпретации и точного использования 3DES может быть запрещен, как только он устарел каким-либо формальным стандартом (задолго до того, как NIST официально прекратит его использование в 2023 году).

ENISA, Агентство Европейского Союза по кибербезопасности (эквивалент NIST в Европе) опубликовал официальные рекомендации в 2013 году, рекомендуя минимум 128 бит для шифрования и официально классифицируя как 3DES, так и 2DES как legacy.

Legacy : (двухклавишный 3DES и трехклавишный 3DES)

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

В общем, мы считаем, что минимальный размер ключа для блочного шифра должен составлять 128 бит ; минимальный размер блока зависит от конкретного приложения, но во многих приложениях (например, при построении функций MA C) 128-битный размер блока теперь должен считаться минимальным во многих приложениях. Мы также считаем, что максимальный объем данных, который должен быть зашифрован с использованием одного и того же ключа, должен быть ограничен 2n/2, где n - размер блока в битах. Однако, как указывалось ранее, для некоторых короткоживущих криптограмм могут потребоваться меньшие размеры блоков и ключей при их построении; но для общих приложений мы рекомендуем минимум 128 бит.

Нет необходимости пани c

Пока все варианты 3DES необходимо go, нет необходимости паниковать c по этому поводу (в отличие от RC4 или MD5, например, у которых действительно есть проблемы).

Алгоритм не является катастрофически сломанным или уязвимым, пока вы следуйте инструкциям, например, не шифруйте с его помощью более 8 МБ данных (ну, должен признать, что он несколько сломан). Основная проблема заключается в том, что ключи 3DES можно было бы взломать за разумное человеческое время, если бы перед задачей поставили целый AWS центр обработки данных.

AES-128 является прямым преемником DES. Это прямая замена, и она намного быстрее.

Если 3DES может зашифровать 100 МБ / с на ядре, AES-128 может зашифровать 300 МБ / с на том же ядре или 1000 МБ / с, если ЦП имеет AES -NI инструкции (большинство процессоров x64 после 2016 г.).

...