Skocz do zawartości

SSL/TLS w rozwiązaniu produkcyjnym IoT (ESP-IDF)


Gieneq

Pomocna odpowiedź

Zapytam, może ma ktoś doświadczenie jak powinno się obsługiwać certyfikaty w rozwiązaniu produkcyjnym?

Robię projekt w Azurze, o którym kiedyś wspominałem i znalazłem informację, że zdarzyło się, że certyfikaty utraciły ważność bo Root CA stracił uznanie. Stąd moje wątpliwości.

Na ten moment, certyfikat serwera do którego się łączę biorę poleceniem OpenSSL i wyciągam plik PEM wymagany w funkcjach ESP_IDF. Czy jest sens próbować robić to w runtimie gdy pojawi się problem z autoryzacją?

Tak się też zastanawiam jaki jest sens tych certyfikaów. W analogicznym kodzie w Pythonie nie ma tego albo jest to jakoś zautomatyzowane. Skoro jest to publicznie dostępne to nie da się jakoś tego uprościć?

 

Link do komentarza
Share on other sites

14 minut temu, Gieneq napisał:

W analogicznym kodzie w Pythonie nie ma tego

Ale w tym mikrym wężyku na mikre kontrolery czy w normalnym Pythonie na normalnej maszynie (czyli od RPi Zero W w górę)?

Normalny moduł Pythona nie wie nic o certyfikatach (chyba że mu podsuniesz jakiś swój) bo korzysta z systemowych bibliotek ssl. Raczej nie widzę sensu wrzucania wszystkich CA na świecie do ESP...

 

  • Pomogłeś! 1
Link do komentarza
Share on other sites

@ethanak hej, no właśnie. Python na komputerze ma swoją bazę certyfikatów. Porównuję to z Pythonem bo przychodzą do mnie marudy i marudzą, że oni w Pythonie nie podają certyfikatów i działa.

Mam taki pomysł, żeby odpalić na własnym serwerze skrypt do monitorowania certyfikatu Azura. Gdy się zmieni wystawiać go na w endpoint z dostępem HTTP ale z np z loginem/hasłem, które będą zaszyte w urządzeniu. Wtedy urządzenie jak wykryje problem będzie próbowało ściągnać nowy plik PEM z tego endpointa. Co o tym myślisz?

Link do komentarza
Share on other sites

5 minut temu, Gieneq napisał:

Gdy się zmieni wystawiać go na w endpoint z dostępem HTTP ale z np z loginem/hasłem

A dlaczego nie z własnym certyfikatem?

 

  • Pomogłeś! 1
Link do komentarza
Share on other sites

Zarejestruj się lub zaloguj, aby ukryć tę reklamę.
Zarejestruj się lub zaloguj, aby ukryć tę reklamę.

jlcpcb.jpg

jlcpcb.jpg

Produkcja i montaż PCB - wybierz sprawdzone PCBWay!
   • Darmowe płytki dla studentów i projektów non-profit
   • Tylko 5$ za 10 prototypów PCB w 24 godziny
   • Usługa projektowania PCB na zlecenie
   • Montaż PCB od 30$ + bezpłatna dostawa i szablony
   • Darmowe narzędzie do podglądu plików Gerber
Zobacz również » Film z fabryki PCBWay

7 minut temu, Gieneq napisał:

Da się ustawić żeby był bezterminowy? 

AFAIK Nie da się, ale da się ustawić na pier[cenzura] lat w przyszłość 😉 

Edytowano przez H1M4W4R1
  • Lubię! 1
Link do komentarza
Share on other sites

20 lat da radę.

@H1M4W4R1 a to w ogóle da radę 😅

A tak ciągnąć temat. Skąd komputer ma bazę certyfikatów, skoro się coś zmieni i dalej może się do tego podłączyć? Ma listę wszystkich root CA i uderza do nich?

Link do komentarza
Share on other sites

Podobne pytanie zadałem na forum Espressifa. Dostałem odpowiedź, że ESP-IDF ma listy certyfikatów CA. Pełna lista zajmuje z 200kB, jest do aktywacji w menuconfig:

image.thumb.png.a673ddf4a5d995fcb5ff5feeb15d65dc.png

Wtedy użycie esp_crt_bundle załatwi sprawę:

    // mqtt_cfg.broker.verification.certificate = (const char *)cfg->broker_certificate;

    mqtt_cfg.broker.verification.crt_bundle_attach = esp_crt_bundle_attach;

Można też dodać własny certyfikat, np. do połączenia z własnym serwerem. Pozostaje jeszcze kwestia aktualizacji oprogramowania. W dokumentacji jest info, że trzeba przewidzieć wycofanie certyfikatu:

Cytat

Trusting all root certificates means the list will have to be updated if any of the certificates are retracted. This includes removing them from cacrt_all.pem.

Czyli bez OTA się nie obędzie.

  • Lubię! 2
Link do komentarza
Share on other sites

Bądź aktywny - zaloguj się lub utwórz konto!

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto w ~20 sekund!

Zarejestruj nowe konto, to proste!

Zarejestruj się »

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się »
×
×
  • Utwórz nowe...

Ważne informacje

Ta strona używa ciasteczek (cookies), dzięki którym może działać lepiej. Więcej na ten temat znajdziesz w Polityce Prywatności.