blogy logo
login PRIHLÁS SA
BLOG deadawp
ČLÁNKY
DISKUSIE
3
SLEDUJETE BLOG
PHP, Arduino programátor
deadawp



HTTP autentizácia - Arduino / ESP - klient / server
pridal deadawp 8.12. 2020 o 14:02



HTTP autentizácia sa využíva v spojeniach typu klient / server pre autentizáciu - prihlásenie klienta menom a heslom. Na základe štruktúry webaplikácie je tak možné autentizáciou sprístupniť obsah, alebo neopak presmerovať používateľa na zadanie používateľského mena a hesla.

Najjednodušou možnosťou je využiť Basic Authorization, ktorú je možné implementovať  na strane servera prostredníctvom HTTP hlavičky webservera WWW-Authenticate: Basic realm="Secure Area" s návratovým kódom HTTP 401 - Unauthorized. Respektíve podľa normy RFC 7617 môže byť ďalším parametrom HTTP hlavičky aj charset - znaková sada.

Klient je vyzvaný na zadanie používateľského mena a hesla, ktoré sa po odoslaní formulára skontroluje. V prípade úspešnej autentizácie je klientovi cieľová stránka sprístupnená - HTTP 200 OK a je mu zaslaný HTML kód danej stránky. V opačnom prípade mu nie je sprístupnený obsah z dôvodu zadania nesprávnych prihlasovacích údajov. Server kontroluje výsledný base64 reťazec. V prípade, že je meno a heslo obsiahnuté v URL adrese, je serverom preložené do base64 formátu a porovnané s referenčným base64 reťazcom.

Implementácia klienta v mikrokontrolérových platformách, ktoré využívajú primitívne HTTP requesty sú navrhnuté tak, že nepodporujú presmerovanie, čo je problém pri implementácii tejto autentizácie. Z toho dôvodu sa využíva možnosť obsiahnuť prihlasovacie informácie priamo do URL adresy cieľovej stránky v tvare: username:password@example.com. 

V prípade, že sú prihlasovacie informácie obsiahnuté v requeste (najčastejšie prehliadač) a pop-up okno pre zadanie prihlasovacích informácii je payload prekonvertovaný do tvaru  username:password a je taktiež je tento výsledný plaintext reťazec prevedený do base64 formátu, ktorý sa posiela serveru. HTTP komunikácia nie je šifrovaná a spolieha sa nato, že v sieti nie je nikto, kto by mohol dané koncové zariadenia ohroziť. Base64 reťazec pre laika nie je čitateľný, ale pre potencionálneho útočníka je dekódovateľný v rade pár milisekúnd. 

Obrázok nižšie poukazuje na možnosť odchytenia paketu v sieti cez program Wireshark a pri zobrazení payloadu správy - GET requestu je viditeľná autentizácia klientom a heslom, pričom priamo Wireshark dokáže base64 reťazec dekódovať a ukázať tak pôvodné meno (admin) a heslo (Pa$$w0rd), ktoré používateľ využil pre prístup k ROOT (I) stránke webservera na cieľovej IP adrese 10.1.0.1 - (napríklad WiFi router), čím potencionálny útočník môže získať plný prístup k sieti.

Arduino, ESP8266 a ESP32 majú svoje knižnice (Ethernet, WiFi), avšak v princípe fungujú veľmi podobne a majú rovnaké príkazy pre použitie objektu (Ethernet / WiFiclient), čo umožňuje ľahkú - univerzálnu implementáciu HTTP autentizácie pre tieto mikrokontroléry či už na úrovni klienta, alebo webservera. Každá z knižníc má aj ukážku pre Basic HTTP autentizáciu či už pre prevádzku mikrokontroléru ako klienta, alebo webservera. 

Webserver:

  • ESP8266 Webserver -  https://github.com/esp8266/Arduino/blob/master/libraries/ESP8266WebServer/examples/HttpBasicAuth/HttpBasicAuth.ino

S klientskou HTTP autentizáciou sa stretávame napríklad v systéme Loxone pre inteligentnú domácnosť, ktorý využíva takúto autentizáciu pre zmenu výstupov, stavov, prístup k systému. V prehliadačoch Safari je s HTTP autentizáciou problém a nie všetky verzie ju podporujú.



Prístupov 3494
Kvalita článku
hlasov 0

PRÍSPEVKY
SLEDOVAŤ
Prosím prihláste sa pre možnosť pridania komentáru.
Prihláste sa, alebo použite facebook login facebook login
ĎALŠIE ČLÁNKY V BLOGU
ULP aplikácie - ESP8266 / ESP32
[ 14.11.2021] (príspevkov 0)
Detekčná charakteristika - MATLAB
[ 8.8.2021] (príspevkov 0)
Práca s obrázkami - MATLAB
[ 19.7.2021] (príspevkov 1)
Flash Encryption a jeho implementácia v ...
[ 18.7.2021] (príspevkov 0)
Secure Boot V1 a jeho implementácia v ES...
[ 13.7.2021] (príspevkov 0)
Senzor Bosch BME280 v prostredí ESP-IDF
[ 8.7.2021] (príspevkov 0)
Podpora ESP32 do projektu WiFi termostat
[ 1.7.2021] (príspevkov 0)
Beamforming vizualizácia - MATLAB
[ 29.6.2021] (príspevkov 0)
Výroba DPS - AISLER - RFID DOMINATOR
[ 18.6.2021] (príspevkov 0)