SSL z mikrokontrolera

12

Chcę stworzyć urządzenie wbudowane, które może komunikować się z serwerem internetowym w bezpieczny sposób. Wolę używać standardowego protokołu SSL, aby serwer WWW wyświetlał moje urządzenie podobnie jak przeglądarka internetowa.

  • Czy istnieją wbudowane biblioteki dla tego wbudowanego?
  • Co powiesz na układ scalony, który może obsłużyć uzgadnianie i deszyfrowanie?
  • Jeśli nie, jak bym to zrobił sam?
Kellenjb
źródło
Jeśli tego nie widziałeś, możesz rozważyć to ze względu na jego mały rozmiar, potężne możliwości, ale nie niską cenę: phidgets.com/products.php?product_id=1072
gahooa
@gahooa, które jest interesujące. Szukam taniej opcji. Mój rynek kupiłby 10 lub 100 sztuk mojego urządzenia, więc każdy cent, który mogę obniżyć koszty, może pomóc w zwiększeniu możliwości sprzedaży tego produktu.
Kellenjb
1
Mam nadzieję, że masz WIELKĄ mikro. SSL jest dość ciężki obliczeniowo.
Connor Wolf,
@Fake Name Myślałem o dsPIC. Rozumiem, że wstępne uzgadnianie może być dość ciężkie, ale wszystko inne nie jest takie złe.
Kellenjb

Odpowiedzi:

4

Sugeruję stos Microchip TCP . Microchip oferuje bezpłatny licencjonowany stos TCP / IP zoptymalizowany dla PIC18, PIC24, dsPIC i PIC32.

Stos TCP / IP Microchip zawiera funkcję Secure Sockets Layer (SSL).

Ale to nie jest darmowe. Patrz poniżej:

Aby zachować zgodność z ograniczeniami kontroli eksportu w USA, część szyfrującą modułu SSL należy zakupić osobno od Microchip. Biblioteka procedur szyfrowania danych (SW300052) jest dostępna za symboliczną opłatą na stronie http://www.microchipdirect.com/productsearch.aspx?Ke words=SW300052 .

Aby uzyskać lepsze wyniki, możesz użyć ENCx24J600, który ma wbudowany silnik szyfrowania / deszyfrowania AES i inne silniki papierów wartościowych.

Daniel Grillo
źródło
1
Nie za darmo, ale tylko 5 USD.
Robert
Bardzo tani! Nie wiedziałem tego
Daniel Grillo
1
@Robert i @Daniel Grillo Wierzę, że to 5 USD za pakiet startowy, a potem, gdy przejdziesz do sprzedaży detalicznej, około 2500 USD za 5000 sztuk. Przynajmniej tak to jest: microchip.com/stellent/…
Kellenjb
Jednak ENCx24J600 bardzo mnie interesuje.
Kellenjb
2

Jeśli system może być wystarczająco skomplikowany, aby uruchomić system operacyjny, istnieje wiele narzędzi i bibliotek, które mogą wykonać to zadanie. W osadzonym systemie Linux możesz używać wget z SSL. W każdym systemie z językami wyższego poziomu, takimi jak Python lub Ruby, biblioteka sieciowa ( Python SSL ) będzie obsługiwać SSL. Jeśli masz dostęp tylko do C, możesz napisać coś przy użyciu biblioteki OpenSSL .

Jeśli nie ma systemu operacyjnego, myślę, że masz dużo pracy. Co najmniej potrzebujesz stosu TCP / IP. Zbudowałbym prototyp z mbedem - jest post na forum, który sugeruje, że mogą już mieć bibliotekę SSL.

pingswept
źródło
1

Wydaje się, że obsługuje to także AES SSL: http://www.lantronix.com/device-networking/embedded-device-servers/xport.html

powtac
źródło
1
Nie sądzę, że tak naprawdę obsługuje SSL - AES to tylko symetryczny szyfr, który może być używany przez SSL, ale np. Uścisk dłoni wymaga innych kroków, które wymagają (zwykle) RSA i SHA-1. Jednak Lantronix ma teraz XPort AR, który wydaje się obsługiwać niektóre wersje protokołu SSL lantronix.com/device-networking/embedded-device-servers/…, jednak nie jest to tanie.
thom_nic