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,
по видимому это единственно возможный метод, пока только читаю, и, пока сам не прошел, но, надеюсь, разберусь. |
Was-Ja,
из вашего поста я понял, что вам нужно какимто образом различать датчики. Свой чужой. К примеру в вашу схему подключается фейковый датчик. Тогда предлагаю рассмотреть RSA шифрование, на основе публичных и приватных ключей |
Спасибо большое, Vlasenko Fedor, за ответ.
Не, в этой теме я про довольно сложный датчик говорил. Мне пробно предлагают поставить эти датчики в студенческий практикум, если датчики будут удовлетворять условию сложной взламываемости, а у меня всейчас все по обычным сокетам идет без кодирования. Так как те, кто хотят это пробно поэксплуатировать не говорят готовы ли они выделить статический IP или нет, я не могу себе гарантировать будет ли работать LetsEncript. |
RSA решит вашу проблему
генерьте ключи на датчиках и шифруйте ими сообщенияб сервер отправляет на устройство свой публичный ключ устройство отправляет на сервер публичный ключ таким образом у вас всегда будет идентификатор устройства - его публичный ключ Только сервер сможет прочитать данные датчика так как они будут зашифрованы его публичным ключом. Посмотрите Механизмы образования ключа для текущей сессии в SSL/TLS Я предложил аналог, но для устройств |
Спасибо большое, Vlasenko Fedor,
Цитата:
А вот как быть с веб интерфейсом - я так понял, надо будет говорить пользователю, чтобы он эксепшн ставил на самоподписанный сертификат, или заставлять его ставить сервер на статический IP, подцепляя туда LetsEncript. Скажите, пожалуйста, есть ли еще какой-то вариант для поддержки адекватного енкрипшна если сервер имеет свой адрес по DHCP? Спасибо! |
смотрите устройства по rsa
web морду по LetsEncript (не забываем что есть и платные сертификакты на год -2) если взлетит, чего не потратиться |
Цитата:
|
Was-Ja,
статческий ip адрес это копейки веб разработки любой хостинг или облако почему вас так затрагивает постоянный ip есть и такие варианты никогда не делал за ненадобностью |
Спасибо большое за ответ!
Цитата:
Вот смотрите, юзер покупает сервер (это просто компьютер со встроенным мной бекентом), который обслуживает датчики и ставит себе этот сервер и датчики в свою сетку. Это и простая сетка на одном роутере может быть, и статический IP. А юзер может сидеть в каком-нибудь ЛосАламосе или еще в какой голимой военке, что там все физически от интернета отключено. У меня на сервере не веб старница, а веб интерфейс аппаратуры. И юзеров реально много разных. А кто-то хочет в практикум студентам поставить, но в их университете есть свои правила игры как и что делать и IP раздаются в своей локальной сетке, но у каждого компьютера и датчика есть только текстовое имя. Я хочу понять как мне сделать в сервере, датчиках и веб интерфейсе все так, чтобы оно везде работало, и браузер не горовил про истекщий или отсутсвующий сертификат, ибо юзер пугается и может вызвать веня налаживать за мой счет и лететь в какой-нибудь ЛосАламос мне реально не сильно охота, особенно при современных карантинах. |
У вас есть сервер с вебмордой
Пользователь авторизуется на нем Создает конфигурацию оборудования и работает с своим окружением Сервер один ваш, пользователей много, работающих на вебсайте вашего сервера Юзеру не нужно покупать ничего на стороне Ему нужно только авторизоваться у вас, (купить доступ у вас если он платный) |
Цитата:
В моем случае, сервер (вычислительный сервер) - это компьютер, который юзер покупает у меня с предустановленным софтвером, или собирает-покупает где-то на стороне, но после этого туда ставит мой бекенд. Бекенд тяжелый, требует минимум терафлопc на двойной точности. Проверить сколько на сильно оптимизированном вебассембли Вы можете получить с вашего компьютера, можно на моем тестировщике: https://www.elegant-nmr.com/perf_test.html Юзер ставит этот сервер где-то у себя, и, в зависимости от того, что это за организация, этот сервер может физически быть отключен от интернета, но быть в какой-то своей локальной сети. В той же сети он втыкает мои датчики. Обычно на самом деле один датчик - один сервер. Иногда, чтобы съэкономить, юзер покупает на несколько датчиков один сервер. Сильно жмотливые юзеры не покупают сервер и просят, чтобы мой хостинг послужил им сервером. По первости я планировал давать бесплатно им такую возможность. У некоторых просто есть простаивающий компьютер, и они не против из него сделать сервер. Надеюсь, понятно объяснил. |
Спасибо большое, за интересные ссылки.
Сижу изучаю. В этой теме и в соседней теме https://javascript.ru/forum/gadgets/...ntrollere.html это совершенно разные девайсы. Если здесь в девайсе гарантированно есть линукс борда внутри и девайс не маленький - это десктопное оборудование с 220В питанием, весом под 20 кг и есть хотя бы небольшой бюджет что-то туда докупить, то в соседней теме девайс переносной, с копеечной электроникой и питанием по USB. |
Часовой пояс GMT +3, время: 16:23. |