Hostapd файл для WPA PPSK

Мы хотим сделать для hostapd путь к расширению технологии WPA PPSK.



WPA имеет шаги аутентификации, называемые 4-сторонним рукопожатием. Логика подобна

0) AP знает простой пароль SSID, клиент тоже знает

1) AP генерирует значение random1, отправляя его Wi-Fi-клиенту

2) Клиент генерирует random2 и создает «хеш» из [plain_password.random1.random2] и отправляет этот хеш на hostapd.

3) Hostapd тоже знает plain_password - поэтому он принимает хеш [plain_password.random1.random2] - и если они такие же => клиент тоже знает plain_password

4) Допустим, "хостап отправляет приветственное сообщение клиенту"



Этот процесс полностью описан в этой статье http://etutorials.org/Networking/802.11+security.+wi-fi+protected+access+and+802.11i/Part+II+The+Design+of+Wi-Fi+Security/Chapter+10.+WPA+and+RSN+Key+Hierarchy/Details+of+Key+Derivation+for+WPA/

Включая названия параметров, как в микроскопе.



=============================



Существует технология PPSK, логика которой такова: «AP запрашивает удаленный сервер RADIUS, какой пароль у этого user_mac». Это близко к тому, что нам нужно, оттуда можно брать образцы radius-call, но нам нужна другая логика.

Нам нужны подэтапы после 2)

2.1)% milestone1 + 2% После получения хэша [plain_password.random1.random2] и random1 random2 - мы должны в синхронизирующем вызове (мы должны остановить текущий поток) отправить эту информацию на удаленный сервер RADIUS

Радиус вернет plain_password для пользователя, а настоящий hostapd пересчитает [plain_password.random1.random2] и перейдет к шагу 3)

2.2)% milestone3% На VPS радиус-сервера будет приложение, которое получит [plain_password.random1.random2] и random1 random2, прочитает простой пароль из файла и пересчитает хэш - они должны быть одинаковыми

2.3)% milestone4% Приложение на VPS должно уметь вычислять хэш для многих простых паролей, определять, какой пароль используется клиентом для его [plain_password.random1.random2], и отправлять этот простой пароль обратно на настоящий hostapd



=====================



1) Добавьте дополнительную синхронизацию (она должна ждать ответа радиуса) вызова freeradius перед 2 4 шагом 4-стороннего рукопожатия WPA. Radius вернет пароль, с которым 2 4 шага 4-стороннего WPA-рукопожатия вычислит PTK hash и отправит его wifi-клиенту.

- ожидания - мы из нашего радиуса отправим пользователю действительный и nvalid пароль. С действующим настоящим hostapd должен передать его в



2) Звонок должен содержать всю информацию, необходимую для вычисления «хэша» PTK 2 4 шага 4-стороннего WPA-рукопожатия.

- ожидания - мы должны видеть в дополнительных заголовках радиуса (или вы предпочитаете HTTP-API?) информацию, которая использовалась для вычисления [plain_password.random1.random2] на клиентском устройстве



3) Нам нужен C-исполняемый файл (с исходниками можно взять часть источников hostapd, которые вычисляют такой PTK хеш), который будет

- взять информацию с шага 2

- прочитать простой пароль из текстового файла

- вычислять хеш как в реальном hostapd

- мы ожидаем, что хеш в реальном hostapd и в "remote hostapd" должен быть одинаковым



- ожидания - мы должны иметь возможность сохранить действительный пароль в текстовом файле - клиент Wi-Fi будет авторизован. Если пароль неверный - он не сможет подключиться к wifi



4) C-исполняемый файл должен иметь возможность

- читать данные из базы данных (MySQL?). Допустим, будет 100 простых паролей

- сделать пересчет PTK hash для каждого простого пароля (нужен многопоточный способ)

- показать хеш, для которого из plain_passwords было точно такое же, как в информации, полученной от радиуса вызова



- ожидания - мы хотим сохранить в базе данных 100 паролей, если один из них будет действительным => пользователь будет авторизован настоящим hostapd





Бюджет: 70000 руб.
Город: Москва
Вид предложения: Удаленная работа (разовый заказ)
Оплата: безопасная сделка
Категория: Программирование

Добавлено: 27.03.2021 в 19:03




Сделайте предложение по проекту:


Для того чтобы ответить на предложение, вам необходимо авторизоваться или зарегистрироваться на сайте


Комментарии:
Виктор Гречишников    01.04.2021   15:33:18     

Доброго времени суток! Ознакомился с описанием проекта
есть свободное время готов обсудить. Всегда на связи

Skype: live:.cid.e757dc7e7cfc644d
Email viktor_dev@mail.ru
Телеграмм @viktor_dev
Дмитрий Кривошеев    29.03.2021   16:36:51     

Здравствуйте, задача ясна, готов приступить.
Сделаю быстро и качественно.
Я гарантирую вам своевременное выполнение работы и быстрое устранение недочетов.
Добавляйтесь обсудим детали.
Telegram: @kruvoi
WhatsApp: +79588702117
Почта: kruvoi@bk.ru
Скайп live:.cid.438b88db4ded2833