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ú.