USENIX Enigma 2017 - LLC Cache Attacks: Tillämplighet och motåtgärder

Finns det ett sätt att ange att en resurs ska cachas när den nås via både HTTP och HTTPS? Vi har massor av statiskt innehåll som initialt serveras via HTTP och sedan serveras igen över SSL när användaren försöker registrera sig eller logga in, och det skulle vara trevligt att cache det.

Nej, webbläsare behandlar HTTP- och HTTPS-webbadresser som helt olika, även om den enda faktiska skillnaden är närvaron av s.

Om de inte gjorde det skulle detta skapa ett allvarligt säkerhetshål. Tänk på vad som skulle hända om, till exempel, en angripare lyckades manipulera med en JS-fil laddad över osäker HTTP, och webbläsaren senare körde igen samma JS-kod från sin cache på en säker sida.

Det enda sättet du kan återanvända samma statiska resurser på både säkra och osäkra sidor är att ladda dem från exakt samma webbadresser. Här har du i princip två val:

  • Använd HTTPS för dina statiska resurser, även när huvudsidan laddas över HTTP. Detta kommer att fungera och är säkert, men användningen av HTTPS medför en liten CPU-kostnad och förhindrar delade proxyserver från att cachelagra resurserna. Användarens webbläsare kommer dock fortfarande att cacha dem och det är fortfarande möjligt att använda en omvänd proxy eller en CDN för att betjäna resurserna så länge de kan fungera som pålitliga SSL-slutpunkter.

  • Använd HTTP för dina statiska resurser, även när huvudsidan laddas över HTTPS. Detta Maj fungerar också i vissa webbläsare, men det är inte säkra. Även webbläsare där det fungerar brukar varna användaren om förekomsten av osäkert innehåll eller bara behandla hela sidan som osäker. Till exempel visar IE8 en "blandat innehåll" -varning, medan IE9 bara inte laddar de osäkra resurserna (förutom bilder).

Naturligtvis har du också ett tredje alternativ: använd bara HTTPS för Allt av dina sidor. Detta kan vara mer praktiskt än du skulle tro, särskilt om en betydande del av din trafik redan använder HTTPS.

Jag har inte hittat något som specifikt anger hur webbläsare ska hantera delning av https och http cachat innehåll, och jag har hittat motstridig information också.

Till exempel: Jag rensade min cache i Firefox, besökte http://www.google.com, granskade min diskcache (typ about:cache i webbadressfältet) och besökte sedan https://www.google.com.

Trots att både http och https cachat innehåll hämtades inte https-cachade http-resurser. Hur som helst, här är några artiklar som kan vara användbara:

  • http://www.mnot.net/cache_docs/
  • http://www.web-caching.com/welcome.html
  • http://www.w3.org/Protocols/rfc2616/rfc2616-sec13.html#sec13

Hoppas det här hjälper!

  • Inget som i rubrikerna - kan du skicka tillbaka HTTP-rubriker till cache över HTTP och HTTPS?
  • stackoverflow.com/questions/174348/… kan också vara relevant

fungerat för dig: Charles Robertson | Vill du kontakta oss?