Odbieranie wiadomości na mikrokontrolerze

Tak się zastanawiam, jaki komunikator/serwis społecznościowy będzie najbardziej odpowiedni do wysłania wiadomości na mikrokontroler podłączony do Internetu?

Rozważmy trzy osobne możliwości:

  1. Wiadomość musi być prywatna (i najlepiej zaszyfrowana), stanowiąc swoisty ekwiwalent SMS-a. Wpisuję jakąś treść w aplikacji na smartfonie albo na stronie serwisu, a podłączony do Internetu mikrokontroler w chwilę potem dostaje łańcuch tekstowy.
  2. Wiadomość ma charakter publiczny. Publikuję ją na jakimś serwisie społecznościowym albo ogłaszam na jakimś kanale, gdzie może być oglądana przez wszystkich. Niemniej mój mikrokontroler otrzymuje jej kopię.
  3. Rozwiązanie pośrednie. To znaczy wiadomość teoretyczne jest prywatna, ale medium nie gwarantuje prywatności, np. z uwagi na brak szyfrowania.

Poprzez "mikrokontroler podpięty do Internetu" rozumiem współczesne układy, dysponujące rozsądnym zapasem mocy obliczeniowej, czyli takie ESP8266, ESP32, ARM-y, PIC32 itp. Najlepiej, żeby to rozwiązane opierało się na jakimś powszechne stosowanym protokole.

Przychodzą mi do głowy następujące możliwości:

  1. Stary. dobry e-mail. Chyba każdy ma konto i każdy z tego korzysta. Współczesne MCU radzą sobie z SSL-em, więc nie powinno być problemu z zalogowaniem się na skrzynkę i pobieraniem wiadomości. Potencjalna wada: spam...
  2. Twitter. Kiedyś OIDP dość łatwo było się z nim połączyć nawet z poziomu Arduino. Potem chyba jednak coś pozmieniali w API. Ktoś wie jak to wygląda teraz?
  3. Facebook Messenger. Największa zaleta - każdy tego używa. Tylko czy komuś udało się do tego zalogować z poziomu MCU? No i FB chyba niezbyt przychylnym okiem patrzy na konta nienależące do ludzi...
  4. GG. Jeszcze żyje. Protokół został rozpracowany, więc powinno się dać. Wada: nie wiadomo jak długo jeszcze będą działały serwery...
  5. IRC. Prosty w użyciu. Wada: mało użytkowników.
  6. Telegram. Wygląda ciekawie. Całkiem popularny komunikator. Jakiś czas temu na Hackaday'u był zaprezentowany projekt, który odbierał wiadomości na ESP8266 właśnie za jego pomocą.

Czy jest jeszcze coś, o czym zapomniałem?

Reply to
Atlantis
Loading thread data ...

  1. XMPP/Jabber,8. Coś działającego w oparciu o protokół MQTT.
Reply to
mrvtktjv

Dlaczego akuratnie serwis społecznościowy to musi być? Chcesz w ten sposób obejść problem posiadania lokalizacji urządzenia?

Reply to
heby

A czemu mcu ma odbierać wiadomości przez komunikator, czemu ten kanał?

Reply to
Marek

Atlantis snipped-for-privacy@wp.pl napisał(a):

Po pierwsze, dlaczego społecznościówka? Skąd w ogóle taki pomysł? Kto ma czytać te komunikaty oprócz mikrokontrolera? Czy może chcesz dać dostęp wielu osobom do swojego urządzenia? Dla mnie problem nieprecyzyjnie opisany lub nie do końca przemyślany.

Niech mikrokontroler ma swój dedykowany kanał, choćby wspomniany e-mail. Nie wiem jakim problemem jest spam. Jeśli maila nikomu nie podasz, to spam nie będzie przychodził. Chyba, że założysz konto na jakimś bezpłatnym serwerze, ale przecież i tak odfiltrowanie własnych komunikatów od spamu jest trywialne.

Reply to
Grzegorz Niemirowski

CBŚ, CBA, FBI, CIA, KGB, MOSAD...

Ja myślę, że kiedyś nie spuścimy nawet wody w kiblu bez zalogowania się do FB. ;)

Sorry, NMSP.

Reply to
Mirek

Np Slack

na Whatsapp tez sie da wysłać ale nie za darmo.

Reply to
Cezar

W dniu niedziela, 19 maja 2019 09:00:54 UTC-5 użytkownik Atlantis napisał:

Prosty, wrecz trywialny polling http. esp8266 daje to w standardzie. Jak ustawisz polling na 5sek to uzytek bedzie prawie jakbys mial komunikacje bezposrednia.

Stronke wypichcisz w jakims trywialnym php.

Alternatywnie tak jak pisze mrvtkijv cos oparte o mqtt

Reply to
sczygiel

Zainteresuj się mqtt Jacek Poźniak

Reply to
Anonymous

W dniu 2019-05-19 o 23:31, Mirek pisze:

Drogi użytkowniku naszego publicznego kibla!

Aby dokonać spuszczenia wody zaloguj się do naszego kiblowego serwisu przez Facebook! Na pewno będzie to dla Ciebie niespodzianka, ale spuszczanie wody jest i będzie bezpłatne!

Za Twoimi plecami w ramkach znajduje się 10 stron formatu A3 wypełnionych drobnym tekstem. Musisz zaakceptować tę umowę, nawet jeśli jej nie przeczytasz. Ogólnie przetwarzamy wszystkie dane dla Twojego dobra, a opcjonalna aplikacja dająca zniżki w pięciu hipermarketach może powiadomić się o ewentualnym zaparciu i zasugerować właściwe leki, które możesz nabyć w najbliższej współpracującej z nami aptece.

(nie mogłem się powstrzymać) L.

Reply to
Luke

Apropos prywatności, czy tam jest jakiś SSL?

Czy musi to lecieć po czystym http, a user musi sobie zaimplementować jakieś szyfrowanie?

L.

Reply to
Luke

A po co? Prawdopodobieństwo, że Atlantis będzie celem MiM jest mniejsze niż wygrana w totka. SSL to prawie synonim paranoi.

Reply to
Marek

W dniu 22.05.2019 o 07:40, Luke pisze:

Wystarczy zajrzeć do repo z softem:

formatting link
Masz tam 2 implementacje SSL do wyboru.

Reply to
Zbych

W dniu 2019-05-22 o 07:39, Luke pisze:

Musieliby jeszcze zrobić jakąś blokadę drzwi bo ja nie mając Fecebooka musiałbym zostawić nie spuszczone :) P.G.

Reply to
Piotr Gałka

W dniu 2019-05-22 o 07:40, Luke pisze:

Nie znam szczegółów SSL. Wyprowadźcie mnie jeśli jestem w błędzie.

Jak się loguję do banku po SSL to:

- ja ufam, że to jest właściwa strona dzięki mojemu zaufaniu do 'strony trzeciej' potwierdzającej certyfikat banku. Daje to duży poziom zaufania, że po drugiej stronie jest faktycznie mój bank pod warunkiem, że ktoś mi nie podrzucił wcześniej na komputer certyfikatu jakiejś innej trzeciej strony tak, że mój komputer uznał go za zaufany (nie jest łatwe, ale czy wykluczone).

- dużo gorzej jest w drugą stronę. Jedynym potwierdzeniem dla banku, że ja to ja jest hasło. Hasło 10 znakowe ma podobno siłę rzędu 55 bitów (występujące korelacje między znakami powodują, że jeden znak typowo wnosi (o ile się nie mylę) coś między 5 a 6 bitów). Podczas, gdy obecnie algorytmy o sile poniżej

128 bitów uważane są za słabe. Hasło powinno być wydłużane (ale nie wiem czy w SSL jest i czy to wynika z samego SSL, czy zależy od implementacji). Kilka lat temu na moim poprzednim komputerze sprawdzałem

- wydłużenie hasła o 20 bitów zajmowało mi około 1s. Tyle user może jeszcze poczekać i prawie nie zauważyć. Ale to i tak dopiero 75 bitów (10^15 razy mniej niż 128 bitów).

Tymczasem zaimplementowane szyfrowanie przez usera bez problemu może oprzeć się na AES256 (klucze 256 bitowe).

W książce "Kryptografia w Praktyce" (polskie wydanie 2004) wyczytałem, że kryptografia asymetryczna ma sens wtedy, gdy komunikujący się ze sobą nie mogą się wcześniej ze sobą spotkać w celu wymiany wspólnej tajemnicy a mają wspólnego kogoś komu ufają.

Jeśli user implementujący komunikację między sobą a mikrokontrolerem jest w stanie spotkać się w tajemnicy z tym mikrokontrolerem i wymienić się kluczami to nie ma powodu opierać komunikacji z nim na zaufaniu do trzeciej strony. Tak przynajmniej mi się wydaje. P.G.

Reply to
Piotr Gałka

Piotr Gałka snipped-for-privacy@cutthismicromade.pl napisał(a):

Tak jest, ale nie musi. Bank jest przykładem powszechnym ale niemówiącym wszystkiego. Użytkownik jak najbardziej może się logować swoim certyfikatem. Po prostu jest to stosunkowo mało spotykane bo wymaga wydania użytkownikowi certyfikatu z kluczem.

Jak najbardziej.

Reply to
Grzegorz Niemirowski

Użytkownik "Piotr Gałka" napisał w wiadomości grup dyskusyjnych:qc31va$mve$1$ snipped-for-privacy@news.chmurka.net... W dniu 2019-05-22 o 07:40, Luke pisze:

SSL sprawdza certyfikaty, czy to jest dodatkowa funkcja ? Wydaje mi sie, ze nie sprawdza.

A tych stron jest chyba wiecej niz trzy - tzn przegladarka, a moze juz system ma zaszyte certyfikaty kilku organizacji, ktore moga sprawdzic nastepne organizacje, ktore dopiero certyfikuja bank, albo kolejna organizacje.

Ba - w takim Millenium sa 4 znaki plus pesel. Przy maskowanym hasle mozesz podajesz 4-5 znakow.

Ale czego sie obawiasz - ze ktos wykradnie z banku plik z zaszyfrowanymi haslami i zacznie rozkodowywac ? Czy, ze ktos zacznie sie logowac na losowe hasla ?

Tu sa kolejne zabezpieczenia - np trzy podania zlego hasla blokuja dostep. I mam nadzieje, ze ktos w banku monitoruje, ze np z tego adresu IP ktos probuje zgadnac haslo.

Tym niemniej ... majac opanowane tysiace komputerow w terenie (jakis wirus), mozna by probowac losowych hasel. Tylko - jesli szansa trafienia jest np 1:100 mln, to tysiace komputerow nie pomoga, trzeba by miliony, zeby bank sie nie zorientowal ... no chyba, ze haslo krotsze i mamy szanse np 1:100 tys ... w pare dni mozna cos trafic, bez wzbudzania podejrzen.

Ale haslo do banku podajesz juz przez SSL. Sama sesja SSL ma jakis klucz szyfrowania, losowy,

No i gdzies tam sa przewidziane pliki certyfikatow, rozsylane inna droga. Ale w wielu przypadkach dzialalnosci bankowej bedzie to nadmierne utrudnienie. A jak klient cos zgubi daleko od domu ?

No i zauwaz, ze teraz stawiaja na apki w telefonie - tu juz mozna identyfikowac konkretna instalacje/telefon. Pytanie tylko, czy tego sie nie da latwo wykrasc z telefonu.

J.

Reply to
J.F.

W dniu 2019-05-22 o 10:52, Grzegorz Niemirowski pisze:

Myślałem, że SSL narzuca wszystko w formie jakiej się domyślam na podstawie logowania do banku.

Mam w planie zapoznać się z SSL, tylko ta cholerna doba nie chce być dłuższa, a wręcz mam wrażenie, że robi się coraz krótsza. P.G.

Reply to
Piotr Gałka

J.F. <jfox snipped-for-privacy@poczta.onet.pl> napisał(a):

Od tego jest żeby sprawdzał. Chyba, że nie rozumiem pytania :) Serwer WWW można skonfigurować do uwierzytelniania klienta certyfkatem.

To są narzędzia, trudno nazwać je stronami. Stroną jest CA, które wydając certyfikat sprawdza tożsamość (dowód osobisty, dokumenty spółki. Lub też czy po prostu jesteś właścicielem domeny. Stąd są różne poziomy certyfikatów.

Reply to
Grzegorz Niemirowski

Piotr Gałka snipped-for-privacy@cutthismicromade.pl napisał(a):

SSL zajmuje się połączeniem: poufnością, integralnością i tożsamością. Sam w sobie zawiera mechanizmy wystarczające do zalogowania się. Jednak w praktyce używany jest tylko do potwierdzenia tożsamości serwera banku oraz zapewnienia poufności transmisji, użytkownik loguje się hasłem. Tak więc nie narzuca sposobu logowania. To jest trochę zaszłość historyczna. Kiedyś logowało się haslem i to hasło latało czystym tekstem. Czy to HTTP, czy telnet, czy POP3 czy FTP. Zeby to ucywilizować dodano w niektórych z tych protokołów warstwę SSL, działającą w sposob dosyć przezroczysty. Protokoły były bez zmian, hasło było nadal, ale już sam kanał transmisyjny był zaszyfrowany. W ten sposób powstał HTTPS, POP3S czy FTPS. Telnet miał inną historię, został zastąpiony przez nowy protokół SSH. Posiadał on przy okazji możliwość przesyłania plików, znaną jako SFTP, niemającą związku z FTPS.

Na pewno warto zapoznać się z tym tematem.

Reply to
Grzegorz Niemirowski

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.