1. Куча / Говнокод #23694

    0

    1. 1
    2. 2
    3. 3
    4. 4
    > We demonstrate key extraction even from an implementation of Curve25519 Elliptic Curve Diffie-Hellman, which was explicitly designed 
    to minimize side channel leakage, but becomes susceptible due to use of high-level JavaScript
    
    > Concretely, we have embedded the attack code in an advertisement, which we submitted to a commercial web advertisement service

    Тут свежую атаку из жабаскрипта подвезли, они там опять ебут процессорный кэш и угадывают поведение control flow и составляющие ключа по времени доступа к памяти
    https://eprint.iacr.org/2018/119

    Запостил: Fike, 01 Февраля 2018

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

    • Чух, чух! Чух, чух! Чух, чух! Чух, чух! Чух, чух! Чух, чух! Чух, чух! Чух, чух! Чух, чух! Чух, чух! Чух, чух!
      Ответить
    • >из жабаскрипта [..] опять ебут процессорный кэш

      О. Годно.
      Но уязвимы ли жс-интерпретаторы?
      Ответить
      • Надо весь жабаскрипт запускать на специализированном изолированном процессоре, который был бы специально спроектирован и оптимизирован для исполнения жабаскрипта. Были ж в свое время Lisp-машины, пора задуматься над Javascript-машинами
        Ответить
      • На самом деле я немного напиздел, там WebAssembly и PNaCl. Но, насколько понял, именно джаваскриптовую криптопитушню они оттуда и потрошат.
        Ответить
        • > джаваскриптовую криптопитушню
          Что это такое?
          Ответить
          • ну текст-то открой. Google End-To-End, OpenPGP.js, Elliptic.js
            Ответить
    • Но откуда в жсе достаточно точный таймер?
      Ответить
      • а это есть в тексте

        > Thus, we use an alternative technique, based on an intentional inter-thread
        race condition (see [62] for a recent survey of JavaScript timing sources, including this one).
        In this approach, we allocate a SharedArrayBuffer array within the main JavaScript context,
        and pass it to a "Timer" Web Worker which iteratively increments the value in the first cell of the
        array in a tight loop. To acquire the value of our timer, the main context simply has to read that
        value from the array. The naive implementation, accessing the array directly, did not work due to
        runtime optimizations: since the incrementing iteration runs in a separate context of Web Worker,
        the engine assumes that repeatedly reading the same memory location will yield the same result,
        and optimizes the code to return a constant value. To overcome this, we used the Atomics API to
        force reading from the array (with sufficiently small performance penalty).

        [62], судя по всему, тоже тот еще охуенчик: Fantastic Timers and Where to Find Them: High-Resolution Microarchitectural Attacks in JavaScript
        Ответить
        • JS, web worker, timer thread
          Ответить
          • Вот это уже лихо.
            Ответить
          • https://ru.wikipedia.org/wiki/Макаронизм
            Ответить
          • Бормандяша, почему в апи нгк у некоторых комментов user_avatar: null? Например, у комментатора http://govnokod.ru/23700#comment397506. Вроде ж всем должно дефолтный граватар выдать. У меня от этого оповещалка сломалась.
            Ответить

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