SOCKS

Un server SOCKS è un particolare tipo di proxy che permette di effettuare connessioni TCP dirette (e, dalla versione 5, di veicolare traffico UDP oltre che TCP) tra computer su due reti IP differenti nei casi in cui un instradamento diretto (routing) non sia disponibile. È l'abbreviazione di "SOCKet Secure".

I punti di forza del protocollo SOCKS sono l'estrema semplicità di implementazione (sia dal lato client che dal lato server) e la completa indipendenza dal protocollo da veicolare attraverso di esso.

Storicamente SOCKS è stato usato come punto di contatto tra due LAN oppure tra una LAN e una WAN (come ad esempio Internet). Recentemente è più comune incontrare reti direttamente connesse ad Internet o connesse attraverso un proxy HTTP.

Versioni

Attualmente esistono tre versioni del protocollo SOCKS:

Logica di funzionamento

La logica di funzionamento di un server SOCKS è simile a quello di un proxy:

Protocollo v4/4a

Lo stesso argomento in dettaglio: Socks 4a.

Richiesta

       +----+----+----+----+----+----+----+----+----+----+....+----+
       | VN | CD | DSTPORT |      DSTIP        | USERID       |NULL|
       +----+----+----+----+----+----+----+----+----+----+....+----+
bytes:    1    1      2              4           variable       1
  • VN: Numero di versione. Deve essere 0x04
  • CD: Operazione. 0x01 per CONNECT, 0x02 per BIND
  • DSTPORT: Porta TCP del server di destinazione in formato network byte order
  • DSTIP: Indirizzo IP del server di destinazione in formato network byte order
  • USERID: Stringa contenente nome utente, non terminata da 0x00, di dimensione arbitraria
  • NULL: 0x00

Risposta

       +----+----+----+----+----+----+----+----+
       | VN | CD | DSTPORT |      DSTIP        |
       +----+----+----+----+----+----+----+----+
bytes:    1    1      2              4
  • VN: Numero di versione della risposta. Dovrebbe essere 0x00
  • CD: Codice di risposta. Può assumere i seguenti valori:
    • 0x5A (90 dec): richiesta accettata
    • 0x5B (91 dec): richiesta rifiutata o fallita
    • 0x5C (92 dec): richiesta rifiutata perché il server SOCKS non ha potuto connettersi al server ident sul client
    • 0x5D (93 dec): richiesta rifiutata perché il server ident e il client hanno riportato USERID differenti
  • DSTPORT: ignorato per CONNECT
  • DSTIP: ignorato per CONNECT

Collegamenti esterni

  Portale Telematica: accedi alle voci di Wikipedia che parlano di reti, telecomunicazioni e protocolli di rete