Security vs Cloud blog | Здесь найдете заметки по безопасности, облакам и предпринимательству

Security vs Cloud blog

Здесь найдете заметки по безопасности, облакам и предпринимательству

Утилита для изменения паролей PFX-контейнеров

Очередной раз появилась задачка с передачей кучи PFX-контейнеров и задание им пароля.
Так что обновил свою уже пожилую и простую утилиту для управления PFX. Лежит теперь на GitHub.

При экспорте PFX-контейнера есть одна хитрость. Новый пароль задается с помощью класса SecureString.

Само приложение с исходниками для изменения пароля на PFX-контейнеры в приложении на GitHub: https://github.com/Sveer/PFXPasswordChanger

Wine IoT - умная бытулка для вина :)

Наткнулся на проект умной бутылки для вина. Видимо ребятам не дает покоя идея с капсулами Nespresso и они решили повторить успех.
Image result for wine bottle IoT

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

У меня есть некоторый критерий прикольных проектов - их сразу хочется повторить "на коленке" и этот проект безусловно туда попадает.
Попробуем сообразить что можно сделать с умной бутылкой для вина:
Во-первых бутылка должна "общаться" с облаком. Для этого подойдет NodeMCU.
Во-вторых для распознавания вина у нас нет сложных сенсоров, поэтому подойдет "фото" штрихкода с обработкой в облаке (такой сервис у нас уже есть) 
В третьих необходим экран для вывода базовой информации о вине. На эту роль подойдет Nextion 2.8 - программируемый экран, со своим редактором, позволяющий легко делать дашборды для приложений (https://github.com/Sveer/ITEADLIB_Arduino_Nextion)
Ну и на последок было бы неплохо что-то делать полезное, например подключить элементы Пельтье для поддержания необходимой для вина температуры. Энергии одного элемента должно на это хватить:



MCS 300 - безопасность в IoT и управление теплым полом

Как некто написал "не многие знают что буква S в аббревиатуре IoT означает Secure".
Воочию столкнулся с безопасностью в выпускаемых на рынок решениях IoT. 
Прикупил домой вот такой девайс для управления теплым полом по WiFi на кухне и балконе.


После установки я столкнулся с особенностями сурового российского IoT. 
Для начала выяснилось, что оные девайсы работают где-то день, и затем отваливаются от приложения. При этом Ping спокойно продолжает работать. Грешил на роутер, поменял настройки, поменял порты, наконец поменял роутер, но сказочный девайс всеравно требовал перезагрузки перед уходом из квартиры :) Хотя если выставить расписание, оно продолжало работать и после потери связи с ним.

Вторая замечательная особенность устройства - способ организации удаленного доступа. 
Для того чтобы по дороге омой можно было включить подогрев пола достаточно просто пробросить порт на устройство. Просто пробросить порт. Никаких других защит, а-ля PIN-кода, пароля, IP не существует....

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

Но на безопасности история не закончилась.
Через месяц работы внезапно обновилась прошивка устройств и они перестали отваливаться от сети. Я искренне поверил что разработчики пофиксили утечки, сделали какие-то очистки добы оно начало нормально работать, но оказалось они нашли универсальный способ. Руководствуясь принципом "Семь бед, один ресет" устройство перезапускалось каждый час, переподключалось к сети и спокойно работало дальше. И самое смешное, что такое решение действительно всех устроило тк постоянно устройство не нужно, а работоспособность в итоге была обеспечена. :)

Wine IoT - сценарии использования

Мало ли в мире алкогольных напитков, кроме пива, производство и потребление которых можно автоматизировать?
Действительно не мало.
Одна из интереснейших, с технологической точки зрения, вещей - производственный процесс вина.
Здесь и производство высококачественного сырья (винограда) с идеальными показателями зрелости, кислотности и сахаров, отслеживание болезней лозы и ответная реакция на эти болячки. 
Для этого в сельском хозяйстве потихоньку стали применяться современные технологии. Для получения инфомрции о зрелости винограда используют геораспределнные метеостанции, дроны сканируют посадки ИК-камерами для вычисления индекса NDVI (нормализованный относительный индекс растительности), строя вот такие вот карты:
Image result for NDVI индекс
Где все зеленое - листва нормально отражает свет и значит тут достаточно и влаги и культура еще не созревает. А где красное - либо проблемы либо пора собирать урожай.

Еще одним интересным решением стал Connected Vineyard от Cisco Systems:
Здесь они создали "argo-dashboard" с основными показателями необходимого потребления воды лозой винограда. Момент достаточно тонкий, так как при избытке воды получаются крупные и водянистые ягоды, из которых не получится сделать хорошее вино. При недостатке влаги, мы получаем малый объем урожая, и несбаллансированное созревание винограда. Так что калибровка такой системы должна заметно снизить риски для небольшиз виноградорских и винодельческих хозяйств.






IoT из существующих компонент - управление конвекторами через китайскую сигнализацию

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


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

В качестве управляющего устройства было решено использовать уже установленную простую китайскую GSM-сигнализацию с единственным реле. С помощью такого реле можно было обеспечить переключение двух режимов работы конвекторов в зимний период, чего и было достаточно:
- антизамерзание
- комфорт 
Антизамерзание должно включаться по умолчанию, а комфорт, при отправке SMS о скором приезде на дачу.

Если разобрать конвектор, то в нем обнаруживается свободная клема "N". Окалазось что именно к ней подключается управляющая таймкарта, и протокол выглядит следующим образом:
- нет напряжения: комфорт
- под напряжением -110В: антизамерзание.
Всего же режима четыре - 220 - выключено, +110, энокомичный режим (-6 градусов от комфорта)
Итого чтобы получить -110В достаточно поставить 1 диод.
Таким образом схема включения получилась крайне простой :)


Beer IoT - часть 4. определение плотности сусла


Ключевая задача IoT - научиться с��имать те или иные показатели системы. С прямыми измерениями температуры, влажности и пр. проблем нет. Самая интересная проблема возникает при необходимости снять показатели c каких-то параметров, для которых нет существующих датчиков, подходящих по условиям эксплуатации или просто определяющих нужные нам показатели.
И здесь возникает самая интересная задача - придумать как с помощью косвенных измерений получить нужное нам значение.
Один из таких параметров - плотность сусла
Существует несколько традиционных способов измерения плотности сусла:
- С помощью ареометра

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

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

Есть альтренативный варинат.
- с помощью рефрактометра
Image result for ареометр пиво

Принцип действия рефрактометра основан на приломлении света в зависимости от оптической плотности среды. Прибор калибруется на дистилированную воду (плотность 0) и при добавлении на площадку слоя сусла, мы по отклонению можем понять его плотность.
Нам этот принцип показался более заманчивым для бесконтактного измерения плотности и мы стали пробовать собрать следующую схему. 
Приделать к сусловарочному баку вертикальную смотровую стеклянную трубку из нижней части бака к верхней. Обеспечить циркуляцию сусла по ней.
При этом просвечивать ее узконаправленным лучем и по отклонению луча определять плотность сусла.
При ручной работе этот принцип работать начал и технически его можно было бы использовать.
Для определения отклонения луча можно использовать ПЗС-матрицу.


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

На некоторое время мы отложили эксперименты но внезапно наткнулись на еще одну замечательную идею - можно использовать закон архимеда не только по прямому измерению уровня. Можно ведь измерять разность между плавучастями двух связанных поплавков! Следовательно измерять угол отклонения между этими поправками без прямого контакта с суслом. Более того, в такое устройство можно поместить ESP8266 и получить WiFi-измеритель плотности, плавающий в кипящем котле! :)