2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




Начать новую тему Ответить на тему На страницу 1, 2  След.
 
 Как принято делать веб-интерфейс (SSL) носимого аппарата?
Сообщение02.02.2023, 08:57 


11/08/18
363
Доброе утро,

имею небольшой аппарат для строителей для сканирования 3Д комнаты. Аппарат чуть больше мобильника с батарейкой и единственной кнопкой включения.

Весь интерфейс у него - стартовать сканирование/остановить сканирование/отрисовать результаты в WebGL и это я уже сделал.

У аппарата есть Access Point и он одновременно может залезать в чужую сетку, если ему сказать имя и пароль, но мощность процессора на борту очень слабая, и не хотелось бы его сильно нагружать.

Я планировал в режиме access point дать возможность юзеру через простую форму вписать логин-пароль его сетки, и потом дать юзеру линк в его локальной подсетке, где будет жить его основной интерфейс.

Скажите, пожалуйста, так будет разумно или принято как-то по-другому?

И теперь, основной вопрос - как поступать с SSL?

На своем хосте я конечно могу SSL поднять и из какого-нибудь Let's Encripta засертифицироваться, но тут-то все будет в локальной подсетке пользователя, и даже если я сам выпишу сертификат, то стандартный браузер все равно пишет "уходим отсюда".

Скажите, пожалуйста, как с этим бороться?

Спасибо!

 Профиль  
                  
 
 Re: Как принято делать веб-интерфейс (SSL) носимого аппарата?
Сообщение02.02.2023, 12:29 
Заслуженный участник
Аватара пользователя


16/07/14
9149
Цюрих
Я правильно понимаю, что предполагающийся протокол следующий:
1. На аппарате включается Access Point, к нему подключаются и в веб-интерфейсе вписывают данные местной WiFi-сети.
2. Аппарат подключается к этой сети и сообщает пользователю свой IP в ней.
3. Пользователь подключается к той же сети.
4. Пользователь идёт по IP аппарата и получает веб-интерфейс в нём.
Так?

Должна ли вся эта схема работать без интернета?

 Профиль  
                  
 
 Re: Как принято делать веб-интерфейс (SSL) носимого аппарата?
Сообщение02.02.2023, 20:12 


11/08/18
363
Спасибо большое, mihaild за ответ!

Да, 1-4 пункты - это один из сценариев, когда пользователь пускает в свою сеть. Если у него нет такого желания, он просто должен остаться в сетке моего аппарата, но интернета у него не будет.

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

 Профиль  
                  
 
 Re: Как принято делать веб-интерфейс (SSL) носимого аппарата?
Сообщение02.02.2023, 20:30 
Заслуженный участник


18/09/21
1756
ilghiz в сообщении #1579964 писал(а):
Меня в обоих сценариях настораживает то, что браузер в обоих случаях показывает сообщение "уходим отсюда"
Это видимо надо браузер настраивать.
Просто так оно не заработает само собой. Разве что получить реальный сертификат от центра сертификации.

 Профиль  
                  
 
 Re: Как принято делать веб-интерфейс (SSL) носимого аппарата?
Сообщение02.02.2023, 20:44 


11/08/18
363
zykov в сообщении #1579966 писал(а):
Это видимо надо браузер настраивать.

Браузер-то на стороне пользователя, и, когда он это видет, он считает, что я такой плохой.

zykov в сообщении #1579966 писал(а):
Разве что получить реальный сертификат от центра сертификации.
А дают такие на долго? Обычно дают на несколько месяцев, то есть первые несколько месяцев оно все будет нормально работать, а потом - пугать пользователя.

 Профиль  
                  
 
 Re: Как принято делать веб-интерфейс (SSL) носимого аппарата?
Сообщение02.02.2023, 21:55 
Заслуженный участник
Аватара пользователя


16/07/14
9149
Цюрих
ilghiz в сообщении #1579968 писал(а):
А дают такие на долго?
Как договоритесь. Let's encrypt на год ЕМНИП. Его можно обновлять с железки, но для этого железке нужен интернет.
Плюс еще проблема в том, что этот сертификат привязан к какому-то домену. И непонятно, какой домен ваша железка должна иметь в локальной сети без интернета.

Вообще такие задачи должны возникать в embedded device, так что можно поискать по этой теме. Например https://security.stackexchange.com/a/121573/246146.

 Профиль  
                  
 
 Re: Как принято делать веб-интерфейс (SSL) носимого аппарата?
Сообщение03.02.2023, 01:39 


11/08/18
363
Спасибо большое, mihaild за ответ, ссылку и дальнейшие ссылки внутри!

mihaild в сообщении #1579985 писал(а):
Плюс еще проблема в том, что этот сертификат привязан к какому-то домену. И непонятно, какой домен ваша железка должна иметь в локальной сети без интернета.


Это мне тоже не понятно, и даже не понятно какой домейн будет, когда подсеть пользователя будет давать моему устройству какой-то первый попавшийся IP по DHCP и как туда привязывать домейны.

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

mihaild в сообщении #1579985 писал(а):
Вообще такие задачи должны возникать в embedded device

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

Скажите, пожалуйста, а есть ли у браузеров какая-то процедура, когда он сам каким-то образом договаривается с ембеддед сервером, что де соединение достаточно безопасно?

Может я могу какой-то сертификат сам послать пользователю, и он, установив его на свой смартфон, будет проверять этим сертификатом соединение с моим ембеддед аппаратом?

Грубо говоря, есть
1. цель минимум: гарантировать пользователю шифрование соединения,
2. цель максимум: гарантировать это без бубнов и без страшненьких фреймов в браузере типа "уходим отсюда".

 Профиль  
                  
 
 Re: Как принято делать веб-интерфейс (SSL) носимого аппарата?
Сообщение03.02.2023, 02:12 
Заслуженный участник
Аватара пользователя


16/07/14
9149
Цюрих
Ну вот например у моего роутера (zyxel) самоподписанный сертификат (и браузер ругается). Возможно если такая довольно крупная компания решила, что сойдет (и не придумала, как сделать иначе), то ничего особо сделать и нельзя.
ilghiz в сообщении #1580023 писал(а):
Может я могу какой-то сертификат сам послать пользователю, и он, установив его на свой смартфон, будет проверять этим сертификатом соединение с моим ембеддед аппаратом?
Вы теоретически можете сгенерировать новый корневой сертификат, выдать его пользователю, положить приватный ключ от него на железку, и дальше на железке генерировать подписанные им сертификаты хоть на 192.168.0.1. Практически это означает, что человек, вытащивший ключ с вашей железке, сможет перед поставившим Ваш корневой сертификат притворяться хоть google.com, и это очень неприятно.

 Профиль  
                  
 
 Re: Как принято делать веб-интерфейс (SSL) носимого аппарата?
Сообщение03.02.2023, 02:34 


11/08/18
363
Спасибо большое, mihaild за разъяснения!

mihaild в сообщении #1580027 писал(а):
Ну вот например у моего роутера (zyxel) самоподписанный сертификат (и браузер ругается). Возможно если такая довольно крупная компания решила, что сойдет (и не придумала, как сделать иначе), то ничего особо сделать и нельзя.

Ага, верно, сталкивался с массой роутеров разных фирм и у всех была одна и та же проблема. Даже у Старлинка от Маска - тоже без сертификата.

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

mihaild в сообщении #1580027 писал(а):
Вы теоретически можете сгенерировать новый корневой сертификат, выдать его пользователю, положить приватный ключ от него на железку, и дальше на железке генерировать подписанные им сертификаты хоть на 192.168.0.1. Практически это означает, что человек, вытащивший ключ с вашей железке, сможет перед поставившим Ваш корневой сертификат притворяться хоть google.com, и это очень неприятно.


Спасибо за разъяснения! Действительно, я не могу гарантировать, что приватный ключ не будет утащен с моего аппарата, но, с другой стороны, для этого надо потерять на аппарат гарантию - то есть залезть в него физически или подобрать пароль прошивки, и подсунуть пользователю левую прошивку, вместо моей, которую я буду при очередном апдейте раздавать.

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

 Профиль  
                  
 
 Re: Как принято делать веб-интерфейс (SSL) носимого аппарата?
Сообщение03.02.2023, 02:46 
Заслуженный участник


18/09/21
1756
ilghiz в сообщении #1580028 писал(а):
Ага, верно, сталкивался с массой роутеров разных фирм и у всех была одна и та же проблема
На роутер обычно заходят из внутренней сети. Через интернет не зайти. Так что там этот SSL собственно и не нужен. Можно в открытую, без него.

 Профиль  
                  
 
 Re: Как принято делать веб-интерфейс (SSL) носимого аппарата?
Сообщение04.02.2023, 14:11 


11/08/18
363
zykov в сообщении #1580031 писал(а):
На роутер обычно заходят из внутренней сети. Через интернет не зайти. Так что там этот SSL собственно и не нужен. Можно в открытую, без него.

Спасибо большое, zykov за комментарий, полностью с Вами согласен! Более того, на роутер обычно практически и не заходят, а на мою аппаратуру как раз и будут заходить - данные как раз из этой аппаратуры и будут перекачевывать в веб клиент пользователя, и пользователь может очень хотеть чтобы эти данные никуда не утекли.

 Профиль  
                  
 
 Re: Как принято делать веб-интерфейс (SSL) носимого аппарата?
Сообщение04.02.2023, 15:15 
Заслуженный участник


18/09/21
1756
Ну если это какая-то большая система со многими пользовтаелями, то делаете нормальный веб-портал, пользовтаель туда заходит, а уже этот веб сервер сам по сети общается с устройствами.
(У меня так сигнализация машины StarLine работает - заходишь на веб-портал, там регестрируешь машину, а они уже сами с машиной по GPRS связываются.)

 Профиль  
                  
 
 Re: Как принято делать веб-интерфейс (SSL) носимого аппарата?
Сообщение04.02.2023, 17:29 


11/08/18
363
Спасибо за ответ!
zykov в сообщении #1580192 писал(а):
Ну если это какая-то большая система со многими пользовтаелями, то делаете нормальный веб-портал, пользовтаель туда заходит, а уже этот веб сервер сам по сети общается с устройствами.

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

1. без связи (то есть мой аппарат раздает свою сетку без интернета),
2. в какой-то сетке пользователя,
3. в какой-то публичной или просто доступной чужой сетке.

Вот просто представьте - аппаратура для сканирования внутренности комнат или чего угодно и получения в STEP формате формы стен.
Если она попала в руки какому-то строителю, то он сканирует то, что построено на объекте, и, скорей всего ему сразу это надо сверять с его данными, то есть он с мобильника сетку раздает, а мой аппарат ее берет и ему в веб интерфейсе все показывает.
Если это какой-то человек, который обследует какие-то пещеры, завалы, МЧС какой-нибудь, то там сетки вообще может и не быть.

 Профиль  
                  
 
 Re: Как принято делать веб-интерфейс (SSL) носимого аппарата?
Сообщение04.02.2023, 17:36 
Заслуженный участник


18/09/21
1756
Ну либо без SSL связываться, либо ему на телефон своё приложение ставить вместо браузера, которое будет связь осуществлять, трафик шифровать и не выдавать предупреждения как браузер.

 Профиль  
                  
 
 Re: Как принято делать веб-интерфейс (SSL) носимого аппарата?
Сообщение04.02.2023, 18:02 


11/08/18
363
Спасибо большое, zykov за ответ!
zykov в сообщении #1580212 писал(а):
Ну либо без SSL связываться

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

zykov в сообщении #1580212 писал(а):
либо ему на телефон своё приложение ставить вместо браузера, которое будет связь осуществлять, трафик шифровать

да, я понимаю, что так можно, но у меня нет сил и возможностей поддержать все возможные платформы, чтобы засунуть на них app, который с использованием OpenGL отрисовывает довольно сложные 3Д картинки. В браузере посредством WebGL, WebAssembly и своих готовых наработок это удалось сделать довольно быстро.

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 27 ]  На страницу 1, 2  След.

Модераторы: Karan, Toucan, PAV, maxal, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group