Jawa / Говнокод #28305 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
import java.security.*

var keys = KeyPairGenerator.getInstance("EC").generateKeyPair();
var blankSignature = new byte[64]; // zero bytes
var sig = Signature.getInstance("SHA256WithECDSAInP1363Format");
sig.initVerify(keys.getPublic());
sig.update("Hello, World".getBytes()); // anything
sig.verify(blankSignature); // true

Сказка о том, как джавушки переписали код с небезопасного языка на безопасный и помножили проверку подписей на ноль (в прямом смысле).

https://neilmadden.blog/2022/04/19/psychic-signatures-in-java/

Запостил: bormand bormand, (Updated )

Комментарии (35) RSS

  • Вроде не выкладывали тут ещё этот бекдор от оракла?
    Ответить
  • $8 ==> true

    Пиписюнчик.

    Джавушки не ма-те-ма-ти-ки. Они не обязаны разбираться в свойствах нуля.
    Ответить
    • > Джавушки не ма-те-ма-ти-ки.

      Интересно, растишки тоже по этим граблям проедутся в своём формально корректном языке?
      Ответить
      • > Джавушки не ма-те-ма-ти-ки.

        Интересно, растишки тоже по этим граблям проедутся в своём формально корректном языке?

        P.S. The ECDSA implementation contained in this crate has never been independently audited for security. Отличное вступление.
        Ответить
        • Не, эти походу и на 0 проверили и на вылет за порядок курвы.
          Ответить
  • Странная Jawa. К ним разве var завезли?
    Ответить
    • Это новая хрень, совсем недавно ввели, в 2018-м; о ней ещё неслыханное количество срачей джавушков было.
      Ответить
        • На ГК точно были смешки над петухами, которые путают виды типизации и с важным видом заявляют, что-де «var» уничтожает статическую типизацию и превращают «Java» в «JavaScript».
          Ответить
      • Там еще сразу же сформировалась группа дебилов, которая стала писать: "var это отказ от статической типизации, будет как в JavaScript"

        То есть это такие дебилы которые даже на фоне джавушков дебилы
        Ответить
        • В С++ добавляют auto, крестовики:
          «Ну наконецто, можно будет не писать for(std::unordered_map<std::string, std::vector>::const_iterato r it = some_map.cbegin(); ..., а сразу фигачить for(auto it = some_map.cbegin(); ...»

          В Жабу добавляют var, жавушки:
          «Такое слово есть в жаваскрипте, не хотим, хотим жрать стекло...»
          Ответить
      • > Это новая хрень, совсем недавно ввели, в 2018-м

        Именно поэтому я за «Java 8». Там нет никаких «var».

        > an attacker can trivially and completely bypass them if your server is running any Java 15, 16, 17, or 18 version before the April 2022 Critical Patch Update (CPU).

        > If you have deployed Java 15, Java 16, Java 17, or Java 18 in production then you should stop what you are doing
        Ответить
        • Ну то есть шестую джаву еще писали программисты (скучные, медленные, неприкольные) а потом наконец хипстеры взяли всё в свои руки?
          Ответить
      • JawaScript-ухи начали блеваться от var-а, а эти только ввели его. Какой багор )))
        Ответить
  • ООП'ушки опять запутались в своих обсракциях и надеялись, что ниже должна быть проверка на ноль, или тупо не знали?

    З.Ы. Кукареку! Борманд сорвался!
    Ответить
    • Нет, это просто очередной java bounds check elimination
      (если кто ещё помнит этот их багор).

      Благодаря выпиливанию проверок, код на «Jawa» работает быстрее чем его тормозные С/С++ аналоги.
      Ответить
    • Судя по количеству записей от борманда, абстиненция была суровой.
      Ответить
  • Зачем вообще говнокодерам разрешают в криптографию? Разве это не специальные Bernsteinы должны писать?

    Говнокодеры пускай кнопочки на веб-сайте рисуют
    Ответить
  • Долбоёбы переводили с сишки, где был расчёт на инициализацию мусором из памяти?
    Ответить
    • > расчёт на инициализацию мусором
      > расчёт на инициализацию мусором
      > расчёт на инициализацию мусором

      Извините, но безопасность моего кода зависит от UB
      Ответить
    • Нет, долбоёбы переводили с «C++» и выкинули «ненужную» проверку, которую туда добавили какие-то скучные бумеры-параноики.
      Ответить
    • Тред не читай
      @
      Сразу отвечай

      Это код, эксплуатирующий уязвимость. Уязвимость в том, что нулевая подпись проходит. В сишке был нормальный чек на ненулёвость.
      Ответить
      • > чек на ненулёвость

        После чего некоторые либы выебли по второму разу ненулевой универсальной подписью т.к. проверка должна быть не просто на нулёвость, а по модулю q...

        Джавушок не обязан знать ма-те-ма-ти-ку.
        Ответить
  • Наивонючейшее говно на говнокоде - bormand - опять всплыло? Фу-фу.
    Ответить
  • Жаба — говно, тебе ещё какое-то объяснение нужно?
    Ответить
    • Java -- универсальный язык программирования, работающий как на маленьких J2ME карточках, так и на серьезных рабочих станциях и суперсерверах!

      Главный принцип Java гласит: "пиши один раз, запускай везде", что позволет экономить время разработки и не получать вендор лок (крайней важно в современном мире!)

      Мощные средства объектно-оринетированного программирования позволяют писать гибкий и мощный, современный и грамотный код

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

      Java так же один из самых высокооплачеваемых языков программирования
      Присоединяйтесь!
      Ответить
      • PHP -- универсальный язык программирования, работающий как на маленьких веб-сайтах, так и на серьезных проектах вроде ВК!

        Главный принцип PHP гласит: "не нужно быть профессиональным программистом, чтобы программировать", что позволет экономить время разработки и не получать емплои лок (крайней важно в современном мире!)


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

        Присоединяйтесь!
        Ответить

Добавить комментарий

Семь раз отмерь — один отрежь, guest!

    А не использовать ли нам bbcode?


    8