Efento Smart Updates – aktualizacja oprogramowania w urządzeniach IoT 2020/05/15
Wyzwaniem dla dostawców rozwiązań IoT jest opracowanie metody zdalnej aktualizacji oprogramowania w setkach tysięcy rozmieszczonych na całym świecie urządzeń zasilanych bateryjnie. Firma Efento rozwiązała ten problem wdrażając w produkowanych urządzeniach Efento Smart Updates.
Istotą tego rozwiązania jest bezpieczne (szyfrowane) przesyłanie do urządzeń tylko tych fragmentów kodu źródłowego, które zostały zmodyfikowane w nowej wersji.
Wielu dostawców rozwiązań IoT umożliwia zdalne przesłanie nowej wersji oprogramowania do zainstalowanych już urządzeń. Jednak klasyczna aktualizacja Over the Air (OTA) jest bardzo kłopotliwa przy milionach zasilanych bateryjnie sensorów pracujących w oparciu o sieci komórkowe (NB-IoT i LTE-M). Ilość przesyłanych danych nie tylko może powodować destabilizację pracy sieci, ale również poważnie obciążać energetycznie urządzenia, które są zoptymalizowane do krótkich sesji transmisyjnych.
Dla rozwiązania tych problemów firma Efento opracowała Efento Smart updates – system aktualizacji oprogramowania w urządzeniach IoT oparty o przesyłanie do urządzeń jedynie zmiany w oprogramowaniu. Ten sposób aktualizacji niesie za sobą wiele korzyści dla:
- ilość transmitowanych danych do urządzenia jest kilkunastokrotne zmniejszona w stosunku do klasycznej aktualizacji OTA,
- minimalizowane jest obciążenie sieci,
- zapewniona jest dłuższa praca baterii w urządzeniach,
- system pomiarowy nie jest zdestabilizowany przez brak pomiarów podczas długiego procesu aktualizacji.
Co jest istotne, transmisja oprogramowania do urządzeń IoT jest szyfrowana, a dzięki autentykacji serwera i mechanizmom weryfikacji przesłanych danych, aktualizacja oprogramowania jest w pełni bezpieczna.
Jak działa zdalna aktualizacja oprogramowania Efento Smart Updates:
- Po zakończeniu prac nad nową wersją oprogramowania przygotowujemy plik różnicowy będący różnicą między nową i bieżącą wersją oprogramowania
- Plik różnicowy jest wysyłany do serwera w chmurze, a urządzenia IoT są informowane o dostępnej aktualizacji
- Urządzenia łączą się z serwerem, strony połączenia negocjują klucz, który zostanie użyty do szyfrowania komunikacji Serwer wysyła zaszyfrowaną sumę kontrolną aktualizacji podpisaną zgodnie z algorytmem ECDSA. Na podstawie podpisu urządzenie IoT weryfikuje autentyczność aktualizacji
- Następuje szyfrowana transmisja aktualizacji do urządzenia
- Po zakończonej transmisji danych urządzenie buduje nową wersję oprogramowania składającą się z bieżącej wersji oraz pliku różnicowego, a następnie oblicza sumę kontrolną aktualizacji.
- Jeżeli suma kontrolna obliczona przez urządzenie jest zgodna z sumą kontrolną przesłaną przez serwer następuje aktualizacja oprogramowania