blogy logo
login PRIHLÁS SA
BLOG deadawp
ČLÁNKY
DISKUSIE
2
SLEDOVAŤ BLOG
Programátor
deadawp



HTTP autentizácia - Arduino / ESP - klient / server
pridal deadawp 8.12. 2020 o 14:02 (naposledy upravené 8.12. 2020 o 14:42)



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 7367
Kvalita článku
hlasov 0

PRÍSPEVKY
SLEDUJETE
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
Update grafov, ukážkových kódov - Hladin...
[ 16.11.2024] (príspevkov 0)
XIAO ESP32-C6 od Seeed Studio
[ 10.11.2024] (príspevkov 0)
ESP-IDF v4.4.2 prechod na v5.2
[ 5.11.2024] (príspevkov 0)
Krabička pre RFID DOMINATOR 2.0
[ 18.10.2024] (príspevkov 0)
Známe neduhy - Ecotec 1.6E Opel/GM Chevr...
[ 8.10.2024] (príspevkov 0)
Cold-start BQ25570 vs BQ25504 od Texas I...
[ 2.8.2024] (príspevkov 0)
EG21-G - MQTT pripojenie na Thingsboard
[ 5.6.2024] (príspevkov 0)
Quectel EG21-G - HTTP request
[ 17.5.2024] (príspevkov 0)
Tip na darček k jubileu 60
[ 29.4.2024] (príspevkov 0)