SOCKS on OSI -mallin istuntotason verkkoprotokolla , jonka avulla voit välittää paketteja asiakkaalta palvelimelle välityspalvelimen kautta läpinäkyvästi (näkymättömästi heille) ja siten käyttää palveluita palomuurien (palomuurien) takana .
SOCKS5:n uudempi versio olettaa todennuksen, jotta vain valtuutetut käyttäjät pääsevät palvelimeen.
Palomuurin takana olevat asiakkaat , jotka tarvitsevat pääsyn ulkoisiin palvelimiin, voidaan sen sijaan yhdistää SOCKS- välityspalvelimeen . Tällainen välityspalvelin hallitsee asiakkaan oikeuksia käyttää ulkoisia resursseja ja välittää asiakkaan pyynnön ulkoiselle palvelimelle. SOCKSia voidaan käyttää myös päinvastoin, sillä se hallitsee ulkoisten asiakkaiden oikeuksia muodostaa yhteys sisäisiin palvelimiin palomuurin takana .
Toisin kuin HTTP -välityspalvelimet, SOCKS välittää kaiken datan asiakkaalta lisäämättä mitään itsestään, eli lopullisen palvelimen näkökulmasta sen SOCKS-välityspalvelimelta saamat tiedot ovat identtisiä sen kanssa, jonka asiakas siirtää suoraan. , ilman välityspalvelinta. SOCKS on yleisempi, se ei riipu tietyistä sovelluskerroksen protokollista ( OSI-mallin kerros 7 ) ja toimii TCP-yhteyksien tasolla ( OSI-mallin kerros 4 ). Toisaalta HTTP - välityspalvelin tallentaa tiedot välimuistiin ja voi suodattaa lähetettyjen tietojen sisällön tarkemmin .
Protokollan on kehittänyt MIPS - järjestelmän ylläpitäjä David Koblas . Kun MIPS tuli osaksi Silicon Graphics Corporationia vuonna 1992 , Koblas piti puheen SOCKSista Usenix Security Symposiumissa ja SOCKS tuli julkisesti saataville. Protokollan neljännen version on kehittänyt Ying-Da Lee NEC :stä .
SOCKS-palvelimet käyttävät yleensä porttia 1080 [1] .
SOCKS 4 on suunniteltu toimimaan palomuurin läpi ilman todennusta TCP -protokollaa käyttäville asiakas-palvelinsovelluksille , kuten Telnetille , FTP :lle ja suosituille viestintäprotokollia, kuten HTTP , WAIS ja Gopher . Pohjimmiltaan SOCKS-palvelinta voidaan pitää palomuurina, joka tukee SOCKS-protokollaa.
Tyypillinen SOCKS 4 -pyyntö näyttää tältä:
Asiakkaan pyyntö SOCKS-palvelimelle:
Koko | Kuvaus |
---|---|
1 tavu | SOCKS-versionumero, 1 tavu (tämän version tulee olla 0x04) |
1 tavu | Komentokoodi:
|
2 tavua | Porttinumero |
4 tavua | IP-osoite |
n+1 tavua | Käyttäjätunnus. Vaihtuvapituinen merkkijono, joka päättyy NUL-tavuun (0x00). Kentän tarkoituksena on tunnistaa käyttäjä (katso Tunnus ) |
Palvelimen vastaus SOCKS-asiakkaalle:
Koko | Kuvaus |
---|---|
1 tavu | NUL-tavu |
1 tavu | Vastauskoodi:
|
2 tavua | Mielivaltaiset tiedot tulee jättää huomiotta |
4 tavua | Mielivaltaiset tiedot tulee jättää huomiotta |
SOCKS 5 [2] on yhteensopimaton laajennus SOCKS 4 -protokollalle. Se lisää tuen UDP :lle , tarjoaa yleisiä vahvoja todennusjärjestelmiä ja laajentaa osoitemenetelmiä, lisää tuen verkkotunnuksille ja IPv6 -osoitteille . Alkuperäinen viestintäasetus koostuu nyt seuraavista:
Todennusmenetelmät on numeroitu seuraavasti:
0x00 | Todennusta ei vaadita |
0x01 | GSSAPI |
0x02 | RFC 1929 käyttäjätunnus/salasana |
0x03-0x7F | Varaa IANA |
---|---|
0x03 | LUKU |
0x04 | Ei käytössä |
0x05 | Haaste-vastaus (todennus) |
0x06 | SSL |
0x07 | NDS-todennus |
0x08 | Monivaiheinen todennuskehys |
0x09 | JSON-parametrilohko |
0x0A–0x7F | Ei käytössä |
0x80-0xFE | Varattu yksityiskäyttöön |
Alkutervehdys asiakkaalta:
Koko | Kuvaus |
---|---|
1 tavu | SOCKS-versionumero (tämän version tulee olla 0x05) |
1 tavu | Tuettujen todennusmenetelmien määrä |
n tavua | Todennusmenetelmien numerot, muuttuva pituus, 1 tavu jokaiselle tuetulle menetelmälle |
Palvelin ilmoittaa valintansa:
Koko | Kuvaus |
---|---|
1 tavu | SOCKS-versionumero (tämän version tulee olla 0x05) |
1 tavu | Valittu todennusmenetelmä tai 0xFF, jos hyväksyttävää menetelmää ei tarjottu |
Myöhempi tunnistaminen riippuu valitusta menetelmästä.
Asiakaspyyntö:
Koko | Kuvaus |
---|---|
1 tavu | SOCKS-versionumero (tämän version tulee olla 0x05) |
1 tavu | Komentokoodi:
|
1 tavu | Varattu tavu, on oltava 0x00 |
1 tavu | Osoite tyyppi:
|
Riippuu osoitteen tyypistä | Osoite:
|
2 tavua | Portin numero järjestyksessä korkeasta matalaan ( big-endian ) |
Palvelimen vastaus:
Koko | Kuvaus |
---|---|
1 tavu | SOCKS-versionumero (0x05 tälle versiolle) |
1 tavu | Vastauskoodi:
|
1 tavu | Tavu varattu, on oltava 0x00 |
1 tavu | Seurantaosoitteen tyyppi:
|
Riippuu osoitteen tyypistä | Osoite:
|
2 tavua | Portin numero järjestyksessä korkeasta matalaan ( big-endian ) |