~~~~~~~~~~~~~~~~~~~~ Arc.Ask3.Ru ~~~~~~~~~~~~~~~~~~~~~ 
Номер скриншота №:
✰ 26BC3769DDB92DDE112E0D1640985C99__1715435580 ✰
Заголовок документа оригинал.:
✰ Timing attack - Wikipedia ✰
Заголовок документа перевод.:
✰ Тайминговая атака — Википедия ✰
Снимок документа находящегося по адресу (URL):
✰ https://en.wikipedia.org/wiki/Timing_attack ✰
Адрес хранения снимка оригинал (URL):
✰ https://arc.ask3.ru/arc/aa/26/99/26bc3769ddb92dde112e0d1640985c99.html ✰
Адрес хранения снимка перевод (URL):
✰ https://arc.ask3.ru/arc/aa/26/99/26bc3769ddb92dde112e0d1640985c99__translat.html ✰
Дата и время сохранения документа:
✰ 22.06.2024 09:42:16 (GMT+3, MSK) ✰
Дата и время изменения документа (по данным источника):
✰ 11 May 2024, at 16:53 (UTC). ✰ 

~~~~~~~~~~~~~~~~~~~~~~ Ask3.Ru ~~~~~~~~~~~~~~~~~~~~~~ 
Сервисы Ask3.ru: 
 Архив документов (Снимки документов, в формате HTML, PDF, PNG - подписанные ЭЦП, доказывающие существование документа в момент подписи. Перевод сохраненных документов на русский язык.)https://arc.ask3.ruОтветы на вопросы (Сервис ответов на вопросы, в основном, научной направленности)https://ask3.ru/answer2questionТоварный сопоставитель (Сервис сравнения и выбора товаров) ✰✰
✰ https://ask3.ru/product2collationПартнерыhttps://comrades.ask3.ru


Совет. Чтобы искать на странице, нажмите Ctrl+F или ⌘-F (для MacOS) и введите запрос в поле поиска.
Arc.Ask3.ru: далее начало оригинального документа

Тайминговая атака — Википедия Jump to content

Временная атака

Из Википедии, бесплатной энциклопедии

В криптографии временная атака это атака по побочному каналу, при которой злоумышленник пытается скомпрометировать криптосистему , анализируя время, необходимое для выполнения криптографических алгоритмов. Выполнение каждой логической операции в компьютере требует времени, и это время может различаться в зависимости от входных данных; благодаря точным измерениям времени каждой операции злоумышленник может вернуться к вводу. Обнаружение секретов с помощью временной информации может быть значительно проще, чем использование криптоанализа известных пар открытого текста и зашифрованного текста. Иногда информация о времени сочетается с криптоанализом, чтобы увеличить скорость утечки информации. [1]

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

Атаки по времени часто упускаются из виду на этапе проектирования, поскольку они сильно зависят от реализации и могут быть непреднамеренно введены при оптимизации компилятора . Чтобы избежать атак по времени, необходимо разработать функции с постоянным временем и тщательное тестирование окончательного исполняемого кода. [1]

Избегание [ править ]

Многие криптографические алгоритмы могут быть реализованы (или замаскированы с помощью прокси-сервера) таким образом, чтобы уменьшить или исключить информацию о времени, зависящую от данных, - алгоритм постоянного времени . Рассмотрим реализацию, в которой каждый вызов подпрограммы всегда возвращает результат ровно через x секунд, где x — максимальное время, необходимое для выполнения этой процедуры при каждом возможном разрешенном входе. В такой реализации время работы алгоритма с меньшей вероятностью приведет к утечке информации о данных, переданных для этого вызова. [2] Недостатком этого подхода является то, что время, затрачиваемое на все выполнения, становится временем выполнения функции в наихудшем случае.

Зависимость времени от данных может быть обусловлена ​​одной из следующих причин: [1]

  • Доступ к нелокальной памяти, поскольку ЦП может кэшировать данные. Программное обеспечение, работающее на ЦП с кэшем данных, будет демонстрировать изменения времени в зависимости от данных в результате обращения памяти к кэшу.
  • Условные прыжки . Современные процессоры пытаются спекулятивно выполнить прошлые переходы, угадывая. Неверное предположение (что нередко случается с по существу случайными секретными данными) влечет за собой измеримую большую задержку, поскольку ЦП пытается вернуться назад. Это требует написания кода без ветвей .
  • Некоторые «сложные» математические операции, зависящие от фактического оборудования ЦП:
    • Целочисленное деление почти всегда является непостоянным временем. ЦП использует цикл микрокода, который использует другой путь кода, когда делитель или делимое мало.
    • Процессоры без барабанного переключателя выполняют смены и вращения в цикле, по одной позиции за раз. В результате сумма перевода не должна быть секретной.
    • Старые процессоры выполняют умножение аналогично делению.

Примеры [ править ]

Время выполнения алгоритма возведения в квадрат и умножения, используемого при модульном возведении в степень, линейно зависит от количества битов «1» в ключе. Хотя одного только количества битов «1» недостаточно для облегчения поиска ключа, можно использовать повторные выполнения с одним и тем же ключом и разными входными данными для выполнения статистического корреляционного анализа временной информации для полного восстановления ключа, даже с помощью пассивный нападающий. Наблюдаемые измерения времени часто включают шум (из таких источников, как задержка в сети или различия в доступе к диску от доступа к доступу, а также методы исправления ошибок , используемые для восстановления после ошибок передачи). Тем не менее, тайминговые атаки практичны против ряда алгоритмов шифрования, включая RSA , ElGamal и алгоритм цифровой подписи .

В 2003 году Боне и Брамли продемонстрировали практическую сетевую временную атаку на веб-серверы с поддержкой SSL , основанную на другой уязвимости, связанной с использованием RSA с китайской оптимизацией теоремы об остатках. В их экспериментах фактическое сетевое расстояние было небольшим, но атака успешно восстановила закрытый ключ сервера за считанные часы. Эта демонстрация привела к широкому распространению и использованию методов маскировки в реализациях SSL. В этом контексте ослепление предназначено для устранения корреляции между ключом и временем шифрования. [3]

В некоторых версиях Unix используется относительно дорогая реализация функции библиотеки crypt для хеширования 8-значного пароля в 11-значную строку. На старом оборудовании это вычисление занимало намеренно и измеримо много времени: в некоторых случаях до двух или трех секунд. [ нужна цитата ] Программа входа в ранние версии Unix выполняла функцию шифрования только тогда, когда имя входа распознавалось системой. Из-за этого произошла утечка информации о действительности имени входа, даже если пароль был неправильным. Злоумышленник может воспользоваться такими утечками, сначала применив грубую силу для получения списка заведомо действительных имен для входа, а затем попытаться получить доступ, объединив только эти имена с большим набором паролей, которые, как известно, часто используются. Без какой-либо информации о действительности имен для входа время, необходимое для реализации такого подхода, увеличится на порядки, что фактически сделает его бесполезным. Более поздние версии Unix исправили эту утечку, всегда выполняя функцию шифрования, независимо от действительности имени входа. [ нужна цитата ]

Два в противном случае надежно изолированных процесса, работающих в одной системе либо с кэш-памятью , либо с виртуальной памятью , могут взаимодействовать, намеренно вызывая ошибки страниц и/или промахи в кэше в одном процессе, а затем отслеживая результирующие изменения во времени доступа от другого. Аналогично, если приложению доверяют, но на его подкачку/кэширование влияет логика ветвления, второе приложение может определить значения данных по сравнению с условием ветвления, отслеживая изменения времени доступа; в крайних случаях это может позволить восстановить биты криптографического ключа. [4] [5]

в 2017 году Атаки Meltdown и Spectre , вынудившие производителей процессоров (включая Intel, AMD, ARM и IBM) перепроектировать свои процессоры, основаны на атаках по времени. [6] По состоянию на начало 2018 года Spectre затронула почти все компьютерные системы в мире. [7] [8] [9]

Временные атаки трудно предотвратить, и их часто можно использовать для расширения других атак. Например, в 2018 году старая атака на RSA была вновь обнаружена в варианте временного побочного канала, спустя два десятилетия после первоначальной ошибки. [10]

Алгоритм [ править ]

Следующий код C демонстрирует типичное небезопасное сравнение строк, которое прекращает тестирование, как только символ не совпадает. Например, при сравнении «ABCDE» с «ABxDE» он вернется после 3 итераций цикла:

bool   insecureStringCompare  (  const   void   *  a  ,   const   void   *  b  ,   size_t   length  )   { 
   const   char   *  ca   =   a  ,   *  cb   =   b  ; 
    for   (  size_t   i   =   0  ;   i   <   length  ;   i  ++  ) 
     if   (  ca  [  i  ]   !=   cb  [  i  ]) 
       return   false  ; 
    вернуть   истину  ; 
  } 

Для сравнения, следующая версия работает в постоянном времени, проверяя все символы и используя побитовую операцию для накопления результата:

bool   ConstantTimeStringCompare  (  const   void   *  a  ,   const   void   *  b  ,   size_t   length  )   { 
   const   char   *  ca   =   a  ,   *  cb   =   b  ; 
    логический   результат   =   истина  ; 
    for   (  size_t   i   =   0  ;   i   <   length  ;   i  ++  ) 
     результат   &=   ca  [  i  ]   ==   cb  [  i  ]; 
    вернуть   результат  ; 
  } 

В мире функций библиотеки C первая функция аналогична memcmp(), а последний аналогичен NetBSD consttime_memequal() или [11] OpenBSD timingsafe_bcmp() и timingsafe_memcmp. функцию сравнения из криптографических библиотек, таких как OpenSSL и libsodium В других системах можно использовать .

Примечания [ править ]

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

Ссылки [ править ]

  1. ^ Перейти обратно: а б с «Криптопостоянное время» . МедведьSSL . Проверено 10 января 2017 г.
  2. ^ «Руководство для начинающих по криптографии постоянного времени» . Проверено 9 мая 2021 г.
  3. ^ Дэвид Брамли и Дэн Боне. Удаленные атаки по времени практичны. Симпозиум по безопасности USENIX, август 2003 г.
  4. ^ См. Персиваль, Колин, Тайник пропал ради развлечения и прибыли , 2005.
  5. ^ Бернштейн, Дэниел Дж., Атаки по времени кэша на AES , 2005.
  6. ^ Хорн, Янн (3 января 2018 г.). «Чтение привилегированной памяти по побочному каналу» . googleprojectzero.blogspot.com.
  7. ^ «Часто задаваемые вопросы по системам Spectre» . Мелтдаун и Призрак .
  8. ^ «Недостатки безопасности подвергают риску практически все телефоны и компьютеры» . Рейтер . 4 января 2018 г.
  9. ^ «Потенциальное влияние на процессоры семейства POWER» . Блог IBM PSIRT . 14 мая 2019 г.
  10. ^ Карио, Юбер. «Атака Марвина» . People.redhat.com . Проверено 19 декабря 2023 г.
  11. ^ «Consttime_memequal» .

Дальнейшее чтение [ править ]

Arc.Ask3.Ru: конец оригинального документа.
Arc.Ask3.Ru
Номер скриншота №: 26BC3769DDB92DDE112E0D1640985C99__1715435580
URL1:https://en.wikipedia.org/wiki/Timing_attack
Заголовок, (Title) документа по адресу, URL1:
Timing attack - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть, любые претензии не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, денежную единицу можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)