2014 dxdy logo

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

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




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

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

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

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

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

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

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

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

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

Спасибо!

 
 
 
 Re: Как принято делать веб-интерфейс (SSL) носимого аппарата?
Сообщение02.02.2023, 12:29 
Аватара пользователя
Я правильно понимаю, что предполагающийся протокол следующий:
1. На аппарате включается Access Point, к нему подключаются и в веб-интерфейсе вписывают данные местной WiFi-сети.
2. Аппарат подключается к этой сети и сообщает пользователю свой IP в ней.
3. Пользователь подключается к той же сети.
4. Пользователь идёт по IP аппарата и получает веб-интерфейс в нём.
Так?

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

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

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

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

 
 
 
 Re: Как принято делать веб-интерфейс (SSL) носимого аппарата?
Сообщение02.02.2023, 20:30 
ilghiz в сообщении #1579964 писал(а):
Меня в обоих сценариях настораживает то, что браузер в обоих случаях показывает сообщение "уходим отсюда"
Это видимо надо браузер настраивать.
Просто так оно не заработает само собой. Разве что получить реальный сертификат от центра сертификации.

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

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

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

 
 
 
 Re: Как принято делать веб-интерфейс (SSL) носимого аппарата?
Сообщение02.02.2023, 21:55 
Аватара пользователя
ilghiz в сообщении #1579968 писал(а):
А дают такие на долго?
Как договоритесь. Let's encrypt на год ЕМНИП. Его можно обновлять с железки, но для этого железке нужен интернет.
Плюс еще проблема в том, что этот сертификат привязан к какому-то домену. И непонятно, какой домен ваша железка должна иметь в локальной сети без интернета.

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

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

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


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

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

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

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

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

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

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

 
 
 
 Re: Как принято делать веб-интерфейс (SSL) носимого аппарата?
Сообщение03.02.2023, 02:12 
Аватара пользователя
Ну вот например у моего роутера (zyxel) самоподписанный сертификат (и браузер ругается). Возможно если такая довольно крупная компания решила, что сойдет (и не придумала, как сделать иначе), то ничего особо сделать и нельзя.
ilghiz в сообщении #1580023 писал(а):
Может я могу какой-то сертификат сам послать пользователю, и он, установив его на свой смартфон, будет проверять этим сертификатом соединение с моим ембеддед аппаратом?
Вы теоретически можете сгенерировать новый корневой сертификат, выдать его пользователю, положить приватный ключ от него на железку, и дальше на железке генерировать подписанные им сертификаты хоть на 192.168.0.1. Практически это означает, что человек, вытащивший ключ с вашей железке, сможет перед поставившим Ваш корневой сертификат притворяться хоть google.com, и это очень неприятно.

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

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

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

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

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


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

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

 
 
 
 Re: Как принято делать веб-интерфейс (SSL) носимого аппарата?
Сообщение03.02.2023, 02:46 
ilghiz в сообщении #1580028 писал(а):
Ага, верно, сталкивался с массой роутеров разных фирм и у всех была одна и та же проблема
На роутер обычно заходят из внутренней сети. Через интернет не зайти. Так что там этот SSL собственно и не нужен. Можно в открытую, без него.

 
 
 
 Re: Как принято делать веб-интерфейс (SSL) носимого аппарата?
Сообщение04.02.2023, 14:11 
zykov в сообщении #1580031 писал(а):
На роутер обычно заходят из внутренней сети. Через интернет не зайти. Так что там этот SSL собственно и не нужен. Можно в открытую, без него.

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

 
 
 
 Re: Как принято делать веб-интерфейс (SSL) носимого аппарата?
Сообщение04.02.2023, 15:15 
Ну если это какая-то большая система со многими пользовтаелями, то делаете нормальный веб-портал, пользовтаель туда заходит, а уже этот веб сервер сам по сети общается с устройствами.
(У меня так сигнализация машины StarLine работает - заходишь на веб-портал, там регестрируешь машину, а они уже сами с машиной по GPRS связываются.)

 
 
 
 Re: Как принято делать веб-интерфейс (SSL) носимого аппарата?
Сообщение04.02.2023, 17:29 
Спасибо за ответ!
zykov в сообщении #1580192 писал(а):
Ну если это какая-то большая система со многими пользовтаелями, то делаете нормальный веб-портал, пользовтаель туда заходит, а уже этот веб сервер сам по сети общается с устройствами.

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

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

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

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

 
 
 
 Re: Как принято делать веб-интерфейс (SSL) носимого аппарата?
Сообщение04.02.2023, 18:02 
Спасибо большое, zykov за ответ!
zykov в сообщении #1580212 писал(а):
Ну либо без SSL связываться

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

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

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

 
 
 [ Сообщений: 27 ]  На страницу 1, 2  След.


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group