Атака повторного відтворення

Матеріал з Вікіпедії — вільної енциклопедії.
Перейти до навігації Перейти до пошуку

Атака повторення (replay) — атака на систему автентифікації шляхом запису і подальшого відтворення раніше надісланих коректних повідомлень або їх частин. Будь-яка незмінна інформація, така як пароль або біометричні дані можуть бути записані і використані пізніше для імітації автентичності.

Приклади[ред. | ред. код]

Класична атака повторного відтворення[ред. | ред. код]
  • Аліса автентифікується на комп'ютері Боба, пересилаючи пакети, що містять дані облікового запису.
  • Боб підтверджує особу Аліси і вона отримує доступ до комп'ютера Боба.
  • Чак перехоплює пакети, що містять дані облікового запису Аліси.
  • Коли обмін даними між Алісою і Бобом закінчується, Чак відправляє на комп'ютер Боба перехоплені пакети з даними облікового запису Аліси.

Таким чином Чак отримує несанкціонований доступ до даних Боба.

Атака відображенням[ред. | ред. код]
  • Чак створює з'єднання до комп'ютера Боба.
  • Комп'ютер відправляє Бобу автентифікаційний запит.
  • Чак створює з'єднання до комп'ютера Аліси і відправляє копію ідентифікаційного запиту Боба.
  • Комп'ютер Аліси відповідає на запит.
  • Чак відправляє отриманий від Аліси ідентифікатор.

Таким чином, при умові, що Аліса має доступ до комп'ютера Боба, Чак отримує несанкціонований доступ до його даних.

Реалізації атаки в мережі[ред. | ред. код]

На практиці для здійснення даного виду атаки використовується недосконалість засобів автентифікації потоку даних. Зловмисник перехоплює кілька пакетів або команд додатка, змінює їх (наприклад змінює суму грошового переказу) і відтворює з метою виконання несанкціонованих дій.

Одним з видів атаки відтворення сеансу зв'язку є застосування JavaScript для створення пролому в системі Hotmail та інших системах електронної пошти Web. Такий пролом дозволяє хакеру створити повідомлення електронної пошти з фальсифікованим адресою і направити його на комп'ютер іншої особи. Користувач, зацікавившись «невинною» на вигляд Web-сторінкою, в яку хакер вклав шкідливий програмний код JavaScript, піддається атаці. Атаки відтворення і захоплення сеансу зв'язку можуть реалізувати тільки кваліфіковані програмісти, тому документально підтверджених випадків таких атак небагато.

— Уенстром М. «Организація захисту мереж Cisco»

Атака відтворення для сесій CookieStore[ред. | ред. код]

Збереження cookie сайту може призвести до атаки відтворення. Наприклад, якщо ви скористалися послугами інтернет-кафе, то користувач, сів на ваше колишнє місце, може отримати доступ до вашого облікового запису на сайті, який зберіг cookie вашої сесії. Наступний приклад атаки відтворення на сервіс, що використовує cookie для зберігання важливої інформації.

  • Користувач отримує кредит, сума зберігається в сесію.
  • Користувач купує що-небудь.
  • Нова змінилася сума кредиту зберігається в сесії.
  • Користувач бере куки з першого кроку (які він попередньо скопіював) і замінює поточні куки в браузері.
  • Користувач отримав свій первісний кредит назад.
Атака на бездротову мережу[ред. | ред. код]

Бездротові мережі є одними з найбільш вразливих для атаки відтворення, так як зловмисник може отримати доступ до каналу зв'язку відносно легко, якщо він знаходиться недалеко від джерела електромагнітного сигналу. Існують пристрої, що дозволяють реалізувати такі атаки. Прикладом може служити утиліта, розроблена групою вчених, для компрометації функціональності і конфіденційності сенсорної мережі. Утиліта працює в кілька етапів:

  • Сканування в заданому радіодіапазоні на наявність потоку даних
  • Ідентифікація передавальних вузлів
  • Запис трафіку для подальшого аналізу
  • Декодування і зміна повідомлення (якщо потрібно)
  • Відтворення вихідного повідомлення або його зміненої версії
  • Передача повідомлення по радіоканалу

Така атака можлива з-за відсутності стандартизованих протоколів для сенсорних мереж.

Інші пристрої/програми[ред. | ред. код]
  • Кейлогер - програма або апаратний пристрій, що реєструє різні дії користувача — натискання клавіш на клавіатурі комп'ютера, руху і натискання клавіш миші і т.д. Пристрій допомагає реалізувати класичну атаку відтворення, так як дає зловмиснику доступ до автентифікованих даних користувача (логін, пароль і т.д.). Які він потім використовує для отримання несанкціонованого доступу до облікового запису.
  • Кодграббер - пристрій для злому сигналізації. Він може перехопити сигнал брелока власника машини, який пізніше можна буде використовувати для відключення сигналізації. Кодграббер буває трьох видів: алгоритмічний, кодграббер із заміщенням і кодграббер з ретрансляцією.

Розглянемо роботу кодграббера з заміщенням, як приклад реалізації атаки відтворення. Нехай для шифрування сигналізації використовується динамічний код KeeLoq, у такому випадку кожна наступна посилка дуже сильно відрізняється від попередньої, навіть якщо натискається одна і та ж кнопка. Брелок посилає сигналізації посилку, яка складається з двох частин: відкритої і шифрованої. У відкритій знаходяться унікальний номер брелока і ідентифікатор кнопки натиснутою, в шифрованій - номер натискання. Цей номер натискання збільшується при кожному натисканні на будь-яку кнопку. Він забезпечує "динамічність" коду. Сигналізація приймає посилку, перевіряє, що це брелок з номером, який вона знає і розшифровує другу частину посилки - номер натискання. Далі сигналізація дивиться - номер натискання менше останнього або більше: якщо менше - значить це натискання вже відпрацьовувалося - воно ігнорується; якщо трохи більше - це те, що потрібно, команда відпрацьовується. Брелок про функції сигналізації не знає, він лише відсилає яка кнопка натиснута, а далі сигналізація розбирається як реагувати на натискання кнопок. Тому один і той же брелок можна використовувати і при однокнопочній і при двухкнопочній системі постановки/зняття. При однокнопочній системі натискання однієї кнопки призводить до зміни стану сигналізації постановки на охорону/зняття. Відповідно спочатку кодграббер перехоплює посилку, яку видає брелок і спотворює її в ефірі так, що сигналізація не приймає посилку. При цьому кодграббер знає, як спотворена посилка й у нього вона зберігається в правильному вигляді. Потім він перехоплює наступну посилку і натомість відсилає перехоплену першу. Підміна займає частки секунди і практично непомітна власнику. Сигналізація ставиться на охорону, задоволений власник йде, не звернувши увагу на те, що спрацювало тільки друге натискання на кнопку. Потім кодграббер видає перехоплену посилку і сигналізація знімається з охорони.

Контрзаходи[ред. | ред. код]

Головним завданням при захисті від атак повторного відтворення є побудова криптостійкої системи автентифікації. Основна ідея полягає в тому, що кожна сесія аутентифікації використовує оригінальні параметри (ключі). Такими можуть бути:

  • мітка часу і життя ключа (пароля)
  • випадково згенероване число
  • nonce вставки

Ці параметри роблять відправку записаних зловмисником повідомлень безрезультатною, тому що, проаналізувавши їх, система потребує повторної автентифікації.

Практичними реалізаціями систем на даний момент є:

Література[ред. | ред. код]

  • Шнайер Б. Прикладная криптография. Протоколы, алгоритмы, исходные тексты на языке Си = Applied Cryptography. Protocols, Algorithms and Source Code in C. — М.: Триумф, 2002. — 816 с. — 3000 экз. — ISBN 5-89392-055-4.
  • Karlof C. and Wagner D. .

Дивись також[ред. | ред. код]

Примітки[ред. | ред. код]

[1] [2]

Посилання[ред. | ред. код]

  • Руководство Ruby On Rails по безопасности
  • Беспроводные сети как оружие