Издательский дом ООО "Гейм Лэнд"ЖУРНАЛ ХАКЕР #74, ФЕВРАЛЬ 2005 г.

Воздушный дуршлаг

Антон Карпов

Хакер, номер #074, стр. 074-064-4


Если C = RC4(v,k) xor P, то (C xor D) = RC4(v,k) xor (P xor D)

Злоумышленник вычисляет новый шифртекст C' = C xor <D, c(D)> и передает получателю пару (v, C'). Получатель расшифровывает подложный пакет:

<M',c'> = С' xor RC4(v,k) = C xor <D, c(D)> xor RC4(v,k) = <M, c(M)> xor

<D, c(D)> = <M xor D, c(M) xor c(D)> = <M xor D, c(M xor D)> = <F, c(F)>

Затем проверяет c' = c(M') и принимает подложный пакет.

Внедрение пакета

Как следствие предыдущей атаки, протокол уязвим к внедрению в канал связи подложных пакетов, которые будут приняты жертвой как легитимные. Все, что нужно для проведения подобной атаки, - это знание открытого текста и соответствующего шифртекста. Имеем зашифрованный пакет C, вектор инициализации v. Соответствующий открытый текст <M, c(M)>. Злоумышленник вычисляет

RC4(v,k) = C xor <M, c(M)>

Затем он создает поддельное сообщение F, считает контрольную сумму c(F) и шифртекст C' = <F, c(F)> xor RC4(v,k). Затем он передает (v, C'). С точки зрения протокола, C' - валидный пакет, в том смысле, что это корректно зашифрованное сообщение F, поэтому получатель принимает такой пакет.

Фальшивая аутентификация

В предыдущих атаках мы использовали знание одиночного открытого текста и соответствующего ему шифртекста и предположили, что для злоумышленника не составит труда найти пару путем выполнения некоторых активных действий. Как будет показано далее, протокол аутентификации клиента, используемый WEP, позволяет злоумышленнику не беспокоиться ни о чем, чтобы найти такую пару. Это, пожалуй, одна из самых курьезных уязвимостей в WEP. Действительно, протокол аутентификации создан для проверки факта, что клиент знает секретный ключ k. Вот как он работает:

1. Базовая станция (точка доступа) отсылает клиенту квитанцию открытым текстом.

2. Клиент шифрует квитанцию на ключе k и передает базовой станции (обычное WEP-шифрование).

3. Базовая станция проверяет правильность шифрования, используя имеющийся у нее ключ k, и в случае успеха аутентифицирует клиента. Таким образом, злоумышленнику достаточно перехватить пару «открытый текст (квитанция) - шифртекст (ответ клиента)», в результате чего он получает возможность не только внедрять пакеты, но и провести атаку на протокол аутентификации (authentification spoofing), выдав себя за легитимного клиента.

4. Получив открытый текст и шифртекст, злоумышленник извлекает из сообщения v и RC4(v,k) (см. выше).

5. Теперь он пытается внедриться в сеть, выдавая себя за легитимного клиента. Базовая станция посылает ему квитанцию (challenge string) M'.

6. Злоумышленник отвечает парой (v, (<M', c(M)> xor RC4(v,k))).

7. Это корректный ответ (response string), и базовая станция принимает злоумышленника, хотя он никогда не знал ключ k.

Расшифровка сообщений

Раз существует возможность модифицировать и внедрять пакеты, существует ли возможность полностью расшифровать пакеты?

Назад на стр. 074-064-3  Содержание  Вперед на стр. 074-064-5