Introducing G2.ai, the future of software buying.Try now

Che cos'è SSH? Chiave per migliorare la sicurezza dell'accesso remoto

Novembre 8, 2024
da Washija Kazim

In un mondo digitale sempre più incentrato sui dati, la sicurezza non può essere compromessa.

L'accesso remoto continua a essere un salvatore per le operazioni IT nel panorama post-pandemico. Tuttavia, nonostante i suoi numerosi vantaggi, la tecnologia non è priva di sfide. La sfida più grande è l'esposizione agli attacchi informatici quando si interagisce con i sistemi su reti non sicure. Secure shell (SSH) è stato un punto di svolta nel superare questo problema.

Il software emulatore di terminale viene fornito con il protocollo di trasferimento file SSH automatico (SFTP) e assiste gli utenti con l'accesso sicuro ai file e la gestione remota dei file.

Sebbene SSH sia stato sviluppato per sistemi operativi simili a Unix, come Linux e macOS, funziona anche su Windows. È sufficiente un client SSH come PuTTy per aprire connessioni SSH sul proprio sistema.

Come funziona SSH?

Prima di SSH, non esisteva un modo sicuro per connettere i computer da remoto.

Supponiamo che tu abbia un documento riservato da condividere con il tuo collega. Quando lo passi attraverso la lunga catena di contatti che ti collega, c'è il rischio che chiunque possa leggere il contenuto all'interno. L'unico modo per evitare questa violazione della privacy è se quei documenti sono bloccati con una chiave unica a cui solo il tuo collega può accedere.

I 3 livelli del protocollo SSH:

  • Livello di trasporto: Protegge il contatto tra server e client, fornisce crittografia dei dati e stabilisce l'integrità dei dati.
  • Livello di autenticazione: Esegue l'autenticazione del client per il server, confermando l'identità dell'agente operativo.
  • Livello di connessione: Multiplexa il tunnel SSH in canali logici dopo l'autenticazione.

Il protocollo secure shell opera su un modello client-server e utilizza la crittografia a chiave pubblica per verificare il client. Fornisce un mezzo crittografato per scambiare informazioni, indipendentemente dall'infrastruttura di rete sottostante.

How-does-SSH-work

Ci sono due passaggi coinvolti nella creazione di una connessione SSH. Innanzitutto, i sistemi devono decidere reciprocamente gli standard di crittografia per proteggere le comunicazioni future. Quindi, l'utente deve autenticarsi. Se le credenziali corrispondono, viene concesso l'accesso.

SSH funziona con connessioni come il Transmission Control Protocol (TCP) per inviare dati sotto forma di pacchetti. Una volta stabilita la connessione, utilizza diversi algoritmi di crittografia SSH per garantire la privacy e l'integrità dei dati tra client e server.

Le informazioni all'interno di questi pacchetti di dati vengono decrittografate dal server con un codice di autenticazione del messaggio disponibile solo per il server e il client. Ed è così che i dati vengono trasferiti in modo sicuro su reti non sicure perché SSH crittografa i dati, non la connessione tra i sistemi.

Scopri la mia recensione dei migliori emulatori di terminale per trovare la soluzione perfetta per le tue sessioni SSH, che tu sia su Windows, Mac o Linux.

Vuoi saperne di più su Software Emulatore di Terminale? Esplora i prodotti Emulatore di terminale.

Una breve storia di SSH

Prima di SSH, il Teletype Network Protocol (Telnet) veniva utilizzato per accedere e modificare i file collegandosi ai computer da remoto. Nel 1995, Tatu Ylönen, un ricercatore presso l'Università di Tecnologia di Helsinki in Finlandia, progettò SSH per sostituire protocolli non sicuri come Telnet. SSH garantiva che forze esterne non potessero intercettare dati privati, che era una delle minacce di sicurezza più significative di Telnet.

La prima versione della secure shell divenne nota come SSH-1 e presto divenne uno strumento popolare in vari settori. Ben presto, l'Internet Engineering Task Force (IETF) iniziò a lavorare allo sviluppo di un successore di questo protocollo. Nel 2006, SSH-2 fu introdotto con miglioramenti della sicurezza e divenne il nuovo standard.

SSH-2 utilizza diversi algoritmi di crittografia e autenticazione. È una riscrittura completa del protocollo originale e incorpora protezioni integrate contro le sfide note di SSH1.

Caratteristiche principali di SSH

Generalmente, SSH viene utilizzato per stabilire una connessione sicura con un server remoto. Ma viene anche utilizzato per trasferire file in modo sicuro, inoltrare porte, montare directory remote, reindirizzare GUI e proxy di traffico arbitrario.

Dai un'occhiata ad alcune delle caratteristiche principali di SSH.

SSHD

Stabilire una connessione richiede che il computer remoto esegua il demone SSH (SSHD). Questo programma trova e autentica le richieste di connessione. Utilizza il protocollo SSH per crittografare lo scambio di dati tra host locali su reti non sicure.

Esiste anche un record di impronte digitali della secure shell (SSHFP) che equipaggia le impronte digitali della chiave host pubblica per verificare l'autenticità dell'host.

Tunneling SSH e inoltro di porte

La tecnologia di inoltro di porte o tunneling reindirizza il traffico non crittografato su una rete attraverso un canale crittografato. OpenSSH, un popolare server SSH open-source, supporta tre tipi di inoltro di porte: locale, remoto e dinamico. Può anche implementare reti private virtuali (VPN) per accedere a contenuti geo-limitati attraverso firewall.

Chiavi e agenti SSH

Tra i vari meccanismi di autenticazione in SSH, l'uso delle chiavi è il più sicuro rispetto alle password. Una chiave è crittografata per una maggiore sicurezza e può essere utilizzata solo dopo essere stata decrittografata inserendo una passphrase segreta. Inoltre, le chiavi SSH, combinate con un agente di autenticazione, possono proteggere i tuoi account informatici senza dover memorizzare password o inserirle ripetutamente.

$4,88 milioni

è il costo medio globale per violazione dei dati nel 2024.

Fonte: Statista

Tecnologie di crittografia utilizzate da SSH

Ciò che distingue SSH è che utilizza la tecnologia software di crittografia per trasferire informazioni in modo sicuro. Protegge tutto il traffico tra il client e il server, rendendo difficile per gli attaccanti informatici accedere ai dati crittografati. Esistono tre metodi di crittografia SSH:

1. Crittografia simmetrica

Nella crittografia simmetrica, una chiave segreta viene utilizzata per crittografare e decrittografare i dati da parte del client e del server. Quindi, chiunque abbia accesso alla chiave può crittografare i dati condivisi. Ogni chiave è unica per le singole sessioni SSH ed è generata prima della fase di autenticazione del client.

Questo processo è altamente sicuro perché viene eseguito da un algoritmo di scambio di chiavi unico. Anche se un sistema esterno accede al file, non sarà in grado di decrittografare le informazioni perché l'algoritmo di scambio di chiavi sarà sconosciuto.

2. Crittografia asimmetrica

Questo metodo differisce dalla crittografia simmetrica perché utilizza due chiavi SSH: privata e pubblica. Queste chiavi sono abbinate utilizzando complessi algoritmi matematici e lavorano insieme per crittografare e decrittografare i messaggi.

Chiunque può utilizzare la chiave pubblica per crittografare, ma solo il destinatario della chiave privata può decrittografare quel messaggio. Il meccanismo dietro la crittografia e la decrittografia è completamente automatizzato.

3. Hashing

Questo metodo non è lo stesso della crittografia ma è una forma diversa di crittografia utilizzata nelle connessioni SSH. L'hashing è unidirezionale e irreversibile, il che significa che non può essere decrittografato.

L'algoritmo di hashing fornisce un valore esadecimale unico di lunghezza fissa che verifica tutto sul file. SSH utilizza l'hashing per verificare l'autenticità di un messaggio, garantendo che non sia stato manomesso.

I 5 migliori software emulatore di terminale

  1. Rocket Terminal Emulator
  2. PuTTY
  3. Solar-PuTTY
  4. Mintty
  5. MobaXTerm

*Questi sono i cinque principali software emulatore di terminale dal rapporto Grid® di G2 dell'autunno 2024.

Click to chat with G2s Monty-AI-Oct-11-2024-05-58-54-5154-AM

Importanza delle chiavi SSH

Il protocollo SSH è uno dei metodi di crittografia più sicuri oggi. Aggiunge maggiore sicurezza, rafforza la credibilità e offre modi pratici per gestire dati sensibili.

Una delle principali sfide che le aziende di vari settori affrontano è la mancanza di mezzi per espandere la sicurezza in sede. Con SSH, gli amministratori possono proteggere l'integrità dei dati e le modifiche apportate al server. Attraverso i suoi metodi di crittografia, il protocollo SSH fornisce la massima protezione da azioni dannose come l'intercettazione dei dati o l'invasione di server con informazioni riservate.

Le chiavi SSH limitano l'accesso ai dati solo all'utente autenticato, fornendo maggiore controllo a un'azienda. Questo protocollo di sicurezza SSH controlla anche l'accesso a macchine o server remoti bloccando l'accesso non autorizzato a quei sistemi.

SSH vs. SSL vs. SCP

Sebbene tutti e tre questi meccanismi vengano utilizzati per crittografare e proteggere le connessioni tra i sistemi, ci sono alcune differenze chiave.

SSH-vs-SSL-vs-SCP

SSH è un protocollo di rete crittografico. Consente il trasferimento sicuro di file, l'accesso e la configurazione di sistemi remoti per eseguire comandi in modo sicuro. Secure sockets layer (SSL) è un protocollo di sicurezza che non consente di eseguire comandi da remoto come SSH.

Secure copy protocol (SCP) è un protocollo di rete che utilizza la connessione sicura SSH per trasferire file. Tuttavia, SCP si concentra sulla sicurezza dell'integrità dello scambio di dati e non può essere utilizzato per accedere o controllare dispositivi da remoto come SSH.

Comandi SSH comuni

Sebbene i comandi SSH abbiano anche implementazioni grafiche, di solito vengono eseguiti utilizzando emulatori di terminale o eseguiti come parte di uno script con interfacce a riga di comando (CLI).

Ecco alcuni esempi di comandi SSH e la loro funzionalità.

Comando SSH Funzione
ssh-keygen Crea una nuova coppia di chiavi di autenticazione per SSH
ssh-copy-id Utilizzato per copiare, installare e configurare una chiave SSH
ssh-agent Traccia le chiavi di identità e consente di accedere a un server senza reinserire le password
ssh-add Aggiunge una chiave all'agente di autenticazione SSH e impone l'SSO
scp Versione SSH di rcp (copia remota), copia file da un computer a un altro
sftp Versione SSH delle soluzioni File Transfer Protocol (FTP), copia file da un sistema a un altro

Casi d'uso di SSH

SSH consente alle organizzazioni di comunicare in modo sicuro su Internet. Non presenta le complicazioni dei processi tradizionali, come Telnet o FTP, e offre un facile accesso attraverso meccanismi automatizzati. Gli amministratori di sistema utilizzano SSH per:

  • Stabilire canali di comunicazione tra macchine locali e host remoti
  • Eseguire comandi su un server remoto utilizzando un'interfaccia a riga di comando
  • Connettersi automaticamente ai server per modificare le configurazioni
  • Eseguire attività di gestione remota come backup, installazione di software, aggiornamenti e risoluzione dei problemi
  • Fornire opzioni di single sign-on per accedere a più account utente senza password
  • Creare un processo di autenticazione sicuro per la gestione dei database
  • Abilitare l'autenticazione basata su chiavi per l'automazione sicura

Quanto è sicuro SSH?

Una delle domande principali riguardanti SSH è: "Quale vantaggio di sicurezza offre SSH?" SSH ha molte funzionalità di sicurezza, evidenziando come protegge i dati sensibili, migliora l'autenticazione degli utenti e protegge da varie minacce informatiche:

  • Crittografia forte: SSH utilizza algoritmi di crittografia robusti, come AES, per proteggere i dati in transito e garantire la riservatezza contro le intercettazioni.
  • Autenticazione a chiave pubblica: Utilizza la crittografia a chiave pubblica per l'autenticazione, consentendo agli utenti di connettersi senza trasmettere password, riducendo il rischio di furto di credenziali.
  • Integrità della sessione: SSH include meccanismi per verificare che i dati inviati e ricevuti non siano stati alterati, proteggendo da manomissioni.
  • Protezione contro le minacce informatiche: Protegge da attacchi come attacchi man-in-the-middle, spoofing IP e manipolazione dei dati.
  • Controllo degli accessi: SSH consente agli amministratori di gestire efficacemente l'accesso degli utenti e revocare i permessi secondo necessità.
  • Standard ampiamente accettati: Utilizza pratiche crittografiche ben consolidate riconosciute nella comunità della sicurezza informatica, aumentando la fiducia nella sua sicurezza.
  • Aggiornamenti regolari: Aggiornamenti e patch di sicurezza continui aiutano a proteggere dalle minacce emergenti e a mantenere un ambiente sicuro.

SSH è più sicuro di una VPN?

Una rete privata virtuale (VPN) è costruita su un'infrastruttura di rete pubblica come Internet. Maschera il tuo indirizzo IP crittografando e instradando il traffico attraverso un server remoto. Protegge le tue informazioni personali quando accedi a Wi-Fi pubblici e garantisce che nessuno possa spiare i tuoi dati o tracciare la tua geolocalizzazione controllando il tuo indirizzo IP o nome host.

Il software VPN è facile da usare e fornisce crittografia e protezione della privacy di alto livello. A prima vista, SSH sembra simile ai servizi VPN, ma esistono alcune differenze.

Sebbene entrambe queste tecnologie aggiungano un ulteriore livello di sicurezza durante la navigazione sul web, SSH funziona sui sistemi, mentre una VPN protegge la tua rete. Quindi, tra SSH e VPN, quest'ultima offre una protezione maggiore ed è più facile da configurare come soluzione aziendale.

Vantaggi e sfide di SSH

Come qualsiasi altro protocollo di sicurezza, SSH è un mix che offre ottimi vantaggi e alcune sfide. Comprendere entrambi i fattori a un livello più profondo aiuterà le aziende a sfruttare al meglio le loro implementazioni del protocollo SSH.

Vantaggi di SSH

I meccanismi di crittografia superiori di SSH lo rendono la scelta migliore per le applicazioni aziendali. Ecco alcuni dei principali vantaggi dell'utilizzo di SSH.

  • Fornisce accesso sicuro senza condividere password con più utenti
  • Esegue comandi shell su un computer remoto
  • Semplifica la gestione dei permessi consentendo a tutte le parti di accedere come lo stesso utente
  • Rende facile la gestione remota dei file per gli amministratori
  • Permette la revoca dell'accesso quando necessario
  • Protegge da attacchi informatici come il routing della sorgente IP, spoofing e manipolazione dei dati
  • Consente il tunneling di altri protocolli come FTP e sicurezza DNS
  • Utilizza coppie di chiavi uniche invece delle tradizionali credenziali di accesso

Sfide di SSH

Sebbene SSH sia considerato un tuttofare in termini di sicurezza, è noto per avere alcune vulnerabilità, come:

  • Violazione delle normative di sicurezza a causa di transazioni SSH in uscita non limitate
  • Poor gestione delle chiavi SSH può portare a una proliferazione delle chiavi che porta ad attacchi informatici
  • Risposta lenta ai comandi ad alta larghezza di banda su reti SSH più lente
  • Ritardo nel processo di risposta agli incidenti dà ai hacker più tempo per accedere ai dati riservati
  • Mancanza di opzioni di monitoraggio per i dati crittografati a causa di difficoltà e spese aggiuntive
  • Esposizione delle porte SSH può servire come ingresso posteriore per attacchi malware

Best practice per SSH

Sebbene SSH si sia affermato come standard del settore per la sicurezza, è sicuro solo quanto le configurazioni applicate al server e al client. Tenere a mente le migliori pratiche della secure shell è fondamentale per prevenire le minacce informatiche.

Abilita l'autenticazione a due fattori

Un sistema con autenticazione a due fattori abilitata richiede due diverse forme di verifica per fornire accesso. Poiché le organizzazioni utilizzano SSH per costruire una connessione sicura a sistemi remoti, imporre un altro livello di sicurezza SSH è fondamentale per offrire una protezione completa.

Gli amministratori di sistema dovrebbero garantire che gli utenti che accedono a un sistema remoto tramite SSH si autentichino con più di una credenziale. Questa pratica rende questo metodo di autenticazione più sicuro di una password, che può essere hackerata, o di una singola chiave SSH.

Disabilita l'accesso utente root

L'accesso root SSH può essere rischioso perché dà pieno accesso e controllo su tutto il sistema. Disabilitare l'accesso utente root è necessario perché è attivo per impostazione predefinita, il che consente agli hacker di cercare facilmente le credenziali.

Suggerimento: Gli amministratori possono modificare le impostazioni di accesso utente root aggiornando il file di configurazione SSH (/etc/ssh/sshd_config) e impostando l'opzione “PermitRootLogin” su “no.”

Il modo migliore per affrontare questo è creare accessi individuali. Ciò consente di controllare ciò a cui ogni utente può accedere, rendendo più facile tracciare e controllare ogni attività.

Utilizza certificati SSH per l'autenticazione del client

L'autenticazione con chiave SSH è superiore alle password normali. Ma quando si protegge un processo di accesso remoto, è necessario ricordare le complessità della gestione delle chiavi SSH.

Le chiavi SSH sono basate su testo e comportano il rischio di essere copiate o hackerate. Questo è il motivo per cui l'autenticazione con certificati SSH è un'opzione più potente, poiché può proteggere il processo di accesso con chiavi pubbliche e fornire un certificato per verificare l'autenticità di ogni chiave.

Imponi un firewall

Un firewall non solo esamina il traffico in entrata e in uscita, ma monitora anche il traffico all'interno di una rete, il che aiuta a proteggere il server. Opera su un insieme di regole predefinite e può ridurre le possibilità di attacchi informatici.

Configurando il tuo firewall, puoi abilitare il filtraggio dei pacchetti, il che significa che può accettare o rifiutare pacchetti di dati e prendere la decisione migliore per proteggere il tuo sistema. Puoi anche filtrare l'accesso degli utenti e ricevere avvisi sui tentativi di accesso non autorizzati con il giusto software firewall.

Cambia il numero di porta predefinito

Nei sistemi Linux, il server predefinito di SSH funziona sulla porta numero 22. Quando si cercano server SSH aperti, la porta predefinita è la prima cosa che gli hacker esaminano.

Sebbene non migliori necessariamente la sicurezza complessiva, cambiare la porta predefinita proteggerà il tuo server nascondendo la porta SSH da attacchi come il brute force. Ti nasconde anche dai bot che cercano server SSH aperti da attaccare e ottenere l'accesso.

Non è una questione di se, ma di quando.

C'è molta verità nel vecchio detto, "Prevenire è meglio che curare." La sicurezza informatica non dovrebbe essere presa alla leggera nell'attuale ambiente aziendale in cui gli asset digitali hanno così tanto valore per un'azienda.

SSH è uno strumento potente per gli amministratori IT per proteggere le aziende contro l'accesso non autorizzato e il furto di dati. La giusta combinazione di soluzioni di sicurezza può aiutare a creare un sistema robusto libero dai rischi di attacchi informatici.

Scopri il miglior software di gestione delle chiavi di crittografia per applicare politiche di sicurezza per il tuo storage e distribuzione delle chiavi.

Questo articolo è stato originariamente pubblicato nel 2023. È stato aggiornato con nuove informazioni.

Washija Kazim
WK

Washija Kazim

Washija Kazim is a Sr. Content Marketing Specialist at G2 focused on creating actionable SaaS content for IT management and infrastructure needs. With a professional degree in business administration, she specializes in subjects like business logic, impact analysis, data lifecycle management, and cryptocurrency. In her spare time, she can be found buried nose-deep in a book, lost in her favorite cinematic world, or planning her next trip to the mountains.