Po CONNECT užklausos eilutės šie baitai vis dar priklauso proxy:

CONNECT service.example:443 HTTP/1.1\r\n
Host: service.example:443\r\n
User-Agent: example-client\r\n
\r\n

Persiuntus Host arba User-Agent į 443 prievadą, paskirtis gauna paprasto teksto antraštes ten, kur tikisi TLS. Ši klaida gali įvykti dar prieš tai, kai šifro pasirinkimas tampa svarbus.

  1. Skaitykite ir analizuokite iki antraščių pabaigos su tuščia eilute, laikydamiesi nustatymo termino ir antraščių dydžio ribos.
  2. Taikykite proxy autentifikavimą ir paskirties politiką.
  3. Užmegzkite patvirtintą ryšį su tikslu.
  4. Nusiųskite sėkmingą CONNECT atsakymą ir pereikite į tunelio režimą.

Išsaugokite buferinius baitus po ribos tinkamai kitai būsenai. Neišmeskite jų ir nelaikykite proxy užklausos antraščių vėlesne svetainės užklausa.

Klientas turi atitinkamą pareigą atsakymo pusėje: baikite skaityti sėkmingą CONNECT atsakymą prieš pradėdami tunelinį protokolą. Abi pusės turi sutarti dėl ribos, kurioje srautas keičia vaidmenį.

Susiję straipsniai