Qual è la differenza di sicurezza tra una connessione VPN e una connessione SSL?

62

Vorrei progettare un'applicazione client-server in cui il server è posizionato su Internet. Presumo che potrei configurare la connessione client-server usando VPN (sta usando IPSec?) O usando una connessione SSL (probabilmente https). Quali sono le differenze tra VPN / IPsec e SSL / https per proteggere una connessione server client su Internet?

    
posta Jonas 06.01.2011 - 14:12
fonte

8 risposte

74

VPN significa "Rete privata virtuale". È un concetto generico che designa una parte di una rete più grande (ad esempio Internet in generale) che è logicamente isolata dalla rete più grande attraverso mezzi non hardware (è ciò che significa "virtuale"): non è che stiamo usando distinti cavi e interruttori; piuttosto, l'isolamento viene eseguito tramite l'uso della crittografia.

SSL (ora noto come TLS) è una tecnologia che accetta un mezzo di trasporto bidirezionale e fornisce un mezzo bidirezionale protetto . Richiede che il mezzo di trasporto sottostante sia "per lo più affidabile" (quando non viene attaccato, i byte dei dati vengono trasferiti nell'ordine dovuto, senza perdite e senza ripetizioni). SSL offre riservatezza, integrità (le alterazioni attive sono rilevate in modo affidabile) e alcune autenticazioni (di solito l'autenticazione del server, possibilmente l'autenticazione reciproca client-server se si usano certificati su entrambi i lati).

Quindi VPN e SSL non sono dello stesso livello. Un'implementazione di VPN richiede un po 'di crittografia a un certo punto. Alcune implementazioni VPN utilizzano effettivamente SSL, risultando in un sistema a più livelli: la VPN trasferisce pacchetti IP (della rete virtuale) serializzandoli su una connessione SSL, che a sua volta utilizza TCP come mezzo di trasporto, che è costruito su pacchetti IP (sul rete fisica non protetta). IPsec è un'altra tecnologia che è più profondamente integrata nei pacchetti, che sopprime alcuni di questi livelli, ed è quindi un po 'più efficiente (meno overhead della larghezza di banda). D'altra parte, IPsec deve essere gestito abbastanza in profondità all'interno del codice di rete del sistema operativo, mentre una VPN basata su SSL ha solo bisogno di un modo per dirottare il traffico in entrata e in uscita; il resto può essere disattivato nel software a livello utente.

Come ho capito la tua domanda, hai un'applicazione in cui alcune macchine devono comunicare su Internet. Hai alcuni requisiti di sicurezza e stai pensando di utilizzare SSL (su TCP su IP) o possibilmente HTTPS (che è HTTP-over-SSL-over-TCP-over-IP) o impostare una VPN tra client e server e usando il TCP "normale" in quella rete privata (il punto della VPN è che ti dà una rete sicura dove non devi più preoccuparti della riservatezza). Con SSL, il codice di connessione deve essere consapevole della sicurezza; dal punto di vista della programmazione, non si apre una connessione SSL come se fosse "solo un socket". Alcune librerie lo rendono relativamente semplice, ma ancora, è necessario gestire la sicurezza a livello di applicazione. Una VPN, d'altra parte, è configurata a livello di sistema operativo, quindi la sicurezza non è tra l'applicazione sul client e l'applicazione sul server, ma tra il sistema operativo client e il sistema operativo del server: non è la stessa sicurezza modello, anche se in molte situazioni la differenza risulta non pertinente.

In pratica, una VPN significa che è necessario un passo di configurazione sul sistema operativo del client. È abbastanza invasivo. L'utilizzo di due applicazioni basate su VPN sullo stesso client può essere problematico (per quanto riguarda la sicurezza, poiché il client funge da ponte che collega tra loro due VPN che dovrebbero essere nominalmente isolate l'una dall'altra, e in pratica anche a causa di collisioni nell'indirizzo spazio). Se il cliente è un cliente, averlo configurato correttamente sembra un compito impossibile. Tuttavia , una VPN significa che le applicazioni non devono essere a conoscenza della sicurezza, quindi questo rende molto più facile integrare il software di terze parti all'interno della tua applicazione.

    
risposta data 06.01.2011 - 15:12
fonte
15

Entrambi hanno problemi di sicurezza se non sono configurati correttamente. Ma prima possiamo iniziare con alcune definizioni:

Cisco ha una buona definizione di VPN:

VPN can take several forms. A VPN can be between two end systems, or it can be between two or more networks. A VPN can be built using tunnels or encryption (at essentially any layer of the protocol stack), or both, or alternatively constructed using MPLS or one of the “virtual router” methods. A VPN can consist of networks connected to a service provider’s network by leased lines, Frame Relay, or ATM, or a VPN can consist of dialup subscribers connecting to centralized services or other dialup subscribers. http://www.cisco.com/web/about/ac123/ac147/archived_issues/ipj_1-2/what_is_a_vpn.html

Come per SSL:

SSL (Secure Sockets Layer), also known as TLS (Transport Layer Security), is a protocol that allows two programs to communicate with each other in a secure way. Like TCP/IP, SSL allows programs to create "sockets," endpoints for communication, and make connections between those sockets. But SSL, which is built on top of TCP, adds the additional capability of encryption. http://www.boutell.com/newfaq/definitions/ssl.html

In relazione alla tua domanda, la differenza principale è che SSL utilizza spesso il browser per crittografare i dati tra l'utente finale e il server ed è comunemente utilizzato per aree di siti Web che richiedono la protezione della riservatezza e dell'integrità dei dati .

VPN / IPSEC richiede un software client VPN specifico ed è generalmente per fornire accesso remoto a sistemi o reti. Inoltre, esiste l'opzione per andare su L2TP o L2F anziché su IPSEC.

Tuttavia, le VPN SSL stanno diventando sempre più diffuse come mezzo per fornire accesso a reti / sistemi tramite il browser web. Questo approccio ha molti vantaggi in quanto utilizza il browser Web comune per abilitare la connessione sicura. La granularità di questo approccio è anche un buon modo per controllare gli accessi a specifiche applicazioni.

Per quanto riguarda i problemi di sicurezza -

SSL -

  • I deboli cyphers di sicurezza potrebbero portare alla capacità di condurre attacchi man-in-the-middle style contro l'utente finale, con conseguente perdita di riservatezza / integrità dei dati.

    • Un mix mal configurato di contenuti HTTP / HTTPS potrebbe anche portare a una perdita di riservatezza / integrità dei dati.

IPSEC -

  • Introduzione di una potenziale condizione DoS. Un esempio di questo sarebbe link

  • Perdita di problemi di riservatezza come un problema Microsoft 2008 che potrebbe far sì che i sistemi ignorino i criteri IPsec e trasmettano il traffico di rete in testo non crittografato. link

risposta data 06.01.2011 - 14:48
fonte
6

Alcune ottime risposte qui, non ripeterò ciò che è stato già detto.
Tuttavia, un punto che ho trovato mancante - SSL è molto più semplice da configurare su una base ad-hoc, specialmente se non si ha un requisito per i certificati client.
IPsec, d'altra parte, richiede sempre certificati client (presupponendo un'impostazione normale e tipica) e ci sono anche altre difficoltà nella configurazione iniziale e nella distribuzione.

Come tale, IPsec di solito è più adatto per una rete controllata, e meno così per la selvaggia e sconosciuta Internet. Vedi altre informazioni su questa altra domanda: " fatti IPsec (Internet Protocol Security) ".

Quindi, tornando alla tua vera domanda, in quasi tutti i casi in cui stai mettendo il server su Internet, non ti aspetteresti che i tuoi utenti si connettano usando una VPN. (Le eccezioni esistono, ovviamente.)
Invece, imposta semplicemente certificati SSL sul tuo server, punta i tuoi clienti a questo e sei a posto (assicurati solo di convalidare esplicitamente il certificato, a seconda della lingua / tecnologia / libreria che stai usando ... )

    
risposta data 06.01.2011 - 21:09
fonte
5

Stai guardando queste opzioni per creare una VPN sicura? In genere, SSL è più facile da implementare e meglio supportato per un tipo di VPN da desktop a rete, ad esempio quando un dipendente a casa si connette alla rete aziendale. Se stai eseguendo una distribuzione più complessa, come una VPN crittografata da rete a rete (ad es. Tra due organizzazioni diverse), IPSEC fornirà un controllo migliore e più opzioni di personalizzazione.

C'è un discreto white paper sull'argomento di Juniper Reti, anche se potrebbe essere indirizzato ai punti di forza dei loro prodotti.

    
risposta data 24.01.2011 - 19:27
fonte
2

Questa potrebbe essere una risposta molto lunga, ma proverò quella breve.

Quando usi https, il tuo browser (funge da client SSL) crittograferà solo questa connessione al server web.

Quando si utilizza la VPN, è necessario un client speciale e si crea un tunnel tra il client e il server. Quindi puoi configurare il traffico che passa attraverso il tunnel. Questo può essere tutto o solo il tuo traffico http.

Quando si desidera configurare solo un'applicazione client / server in grado di comunicare con http, la soluzione più semplice dovrebbe essere il traffico https, quando deve essere crittografato. È molto più complicato configurare una VPN e mantenerla.

    
risposta data 06.01.2011 - 14:35
fonte
2

Dipende dal modello della tua minaccia, dalla natura del protocollo del client server che hai bisogno e dai tuoi clienti.

Questo è inteso per utenti non sofisticati? Quindi usa SSL - a questo punto la complessità della VPN semplicemente spegnerà molti potenziali utenti.

Vuoi distribuire il client come app per browser (perahps con javascript)? Poi di nuovo https / ssl sembra la strada da percorrere.

Il server ha mai bisogno di comunicare asincronamente al client qualcosa? Quindi HTTPS potrebbe non essere quello che vuoi (anche se può essere fatto per farlo).

Quanto è grande il rischio di phishing? Se sarebbe facile per gli hacker attirare gente come un MITM, SSL è probabilmente migliore dal momento che autentica ogni server per il client. Una VPN tipica, una volta impostata, non aiuta l'utente a evitare un utente malintenzionato che è entrato in altri host sulla VPN. Questo probabilmente non sarebbe un rischio enorme, ma dipende ancora da quello che stai facendo.

Se stai distribuendo questo nel cloud (sia client che server), allora potresti avere una VPN quasi gratis che potrebbe affrontare alcune minacce molto casuali.

    
risposta data 06.01.2011 - 18:12
fonte
2

Bene, la differenza è un po 'come la differenza tra un cerchio e un quadrato (entrambi sono forme, ma differiscono notevolmente). Entrambi proteggono le comunicazioni, ma lo fanno a diversi livelli e in modi diversi. IPSEC è crittografia e autorizzazione wireline mentre SSL è specifico dell'applicazione.

IPSEC ha il controllo di accesso mentre SSL non lo fa.

Puoi essere più specifico con quello che stai cercando di capire?

    
risposta data 24.01.2011 - 19:07
fonte
0

Sono lontano da un esperto di sicurezza, ma penso che la differenza più importante tra i due non sia nelle altre risposte.

Per VPN la comunicazione va in questo modo:

HTTP client <-[raw]-> VPN client
  <-[encrypted]-> 
VPN server <-[raw]-> HTTP server

Per HTTPs va in questo modo:

HTTP client
  <-[encrypted]-> 
HTTP server

Quindi tramite VPN i dati non protetti possono viaggiare sulla rete locale dei client e sulla rete locale dei server. Se non ti fidi di queste reti interamente, allora è una saggia idea usare HTTPs. Si tenga presente che la coppia VPN e HTTP client-client e server-server non sono necessariamente su computer identici, ad es. i router possono essere configurati per essere server o client VPN.

Dato che queste tecnologie funzionano su un livello diverso, non si escludono a vicenda, quindi puoi usarle entrambe se vuoi un altro livello di protezione e non ti preoccupare del calo delle prestazioni che ne deriva o puoi semplicemente utilizzare quello di loro, che meglio si adatta alle tue esigenze. Per quanto ne so, entrambe le tecnologie sono considerate sicure se sono configurate correttamente.

    
risposta data 18.12.2017 - 21:46
fonte

Leggi altre domande sui tag