Skocz do zawartości
Elvis

Do czego jest układ kryptograficzny w Arduino?

Pomocna odpowiedź

Oglądam sobie nieco dokładniej schemat płytki Arduino MKR Vidor 4000 z FPGA i zauważyłem ciekawą rzecz, mianowicie układ kryptograficzny ECC508 (http://ww1.microchip.com/downloads/en/DeviceDoc/20005927A.pdf).

W sumie nawet mnie to mocno nie zaskoczyło - to nowa płytka z FPGA i tym razem Arduino będzie chciało jednak chronić swoje sekrety.

Ale popatrzyłem na inne nowe modele w ofercie Arduino i okazuje się, że większość płytek MKR ma teraz chip zabezpieczający na pokładzie... Czyżby Arduino szykowało zamknięcie platformy?

Może ktoś coś słyszał w tym temacie?

Udostępnij ten post


Link to post
Share on other sites

Seria MKR ogólnie kojarzy się też z dobrą łącznością (między innymi z NB-IoT). Możliwe, że współpraca z operatorami GSM wymaga takich układów (np. w celu identyfikacji klientów, coś jak IMEI)? Z tego co pamiętam gdzieś była też informacja, że dzięki tym układom będzie można wykorzystać kryptograficzne uwierzytelnienie przy zabezpieczeniu komunikacji przez sieć (TLS).

 W każdym razie Arduino nie robiło z tego żadnej tajemnicy, wręcz wymieniano ten układ kryptograficzny jako zaletę nowych płytek.

Udostępnij ten post


Link to post
Share on other sites

Jeżeli tak jest, to na pewno nie będą się tym publicznie chwalić — na dzień dzisiejszy to by było marketingowe samobójstwo.

  • Lubię! 1

Udostępnij ten post


Link to post
Share on other sites

Dla mnie to jakieś podejrzane... Płytki nie mają GSM, więc to tania wymówka. Ale faktycznie z ECC na pokładzie, każdą można zidentyfikować i jeśli będzie się łączyła z serwerem IoT to klony nie zadziałają - tylko nie wiem, czy to dobry kierunek rozwoju.

Ja o MKR wcześniej nie słyszałem, ale teraz widzę że jest ich ładne kilka w ofercie. W sumie nawet fajne, SAMD21 jako główny procesor, WiFi z ESP32 albo inna łączność. Tylko po co te zabezpieczenia?

  • Lubię! 1

Udostępnij ten post


Link to post
Share on other sites

Nie wydaje mi się, aby nagle cała firma zmieniła swoją filozofię i planowała "zamknięcie" swoich produktów, ale na pewno jest część rzeczy, które mogliby zamknąć (i według mnie mieliby do tego pełne prawo). Mowa np. o bardziej rozbudowanych bibliotekach/edytorach (patrz płytka z FPGA), albo np. kompilator w wersji online. Żaden "chińczyk" raczej im się do tego nie dokłada. Na pewno pojawią się też jakieś rozwiązania chmurowe, wtedy mogliby dopuszczać tam tylko oryginalne płytki. Coś na zasadzie: kupujesz oryginał to dostajesz dostęp do infrastruktury.

Udostępnij ten post


Link to post
Share on other sites

To chyba coś się w Arduino psuje. Bo przy FPGA pogłupieli dokumentnie. Niby powoli udostępniają np. kody źródłowe, ale już pinologia jest tajna. Chociaż opublikowali schemat, ale już listy pinów nie... Sam koleś, który odpowiada na forum napisał że to dziwne, ale nie może podać bo tajemnica, więc każdy musi sobie ze schematu przeczytać.

Następny numer to kod emulatora USB-Blaster. Jest jako skompilowana biblioteka, bo też tajne. Ciekawe czy ktoś im powiedział że jest takie pojęcie jak inżynieria wsteczna 😄

Udostępnij ten post


Link to post
Share on other sites

A uważasz, że to tylko ich wymysł, nie mogli wpaść w jakieś "problemy" z licencjami innych firm? Pytam, bo akurat to nie moja bajka 😉 

8 minut temu, Elvis napisał:

Ja o MKR wcześniej nie słyszałem, ale teraz widzę że jest ich ładne kilka w ofercie. W sumie nawet fajne, SAMD21 jako główny procesor, WiFi z ESP32 albo inna łączność.

Tak jest tego całkiem dużo, ale nie wiem czy są popularne. Staram się śledzić różne DIY opisywane w Internecie i te płytki z serii MKR pojawiają się ekstremalnie rzadko.

9 minut temu, Elvis napisał:

Tylko po co te zabezpieczenia?

Znalazłem fragment, o którym pisałem wcześniej: https://blog.arduino.cc/2018/05/12/the-mkr-family-gets-bigger-with-two-new-iot-boards/

A significant feature is the MKR1010’s two standalone programmable processors – the first based on ARM processor core technology, the second based on a dual-core Espressif IC – making the board a high-performance solution that can distribute its workload across its dual-processor system. Another major feature is the integration of a secure authentication module – Microchip’s ECC508 – which uses crypto authentication to secure TLS network communications and connections.

Udostępnij ten post


Link to post
Share on other sites

Jak dla mnie to pitu-bajdu. Jeśli chcesz mieć bezpieczne połączenie przez TLS to wygeneruj parę kluczy i wgraj prywatny do swojego mikrokontrolera. Nie musisz mieć do tego ECC508, wystarczy openssl oraz darmowe biblioteki. Ten chip to odpowiednik karty sim w telefonie - masz identyfikację urządzenia, użytkownika i brak możliwości tworzenia kopii. Ja myślę, że w Arduino działy księgowe mają dosyć aliexpress i klonów... więc dzięki ECC będą mogli powiedzieć - mamy super IoT, ale działa tylko z oryginalnymi, bezpiecznymi układami.

Udostępnij ten post


Link to post
Share on other sites
14 minut temu, Elvis napisał:

mamy super IoT, ale działa tylko z oryginalnymi, bezpiecznymi układami.

Co masz tutaj na myśli pod hasłem "IoT" - jakąś ich infrastrukturę, z którą płytki będą się łączyły?

14 minut temu, Elvis napisał:

Ten chip to odpowiednik karty sim w telefonie - masz identyfikację urządzenia, użytkownika i brak możliwości tworzenia kopii.

Może właśnie operatorzy GSM dali taki wymóg? Te płytki, do NB IoT mają pozwalać na współpracę z sieciami AT&T, T-Mobile USA, Telstra, Verizon, może operatorzy nie chcieli dopuścić do swoich sieci "klonów"?

Udostępnij ten post


Link to post
Share on other sites

Nie bardzo wiem, co płytka np. MKR WiFi 1010 (https://store.arduino.cc/arduino-mkr-wifi-1010) może mieć do operatorów sieci komórkowych. Przecież do łączenia z siecią używany jest ESP32.

Co do IoT to przykładowo Amazon, czy Google mogą oferować pewne usługi tylko jeśli układ zostawnie zidentyfikowany kryptograficznie. Niby fajne, ale to trochę przekraczanie "cienkiej czerwonej linii". Mamy niby płytki DIY, niby wszystko otwarte, ale google sprawdzi wszystko nawet jak bawimy się Arduino. A przy okazji, jak wspominalem firma będzie walczyć z klonami...

  • Lubię! 1

Udostępnij ten post


Link to post
Share on other sites
37 minut temu, Elvis napisał:

Nie bardzo wiem, co płytka np. MKR WiFi 1010 (https://store.arduino.cc/arduino-mkr-wifi-1010) może mieć do operatorów sieci komórkowych. Przecież do łączenia z siecią używany jest ESP32.

Ten fragment o GSM odnosi się akurat do MKR-NB-1500: http://store.arduino.cc/arduino-mkr-nb-1500

Mam też jeszcze jeden spiskowy pomysł 😉 Może zwyczajnie wymyślili sobie jeden "szablon" dla płytek MKR. Tzn. konkretny projekt tej części z programatorem, zasilaniem itd. i całość teraz kopiują między innymi rozwiązaniami jako swój standard, bo np. mają pewność, że tak poprowadzone zasilanie pozwala przejść certyfikację. Jak się porówna "przody" tych płytek to są identyczne:

1d64a-2019-01-25_21-47-34-5587.png

Ten układ kryptograficzny kosztuje pewnie przy ich skali produkcje <50 centów, więc uznali, że warto dodawać go wszędzie, bo może się przydać. Od jakiegoś czasu do Arduino UNO dodawane są książeczki z unikalnymi kodami do rejestracji płytki online, pewnie taki układ wychodzi taniej 😉

Udostępnij ten post


Link to post
Share on other sites

Ja tam nie wierzę w przypadkowe wydawanie 50 centów przy masowej produkcji... pomnóż sobie przez milion płytek i pomyśl jakie fajne wakacje, samochód, albo domek nad jeziorem można za to mieć. Czasem na płytkach zostawia się miejsce, ale nie montuje układów, jednak nie byłbym pewien czy to akurat ten przypadek.

Obawiam się, że jest w tym jednak jakiś zamysł, a jaki pewnie się niedługo dowiemy.

Udostępnij ten post


Link to post
Share on other sites

To kolejna propozycja - chyba lepsza od poprzedniej  😉 

Czy przypadkiem ten układ kryptograficzny na tych płytkach nie jest traktowany jak tanie i ciekawe peryferium wstawione tam dla użytkowników? Jedne zestawy mają akcelerometry, a oni wstawili sobie moduł kryptograficzny. Wnioskuję to po lekturze dostępnych materiałów. Jest nawet oficjalna biblioteka Arduino, która pozwala komunikować się z tym układem. Jako demo pokazano np. możliwość wykorzystania ECC508 do generowania liczb losowych, demo:

/*
  ECCX08 Random Number

  This sketch uses the ECC508 or ECC608 to generate a random number 
  every second and print it to the Serial monitor

  Circuit:
   - MKR board with ECC508 or ECC608 on board

  created 19 July 2018
  by Sandeep Mistry
*/

#include <ArduinoECCX08.h>

void setup() {
  Serial.begin(9600);
  while (!Serial);

  if (!ECCX08.begin()) {
    Serial.println("Failed to communicate with ECC508/ECC608!");
    while (1);
  }

  if (!ECCX08.locked()) {
    Serial.println("The ECC508/ECC608 is not locked!");
    while (1);
  }
}

void loop() {
  Serial.print("Random number = ");
  Serial.println(ECCX08.random(65535));

  delay(1000);
}

Na forum Arduino można znaleźć też informacje, że układ ten może być wykorzystywany do szybszego obliczania sum kontrolnych typu SHA256, pojawiają się też wzmianki o RSA lub o wykorzystywaniu tego układu do przechowywania kluczy (ale w tym sensie, że to użytkownik tworzy aplikację, która na jego potrzeby wykorzystuje kryptografię do czegoś).

 Co sądzisz o takim wytłumaczeniu dla tego układu?

Udostępnij ten post


Link to post
Share on other sites
(edytowany)

Tak, ten układ potrafi liczyć SHA, nie wiem czy ta wersja, czy nowsza obsługuje kryptografię opartą o krzywe eliptyczne. Jeśli użytkownik ma pełną kontrolę nad układem to fajnie, ale obawiam się że tak nie jest. Ten układ ma własną pamięć (nieulotną), która może być zapisana przez producenta. Układ może nawet zliczać liczbę uruchomień i odmówić np. autoryzacji po przekroczeniu limitu. Poza tym jeśli raz został zapisany, nie daje już użytkownikowi pełnej kontroli - ma ją producent / Arduino, a my możemy się tylko cieszyć np. liczeniem SHA, które spokojnie można obliczyć programowo. Co więcej ECC pozwala na weryfikację, czy płytka pochodzi z autoryzowane źródła, można sprawdzić jej numer seryjny, a więc pochodzenie itd. To nie do końca zgodne z duchem wolnego oprogramowania. Niby Arduino nie musi tego wyszstkiego robić, ale idę o zakład że skoro wydają 50 centów, to chcą czegoś w zamian.

Edytowano przez Elvis
  • Lubię! 1

Udostępnij ten post


Link to post
Share on other sites

A może ta platforma Arduino Cloud korzysta lub będzie z tego korzystała? Pytam, bo nie znam jeszcze tej chmury 😉

2.jpg 1.jpg

Z drugiej strony jeśli robią taką platformę to czemu mieliby udostępniać ją dla klonów? Oczywiście z punku ideologicznego jest to zrozumiałe, że powinni. Jednak z drugiej strony takie coś kosztuje, stworzenie, utrzymanie takich serwerów. Według mnie tego typu narzędzia mogłyby być dostępne tylko dla oryginalnych płytek, uważam to za uczciwe podejście. Nikt przecież nie broni chińczykowi wyprodukowania własnej chmury tego typu 😉

 

  • Lubię! 1

Udostępnij ten post


Link to post
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ę »

×