Java Страдает от Криптографической ошибки, которая может позволить злоумышленникам обходить цифровые подписи, Oracle Выпускает исправление

Версии Java 15 и выше содержат недостаток в реализации алгоритма цифровой подписи с эллиптической кривой (ECDSA), который может быть использован киберпреступниками для цифровой подписи файлов путем подделки некоторых типов сертификатов Secure Sockets Layer (SSL), подписанных веб-токенов JSON (JWTS) и даже сообщений двухфакторной аутентификации. Проблема была впервые обнаружена в прошлом году и была сообщена Oracle, которая в конечном итоге исправила ее на прошлой неделе. Однако, поскольку организациям требуется время для обновления своих систем до последних версий, любое устройство, использующее уязвимые версии Java для использования данных с цифровой подписью, может оказаться под угрозой.

Oracle исправила проблему, которую в сообществе также называют ошибкой, в рамках более чем 500 исправлений. Уязвимость отслеживается как CVE-2022-21449.

Нил Мэдден, исследователь консалтинговой фирмы ForgeRock по вопросам безопасности, обнаружил лазейку в системе безопасности и сообщил о ней Oracle в частном порядке в ноябре. Хотя компания—разработчик программного обеспечения присвоила проблеме оценку серьезности 7,5 из 10, эксперты, включая ForgeRock, считают ее недостатком с оценкой серьезности 10 — «из-за широкого спектра воздействий на различные функциональные возможности», которые могут оказать большое влияние.

«Если вы используете одну из уязвимых версий, злоумышленник может легко подделать некоторые типы SSL-сертификатов и рукопожатий (позволяющих перехватывать и изменять сообщения), подписанные JWT, утверждения SAML или токены идентификатора OIDC и даже сообщения аутентификации WebAuthn. И все это с использованием цифрового эквивалента чистого листа бумаги», — написал Мэдден в своем блоге.

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

Java использует ECDSA, который основан на принципах криптографии с эллиптической кривой — один из известных и широко распространенных подходов для обеспечения согласования ключей и цифровых подписей. Исследователь обнаружил, что ошибка была внесена в результате переписывания криптографии с эллиптической кривой с родного C++ на Java, которое произошло с выпуском Java 15.

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

Однако, используя этот недостаток, злоумышленник может использовать пустую подпись, которая может считаться действительной и проверяться системой на соответствие любым открытым ключам.

Мэдден называет эти подписи похожими на «психическую бумагу» — сюжетное устройство, появившееся в продолжительном научно-фантастическом «Докторе Кто». По сути, это был совершенно чистый лист бумаги, но он был разработан так, чтобы служить пропуском, ордером или доказательством на основе того, что главный герой хочет, чтобы другие видели.

«Сигнатура ECDSA состоит из двух значений, называемых r и s», — сказал исследователь, объясняя недостаток. «Чтобы проверить подпись ECDSA, верификатор проверяет уравнение, включающее r, s, открытый ключ подписавшего и хэш сообщения. Если две стороны уравнения равны, то подпись действительна, в противном случае она отклоняется.»

Процесс включает в себя условие, что R и S в вычислении не должны быть равны нулю. Однако это не относится к реализации проверки в Java.

«Реализация проверки подписи ECDSA в Java не проверяла, равны ли R или S нулю, поэтому вы можете создать значение подписи, в котором они оба равны 0 (соответствующим образом закодированы), и Java примет его в качестве действительной подписи для любого сообщения и для любого открытого ключа», — сказал Мэдден.

Вторя серьезности, подчеркнутой Мэдденом, эксперт по безопасности Томас Птачек сказал, что проблема является «крипто-ошибкой года».

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

«Любое устройство, которое потребляет данные с цифровой подписью внутри вашей сети, может подвергнуться риску», — говорилось в нем.

Затронутые версии Java — Java с 15 по 18 — к счастью, используются не так широко, как ее предыдущие версии. Согласно данным опроса, проведенного в период с февраля по март 2021 года, фирма по кибербезопасности Snyk заявила, что на Java 11 приходится более 61 процента от общего числа развертываний, в то время как на Java 15 приходится 12 процентов.

  • Обнаружено, что вредоносные Криптокошельки Нацелены на Пользователей Android, iOS
  • Apple пропускает исправление проблем нулевого дня в macOS Big Sur, Каталина
  • Что на самом деле означает Подход Akamai к кибербезопасности с нулевым доверием

Тем не менее ИТ-администраторам и организациям рекомендуется быстро обновить свою версию Java, чтобы избежать случаев любых будущих атак.

Источник

Оцените статью
Добавить комментарии
Java Страдает от Криптографической ошибки, которая может позволить злоумышленникам обходить цифровые подписи, Oracle Выпускает исправление
2cabb3dbb8309adc897b77343c368b61
Дезодорируйте туалет за считанные секунды — руководство по советам