Чи достатньо HTTPS, щоб уникнути повторних атак?


10

Я відкриваю кілька методів REST на сервері для мобільного додатка.

Я хотів би уникати того, щоб користувачі могли нюхати, як побудовані методи HTTP (з мобільного додатку), а потім знову надіслати їх на сервер. Приклад:

  • Мобільний додаток надсилає запит
  • Користувач використовує проксі і може перевірити, що відбувається в мережі
  • Користувач бачить і зберігає запит, який мобільний щойно надіслав
  • => Тепер я не хочу, щоб користувач міг вручну надсилати цей запит

Чи достатньо захистити сервер через HTTPS?

Відповіді:


7

HTTPS може бути достатньо для захисту сервера від повторних атак (одне і те ж повідомлення надсилається двічі), якщо сервер налаштований на те, щоб дозволяти протокол TLS відповідно до розділу rfc2246, розділ F.2.

Вихідні дані захищаються MAC перед передачею. Щоб запобігти атаці відтворення чи модифікації повідомлень, MAC обчислюється із секрету MAC, порядкового номера [...]


1
Це більше не стосується (чернетки) TLS 1.3, якщо включені квитки на 0-RTT . Також, хоча це не суворо підпадає під питання, атака повторного повторення все ще може бути встановлена навіть у поточних версіях TLS, якщо використовується веб-браузер .
Олексій Шпілкін

9

HTTPS просто означає, що дані, що передаються, шифруються, щоб розшифрувати їх могли лише клієнт та сервер (в ідеальному світі, не кажучи про атаки MITM тощо).

Таким чином, нічого в протоколі не перешкоджає повторному нападу від повторного нападу.

Вам потрібно буде вбудувати якийсь механізм уникнення відтворення повторних атак (щось на зразок закінчуваних термінів, або маркерів, які втрачають чинність після закінчення процесу), щоб переконатися, що ваша програма не вразлива для повторних атак. Цей механізм можна використовувати при звичайному HTTP.


8
Ці відповіді, здається, говорять про зворотне: stackoverflow.com/questions/2769992/… Будь-яка ідея, чому різниця?
Брайан Армстронг

1
@BrianArmstrong Я думаю, що проблема полягає в тому, що HTTPS має різні реалізації, про що йдеться у відповіді Еміріколя. Деякі протоколи запобігають повторним атакам, а деякі -. (Це трапляється під час обміну ключами, обмін ключами RSA перешкоджає, але обмін ключами анонімних не робить. Ref: tools.ietf.org/html/draft-ietf-tls-ssl-version3-00#appendix-F ) Отже, токени ( як CSRF) відіграють важливу роль (базовий сценарій тут: stackoverflow.com/a/2770135/4206925 )
MewX
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.