Predpomnilnik za VPN: kaj HTTPS še vedno skriva
Posrednik na izhodu VPN še vedno ne more brati HTTPS od konca do konca. Izberite predpomniljivo obremenitev in namerno mejo TLS, preden dodate še en strežnik.
Predpomnilnik ob strežniku VPN se sliši kot brezplačna pasovna širina za vse za tunelom. Ni, ker bajti, ki gredo skozi to točko, ostanejo zaščiteni s sejo TLS, katere konca sta brskalnik in spletno mesto. Prehod VPN odstrani le svoje zunanje šifriranje, ne pa šifriranja aplikacije. Odločite se, kateri ponavljajoči se predmet naj se ponovno uporabi, preden dodate strojno opremo.
Seja TLS pripada brskalniku
Pri običajnem HTTPS brskalnik izmenja ključe s spletnim mestom, in vsak zapis po rokovanju je šifriran za ta par koncev. Prehod VPN dešifrira tunel, ki ga je ustvaril, nato pa posreduje neprosojne zapise TLS. Vidi cilje, čas in obseg, ne pa vrstice zahteve ali telesa odgovora. To je meja, s katero mora živeti vsak predpomnilnik.
Vsaka zasnova, ki jo prelomi, je zasnova prestrezanja TLS, z lastnimi posledicami za zaupanje v potrdila in upravljanje naprav.
CONNECT je tunel, ne predpomnilnik
Eksplicitni posrednik naprej običajno prejme zahtevo HTTP CONNECT in nato posreduje bajte v obe smeri. Posredovanje je ključna beseda: posrednik ne razčlenjuje šifriranega pogovora.
curl -sSI -x http://proxy.example:3128 https://example.com/Glave odgovora prihajajo iz posrednikovega ravnanja s tunelom, ne iz predpomnilniške kopije strani. Uspešen CONNECT pomeni, da pot deluje, ne pa da je bilo kaj shranjeno za ponovno uporabo. Usmerjanje vrat 443 na predpomnilnik ga tudi ne nauči govoriti TLS, ker predpomnilnik zahteva berljiva sporočila. Konfiguracija odjemalca mora uporabiti podprto eksplicitno nastavitev posrednika, ne nerazloženega preusmerjanja.
Predpomnilnik nastavite za tisto, kar upravljate, ne za tisto, kar brskate
Kjer je vsebina vaša, lahko obratni posrednik konča TLS in namerno shranjuje odobrene odgovore. Kjer pripada skladišču paketov, uporabite zrcalo, ki ga projekt podpira.
nginx -T | grep -n "proxy_cache"
curl -sSI https://mirror.example/pkg/index.json | grep -i -E "cache-control|age"Prvi ukaz pokaže, ali je območje predpomnilnika nastavljeno in kje velja, drugi pa pokaže lastne predpomnilniške direktive izvora za en predmet. Skupni predpomnilnik mora spoštovati svežino, nadzor predpomnilnika in atribute zahteve, ki ločujejo predstavitve; private in no-store pomenita različne stvari in nobenega ne smemo odstraniti za dvig stopnje zadetkov. Pravila predpomnilnika HTTP omejujejo tudi shranjevanje odgovorov na preverjene zahteve, in prav tam personalizirana stran postane razkritje podatkov. Posrednik naj bo omejen na odobrene odjemalce, namesto da izpostavljate odprt relej.
Merite zadetek, ne štoparice
Hitrejša druga zahteva ne dokazuje, da je novi predpomnilnik kaj naredil, ker brskalniki in operacijski sistemi agresivno predpomnijo sami. Prosite posrednika za števce zadetkov in zgrešitev ter opazujte promet izvora med nadzorovanim ponavljanjem. Uporabite eno ponovljeno prenašanje znanega predmeta, najprej z vklopljenim predpomnilnikom, nato z obhodom, in primerjajte bajte, ki jih je postregel izvor, ne pretečen čas. Nato preverite mejo pooblastila: vir, ki zahteva prijavo, ne sme biti postrežen drugemu odjemalcu.
Zabeležite obremenitev, ključ predpomnilnika in politiko, ki je dovolila ponovno uporabo. Predpomnilnik je odločitev o deljenju podatkov v kostumu optimizacije.