In che modo il mio datore di lavoro può essere un uomo-in-the-middle quando mi collego a Gmail? [duplicare]

93

Sto cercando di capire SSL / TLS. Quello che segue è una descrizione di uno scenario e alcune ipotesi che spero tu possa confermare o smentire.

Domanda

In che modo il mio datore di lavoro può essere un uomo-in-mezzo quando mi collego a Gmail? Può assolutamente?

Cioè: è possibile per il datore di lavoro decrittografare la connessione tra il browser sul mio computer di lavoro e il server proxy web del datore di lavoro, leggere i dati in testo semplice ad esempio per le scansioni di virus, ricodificare i dati e inviare a Google senza che me ne accorga?

Browser sul computer del dipendente < - > server proxy web del datore di lavoro < - > Server Gmail

Il datore di lavoro può installare qualsiasi certificato autofirmato sui computer dell'azienda. È la sua infrastruttura, dopotutto.

Scenario: cosa sto facendo

  1. Con un browser, apri link (notifica http, non https)
  2. Vengo reindirizzato alla pagina di accesso di Google: collegamento
  3. Inserisco nome utente e password
  4. Vengo reindirizzato a Gmail: link
  5. Clicco sull'icona di blocco SSL nel browser ...

... e vedi quanto segue:

  • Rilasciato a: mail.google.com
  • Rilasciato da: "nome dell'azienda datore di lavoro"
  • Valido dal: 01.01.2014 - 31.12.2014
  • Percorso di certificazione: "nome azienda del datore di lavoro" - > "nome del server proxy web del datore di lavoro" - > mail.google.com

Assunzione

Ora presumo che l'icona di blocco SSL nel browser diventi verde, ma in realtà non ho una connessione sicura dal browser al server Gmail.

È corretto?

Fonti

Ho letto queste fonti ma continuo a non capirlo:

Riepilogo

  1. È possibile che qualcuno sia un vero man-in-the-middle se qualcuno controlla l'infrastruttura IT? Se sì, con quale precisione?
  2. Il mio login e password sono letti in chiaro sul server proxy web del datore di lavoro?
  3. Che cosa dovrei controllare nel browser per verificare che disponga di una connessione protetta dal browser fino al server Gmail?

EDIT, 18.07.2014

  • La privacy non è una preoccupazione. Sono solo curioso di sapere come funziona TLS in questo particolare scenario. In altri casi, il datore di lavoro deve intercettare la comunicazione (keylogger, ecc.) In questo caso particolare.
  • Le questioni legali non sono una preoccupazione. I dipendenti possono utilizzare le apparecchiature informatiche aziendali per la comunicazione privata entro determinati limiti. D'altra parte, il datore di lavoro si riserva il diritto di effettuare il monitoraggio senza violare la privacy.
posta Lernkurve 17.07.2014 - 10:52
fonte

5 risposte

79

Hai assolutamente ragione nelle tue ipotesi.

Se si utilizza un computer di proprietà e gestito dal proprio datore di lavoro, ha effettivamente il pieno controllo sulle comunicazioni. In base a ciò che hai fornito, hanno installato un certificato CA radice che consente loro di firmare un certificato per Google.

Questo non è raro in azienda, in quanto consente l'ispezione del traffico crittografato per perdite di dati o virus.

Per rispondere alle tue tre domande:

  1. Sì, è molto probabile e probabile. Quanto sono attivi nel monitorare queste cose è sconosciuto.

  2. La tua password può essere letta in chiaro dal tuo datore di lavoro. Non so cosa intendi sul server web.

  3. Puoi controllare il certificato per vedere chi ha firmato, come hai già fatto. Puoi anche confrontare l'impronta digitale con quella di Google (controllata da una terza parte esterna al controllo aziendale)

Modifica:

How exactly is my employer able to unencrypt that? Could you perhaps elaborate on that a bit?

Stai utilizzando il certificato errato per connetterti a un dispositivo intermedio come il firewall, quindi il dispositivo si connetterà a Google utilizzando il certificato corretto. La comunicazione viene crittografata dal tuo cliente al MITM, decrittografata e quindi nuovamente crittografata mentre si reca su Google.

    
risposta data 17.07.2014 - 11:39
fonte
20

1 e 2 rispondono a David Houde

3:

Non c'è in realtà alcun modo per dire con certezza se tu stai parlando in modo sicuro a Gmail quando usi la macchina della tua azienda (a parte il controllo della macchina sul metallo). Anche se non hanno modificato il certificato, potrebbero semplicemente modificare il browser Web per inoltrare tutto il traffico decrittografato da qualche parte. Ci sono un milione di altre cose che potrebbero fare. Accade così che in questo caso, hanno installato il proprio certificato di origine che consente di vedere cosa hanno fatto.

    
risposta data 17.07.2014 - 16:50
fonte
9

Non vedo nessuno menzionarlo, quindi permettimi di indicare qualcosa. Forse ho torto ma il pinning certificato implementato in Google Chrome (c'è anche un plugin per Firefox) impedisce lo spoofing del certificato?

relative a domande e risposte

correlate

Naturalmente è possibile annusare il traffico di qualcuno se si controlla l'infrastruttura. Ma questo è possibile in una certa misura e secondo me dipende da quanto sono limitate le azioni degli utenti e qual è la conoscenza dell'utente. Google Chrome è il browser che può essere installato all'interno del profilo utente e penso che non richieda privilegi amministrativi. È inoltre possibile verificare il checksum del pacchetto di installazione per verificare che non sia stato modificato al volo. Poiché Google Chrome utilizza il blocco dei certificati indipendentemente dal CERT store del sistema operativo - è ancora vulnerabile a MITM ?

Non vedo alcun modo per impedire agli utenti di utilizzare la versione portatile di VirtualBox con il sistema operativo client che avrà un sacco di strumenti orientati alla privacy che aumenteranno significativamente le possibilità di proteggere la comunicazione con qualsiasi sito web / dominio.

Per favore, sentiti libero di correggermi se ho torto in uno dei precedenti.

----------

Modifica.

Ok. Così ho trovato una soluzione per verificare se il certificato è stato falsificato . Apparentemente non funziona perfettamente con google e apple ma potrebbe essere quello che stai cercando in caso di altri domini.

Al punto:

Esiste un collegamento sul sito che controlla l'impronta digitale del certificato remoto per te . Puoi quindi confrontarlo con quello che vedi nel tuo browser per verificare se corrispondono. Se non corrispondono - questo certificato è falsificato ( Exception is mentioned in the section *What can go wrong with this test?* on the mentioned page. ).

Ecco la prova che funziona. Cert del browser:

Improntadigitaledallaverificadigrc.com:

Penso che dal momento che stai citando qualcosa sulla falsariga della sorveglianza di massa, lo spoofing del certificato sarà anche su più siti https. In tal caso, se uno sarà confermato per essere falsificato, penso che tu possa presumere che siano tutti.

Modifica successiva.

Solo per il piacere di completare la risposta. Poiché potrebbe essere il caso in cui alcuni stati o organizzazioni modificano completamente il browser e il browser non può essere considerato attendibile per confermare la validità del certificato. Ho trovato una funzione di PowerShell che esegue una connessione SSL all'indirizzo specificato e visualizza alcune informazioni utili sul certificato.

Ecco il codice (alias è mio):

function Test-WebServerSSL {
[CmdletBinding()]
    param(
        [Parameter(Mandatory = $true, ValueFromPipeline = $true, Position = 0)]
        [string]$URL,
        [Parameter(Position = 1)]
        [ValidateRange(1,65535)]
        [int]$Port = 443,
        [Parameter(Position = 2)]
        [Net.WebProxy]$Proxy,
        [Parameter(Position = 3)]
        [int]$Timeout = 15000,
        [switch]$UseUserContext
    )
Add-Type @"
using System;
using System.Net;
using System.Security.Cryptography.X509Certificates;
namespace PKI {
    namespace Web {
        public class WebSSL {
            public Uri OriginalURi;
            public Uri ReturnedURi;
            public X509Certificate2 Certificate;
            //public X500DistinguishedName Issuer;
            //public X500DistinguishedName Subject;
            public string Issuer;
            public string Subject;
            public string[] SubjectAlternativeNames;
            public bool CertificateIsValid;
            //public X509ChainStatus[] ErrorInformation;
            public string[] ErrorInformation;
            public HttpWebResponse Response;
        }
    }
}
"@
    $ConnectString = "https://$url':$port"
    $WebRequest = [Net.WebRequest]::Create($ConnectString)
    $WebRequest.Proxy = $Proxy
    $WebRequest.Credentials = $null
    $WebRequest.Timeout = $Timeout
    $WebRequest.AllowAutoRedirect = $true
    [Net.ServicePointManager]::ServerCertificateValidationCallback = {$true}
    try {$Response = $WebRequest.GetResponse()}
    catch {}
    if ($WebRequest.ServicePoint.Certificate -ne $null) {
        $Cert = [Security.Cryptography.X509Certificates.X509Certificate2]$WebRequest.ServicePoint.Certificate.Handle
        try {$SAN = ($Cert.Extensions | Where-Object {$_.Oid.Value -eq "2.5.29.17"}).Format(0) -split ", "}
        catch {$SAN = $null}
        $chain = New-Object Security.Cryptography.X509Certificates.X509Chain -ArgumentList (!$UseUserContext)
        [void]$chain.ChainPolicy.ApplicationPolicy.Add("1.3.6.1.5.5.7.3.1")
        $Status = $chain.Build($Cert)
        New-Object PKI.Web.WebSSL -Property @{
            OriginalUri = $ConnectString;
            ReturnedUri = $Response.ResponseUri;
            Certificate = $WebRequest.ServicePoint.Certificate;
            Issuer = $WebRequest.ServicePoint.Certificate.Issuer;
            Subject = $WebRequest.ServicePoint.Certificate.Subject;
            SubjectAlternativeNames = $SAN;
            CertificateIsValid = $Status;
            Response = $Response;
            ErrorInformation = $chain.ChainStatus | ForEach-Object {$_.Status}
        }
        $chain.Reset()
        [Net.ServicePointManager]::ServerCertificateValidationCallback = $null
    } else {
        Write-Error $Error[0]
    }
}

Set-Alias TSSL Test-WebServerSSL

Puoi incollarlo nella console di PowerShell - questo registrerà la funzione per l'ora della sessione corrente (finché non chiuderai la finestra della console di PowerShell in modo da non lasciare traccia).

Dopodiché puoi digitare nella stessa finestra:

TSSL www.ipko.pl

L'output sarà simile a questo:

Hotrovatouncodicefunzione qui

    
risposta data 18.07.2014 - 13:22
fonte
7

Come altri hanno sottolineato: Sì, è possibile e si sta facendo in questo caso.

Cercando di dettagliare ulteriormente i passaggi coinvolti in questo MITM:

Sai che il certificato 028CA85E6765 ... appartiene a gmail perché una CA (GeoTrust, Verisign ...) ha affermato che lo fa. Il tuo SO / browser contiene un elenco di CA che si fidano di fare la cosa giusta (non mentire, essere adeguatamente protetti ...).

  • Il tuo datore di lavoro ha installato sul tuo computer la propria CA.
  • Quando ti connetti a accounts.google.com con TLS, il proxy emette automaticamente un nuovo certificato per accounts.google.com firmato da tale CA (se non ne ha già uno).
  • La tua connessione al proxy viene eseguita utilizzando il certificato falso accounts.google.com . Il proxy si confonde con il contenuto che desidera, quindi si connette al accounts.google.com reale (utilizzando il certificato di Google) e invia avanti e indietro i contenuti che tu e gmail vi date reciprocamente.
  • Poiché il tuo computer si fida della CA proxy, ritiene che il certificato di accounts.google.com emesso dal tuo datore di lavoro sia legittimo¹, quindi perché non ci sono avvisi.

¹ La maggior parte delle persone considererebbe che non è legittimo perché non è il certificato di Google, ma è il certificato previsto all'interno di questa azienda. I dipendenti potrebbero non essere d'accordo, tuttavia. : -)

    
risposta data 18.07.2014 - 23:05
fonte
6

Per aggiungere ad altre risposte, l'unico modo per garantire, con una ragionevole certezza, di avere una connessione sicura dal tuo browser al server web, è utilizzare la tua attrezzatura. L'attrezzatura e la rete di proprietà del datore di lavoro non sono sotto il tuo controllo e potrebbe essere difficile determinare cosa è incluso nel loro sistema operativo e applicazioni standard. Anche se è illegale nel paese in cui ti trovi, se la privacy è un problema, probabilmente dovresti usare il tuo telefono cellulare o il tuo laptop personale.

    
risposta data 18.07.2014 - 07:20
fonte

Leggi altre domande sui tag