HTTP/3 protokol uvodi sigurnosne nadogradnje nad svojim prethodnicima, no istovremeno stvarajući mjesto za nove vrste napada specifične za QUIC protokol nad kojim se zasniva. Međutim, QUIC protokol ostavlja mogućnost buduće nadogradnje i stvaranje zakrpi za otkrivene ranjivosti.
Ključne riječi: HTTP/3; QUIC; Sigurnost HTTP/3 protokola; Napadi na HTTP/3 protokol;
HTTP/3 je najnovija revizija HTTP protokola koja koristi QUIC protokol izgrađen nad UDP-om. HTTP/3 ipak rješava mnoštvo ranjivosti njegovih prethodnika istovremeno povećavajući performanse, no porastom njegove popularnosti očekuje se i porast otkrivenih ranjivosti. Iako se većina trenutno otkrivenih ranjivosti svodi na loše podešavanje ili podržavanje HTTP/3 protokola, postoje otkrivene ranjivosti specifične za ovaj protokol.
QUICK protokol je usporediv s korištenjem TLS + HTTP/2 protokola, no pruža veću sigurnost, veću propusnost i manje kašnjenje. Omogućeno je multipleksiranje bez blokiranja, kraće vrijeme uspostavljanja veze te 0-RTT (zero round-trip time) koji omogućuje ponovno uspostavljanje postojeće veze bez ponovnog dijeljenja sigurnosnih ključeva jer su ključevi za ponovnu uspostavu veze poslani u prvoj poruci prilikom prve uspostave veze.
Iako QUIC koristi TLS 1.3 za enkripciju, on kriptira većinu paketa koji putuju mrežom uključujući i headere kao što je broj paketa i neke zastavice (Slika 1).
Dio ranjivosti HTTP/3 protokola može biti rezultat loše konfiguracije servera te takve ranjivosti neće biti razmatrane. Također, dio ranjivosti su neovisne o HTTP protokolu poput MitM napada, Remote code execution, cache poisnoning i sl. te također neće biti razmatrani.
Iako TLS 1.3 nije ranjiv na replay attack, QUIC protokol koji koristi 0-RTT nad TLS 1.3 je ranjiv. Naime, ako napadač ima pristup prvom zahtjevu za uspostavu konekcije koji i dalje može biti kriptiran, on može ponoviti taj zahtjev i izazvati ponovni odgovor od servera. Iako ne zvuči kao sigurnosni problem, ovo može izazvati neočekivano višestruko okidanje legitimnih radnji na serveru. Primjerice, prilikom plaćanja napadač može više puta pozvati endpoint za naplatu ili prijenos novaca.
Ovaj napad je lagano izbjeći dizajnirajući aplikaciju koja osjetljive radnje izvršava samo jednom. Također, valja napomenuti da je ovakav dizajn aplikacije bio nužan i prije pojave HTTP/3 protokola, primjerice, prilikom slabe veze ili njezinog kratkog gubitka. Također, moguće je ograničiti da server prihvaća 0-RTT re-connect isključivo za HTTP GET zahtjeve bez parametara.
S obzirom na to da je QUIC protokol baziran na UDP-u koji sadrži malo informacija o pošiljatelju paketa, moguće je lažirati IP adresu pošiljatelja, a TLS enkripcija poruke i kreiranje tokena stvara dodatno radno opterećenje serveru koje napadač može iskoristiti slanjem višestrukih zahtjeva s raznih servera lažno se predstavljajući kao pošiljatelj. Ovo ponašanje preopterećuje server i uzrokuje nemogućnost odgovora na zahtjeve legitimnih korisnika usluge.
Napadač može pokrenuti nekoliko konekcija sa maksimalnim brojem tokova podataka na svakoj konekciji, istovremeno šaljući minimalnu količinu podataka kroz tokove. Na taj način je moguće dosegnuti limit otvorenih uzastopnih konekcija na serveru. Ovaj napad moguće je otežati smanjujući limit otvorenih konekcija (tokova) za svakog korisnika, no time smanjujemo propusnost, odnosno performanse prema korisniku.
Ova vrsta napada bazira se na slanju reset tokena žrtvi te na taj način istovremeno stvarajući DoS napad na žrtvu, ali djelomično i na server. Ako napadač ima mogućnosti generirati reset token iz connectionId-a onda može resetirati aktivnu konekciju žrtve što uskraćuje uslugu, a istovremeno prisiljava server na čekanje isteka vremena (timeout) za ponovnu uspostavu konekcije. Ako napadač skalira ovaj napad, to troši značajne resurse servera čekajući na ponovnu uspostavu veze s odspojenim korisnicima.
Iako HTTP/3 rješava mnogobrojne sigurnosne rizike svojih prethodnika, on sa sobom donosi nove ranjivosti od kojih, zasigurno, većina još nije otkrivena. QUIC protokol nad kojem se zasniva HTTP/3 je napravljen s mogućnošću nadogradnje bez potrebe za adaptacijom postojećih uređaja, što omogućuje sigurnosne zakrpe postojećih, a i budućih ranjivosti.