Internet rzeczy nadchodzi

Internet rzeczy jest coraz bliżej. Coraz więcej sprzętów posiada interfejsy sieciowe, przez które można nimi zarządzać, przez które mogą one wymieniać dane i… przez które można się włamać. Rozmawiałem ostatnio z ludźmi bardziej siedzącymi w temacie i wygląda to źle. Sprzęt jest słaby (w sensie mocy obliczeniowej), przez co ograniczone są implementacje bezpiecznych protokołów. Brakuje jednego wspólnego standardu zarządzania – generalnie co produkt/producent, to autorski system komunikacji, co gorsza, rzeczy są wystawiane bezpośrednio do internetu, bez ograniczenia do wydzielonej sieci lokalnej[1].

Czasem mam wrażenie, że twórcy zbyt skupili się na aspekcie elektronicznym, a zupełnie pominęli część może nie tyle programistyczną, co sieciową. Rozumiem, że SNMP nie jest jakoś bardzo powszechne w świadomości, a możliwość ustawiania danych przy jego jest jeszcze mniej znana, ale IMO nadaje się do IoT idealnie. Zresztą, nawet ustandaryzowany JSON byłby OK, a pewnie bardziej strawny dla programistów.

Gdyby już istniał standard wymiany danych, to można by zrezygnować z wystawiania rzeczy na świat. Nie mam złudzeń, sytuacja z aktualizacją rzeczy będzie wyglądać jeszcze gorzej, niż w przypadku istniejących urządzeń, a przecież z routerami czy kamerami IP już w tej chwili jest dramat. O ile o aktualizacji oprogramowania w kamerze czy routerze jeszcze ktoś pomyśli, to co z lodówką, głowicą grzejnika czy żarówką? Jakoś wątpię, by były aktualizowane, nawet, jeśli producent przewidzi taką możliwość.

Mam wizję, że rolę bramy dostępowej, czyli centrum, które uwierzytelnia użytkownika i łączy się z rzeczami pełniłby router. Po pierwsze, i tak jest na brzegu sieci, więc warto by go zabezpieczyć, zaktualizować. Po drugie, z racji miejsca ma najlepsze połączenie z zewnętrznym światem. Po trzecie, routery są/bywają stosunkowo mocnym sprzętem, szczególnie w porównaniu z rzeczami, a nawet niekoniecznie ustępują słabszym desktopom. No i zawsze można jakąś płytkę z procesorem ARM wykorzystać. Do tego parowanie certyfikatów brama-rzecz przy pierwszym uruchomieniu i jest względnie bezpiecznie, oczywiście przy wyłączeniu możliwości komunikacji z innymi hostami po parowaniu i zabezpieczeniu (aktualizowaniu) bramy.

Na koniec taka refleksja, chociaż może to tylko moje odchylenie – czy naprawdę potrzebujemy wszystkiego zautomatyzowanego i podłączonego do internetu? Rozumiem proste timery załączające urządzenia np. do grzania wody czy czy termostaty elektroniczne do sterowania ogrzewaniem, ale czy włączanie żarówek przez internet jest tak naprawdę potrzebne? Albo czy lodówka musi informować, że mleko/piwo się skończyło?

W przypadku ogrzewania z jednej strony pewnie wystarczy automatyzacja na poziomie „w dni powszednie włączaj ogrzewanie o 6:30, w weekendy o 8:00”, z drugiej jednak, przy synchronizacji ze smartfonem, można by ustawić, żeby ogrzewanie załączało się zawsze pół godziny przed budzikiem, po prostu. No i zależy, czy mieszkanie, czy dom. IMO w domu sterowanie żaluzjami i trochę bardziej zaawansowana automatyka mogą mieć sens i ekonomiczny (konkretne oszczędności), i nie widać na pierwszy rzut oka, gdzie się światło świeci. W każdym razie ja wolę jednak bardziej manualne sterowanie i do IoT się nie spieszę.

[1] Co też nie do końca jest rozwiązaniem, ponieważ przy domyślnych danych (IP, login, hasło) atakujący jest w stanie wykonać atak z lokalnej przeglądarki użytkownika – wystarczy prosty JS…

Awizowy chaos @PocztaPolska

Tło

W mojej okolicy są dwa urzędy pocztowe. Jeden trochę bliżej miejsca zamieszkania (nazwijmy go A), drugi trochę dalej (nazwijmy go B). Przynależę do tego trochę dalej (B). Ponieważ ostatnio kupuję trochę drobnych gadżetów w Chinach, więc przesyłki dość często się pojawiają. Część nie wchodzi do skrzynki, wtedy dostaję awizo, że nierejestrowana, rozmiar wyklucza pozostawienie w skrzynce. Albo jakoś tak.

Dzień pierwszy – poranek

Awizo w skrzynce. Wyjąłem i następnego dnia rano wyruszam na pocztę (urząd B). Wręczam awizo, pokazuję dowód. Pani szuka. Przesyłki jakby nie ma. Pani zagląda do szafki. Im bardziej zagląda do szafki, tym przesyłki bardziej nie ma. Wraca, patrzy jeszcze raz na awizo i tryumfalnie obwieszcza, że to do odbioru w urzędzie A. Mówię, że zawsze tu byłem obsługiwany. Słyszę, że od czerwca się pozmieniało. No OK, myślę, bywa. Nawet lepiej, bo będzie bliżej domu poczta. Ale… czy mogłaby pani sprawdzić, co jest napisane na awizo? A tam jak byk, że przesyłka do odbioru w urzędzie B. Słyszę coś o niezmienionej pieczątce i filiach. Średnio zwracam na nie uwagę, bo w sumie nieważne. Nic to, jest ranek, w kolejce nie stałem, w sumie tu i tu po drodze mam, nie róbmy afery. Zresztą nawet do mnie nie dotarło w pełni co się właśnie wydarzyło i cieszyłem się na odbiór gadżetów.

Dzień pierwszy – popołudnie

Wchodzę na pocztę A. Daję awizo i mówię, że słyszałem, że się pozmieniało. Pani z okienka nic nie wie o zmianach. Ale przesyłka faktycznie tu do odbioru, bo kierowca/listonosz się pomylił i odstawił nie do tego urzędu. Cóż, trzeba było tak od razu. Jest po staremu, czyli dobrze, a ludzki błąd – zdarza się. Lepsze to, niż dostać awizo na urząd B i musieć iść do urzędu A, prawda? Upewniam się jeszcze raz, że to wyjątek i wszystko jest po staremu.

Wracam do domu. W skrzynce widzę kolejne awizo. Nowe gadżety czekają!

Dzień drugi – poranek

Biorę awizo i pędzę na swoją pocztę, czyli B. Daję awizo. Pani patrzy i mówi, że to nie do nich przecież i jest napisane, że poczta A. Patrzę i faktycznie! O ja głupia [cenzura]! Nie przeczytałem, a tam faktycznie jak byk: do odbioru w urzędzie pocztowym A. Ale pani w B mówi, że sprawdzi, na wszelki wypadek. No i jest przesyłka!

Zakończenie

Pogubiłem się. Zaczynam się bać otwierać skrzynkę. Może być awizo. A jeśli będzie, to czy sugerować się tym, co jest napisane, czy wręcz przeciwnie? Myślałem o przejściu na te nowe powiadomienia SMSem, ale nie wiem, czy wypada. Może po prostu na poczcie chcą mnie widywać częściej? W obu urzędach?

PS Na razie traktuję całą sytuację jako zabawną aberrację. Ale wolałbym, żeby się unormowało. 😉

UPDATE Wygląda, że już wszystko po staremu, czyli działa. W sobotę wyjąłem awizo, poszedłem na wskazaną pocztę, odebrałem przesyłkę. Uff… 😉

PUM działa

Doprowadziłem PUMa do takiej postaci, że daje się używać i generuje w miarę strawny i używalny HTML. Przykładowy wynik działania. Oczywiście wszystko jest na GitHubie, który mnie drażni ostatnio, bo pisze (w związku z zupełnie innym projektem, notka leży w szkicach, których coraz więcej, upał taki, że nawet pisać się nie chce), że Can’t automatically merge. Don’t worry, you can still create the pull request. No niby mogę, ale autor upstreamu umiarkowanie nalega na wyprostowanie (się nie dziwię), a ja szczerze mówiąc nie widzę, co mu przeszkadza w automatycznym merge. Pewnie jakbym wiedział, to łatwiej byłoby mi pomóc gitowi ogarnąć się… W każdym razie będę doszkalał się z gita.

Wynikami nie ma się co sugerować zbytnio – sporo hostów zostało dodanych bardzo niedawno, stąd 100%. Jest też rozbieżność pomiędzy wynikami dla All time i jednego roku. Nie bug w skrypcie, tylko tak zwraca dane polecany niedawno Uptime Robot. Zgłosiłem buga i (szybka!) odpowiedź trochę martwi:

The Free Plan can return uptime ratios back to 1 month due to the limit of the logs kept. The Pro Plan supports back to 1 year.

And, the alltimeuptimeratio variable in the API currently returns 1-month uptime (and it’ll be removed from the APIv2).

Mój nos mówi mi, że idzie monetyzacja i z fajnej, darmowej usługi może być wkrótce coś niezbyt fajnego/używalnego. Ale może to tylko moje czarnowidztwo.

Poza tym, po niedawnej awarii (jak ktoś nie zna serwisu downdetector.pl do określania, czy jest awaria u dostawcy, to dość entuzjastycznie polecam) u mojego ISP wylądowałem za NAT (jak wielu innych abonentów). Po telefonie przywrócony publiczny IP, ale od tego czasu dla hosta w domu Uptime Robot pokazuje dziwne rzeczy – host znika, pojawia się, znowu znika… Podejrzewałem jakiś autosuspend w momencie, gdy żadne urządzenie nie jest aktywne, ale raczej nie o to chodzi. IP się nie zmienia, więc nawet w przypadku problemów z odświeżaniem dyndns nie powinno rzutować (ale nie wykluczę…). Problemy z routingiem? Może się zbiorę, ustalę IP z którego Uptime Robot monitoruje i zdiagnozuję… Póki co po prostu pauza, aby się śmieci nie generowały.

UPDATE Odnośnie problemów z git – stupid me, czyli niewiedza w temacie gita i podchodzenie do problemu od zadniej strony. Swoją drogą, namierzenie/szukanie rozwiązaniach po objawach mogłoby trwać długo… Przyczyna to złe forkowanie. Na szczęście GitHub ma świetną pomoc. Robienie forka repo git, następnie synchronizacja forka i wszystko działa.