Проблема с FIPS

Проблема с FIPS

2 марта 2022 г.

Стандарты шифрования


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


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


В идеале криптографическое сообщество должно регулярно собираться вместе, чтобы номинировать и голосовать за наиболее безопасные, эффективные и безопасные алгоритмы (возможно, даже реализации?). Затем они будут подвергаться дополнительной проверке и атакам в течение некоторого периода, а те, которые все еще действуют, могут стать стандартами, которым пользователи криптографии будут знать, что им можно доверять.


К сожалению, это просто не то, как все работает.


Федеральный стандарт обработки информации (FIPS)


Обложка публикации FIPS 140-3


В США все сводится к Федеральному стандарту обработки информации (FIPS 140). Документ FIPS создается и поддерживается Национальным институтом стандартов (NIST) и определяет безопасность, которую должны использовать федеральные агентства и ведомства. Государственные субподрядчики также должны придерживаться FIPS, а некоторые законы о финансах и здравоохранении указывают на FIPS как на требование для некоторых данных.


FIPS 140 довольно широк в своих требованиях и охватывает многие вещи, но среди них есть список утвержденных криптографических «модулей» (в основном алгоритмы и параметры). Они перечислены в приложении A FIPS 140 с некоторыми ссылками на другие документы, к которым мы вернемся через минуту. Мы сосредоточим наше внимание на этом списке Приложения А.


Утвержденные модули включают в себя:


  • Симметричные шифры

  • AES (CBC, CCM, CFB, CTR, ECB, GCM, XTS) минимум 128-битные, максимум 256-битные ключи

  • 3DES (но ненадолго)

  • Асимметричный

  • Криптография на эллиптических кривых (P-192, P-224, P-256, P-521, B-163, B-233, B-283, B-409, B-571, K-163, К-233, К-283, К-409, К-571)

  • RSA (минимум 2048-битные ключи)

Для AES разрешены только определенные режимы и размеры ключей. Для эллиптических кривых требуются определенные кривые с определенными параметрами (например, «P-256»).


Интересно, что алгоритмы, одобренные NIST в FIPS-140, не требуются для использования с секретными данными. На самом деле они предназначены только для несекретных данных. А трехбуквенные спецслужбы освобождены от необходимости их использовать. Что заставляет задуматься... :thinking:


Но вот еще что: выбор Приложения А действительно старый. Они почти не изменились за 20 лет.


«Нестандартная» криптография


Большинство криптографических инноваций за последние 30 лет являются «нестандартными», то есть они не одобрены правительством США через FIPS. И люди боятся нестандартной криптографии. Это потому, что мы по праву приучили их не доверять всему, что широко не используется и не тестируется. Очень сложно получить «правильные» криптографические протоколы и еще труднее «правильные» реализации (для некоторого определения «правильного», которое развивается с течением времени по мере обнаружения новых атак).


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


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

  1. Использование проверенных параметров (входных данных для алгоритмов).

  1. Используйте открытый исходный код — никакого скрытого кода и реализаций.

  1. Проверьте этот код у ведущего криптоаудитора.

  1. В идеале реализовывать за постоянное время, чтобы не подвергаться атакам по времени или кэш-атакам.

Даже в этом случае нет никакой гарантии, что какая-либо криптография действительно безопасна. То, что мы считаем безопасным сегодня, завтра может быть нарушено какой-нибудь новой атакой. Если вы оглянетесь на 90-е годы, то увидите, что многое из того, что мы тогда зашифровывали, теперь можно взломать. Это связано с недостатками в реализации, недостаточно большими размерами ключей, чтобы не отставать от аппаратных достижений, и новыми атаками. Вот почему мы больше не используем Triple-DES в качестве «стандарта шифрования данных» (ну, FIPS все еще позволяет это, но это уже другая история).


Но самое главное здесь то, что есть несколько очень хороших, хорошо проверенных и пользующихся большим доверием алгоритмов и реализаций, таких как Curve25519, которые считаются «нестандартными». -standard», и по этой причине многие компании не будут его трогать. Что-нибудь инновационное, например повторное шифрование прокси (полное раскрытие: моя компания создала проверенных библиотек PRE), нигде не встречается в стандартах.


Квантовые вычисления и конкурс PQC


Сегодня мы живем в эпоху неопределенности относительно будущего криптографии. Криптография с открытым ключом, такая как RSA и криптография на эллиптических кривых (ECC), теоретически может быть взломана квантовым компьютером достаточной мощности. Квантовые компьютеры существуют сегодня, но сделать их достаточно мощными для взлома криптографических кодов оказалось исключительно сложной задачей. Насколько нам известно, никому это не удалось. Но опять же, если какое-то правительство преуспеет, они, вероятно, не опубликуют этот факт в мире. И несмотря на это, прогресс есть, и в какой-то момент все стандарты NIST с открытым ключом могут стать бесполезными.


Постквантовая криптография (PQC) — это изучение алгоритмов, которые теоретически устойчивы к стандартным компьютерным атакам, а также к атакам квантовых компьютеров. Прямо сейчас в этой области происходит много исследований, и тонны инвестиций как со стороны промышленности, так и научных кругов привлекают внимание многих проницательных умов к этой проблеме. И NIST проводит [конкурс] (https://csrc.nist.gov/projects/post-quantum-cryptography/post-quantum-cryptography-standardization), чтобы выбрать лучший новый подход с открытым ключом, устойчивый к квантовым компьютерам. Если все пойдет по плану, победителем станет первый новый алгоритм, ставший стандартом более чем за двадцать лет.


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


Инновационный разрыв


Одна печальная вещь в криптографии заключается в том, что большинство инноваций в криптографии изо всех сил пытались достичь скорости выхода за пределы академических кругов. Повторное шифрование прокси является отличным примером этого. Впервые он был представлен в 1998 году, и по этому вопросу опубликованы буквально тысячи научных статей. Тем не менее, когда мы запустили IronCore в 2015 году, никто еще не пытался коммерциализировать его (сейчас нас двое, а другой занимается вариантами использования блокчейна).


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


Появление блокчейна, возможно, было одним из лучших событий, когда-либо случавшихся в области криптографии. Это породило поток капитала, который преследует экспертов в этой области и вознаграждает их и компании за превращение инноваций в криптографии в продукты реального мира. Я часто скептически отношусь к инициативам, основанным на блокчейне, и вижу его как экосистему, загрязненную мошенничеством или, если быть более щедрым к тем, у кого есть добрые намерения, разрывом между риторикой и реальностью. Но каким бы ни был ваш взгляд на блокчейн, он требует огромных инвестиций, которые в конечном итоге значительно упростят создание частных и безопасных систем, не имеющих никакого отношения к блокчейну.


FIPS: функция или ошибка?


Поэтому правительство медленно меняется. Большое дело. И, иногда, может быть, это хорошо. Предприниматели вроде меня могут ненавидеть это, но проверенная временем стратегия — это действующая стратегия. Так что, возможно, FIPS просто консервативен, и в целом это хорошо для тех, кто хочет защитить свои данные и выбирает или вынужден брать пример с FIPS.


Проблема №1: разница между медленным и остановленным


Было четыре редакции стандарта:


  • FIPS 140 опубликован в 1982 г.

  • FIPS 140-1 опубликован в 1994 г. (12 лет спустя)

  • FIPS 140-2 опубликован в 2002 г. (8 лет спустя)

  • FIPS 140-3 опубликован в 2019 г. (17 лет спустя)

FIPS 140-2 включает алгоритмы AES, 3DES, ECDH, DSA, RSA, ECC с использованием определенных параметров кривой и некоторые примитивы, такие как SHA-1.


FIPS 140-3 включает алгоритмы AES, 3DES (но для расшифровки только после 2023 года), ECDH, DSA, RSA, ECC и SHA2.


Другими словами, список был немного изменен здесь и там, но, если не считать устаревания SHA-1 и, в конечном счете, 3DES, Приложение A — это тот же самый старый список.


По разным причинам (некоторые из них упомянуты ниже) мы видели множество альтернатив, бросающих вызов этим стандартам. Прикладные криптографы, которые заботятся о скорости и безопасности, вероятно, одобрят Salsa20 как симметричный шифр и параметры Curve25519 для криптографии на эллиптических кривых. И Curve25519 еще может стать стандартом, что станет ошеломляющим прорывом, хотя на самом деле это всего лишь некоторые параметры, отличные от стандартной криптографии на эллиптических кривых. И если он соответствует стандарту, следует отметить, что он был впервые представлен в 2005 году.


Некоторое время назад компания Voltage Security (теперь принадлежащая Microfocus) выпустила на рынок Identity-Based Encryption (IBE), который позволяет вам использовать свой адрес электронной почты или что-то подобное в качестве открытого ключа. У них был некоторый успех, но они должны были сделать версию своего программного обеспечения, совместимую с FIPS, в которой они отключили все, что было новым и интересным в их продукте. Они использовали общие ключи или оставляли вещи незашифрованными, чтобы соответствовать стандартам. и оказывается, что у вас могут быть незашифрованные данные, совместимые с FIPS, в то время как шифрование противоречит стандарту. Их подход был хорошо изучен и проверен, но, поскольку его не было в списке FIPS, они не могли продавать его большому количеству клиентов. Отсюда и режим, совместимый с FIPS, который резко снизил безопасность их продукта для тех клиентов, которые его включили.


Шифрование на основе идентичности, которое они использовали, использовало операцию, называемую «спариванием» на эллиптической кривой. Стандартные кривые не являются безопасным выбором для этой техники, поскольку NIST не предлагает «удобных для сопряжения кривых». Алгоритм перешифрования прокси-сервера моей собственной компании также опирается на пары, как и многие подходы к доказательству с нулевым разглашением. Пары были основным строительным блоком криптосистем на протяжении десятилетий.


Voltage попытались получить сертификацию FIPS, и они также попытались получить удобную для сопряжения кривую, благословленную NIST, но в конце концов эти попытки зашли в тупик и умерли. Важно отметить, что с ними не было известных проблем безопасности или каких-либо других заявленных возражений. На эту попытку правительство наложило карманное вето из-за бездействия.


Проблема № 2: Восприятие «черного хода»


Все это вызывает вопрос: почему мы удерживающий статус-кво на уровне 1990-х годов? Является ли это просто укоренились консерватизм? Такое ощущение, что мы имеем достаточно хорошо? Стремление к простоте? Простая бюрократия и финансовые проблемы? Это может быть любой или все из них, но есть другое возможное объяснение, что стоит рассмотреть.



Мы знаем из [утечки Сноудена] 2013 года (https://archive.nytimes.com/www.nytimes.com/interactive/2013/09/05/us/documents-reveal-nsa-campaign-against-encryption.html? searchResultPosition=1), что в США существует программа BullRun стоимостью 250 миллионов долларов в год, целью которой является преодоление шифрования.


АНБ работало с поставщиками, чтобы изменить их продукты, иногда платя им за это и угрожая прекратить выполнение государственных контрактов, если они откажутся. В просочившемся бюджетном запросе говорится, что в рамках своей миссии они будут: «влиять на политику, стандарты и спецификации коммерческих технологий с открытым ключом». Чтобы ослабить их. Они также заявили, что «добавят уязвимости в коммерческие системы шифрования, ИТ-системы, сети и конечные коммуникационные устройства, используемые мишенями».


По крайней мере, в одном случае им это удалось. Это случай генератора псевдослучайных чисел Dual_EC_DRBG. Мы не знаем, спроектировали ли они недостатки преднамеренно или просто увидели их и оппортунистически подтолкнули к тому, чтобы Dual_EC_DRBG стал стандартом. Но АНБ добилось больших успехов в эффективном бэкдоре огромных участков инфраструктуры, добавив в стандарты ошибочный алгоритм генерации случайных чисел. А затем оказывать давление на компании, чтобы они использовали его.


Крупные компании, занимающиеся безопасностью, оказались в ловушке фиаско, включая RSA и Juniper Networks, обе из которых сделали Dual_EC_DRBG своим генератором случайных чисел по умолчанию. В случае с RSA они получили за это компенсацию. Он также появился в продуктах Microsoft, Cisco и даже в OpenSSL.


Примерно в то же время АНБ настаивало на стандартизации пары блочных шифров под названием Саймон и Спек. Криптоаналитики обнаружили у них ряд проблем, а АНБ обвинили в попытке в очередной раз навязать всему остальному миру бэкдор-алгоритмы. АНБ также обвиняли в том, что оно оказывало сильное давление на криптографов и комитеты по стандартам, чтобы протолкнуть его. В конечном итоге АНБ отозвало свои материалы. Возможно, те алгоритмы, которые были предназначены для облегченных устройств типа IoT, можно было исправить, но к этому времени криптографическое сообщество чувствовало себя немного… недоверчиво.


В этом контексте ряд криптографов вернулись к пересмотру существующих стандартов. Танье Ланге и Дэн Бернштейн создали проект SafeCurves для оценки безопасности параметров, используемых в широко распространенных кривых, включая рекомендуемые кривые FIPS, такие как P-256. Удивительно, но ни одна из кривых NIST не соответствует «безопасному» порогу, определенному Ланге и Бернштейном. Они поставили под сомнение, откуда вообще взялись параметры кривой, и показали, что заявленные причины (все варианты «эффективности») оказались ложными. Таким образом, эти кривые содержат очень конкретные числа без разумного объяснения того, как и почему эти числа были выбраны.


Может ли АНБ каким-то образом использовать кривые FIPS, о которых остальные не знают? Есть ли бэкдор в P-256 или, если уж на то пошло, в AES? Мы не знаем. Но это подозрительно. Вот почему я назову это проблемой восприятия.


И возникает вопрос: сопротивление чему-либо новому, добавляемому в список FIPS, связано с тем, что новые возможности менее выгодны для возможностей шпионажа США?


Отступление об этике и криптографии


Несколько лет назад я управлял жилым домом среднего размера. Однажды в мою дверь постучали, и это была полиция. Они были там по-дружески, чтобы сообщить мне, что жилец продает наркотики детям из их квартиры. Так что я сказал: «Что вы мне говорите? Арестуйте его!» И они сказали, что не могут заставить детей давать показания. Это поставило меня в безвыходное положение, потому что оснований для выселения у меня было не больше, чем для ареста.


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


Спустя годы я стал одним из основателей компании по шифрованию и глубоко задумался о том, как можно использовать шифрование во благо — для сохранения конфиденциальности и защиты данных (две вещи, в которых этот мир отчаянно нуждается в большем количестве), и во зло — например, для преступников. виды деятельности. Но, как и приют, я считаю, что неприкосновенность частной жизни является фундаментальным правом человека, и тот факт, что ее можно использовать для «плохих дел», не означает, что она не должна быть доступна. Молотком можно забивать гвозди или пальцы.


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


Однако, если у нации есть такая возможность, что может помешать ей использовать ее в качестве инструмента угнетения для слежки за своими гражданами? В западных странах мы думаем, что мы в безопасности от этого. И на самом деле, практически говоря, мы, вероятно, так и есть, поскольку у нас есть сильная судебная система, где должны быть представлены законно полученные доказательства, чтобы признать кого-то виновным в совершении преступления. А массовое наблюдение без ордера не может быть использовано в суде. Но тюрьма — не единственный инструмент в арсенале репрессивного правительства, и угрозы, шантаж и т. д. также необходимо принимать во внимание.


Все это говорит о том, что простых ответов не бывает. Я ожидаю, что правительство США и другие страны будут усердно работать над взломом и/или подрывом криптографических методов. Это их работа. Однако на благо человечества и безопасности нашей экономики и наших граждан эта планка должна быть настолько высокой, насколько мы можем ее поднять. Есть много путей к информации, которые не связаны с ослаблением наших строительных блоков.


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


Развитие безопасности данных


Состояние безопасности данных в индустрии программного обеспечения разочаровывает. Компании используют фразу "шифрование в состоянии покоя", чтобы предположить, что хранящиеся у них данные хорошо защищены. Но если мы не беспокоимся о краже жесткого диска (а мы беспокоимся, но это очень редкий крайний случай), это не так. Компании не очень хорошо защищают свои данные на работающих серверах. И у правительств дела обстоят не намного лучше. И, как мы видели, правительства активно препятствуют компаниям использовать лучшую защиту данных.


Концепция [шифрования прикладного уровня] (https://ironcorelabs.com/application-layer-encryption/) только сейчас завоевывает популярность, но она далека от реализации в масштабах всей отрасли.


От поиска до интеллектуального анализа данных и машинного обучения — самым большим препятствием для шифрования является идея о том, что данные нельзя использовать после шифрования. Но это просто неправда. Инновации из академических кругов, такие как шифрование с возможностью поиска, полностью гомоморфное шифрование и доказательства с нулевым разглашением, решают эти проблемы. Но ни одна из этих вещей не является «утвержденными стандартами». Мы не можем повсеместно использовать эти методы, потому что NIST не дал своего официального благословения и, вероятно, никогда этого не сделает. Если вы хотите зашифровать данные и при этом работать с ними, вам не следует обращаться к стандартам FIPS. . Период.


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


Мы можем либо ждать, пока стандарты изменятся, либо признать, что стандарты подводят нас. Нам нужно перестать мешать современному уровню техники 20-летней давности. Наши нынешние криптографические стандарты — враг инноваций и лучшей безопасности. Это нужно изменить.



Оригинал
PREVIOUS ARTICLE
NEXT ARTICLE