Pracuję nad nieco ezoterycznym projektem, w którym musimy wdrożyć podstawowe uwierzytelnianie w małym/powolnym wbudowanym mikro (bez OS). Urządzenie służy kilku stronom internetowym poprzez port szeregowy, który następnie zostaje zasysany przez sieć IP przez sprzęt, nad którym nie mamy kontroli.Lekkie uwierzytelnianie w sieci dla systemu wbudowanego
Kod serwera, taki jak jest (pomyśl nweb o diecie głodowej), pobiera żądania HTTP GET/POST i wypluwa strony & zmienia odpowiednio ustawienia.
Potrzebujemy jakiegoś sposobu uwierzytelnienia logowania użytkownika/sesji, abyśmy nie zezwalali ludziom na przeglądanie danych lub zmianę ustawień, których nie powinni.
Urządzenie nie jest przeznaczone do bezpośredniego kontaktu z internetem lub w 100% niepodatne na poważne hakowanie (bezpieczeństwo/separacja sieci stanowi problem klienta *), wymóg bezpieczeństwa polega bardziej na tym, aby niższe stopnie nie dotykały lamp błyskowych ;)
Z powodu braku miejsca/mocy obliczeniowej (zakładamy, że mamy ~ 2k przestrzeni kodu i nie wiele MHz) nie możemy implementować rzeczy takich jak SSL, ale byłoby miło pójść co najmniej jeden lepszy niż standard bagienny HTTP access control.
Możemy obsłużyć GET, POST i ustawić/odczytać dane cookie. Jedną rzeczą, którą ma nasze mikro jest przyzwoity, crypto-standardowy sprzętowy generator liczb losowych, o ile w ogóle to pomoże.
- = Naprawdę klienci powinni zawiesić urządzenie we własnej sieci, fizycznie rozłączone lub co najmniej zaporę ogniową na śmierć, przed wszystkim innym. Ale hej, jeśli to działa dla Boeinga ...