# Telnet

In informatica e telecomunicazioni Telnet (TErminaL NETwork, Terminale di rete) è un protocollo di rete, utilizzato tramite interfaccia a riga di comando per fornire all'utente sessioni di login remoto. I documenti IETF STD 8 (RFC 854 e 855) affermano: "L'obiettivo del protocollo Telnet è fornire un supporto per le comunicazioni sufficientemente generalizzato, bidirezionale ed orientato ai byte (otto bit)".
Per estensione, Telnet è anche il nome del programma che l'utente può usare per avviare una sessione Telnet ad un host remoto; il programma implementa la parte client del protocollo. I client Telnet sono stati resi disponibili sulla maggior parte dei sistemi informatici per molti anni e su qualsiasi tipo di computer.

## Descrizione

Telnet è un protocollo client-server basato su TCP; i client solitamente si connettono alla porta 23 sul server (nonostante la porta possa essere differente, come per parecchi protocolli internet). In parte a causa della progettazione del protocollo e in parte per la flessibilità tipicamente fornita dai programmi Telnet, è possibile utilizzare un programma Telnet per stabilire una connessione interattiva ad un qualche altro servizio su un server internet. Un utilizzo classico è collegarsi col Telnet alla porta 25 (sulla quale tipicamente si trova un server SMTP) per effettuare il debugging di un server di posta.
Il protocollo Telnet può essere diviso in una parte principale ed in un set di estensioni. La parte principale è descritta dalle RFC 854 e RFC 855 dell'IETF, che sono anche unite nell'STD 8, e definiscono le caratteristiche base del protocollo ed il modo di implementare le estensioni. Tra le tante estensioni, alcune sono state adottate come Standard Internet. I documenti STD dal 27 al 32 definiscono varie estensioni di Telnet, la maggior parte delle quali sono molto diffuse. Tra le estensioni rimanenti, le più importanti sono quelle proposte dall'IETF come standard; ulteriori dettagli possono esser trovati nella STD 1.
Come spiegato più avanti, Telnet non è sicuro e dovrebbe esser generalmente evitato. Il suo uso sulle reti pubbliche comporta seri rischi di sicurezza.

### Usi

I client Telnet sono ancora usati occasionalmente per "parlare" ad altri servizi. Telnet è usato ogni tanto nel debug di servizi di networking come i server SMTP e HTTP, in quanto rappresenta un modo semplice per mandare comandi al server ed esaminare le risposte. Telnet può anche essere usato come un rudimentale client IRC se si possiede una conoscenza adeguata.
Telnet è molto usato per i giochi Multi user dungeon giocati in rete.
Nel campo della posta elettronica Telnet ha molti validi usi, per esempio è possibile leggere la corrispondenza sulla propria mailbox, cancellarla oppure spedire missive elettroniche. Visto che normalmente l'accesso alla propria casella di posta elettronica viene fatto in modo non sicuro oppure a volte da un computer pubblico, i problemi di sicurezza di Telnet non sono di ostacolo.
A volte con le webmail si hanno problemi di accesso alla propria mailbox che con Telnet si possono risolvere, per esempio nel caso di superamento della memoria concessa alcune caselle si bloccano e Telnet permette di risolvere il problema.
Altro particolare interessante di Telnet e la posta elettronica è la possibilità di invio di email anonime oppure email false (fake email). Se non vengono utilizzati proxy la magistratura tramite la polizia postale è in grado di individuare il mittente tramite il suo indirizzo IP.
Telnet può essere utilizzato da un comune browser web, in presenza di una connessione (generalmente HTTP) già attiva ad un Internet Service Provider: Telnet è un protocollo di livello più alto di quelli del livello di trasporto dei dati, e richiede che una sessione sia già iniziata.

### Sicurezza

Ci sono tre problemi principali legati a Telnet che lo rendono una cattiva scelta per i sistemi moderni dal punto di vista della sicurezza informatica:
* nei daemon Telnet comunemente usati sono state trovate nel corso degli anni molte vulnerabilità, e probabilmente ne esistono tuttora altre;
* manca di uno schema di autenticazione che renda sicura la comunicazione tra due host e non intercettabile;
* non cripta i dati inviati tramite la connessione (nemmeno le password) ed è quindi banale catturare i dati scambiati ed usare la password per scopi malevoli.
In ambienti aperti, come la rete pubblica Internet, Telnet non dovrebbe esser usato, in quanto le sessioni telnet non sono criptate. Ciò significa che chiunque abbia accesso ad un router, uno switch o un gateway posizionato sul percorso tra i due host che stanno comunicando tramite Telnet, può intercettare i pacchetti che lo attraversano e facilmente ottenere qualsiasi cosa venga scambiata (compresi nomi utente e password) con programmi di sniffing come tcpdump e Wireshark (precedentemente chiamato Ethereal).
Queste falle hanno fatto calare rapidamente l'uso del protocollo Telnet, a favore del più sicuro protocollo SSH, pubblicato nel 1998. SSH offre tutte le funzioni di Telnet più una sicura criptazione, che previene l'intercettazione dei dati scambiati, ed un'autenticazione a chiave pubblica, che assicura l'identità del server remoto.
Gli esperti di sicurezza informatica, come l'Istituto SANS ed i membri del newsgroup di comp.os.linux.security, consigliano in generale di disabilitare l'uso di Telnet per login remoti.
Quando Telnet è stato sviluppato all'inizio degli anni ottanta o secondo alcune fonti addirittura nel 1969, la maggior parte degli utenti delle reti appartenevano a dipartimenti di istituti accademici o a centri di ricerca privati o governativi. In quest'ambiente, la sicurezza non era così importante quanto lo è oggi, con l'espansione della banda larga e la rete globale. Con la crescita esponenziale del numero di persone che accedono ad Internet e quindi del numero di coloro che vogliono entrare in sistemi altrui con intenzioni malevole, Telnet non dovrebbe essere usato in reti Internet.