Javascript-форум (https://javascript.ru/forum/)
-   Гаджеты (https://javascript.ru/forum/gadgets/)
-   -   SSL на Embedded (https://javascript.ru/forum/gadgets/82890-ssl-na-embedded.html)

Was-Ja 28.07.2021 12:39

SSL на Embedded
 
Добрый день,

запутался, читал много гугла, но так и не понял как правильно.

Хочу делать такую конструкцию:

компьютер-сервер - обычная PC под линуксом (PC),
к компьютеру подсоединены через етернет или интернет несколько датчиков-сенсоров (S), через ембеддед линукс. Датчики могут стоять в одной комнате с сервером, а могут находиться на другом континенте.

Управление всех сенсоров и компьютера происходит через веб интерфейс на JS (WEB).

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

Сейчас S-PC соединение реализовано через линукс-сокеты. Датчики с сервером общаются примерно раз в секунду, посылая друг другу сообщения, формат которых я сам придумал. Датчики-сенсоры общаются только с сервером. То есть трафик до безобразия простой, я его сам писал, и могу подстроиться, если надо.

Веб интерфейс на JS общается только с сервером, формат тоже самопальный - с JS я делаю POST или GET на какой-то заданный порт, а с этого порта на сервере по сокету я беру или отправляю данные на веб интерфейс.

Все бы хорошо, но мне надо как-то поддержать SSL соединение между любой из таких коммуникаций, причем и сервер (PC) и датчики-сенсоры (S) могут иметь как статические IP, так и DHCP.

Мне это нужно, так как есть юзеры этой системы, и в каждому юзеру разрешено или запрещено пользоваться какими-либо датчиками.

Я поставил летц-енкрипт на сервер. Если IP сервера статический, то он по крайней мере с веб-интерфейсом общается по SSL протоколу.

Если у него DHCL - то летценкрипт отказывается работать.
В датчиках ембеддед линукс, причем очень дебильный arm-angstrom-linux-gnueabi - поменять - нет возможности. Поставить летценкрипт туда не удалось. То есть пока голые сокеты.

Скажите, пожалуйста, как с минимальными танцами с бубном прикрутить SSL на все это, и, чтобы оно на любом даже DHCP соединении работало?

Спасибо!

Aetae 28.07.2021 20:38

Выпустить свой сертификат?

Was-Ja 09.08.2021 15:43

Спасибо большое, Aetae,
по видимому это единственно возможный метод, пока только читаю, и, пока сам не прошел, но, надеюсь, разберусь.

Vlasenko Fedor 09.08.2021 16:12

Was-Ja,
из вашего поста я понял, что вам нужно какимто образом различать датчики. Свой чужой. К примеру в вашу схему подключается фейковый датчик.
Тогда предлагаю рассмотреть RSA шифрование, на основе публичных и приватных ключей

Was-Ja 09.08.2021 16:28

Спасибо большое, Vlasenko Fedor, за ответ.

Не, в этой теме я про довольно сложный датчик говорил. Мне пробно предлагают поставить эти датчики в студенческий практикум, если датчики будут удовлетворять условию сложной взламываемости, а у меня всейчас все по обычным сокетам идет без кодирования.

Так как те, кто хотят это пробно поэксплуатировать не говорят готовы ли они выделить статический IP или нет, я не могу себе гарантировать будет ли работать LetsEncript.

Vlasenko Fedor 09.08.2021 16:36

RSA решит вашу проблему
генерьте ключи на датчиках и шифруйте ими сообщенияб
сервер отправляет на устройство свой публичный ключ
устройство отправляет на сервер публичный ключ
таким образом у вас всегда будет идентификатор устройства - его публичный ключ
Только сервер сможет прочитать данные датчика так как они будут зашифрованы его публичным ключом.
Посмотрите
Механизмы образования ключа для текущей сессии в SSL/TLS
Я предложил аналог, но для устройств

Was-Ja 09.08.2021 16:48

Спасибо большое, Vlasenko Fedor,

Цитата:

Сообщение от Vlasenko Fedor (Сообщение 539279)
RSA решит вашу проблему
генерьте ключи на датчиках и шифруйте ими сообщения

да, похоже это единственно разумный случай, более того, приватный и публичный ключи можно сгенерить еще на стадии производства и публичный ключ каждого датчика засунуть в сервер, чтоб было.

А вот как быть с веб интерфейсом - я так понял, надо будет говорить пользователю, чтобы он эксепшн ставил на самоподписанный сертификат, или заставлять его ставить сервер на статический IP, подцепляя туда LetsEncript. Скажите, пожалуйста, есть ли еще какой-то вариант для поддержки адекватного енкрипшна если сервер имеет свой адрес по DHCP?

Спасибо!

Vlasenko Fedor 09.08.2021 16:54

смотрите устройства по rsa
web морду по LetsEncript (не забываем что есть и платные сертификакты на год -2) если взлетит, чего не потратиться

Was-Ja 09.08.2021 16:57

Цитата:

Сообщение от Vlasenko Fedor (Сообщение 539282)
смотрите устройства по rsa
web морду по LetsEncript (не забываем что есть и платные сертификакты на год -2) если взлетит, чего не потратиться

а разве хоть один даже платный сертификат по DHCP работает? Если да, то, конечно это сильно меняет дело и будет самым простым вариантом.

Vlasenko Fedor 09.08.2021 17:07

Was-Ja,
статческий ip адрес это копейки веб разработки
любой хостинг или облако
почему вас так затрагивает постоянный ip
есть и такие варианты
никогда не делал за ненадобностью


Часовой пояс GMT +3, время: 01:27.