Qual è la differenza tra SSH e IPsec?

14

Sembra che ci sia una crittografia simile in entrambi. Entrambi utilizzano asimmetrici (RSA, curve ellittiche, ecc.) Per lo scambio iniziale di chiavi, quindi passano a un protocollo simmetrico (AES, Blowfish, ecc.). Mi chiedo se qualcuno qui potrebbe avere un momento per spiegare la differenza tra il 2 e il modo in cui apparirebbero in modo diverso all'utente (velocità, applicazioni in cui sono presenti, ecc.).

    
posta stackuser 13.11.2013 - 23:02
fonte

3 risposte

20

@ La risposta di Graham-hill è corretta in generale, ma breve e pedanticamente scorretta, quindi mi dilungherò su di essa.

SSH è a livello di applicazione - puoi considerarlo come SSH / TCP / IP o SSH-over-TCP-over-IP. TCP è il livello di trasporto in questo mix, IP è il livello Internet. Altri protocolli "Applicazione" includono SMTP, Telnet, FTP, HTTP / HTTPS ...

IPSec viene implementato utilizzando due Trasporti separati - ESP ( Encapsulating Security Payload per la crittografia) e AH ( Intestazione di autenticazione per l'autenticazione e l'integrità). Quindi, diciamo che una connessione Telnet è stata fatta su IPSec. In genere puoi immaginarlo come Telnet / TCP / ESP / AH / IP.

(Solo per rendere le cose interessanti, IPSec ha due modalità: Transport (descritta sopra) e Tunnel.In modalità tunnel, il livello IP è incapsulato in IPSec e quindi trasmesso su (di solito) un altro livello IP. con Telnet / TCP / IP / ESP / AH / IP!)

Quindi - chiedi "spiega la differenza tra i due" -

SSH è un'applicazione e IPSec è un trasporto. Quindi SSH trasporta "un" tipo di traffico e IPSec può trasportare "qualsiasi" tipo di traffico TCP o UDP. * Ciò ha implicazioni descritte di seguito:

Chiedi "come apparirebbero in modo diverso all'utente" -

Poiché IPSec è un livello di trasporto, dovrebbe essere invisibile all'utente, proprio come il livello TCP / IP è invisibile all'utente di un browser web. Infatti, se si utilizza IPSec, non è visibile al writer del browser Web e del server Web - non devono preoccuparsi di configurare o non configurare IPSec; questo è il lavoro dell'amministratore di sistema. Confrontalo con HTTPS, dove il server ha bisogno di una chiave privata e certificato abilitato correttamente, librerie SSL compilate e codice scritto; il browser client ha librerie SSL compilate e scritte in codice e ha la chiave pubblica CA appropriata o urla a gran voce (intromettendosi sull'applicazione) se non è presente.

Quando IPSec è impostato, poiché agisce sul livello di trasporto, può supportare più applicazioni senza problemi. Dopo aver configurato IPSec tra due sistemi, si tratta di una differenza minima tra il funzionamento per 1 applicazione o 50 applicazioni. Allo stesso modo, IPSec rende un semplice wrapper per i protocolli che utilizzano più connessioni come FTP (controllo e dati possono essere connessioni separate) o H.323 (non solo connessioni multiple, ma più trasporti (TCP e UDP)!).

Dal punto di vista dell'amministratore, tuttavia, IPSec è più pesante di SSH o SSL. Richiede più setup in quanto funziona a livello di sistema piuttosto che a livello di applicazione. Ogni relazione (da host a host, da host a net o da net-to-net) deve essere impostata individualmente. Dall'altra parte, SSH e SSL sono generalmente opportunistici - utilizzando un PKI (CA) o un modello di fiduciario, rendono ragionevolmente facile fidarsi dell'altra estremità della connessione senza molta configurazione prima di tempo. IPSec può essere opportunistico, ma generalmente non viene utilizzato in questo modo, in parte perché la configurazione di una connessione IPSec richiede spesso tentativi ed errori. L'interoperabilità tra diversi fornitori (Linux, Checkpoint, Cisco, Juniper, Etc) non è perfetta; la configurazione utilizzata per rendere Cisco < - > Checkpoint è probabile che sia diversa dalla configurazione utilizzata per rendere Cisco < - > Juniper. A differenza di SSH, il server OpenSSH non si preoccupa se stai usando Putty, OpenSSH (* nix o Cygwin) SSH o Tectia SSH.

Per quanto riguarda la velocità - non ho numeri buoni da darti e parte della risposta è "dipende" - se IPSec è coinvolto, allora l'elaborazione IPSec effettiva verrà probabilmente scaricata su un firewall o VPN Concentrator con hardware veloce dedicato, rendendolo più veloce di SSH, che è praticamente sempre criptato usando la stessa CPU general-purpose che esegue anche il sistema operativo del server e le applicazioni. Quindi non sono proprio mele-mele; Scommetto che potresti trovare casi d'uso in cui una delle due opzioni è più veloce.

* Questo non è strict true. SSH supporta un'applicazione terminale, un'applicazione di copia di file / ftp e un'applicazione di tunneling TCP. Ma in realtà è solo un'applicazione molto ricca , non un trasporto - il suo tunneling non è una sostituzione di IP Transport.

    
risposta data 14.11.2013 - 06:33
fonte
2

SSH è al livello di applicazione di TCP / IP mentre IPSEC è al livello di trasporto.

    
risposta data 14.11.2013 - 00:22
fonte
0

Ci può essere una grande differenza quando si eseguono connessioni TCP su un tunnel basato su TCP come SSH rispetto a un sistema di consegna a pacchetto non garantito come IPsec dove c'è una significativa perdita di pacchetti. Vedi link per ulteriori dettagli e un esempio reale.

Nota a margine - Ho eseguito TCP su SSH per alcuni decenni ora perché è comodo e non ho riscontrato il problema, passerò a una soluzione che gestisce meglio la perdita di pacchetti ma è più difficile impostare la soluzione solo se necessario.

    
risposta data 29.08.2017 - 12:02
fonte

Leggi altre domande sui tag