Moduł GSM z klientem SSL?

Szukam jakiegoś niezbyt drogiego modułu, który umożliwiłby mi wrzucenie kilku danych na serwer za pośrednictwem Internetu. Ponieważ klient będzie musiał "przedstawić się" serwerowi i w jakiś sposób udowodnić, że jest tym za kogo się podaje, niezbędne będzie zastosowanie jakiegoś szyfrowania. Moduły WiFi ESP8266 posiadają możliwość zestawienia połączenie SSL (nie wiem, czy ta funkcjonalność została już zaimplementowana w firmware z komendami AT, ale na pewno jest dostępna w SDK). Czy któryś z popularnych modułów został wyposażony w taką funkcję.

I jeśli już o tym mówimy (możliwe zresztą, że już kiedyś o to pytałem) to czy istnieje moduł, na który można by napisać własny soft, podobnie jak w przypadku ESP? Wiem, że kiedyś dostępne były moduły z interpreterem jakiegoś języka skryptowego. Nokia chyba wypuściła coś, do czego można było napisać kod w języku wzorowanym na Javie. Mi jednak chodzi o podejście zbliżone do tego, które zostało przyjęte przez twórców ESP - udostępnione SDK i możliwość kompilowania własnego firmware'u dla modułu... Jeśli potrzebuję SPI, I2C i kilku pinów GPIO, byłoby fajnie, gdyby dało się wyrzucić MCU z projektu i wszystko zrobić na samym module.

Reply to
Atlantis
Loading thread data ...

Czemu uważasz, że moduł z interpreterem (właściwie kompilatorem) np. pythona jest gorszy od "firrmwaru", gdzie widzisz przeszkadzającą Ci różnicę? Drugie pytanie :dlaczego uwazasz, że prościej użyć skomplikowany moduł z SSL zamiast użyć prosty moduł z jakimś łatwą i szybką wnimplementacji kryptografią i prostą aplikacją po stronie serwera?

Reply to
Marek

W dniu 2015-07-30 o 11:48, Marek pisze:

Kod w formie kompilowanej będzie pewnie wykonywał się szybciej od interpretowanego "w locie". Poza tym w grę wchodzi kwestia bardziej wydajnego zagospodarowania dostępnych zasobów - widać to chociażby na przykładzie ESP. Jednak więcej można upchnąć w kompilowanym kodzie C, niż interpretowanym skrypcie LUA.

SSL to jednak pewien przyjęty standard i jako taki będzie pewnie jeszcze łatwiejszy z implementacji. W końcu pod Linuksem są dostępne odpowiednie biblioteki. Poza tym nie chodziło mi o to, żeby samemu pisać implementację SSL i skompilować ją razem z nowym FW dla modułu. O kwestię kompilacji pytałem przy okazji - po prostu miło byłoby, gdyby dało się (jak w przypadku ESP) zrezygnować z zewnętrznego MCU i wszystkie operacje wykonywać wewnątrz samego modułu. Oczywiście w takim wypadku pytanie o SSL pozostaje nadal aktualne - zwyczajnie liczę, że opdowiednie funkcje znalazłyby się w dołączonych bibliotekach - znów jak w przypadku ESP,

Reply to
Atlantis

Dobrze, że napisaleś " pewnie". Python np. w telitach *jest* kompilowany do formy binarnej, podobnie jak java czy perl. Po wrzuceniu skryptu jest kompilowany, przez co pierwsze uruchomienie trwa długo, później już uruchamainy jest skompilowany skrypt, który odpala szybko. Nie ustępuje to w praktyce (aby się tym przejmować) temu co uważasz za "skompilowane wykonywane szybciej". Natomiast jest wygodne w developingu: nie trzeba nic kompilować, kod źródłowy bezpośrednio uploaduje się na moduł (lub moduł sam sobie go piobiera np. z FTP).

Ale konkretnie do czego potrzebny Ci SSL? Do przesłania kilku bajtów raz na jakiś czas statusu z jakiegos czujnika (wnioskuję to zTwojej historii ostatnich projektów publikowanych tu lub na elektrodzie). Wcześniej piszesz, że chcesz wydajnie gospodarować zasoby a proponujesz SSL, który jest overkillem dla małych mcu? No może trochę przesadzam, ale wiadomo o co chodzi, kupujesz cały browar aby napić się okazjonalnie piwa.

Reply to
Marek

W dniu 2015-07-30 o 12:40, Marek pisze:

No dobrze. Jednak SSL jest powszechnie przyjętym standardem, w przeciwieństwie do wszelkich "lekkich" alternatyw. Po stronie serwera mogę zaprząc do pracy jakiegoś gotowe narzędzie. Poza tym zakładam, że moduł GSM będzie miał w sobie 32bitowy MCU, zdolny do poradzenia sobie z takim zadaniem.

Reply to
Atlantis

Pytanie czy na pewno potrzebny Ci serwer ;-).

Reply to
Marek

W dniu 2015-07-30 o 15:54, Marek pisze:

Coś przecież będzie musiało te dane odbierać i zapisywać w jakiejś bazie. Ponieważ w tym wypadku dane będą leciały przez publiczny Internet, a nie lokalną sieć schowaną za NAT-em, chciałbym zabezpieczyć się przed możliwością podsłuchania transmisji i spreparowania fałszywki. Wiem, że tutaj niby można zastosować jakiś prosty algorytm i z góry ustalony klucz, "miksowany" z synchronizowanym RTC. Ale (jak już mówiłem) SSL to standard i gdyby na rynku był dostępny obsługujący go moduł, to praktyczne miałbym gotowca. A obsługa chyba nie jest zbyt skomplikowana, skoro udało się ją zaimplementować w ESP (z zastrzeżeniem, że możliwe jest otwarcie tylko jednego połączenia na raz).

Reply to
Atlantis

W dniu 2015-07-30 o 11:15, Atlantis pisze:

SSL służy raczej do weryfikacji tożsamości serwera. Jeśli klient ma jedynie przesłać jakieś informacje na serwer to do danych dołącz czas lub ciąg losowy i zaszyfruj wszytko np. algorytmem AES128.

Jeśli chcesz zweryfikować klienta a nie dane to wyślij mu losowy ciąg. Niech on go zaszyfruje np. algorytmem AES128 i odeśle. Jest to bardzo prosta i skuteczna metoda. Wymaga niewielkiej mocy obliczeniowej.

Paweł

Reply to
Pawel2420

No właśnie Atlantis nie napisał jak chce weryfikować tożsamość kliena, bo jeśli chce użyć SSL to rozumiem, że weryfikacja poprzez certyfikaty klienta (jaki moduł to wspiera??). Chyba nie chodzi mu o metodę user/hasło do serwisu dostępnego po ssl....

Reply to
Marek

Moim zdaniem Atlantis polegnie implementując sprawdzanie certyfikatów w modemie. To jest jednak jego urządzenie i jego decyzja.

Paweł

Reply to
pawel2420

W dniu 2015-07-30 o 11:15, Atlantis pisze:

Tani modem z bardzo dużymi możliwościami:

formatting link
żna na niego napisać program w C i go skompilować. Zawiera 32-bit procesor z zegarem kilkaset MHz, wielowątkowy system operacyjny, obsługę TCP, HTTP i chyba nawet HTTPS

Tu jest gotowa platforma z tym modemem ale zamiast ESP zastosowany jest Bluetooth 4.0:

formatting link
Paweł

Reply to
pawel2420

Wygląda ciekawie, masz z nim jakieś doświadczenia?

Reply to
Marek

Modem działa stabilnie i nie wiesza się. Do kompletu jest darmowe oprogramowanie z system operacyjnym. Wpisywanie firmware przez USB trwa tylko kilka sekund. Wadą G510 jest mała ilość nóżek GPIO. Nie przeszkadza to jednak jeśli zastosuje się połączenie z ESP tak jak kombinuje Atlantis lub z Bluetooth Smart tak jak w produkcie, który wskazałem.

Reply to
pawel2420

W dniu 2015-07-31 o 08:07, pawel2420 pisze:

Hmm... Masz jakieś dokładniejsze materiały na jego temat? Opis SDK i środowiska programistycznego? Jakiś przykładowy kod w C? Bo z tego co widzę, to PDF-y umieszczone na stronie sklepu zawierają informacje związane ze standardowym użyciem tego modułu w roli modemu, sterowanego komendami AT. Nie widzę tam niczego o pisaniu własnego kodu i używaniu pinów GPIO.

Właściwie jakie to ma interfejsy? Jest dostępny sprzętowy I2C i/lub SPI?

Reply to
Atlantis

W dniu 2015-07-31 o 13:59, pawel2420 pisze:

Ja akurat przytoczyłem ESP jako przykład modułu, na który można napisać swój własny soft i używać go, bez potrzeby korzystania z zewnętrznego MCU. W tym przypadku nie potrzebuję dodawać WiFi. Problem małej ilości linii można by rozwiązać za pomocą kilku extenderów na I2C, szczególnie jeśli moduł obsługuje taką magistralę sprzętowo.

Reply to
Atlantis

W dniu 2015-07-31 o 22:16, Atlantis pisze:

I2C obsługuje chyba G610. Ma on więcej wyprowadzeń i też jest wersja Open CPU.

Paweł

Reply to
Pawel2420

W dniu 2015-07-31 o 23:49, Pawel2420 pisze:

Możesz napisać coś więcej o programowaniu tego w C? Gdzie znaleźć narzędzia i dokumentację? Jakieś przykłady? BHo0 datasheety z Maritexa z tego co widzę opisują standardowe użycie komend AT...

Reply to
Atlantis

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.