Controllare un PC remoto con VNC espone ad un problema di sicurezza molto concreto: tutti i dati viaggiano "in chiaro" e, di conseguenza, un aggressore che riuscisse ad intercettare i pacchetti in transito potrebbe facilmente leggere i caratteri immessi con la tastiera e vedere le schermate, con conseguenze "disastrose" facilmente immaginabili. Per proteggere la comunicazione, è necessario crittografare i dati scambiati: in questo modo, anche in caso un utente ostile riuscisse ad intercettare i pacchetti, si ritroverebbe con lunghe serie di byte prive di significato.
Nota: questo articolo fa parte de "La Grande Guida a VNC".
I vincoli della crittografia
La limitazione appena trattata è intrinseca nel protocollo RFB alla base di VNC. Alcune implementazioni, come UltraVNC, gestiscono la situazione in maniera specifica tramite un'estensione crittografica propria che, se da un lato garantisce la sicurezza dei dati scambiati, dall'altro impone poi di utilizzare server e client di uno stesso, medesimo prodotto.
Nello specifico: usufruire della crittografia con UltraVNC richiede l'uso dello specifico UltraVNC Viewer... disponibile solo per Windows. Di conseguenza, abilitando questa caratteristica, non sarà poi più possibile collegarsi da Linux o con qualsiasi altro client VNC.
L'installazione sul server ("quello da controllare")
L'estensione crittografica di UltraVNC viene veicolata da un componente addizionale chiamato SecureVNC Plugin, anch'esso "software libero" (open source) e, quindi, disponibile gratuitamente persino per scopi commerciali.
Prima di procedere al download, dovete scoprire se la vostra installazione di UltraVNC sia a 32 bit oppure a 64 bit. Una volta stabilito, procedete a salvare sul PC il file opportuno:
-
Scarica: AddOn per UltraVNC a 32 bit
-
Scarica: AddOn per UltraVNC a 64 bit
Le videate della procedura di setup sono quelle tradizionali: leggete le varie informazioni e specificate il percorso in cui copiare i file del programma (dovete indicare la stessa nella quale avete installato UtraVNC)
Fate solo attenzione al passaggio nel quale dovete scegliere i componenti: per i nostri scopi, attivate Add plugins used to encrypt data between server and viewer
Creare le chiavi crittografiche
Fate click con il pulsante destro del mouse sull'icona di UltraVNC nell'Area di notifica. Cliccate sulla voce Admin Properties
e rivolgete l'attenzione all'angolo in basso a sinistra della schermata con le opzioni, dove trovate il riquadro DSM Plugin
. Cliccate Use
e selezionate SecureVNCPlugin
dall'elenco
Premete Config.
per accedere al ricco pannello di controllo del plug-in crittografico. Le opzioni di default sono già più che sufficienti a proteggere i segreti di un piccolo stato, per cui limitatevi a cliccare immediatamente su Generate Client Authentication Key
Premete Ok
alla schermata informativa e preparatevi a svolgere un'operazione tanto delicata quanto semplice.
Vi sarà proposto di generare il primo di due file: spostatevi sul desktop e salvatelo con il nome miocomputer_Viewer_ClientAuth.pkey
. Digitate espressamente anche l'estensione e mantenete inalterata la stringa successiva al primo trattino basso (_Viewer_ClientAuth.pkey
).
Subito dopo, comparirà una seconda schermata di salvataggio: di nuovo, posizionatevi sul desktop ma, questa volta, utilizzate il nome miocomputer_Server_ClientAuth.pubkey
. Di nuovo, digitate espressamente anche l'estensione e mantenete inalterata la stringa successiva al primo trattino basso (questa volta è _Server_ClientAuth.pubkey
).
In ogni caso, è imperativo che la stringa immessa prima del primo trattino sia la medesima per entrambi i file.
Chiudete la schermata di configurazione di SecureVNC e confermate con Ok
le nuove impostazioni di UltraVNC.
Prendete ora il file miocomputer_Server_ClientAuth.pubkey
(è il secondo fra i due generati) e spostatelo nella cartella in cui avete installato inizialmente UltraVNC: per impostazione predefinita, stiamo parlando di C:\Programmi\uvnc bvba\UltraVNC
La configurazione del server è così completa. Riavviate il sistema.
L'"installazione" sul client ("quello dal quale controllate")
Spostate l'altro file creato, miocomputer_Viewer_ClientAuth.pkey
, nella cartella in cui si trova il programma da usare sul client, ovvero vncviewer.exe
(scaricabile da qui) e sinceratevi che nella directory vi sia anche un file denominato SecureVNCPlugin.dsm
(così non fosse, potete ottenerlo dalla sua pagina ufficiale)
A questo punto è tutto pronto: avviate UltraVNC Viewer ma, prima di connettervi come di consueto, abilitate l'opzione Use DSMPlugin
, sincerandovi che dal menu a discesa corrispondente sia selezionato SecureVNCPlugin.dsm
.
Il collegamento avverrà come di consueto, con l'unica differenza che la connessione sarà interamente crittografata: a confermarlo è l'indicazione UltraVNC + SecureVNCPlugin
nella barra del titolo, visibile subito dopo che il collegamento è stato stabilito
Ogni client che tentasse ora di connettersi senza presentare la giusta chiave verrà bloccato immediatamente e tutti i dati scambiati saranno crittografati e illeggibili.