Fråga:
Förhindrar https man i mitten attacker från proxyserver?
jojo
2011-10-15 05:23:38 UTC
view on stackexchange narkive permalink

Det finns en stationär klient A som ansluter till webbplatsen W i en https-anslutning

  A --> W  

På något sätt mellan A och W, där är en proxy G.

  A --> G --> W  
  • I detta fall kommer G att kunna få certifikatet som tidigare fick från W?
  • Om G kan få certifikatet, betyder det att G kommer att kunna dekryptera data?
Sju svar:
Hendrik Brummermann
2011-10-22 01:19:03 UTC
view on stackexchange narkive permalink

Hur fungerar HTTPS?

HTTPS bygger på offentlig / privat nyckelkryptering . Detta betyder i grunden att det finns ett nyckelpar: Den offentliga nyckeln används för kryptering och den hemliga privata nyckeln krävs för dekryptering.

Ett certifikat är i grunden en offentlig nyckel med en etikett som identifierar ägaren.

Så när din webbläsare ansluter till en HTTPS-server svarar servern med sitt certifikat. Webbläsaren kontrollerar om certifikatet är giltigt :

  • ägarinformationen måste matcha det servernamn som användaren begärde.
  • certifikatet behöver att undertecknas av en betrodd certifieringsmyndighet.

Om något av dessa villkor inte uppfylls informeras användaren om problemet.

Efter verifieringen visas webbläsare extraherar den offentliga nyckeln och använder den för att kryptera viss information innan den skickas till servern. Servern kan dekryptera den eftersom servern har den matchande privata nyckeln .

Hur förhindrar HTTPS man i mitten attacker?

I detta kommer G att kunna få certifikatet som A tidigare fick från W?

Ja, certifikatet är den offentliga nyckeln med etiketten. Webbservern skickar den till alla som ansluter till den.

Om G kan få certifikatet, betyder det att G kommer att kunna dekryptera data?

Nej Certifikatet innehåller webbserverns offentliga nyckel . Den skadliga proxyen har inte den matchande privata nyckeln. Så om proxyen vidarebefordrar det verkliga certifikatet till klienten kan det inte dekryptera information som klienten skickar till webbservern.

Proxyservern kan försöka förfalska certifikatet och tillhandahålla sin egen offentliga nyckel istället. Detta kommer emellertid att förstöra certifieringsmyndigheternas underskrift . Webbläsaren varnar för det ogiltiga certifikatet.

Finns det ett sätt som en proxyserver kan läsa HTTPS?

Om datorns administratör samarbetar är det möjligt för en proxyserver att sniffa https-anslutningar. Detta används i vissa företag för att söka efter virus och för att genomdriva riktlinjer för acceptabel användning.

En lokal certifieringsmyndighet är inställd och administratören säger till din webbläsare att den här CA är pålitlig . Proxyservern använder denna CA för att signera sina förfalskade certifikat.

Åh och naturligtvis tenderar användaren att klicka bort säkerhetsvarningarna.

Om administratören och datorn samarbetar kommer det inte att finnas några certifikatvarningar. Hur kan användaren veta om proxyen lyssnar på konversationen? Afaik mitt företag skannar https, men jag ser inte det självtecknade certifikatet i kedjans förtroende när jag undersöker certifikaten från https-webbplatser.
Du kan upptäcka det. 1: a ditt företagscertifikat är inte ett själv undertecknat. Det är ett certifikat som är vederbörligen undertecknat av en myndighet som automatiskt är inbäddat i hela Internet Explorer i världen. För att upptäcka alla ** magiska ** certifikat utsläppsrätter utan ditt meddelande, finns det en unik men svår väg. Ta bort alla magiskt auktoriserade rotcertifikat i Internet Explorer. Från denna utgångspunkt måste du acceptera exakt ** alla servarcertifikat **. Du måste läsa, förstå dem och acceptera de du ** litar på **.
en fråga är: Jag kan inte se vad som lämnar nätverket, men hur är svaret som servern skickade tillbaka till webbläsaren, nu har jag en offentlig nyckel, betyder det att jag kan avkoda alla svar och jag såg allt vad webbläsaren är ser?
Offentlig nyckel låter dig bara kryptera data och används bara för sessionens nyckelförhandling. (@Hendrik du kanske kan förbättra delen om webbläsarens användning av den offentliga nyckeln)
Den som kan generera ett certifikat för proxyen som signeras med hjälp av ett signeringscertifikat från vilken dator som helst som din dator litar på kommer att kunna fånga din anslutning. Finns det några RFC: er / tekniker som kan förhindra detta? Jag är medveten om vissa plugins som ger ett cert fingeravtryck db och varnar dig om cert fingeravtrycket du får inte är detsamma som pluginservern får men de kan också fångas upp. Trots att https-proxyservrar används idag bara i företag som du beskrev detta öppnar sätt för mitmattacker för angripare med tillräcklig inflytande för att få tag på betrodda CA: er.
@masi Det finns ett projekt som heter [Certificate Patrol] (http://patrol.psyced.org/) som håller reda på tidigare sett certifikat och kan varna dig om ett certifikat ändras oväntat. Det är inte användbart i företagssammanhang som beskrivs ovan men kan vara användbart på en mobil enhet för att varna dig när ditt lokala nätverk är fientligt.
Och hur är svaret W skickar tillbaka till A? Kommer G att kunna läsa det?
@se7entyse7en-nr.Precis som hur W har en privat nyckel, skapar A också en sådan nyckel i början av kommunikationen.G har ingen av dessa nycklar.
@zinking Nej, det kan du inte, offentlig / privat nyckel används bara för att skapa en sessionsnyckel och den sessionnyckeln används för att kryptera / dekryptera all trafik mellan https-klienten / servern eftersom symmetrisk kryptering är måste snabbare.
Bra artikel.Tack.Jag har en fråga: Kan "G" fånga den offentliga nyckeln från webbservern och fortsätta en session nyckelförhandling tidigare än "A", så att han kan agera som "A" före sessionnyckelförhandling.
@Jeon, den offentliga nyckeln (och certifikatinformationen) är offentlig, så vem som helst kan ta den.Men under TLS-handskakningen måste servern bevisa att den känner till den tillhörande privata nyckeln.Vid någon tidpunkt kommer klienten att kryptera en del otänkbar information med den offentliga nyckeln, och servern måste dekryptera den med sin privata nyckel för att fortsätta handskakningen.Se [Wikipedia-artikeln om TLS] (https://en.wikipedia.org/wiki/Transport_Layer_Security#TLS_handshake) för mer information.
Kan du lägga till mer information här: "förstör certifieringsmyndigheternas signatur".Så varför kan inte 'G' betjäna sin offentliga nyckel till 'A' och förfalska certifikatet så att det är korrekt signerat med sin egen privata nyckel?Så är det dubbelsignerat, en gång av `W` och en gång av` truzsted-certifikatleverantören` och `A` känner också till den offentliga nyckeln.
Hur utgör detta en säkerhetsrisk för webbapplikationer?
Ett annat fall som undergräver konceptet kan vara former av förinstallerad bloatware.Det mest framträdande fallet kan jag minnas att jag installerade "SuperFish".Även om det i slutändan bara motsvarar "administratören samarbetar", men i det här fallet omedvetet.
Observera att nyare versioner av Firefox visar 'Anslutning verifierad av en certifikatutfärdare som inte känns igen av Mozilla.' För icke-NSS-godkända certifikat, så (till skillnad från Chrome och IE) kan nuvarande COTS TLS-proxyer märkas av en Firefox-användare medbara ett klick kriminalteknisk utredning.
D.W.
2011-10-15 07:38:17 UTC
view on stackexchange narkive permalink

Förutsatt att användare inte klickar igenom certifieringsvarningar (och förutsatt att du kör en omodifierad klient) är svaret: Nej, proxyn kan inte dekryptera data .

För en detaljerad förklaring av hur HTTPS förhindrar en man-i-mitten från att dekryptera din trafik, se alla standardresurser på SSL / TLS, t.ex.

PS Certifikatet är offentliga uppgifter. Den innehåller serverns offentliga nyckel och domännamn, som inte är hemliga. Att följa certifikatet hjälper inte angriparen att dekryptera data. (Ja, ombudet kan följa certifikatet, men detta är ofarligt.)

Förutsatt att ingen rot-CA poppar och tappar kontrollen över sin privata nyckel.
Det är ett rättvist antagande att (root och delegerade) CA kommer att leverera falska certifikat till sina nationella underrättelsetjänster. Tydligen har det, förmodligen oavsiktligt, skett offentlig marknadsföring av proxyenheter som använder sådana typer av certifikat.
Egentligen [Blue Coat ProxySG] (https://www.bluecoat.com/products/proxysg) har gjort MiTM på HTTPS under lång tid nu beroende på anpassade betrodda certifikat som installerats på klienter som har åtkomst till dem, i princip låtsas vara CA utöver att vara en _caching_ proxy. Liknande gör Nokia, Opera mobile, Amazon Kindle, e.t.c., genom att installera betrodda rotcertifikat på sina klienter och sedan proxya alla förfrågningar via sina falska CA-servrar. Kort sagt, den som hävdar eller verkar cacha, komprimera eller på annat sätt optimera HTTPS-innehåll 'däremellan' gör det.
Naturligtvis kan en proxy dekryptera data - du skapar en ssl-anslutning till proxyen proxyen dekrypterar allt sedan skapar ssl-anslutning till den faktiska destinationen och vice versa på svaret: http://www.zdnet.com/article/how-the- nsa-och-din-chef-kan-fånga-och-bryta-ssl /
@markmnl Det kräver att klienter är inställda för att lita på proxys certifikat, eller att användare blindt avvisar de resulterande felmeddelandena (en bra insats, för att vara ärlig). Från artikeln du länkade: ”Om ditt företag har ställt in proxy korrekt vet du inte att något är avstängt eftersom de har ordnat att proxyns interna SSL-certifikat registreras på din maskin som ett giltigt certifikat. Om inte, får du ett popup-felmeddelande som, om du klickar på för att fortsätta, accepterar det "falska" digitala certifikatet. "
manav m-n
2014-09-17 12:33:31 UTC
view on stackexchange narkive permalink

Från Philipp C. Heckels tekniska blogg med några lätta redigeringar:

Medan man attackerar okrypterad HTTP-trafik kan man göra utan att behöva hantera X.509-certifikat och certifikatutfärdare (CA), SSL-krypterade HTTPS-anslutningar krypterar varje begäran och svar mellan klient och server från slut till slut. Och eftersom den överförda informationen är krypterad med en delad hemlighet, kan en mellanman (eller en proxy) inte dechiffrera de utbytta datapaketen. När klienten öppnar en SSL / TLS-anslutning till den säkra webbservern, verifierar den serverns identitet genom att kontrollera två villkor: Först kontrollerar den om dess certifikat har signerats av en CA som är känd för klienten. Och för det andra ser det till att serverns vanliga namn (CN, även: värdnamn) matchar det som den ansluter till. Om båda villkoren är sanna antar klienten att anslutningen är säker.

För att kunna sniffa in i anslutningen kan proxyservern fungera som certifikatutfärdare, dock inte mycket pålitlig: istället för att utfärda certifikat till faktiska personer eller organisationer genererar proxy dynamiskt certifikat till vilket värdnamn som behövs för en anslutning. Om exempelvis en klient vill ansluta till https://www.facebook.com genererar proxy ett certifikat för “www.facebook.com” och signerar det med sin egen CA. Förutsatt att klienten litar på denna CA är båda ovannämnda villkoren sanna (betrodda CA, samma CN) - vilket innebär att klienten anser att proxyservern faktiskt är ”www.facebook.com”. Figuren nedan visar begäran / svarsflödet för detta scenario. Denna mekanism kallas transparent HTTPS-proxying.

enter image description here

För att denna attack ska fungera, finns det några villkor som måste uppfyllas:

  • Proxyserver som standardgateway (HTTP och HTTPS) : För både HTTP- och HTTPS-proxyserver måste proxyservern naturligtvis kunna fånga upp IP-paketen - vilket betyder att den måste vara någonstans längs väg för paketvägen. Det enklaste sättet att uppnå detta är att ändra standardgatewayen i klientenheten till proxyserveradressen.
  • Trusted Proxy CA (endast HTTPS) : För att HTTPS-proxy ska fungera måste klienten känna till (och lita på!) proxy-CA, dvs CA-nyckelfilen måste läggas till i klientens förtroendebutik.

enter image description here

Om du är intresserad av att transparent sniffa vanliga SSL-uttag kan du prova SSLsplit , en transparent TLS / SSL-man-i-mitten-proxy. Det finns många sätt att attackera SSL, men du behöver inte falska SSL-certifikat, en oseriös certifieringsmyndighet (CA) eller variationer på säkerhetsexpert Moxie Marlinspikes man-in-the-middle SSL-attacker. Varför gå till alla problem när du bara kan köpa en SSL-avlyssnings-proxy, till exempel Blue Coat Systems ProxySG eller deras nyligen förvärvade Netronome SSL-apparat för att göra jobbet åt dig?


Från Steven J. Vaughan-Nichols på ZDNet (utdrag):

Blue Coat, det största namnet i SSL-avlyssningsbranschen, är långt ifrån den enda erbjuder SSL-avlyssning och bryter i en låda. Fram till nyligen skulle Microsoft till exempel sälja ett program, Forefront Threat Management Gateway 2010, som också skulle kunna göra jobbet åt dig. Med ett SSL-avlyssningsproxyprogram eller en enhet på plats är det här som verkligen händer:

enter image description here

Om ditt företag har ställt in proxy korrekt vet du inte att något är avstängt eftersom de har ordnat att proxyns interna SSL-certifikat registreras på din maskin som ett giltigt certifikat. Om inte får du ett popup-felmeddelande som, om du klickar på för att fortsätta, accepterar det "falska" digitala certifikatet. I båda fallen får du en säker anslutning till proxyen, den får en säker anslutning till utsidan - och allt som skickas via proxyen kan läsas i klartext. Oj.

Är det möjligt att berätta originalt Facebook-certifikat från genererat av man-i-mitten?
@manav är du säker på att du säger till facebbok.com och visar var som helst certifikat fungerar ??
@SudhanshuGaur tror du verkligen att ovanstående information är tillräcklig för att hacka facebbok.com !!Informationen är väldigt grundläggande plus gamla och dagens organisatoriska säkerhetssystem är mil framåt i både HW och SW en / dekryptering
Rory McCune
2014-03-26 13:52:25 UTC
view on stackexchange narkive permalink

Beroende på konfigurationen för det nätverk som du är i kan det vara möjligt för administratörer att se innehållet i HTTPS-anslutningar (och eventuellt VPN).

Det är uppenbarligen möjligt att fånga upp trafik i nätverket, men det vanliga problemet är att de inte kan utfärda giltiga certifikat för alla webbplatser som du besöker, så du skulle se många certifikatvarningar varje gång du går in på en HTTPS-webbplats om de försöker dekryptera trafiken för att titta på den.

Om du använder en maskin från företaget kan de installera en ny certifikatmyndighet och sedan använda den för att skapa SSL-certifikat för webbplatser som du besöker, så det skulle inte visas som ett problem.

Med VPN-sidan av saker kan det vara mer komplicerat om VPN inte använder SSL, men samma teori gäller. Om du går åt Internet från en maskin som ägs av någon annan i ett nätverk som de styr, kan de troligen få åtkomst till allt innehåll du anger.

Om du vill undvika den här typen av problem skulle jag använda en enhet som du äger / kontrollerar för att komma åt Internet, på det sättet bör du bli varnad om någon SSL-avlyssning inträffar.

Bill McGonigle
2014-03-30 08:43:06 UTC
view on stackexchange narkive permalink

Höger, företagsnätverksadministratörer implementerar en man-i-mitten-attack mot TLS-klienten med sin egen CA så att de kan se vad som lämnar deras nätverk. De kommer förmodligen att ha en enhet som skapar ett certifikat i farten som är giltigt för gmail.com när du besöker gmail.com. Anledningen till att de gör det här är inte för att spela Dr. Evil, det är så att de kan skydda sig mot att affärshemligheter släpps ut ur sin byggnad över sin internetanslutning. Allvarligt, gör inte din privata bankverksamhet på en arbetsdator.

Om du använder en programvaruprodukt som inte använder systemcertifikatlagret (säg en OpenVPN-instans), då kan de inte fånga upp och avkoda din trafik eftersom du inte litar på deras CA. Du kan uppnå samma resultat med exempelvis en bärbar Firefox-app. Och i de flesta webbläsare kan du kontrollera informationen om din säkra anslutning och se vem CA är, för att vara säker på vem som lyssnar eller inte.

Erik van Velzen
2017-03-10 05:16:09 UTC
view on stackexchange narkive permalink

Proxyen kan blockera https och endast tillåta http från webbläsaren. Då kan den initiera sin egen https-anslutning för att skicka förfrågningarna till servern.

De flesta användare kommer inte att märka det.

HSTS ska stoppa detta men det används inte i stor utsträckning.

Danny Lieberman
2015-09-01 14:46:51 UTC
view on stackexchange narkive permalink

SSL-avslutning eller SSL-proxyprodukter som Bluecoat måste finnas i ditt nätverk och med tanke på kostnaden, installationsprocedurerna och den normala säkerhetspolicy som alla organisationer har som installerar dessa produkter - hoten från en skadlig angripare som använder en kommersiell SSL termineringsprodukt är nästan noll. OTOH - en betrodd insider med tillgång till NOC (nätverksoperationscenter) kan faktiskt övervaka SSL-avslutad trafik och avslöja känslig information.

Detta är ett vanligt problem (motiverat eller inte) för företag som implementerar DLP-system .

HAR SÄTT ALLT ATT - det finns en annan attackvektor som är vanlig i hemmabankutrymmet som inte kräver en nätverksproxy och är piggback / shim-attacker i webbläsaren - eftersom DOM har åtkomst för att rensa texttrafik innan den träffar SSL-röret - detta är en bekväm attackvektor och installeras ofta via ett webbläsartillägg. Det finns en utmärkt Stackexchange-artikel om shims - Kan en shim (aka polyfill) installeras i IE, FF eller Chrome utan användarkännedom, och kan den läsa lösenord som användaren angett på en inloggningssida?



Denna fråga och svar översattes automatiskt från det engelska språket.Det ursprungliga innehållet finns tillgängligt på stackexchange, vilket vi tackar för cc by-sa 3.0-licensen som det distribueras under.
Loading...