blogy logo
login PRIHLÁS SA
BLOG deadawp
ČLÁNKY
DISKUSIE
3
SLEDUJETE BLOG
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 6585
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
Oplatí sa teplovodivá pasta z Aliexpress...
[ 4.4.2024] (príspevkov 0)
Recenzia 3D podznačky BEZ KOMPRESE
[ 4.4.2024] (príspevkov 0)
GTA IV fix spustenia na Windowse 10 N
[ 24.3.2024] (príspevkov 0)
RFID DOMINATOR licencia na predaj
[ 4.1.2024] (príspevkov 0)
ATtiny85 Digispark - programovanie, použ...
[ 28.12.2023] (príspevkov 0)
Prečo by som si už nekúpil ESPD-35 2.0 /...
[ 26.12.2023] (príspevkov 0)
ATtiny85 - programovanie Arduino as ISP
[ 19.12.2023] (príspevkov 0)
MasterTherm - webscraper ESP32
[ 25.11.2023] (príspevkov 0)
RFID DOMINATOR 2.0 - rozdiely s 1.0
[ 15.11.2023] (príspevkov 0)
Rozšírená realita (AR) - IoT dashboard
[ 29.10.2023] (príspevkov 0)