Есть у нас нашего ISIM основной сервер приложения (собсна сам ISIM) и клиенты (коллекторы), которые собирают инфу по текущему статусу системы и трафику машины, где он установлен и отправляют на ISIM . Короч, клиент-серверная архитектура 🤔
Пока эта схема находится в бета тестировании и понемногу обрастает функционалом. И вот, мне дали фичу - нужно, чтобы клиенты (коллекторы) при отправке информации еще и авторизовывались на сервере (ISIM), а то проходной двор епт...
На тот момент схема подключения клиента к серверу выглядела так:
1. Сервер создает новый коллектор через свой интерфейс - задает его имя, адрес, порт, доп. сетевые характеристики и... все)
2. Это сохранялось в файл конфиг и руками с ногами несли клиенту и через небольшую утилиту загружали в клиента. Он съедал эти настройки и понимал куда и как слать свою информацию 😐
Было принято решение использовать симметричный алгоритм шифрования.
Симметричный алгоритм шифрования (симметричное шифрование) — это метод шифрования, при котором один и тот же ключ используется как для шифрования, так и для расшифровки данных. Ключ должен сохраняться в секрете обеими сторонами.
Я добавил генератор строки на 64 байта на сервере, которая добавляет еще один ключик в конфиг клиенту с секретом. Первая половина секрета - для шифрования, а вторая для подписи
Теперь сервер сохраняет в укромной месте его у себ, а клиент получает из конфига секрет, шифрует и подписывает сообщение, отправляет его на сервер. Сервер получает сообщение, проверяет подпись, расшифровывает и кладет данные в БД. Все просто 😎
