SOCKEN

STECKDOSE Sicher (SOCKEN) ist ein Internetprotokoll dass Weg-Netzpakete zwischen einem Kunden und Server durch einen Proxyserver. SOCKS5 stellt zusätzlich Beglaubigung so zur Verfügung nur hat Benutzer autorisiert kann auf einen Server zugreifen. Praktisch wird ein SOCKE-Server TCP Proxyverbindungen zu einer willkürlichen IP-Adresse sowie Versorgung eines Mittels für UDP nachzuschickende Pakete.

SOCKEN führen an der Schicht 5 des OSI Modells — die Sitzungsschicht (eine Zwischenschicht zwischen der Präsentationsschicht und der Transportschicht) durch.

Geschichte

Das Protokoll wurde von David Koblas, einem Systemverwalter von MIPS Computersystemen ursprünglich entwickelt. Nachdem MIPS durch die Silikongrafik 1992 übernommen wurde, hat Koblas einen Vortrag auf SOCKEN an der Usenix Sicherheit dieses Jahres Symposium gehalten, und SOCKEN sind öffentlich verfügbar geworden. Das Protokoll wurde zur Version 4 von Ying da Lee von NEC erweitert.

Die SOCKE-Bezugsarchitektur und der Kunde sind von Permeo Technologies ein Nebenprodukt von NEC im Besitz. (Blaue Mantel-Systeme haben Permeo Technologies ausgezahlt).

Das SOCKS5 Protokoll war ursprünglich ein Sicherheitsprotokoll, das Brandmauern und andere Sicherheitsprodukte leichter gemacht hat als Verwalter zu fungieren. Es wurde durch den IETF 1996 genehmigt. Das Protokoll wurde in der Kollaboration mit Aventail Corporation entwickelt, die die Technologie außerhalb Asiens auf den Markt bringt.

Gebrauch

Einige SSH Kunden unterstützen dynamischen Hafen nachschickend, der dem Benutzer erlaubt, eine lokale SOCKE-Vertretung zu schaffen. Das kann den Benutzer von den Beschränkungen befreien, nur zu einem vorherbestimmten entfernten Hafen und Server in Verbindung zu stehen.

Die Felsturm-Zwiebel Proxysoftware präsentiert eine SOCKE-Schnittstelle seinen Kunden.

Ein anderer Gebrauch von SOCKEN ist als ein Vereitelungswerkzeug, erlaubend, Internet zu umgehen, das durchscheint, um auf durch sonst blockierten Inhalt zuzugreifen

Regierungen, Arbeitsplätze und Schulen.

SOCKEN sind eine allgemeine Norm für Tore des Stromkreis-Niveaus.

Vergleich

SOCKEN funktionieren auf niedrigerer Ebene als HTTP proxying: SOCKEN verwenden ein Händedruck-Protokoll, um die Proxysoftware über die Verbindung zu informieren, dass der Kunde versucht zu machen und für jede Form von TCP oder UDP Steckdose-Verbindung verwendet werden kann, wohingegen eine HTTP Vertretung eine HTTP-Bitte und vorwärts es zu einem HTTP Server nimmt. Obwohl HTTP proxying auf einen verschiedenen Gebrauch-Fall Lust hat, erlaubt die VERBINDEN Methode, TCP Verbindungen nachzuschicken, es gibt jedoch keinen Mechanismus für UDP proxying. Die folgenden Beispiele zeigen den Unterschied zwischen den zwei Methoden:

SOCKEN

Bill möchte mit Jane über das Internet kommunizieren, aber eine Brandmauer besteht in seinem Netz zwischen ihnen. Bill wird nicht bevollmächtigt, dadurch selbst zu kommunizieren. Er steht zur SOCKE-Vertretung in seinem Netz in Verbindung und sendet ihm Information über die Verbindung, die er Jane machen möchte. Die SOCKE-Vertretung öffnet eine Verbindung durch die Brandmauer und erleichtert die Kommunikation zwischen Bill und Jane. Für weitere Informationen über die technischen Details des SOCKE-Protokolls, sieh die Abteilungen unten.

HTTP

Bill möchte eine Webseite von Jane herunterladen, die einen Webserver führt. Bill kann zum Server von Jane nicht direkt in Verbindung stehen, weil eine Brandmauer in seinem Netz aufgestellt worden ist. Um mit dem Server zu kommunizieren, steht Bill zur HTTP Vertretung seines Netzes in Verbindung. Sein WWW-Browser kommuniziert mit der Vertretung auf genau dieselbe Weise, wie es mit dem Zielserver würde — sendet es einen HTTP Standardbitte-Kopfball. Die HTTP Vertretung liest die Bitte und sucht nach dem Gastgeber-Kopfball. Es steht dann zum Server in Verbindung, der im Kopfball angegeben ist, und übersendet irgendwelche Daten die Server-Antworten mit zurück Bill.

Wechselwirkung mit Brandmauern

Viele Gesellschaft und Universitätsnetzverwalter führen Brandmauer-Regeln ein, die Benutzer davon abhalten, zu jedem Internetdienst abgesondert von webpages in Verbindung zu stehen. Sowohl die SOCKEN als auch HTTP Proxyprotokolle können verwendet werden, um diese Brandmauern zu durchstoßen. SOCKEN werden gewöhnlich verwendet, um eine TCP rohe Verbindung zu schaffen, und das HTTP Proxyprotokoll kann mit der VERBINDEN Methode dasselbe machen. In beiden Fällen wird eine TCP Verbindung vom Kunden zum Proxyserver, und der IP-Adresse und dem Hafen geschaffen, zu dem der Kunde bittet, eine Verbindung wird über die Verbindung mitgeteilt. In beiden Fällen kann der Proxyserver gewähren, zurückweisen, umadressieren und Verbindungsbitten verändern, wie er mag. HTTP Vertretungen sind traditionell mehr HTTP-Protokoll bewusst und tun mehr Entstörung des hohen Niveaus (wenn auch das gewöhnlich nur gilt, um Methoden ZU BEKOMMEN und ANZUSCHLAGEN, nicht stehen IN VERBINDUNG). SOCKE-Vertretungen können auch UDP Verkehr und Arbeit rückwärts nachschicken: HTTP Vertretungen können nicht.

Protokoll

SOCKS4

Eine typische SOCKS4 Verbindungsbitte sieht wie das aus:

SOCKE-Kunde zum SOCKE-Server:

  • Feld 1: SOCKE-Versionsnummer, 1 Byte, muss 0x04 für diese Version sein
  • Feld 2: Befehlen Sie Code, 1 Byte:
  • 0x01 = stellen eine TCP/IP Strom-Verbindung her
  • 0x02 = gründen einen TCP/IP Hafen, der bindet
  • Feld 3: Netzbyte bestellt Hafen-Zahl, 2 Bytes
  • Feld 4: Netzbyte bestellt IP-Adresse, 4 Bytes
  • Feld 5: Die Benutzer-ID-Schnur, variable Länge, hat mit einer Null (0x00) geendet

SOCKE-Server dem SOCKE-Kunden:

  • Feld 1: ungültiges Byte
  • Feld 2: Status, 1 Byte:
  • 0x5a = Bitte hat gewährt
  • 0x5b = Bitte zurückgewiesen oder hat gefehlt
  • 0x5c = hat Bitte gescheitert, weil Kunde identd (oder nicht erreichbar vom Server) nicht führt
  • 0x5d = hat Bitte gescheitert, weil der identd des Kunden die Benutzer-ID-Schnur in der Bitte nicht bestätigen konnte
  • Feld 3: 2 willkürliche Bytes, die ignoriert werden sollten
  • Feld 4: 4 willkürliche Bytes, die ignoriert werden sollten

Das ist eine SOCKS4-Bitte, Fred mit 66.102.7.99:80, die Server-Antworten mit, "OK", zu verbinden.

  • Kunde: 0x04 0x01 0x00 0x50 0x42 0x66 0x07 0x63 0x46 0x72 0x65 0x64 0x00
  • Das letzte Feld ist 'Fred' in ASCII, der von einem ungültigen Byte gefolgt ist.
  • Server: 0x00 0x5a 0xXX 0xXX 0xXX 0xXX 0xXX 0xXX
  • 0xXX kann jeder Byte-Wert sein. Das SOCKS4 Protokoll gibt an, dass die Werte dieser Bytes ignoriert werden sollten.

Von diesem Punkt auf irgendwelchen Daten, die vom SOCKE-Kunden an die SOCKEN gesandt sind, wird der Server zu 66.102.7.99 und umgekehrt weitergegeben.

Das Befehl-Feld kann 0x01 dafür sein "stehen in Verbindung", oder 0x02 dafür "binden". "binden Sie" erlaubt eingehende Verbindungen für Protokolle wie aktiver FTP.

SOCKS4a

SOCKS4a ist eine einfache Erweiterung auf das SOCKS4 Protokoll, das einem Kunden erlaubt, der den Bestimmungsort-Gastgeber-Domainnamen nicht auflösen kann, um es anzugeben.

Der Kunde sollte die ersten drei Bytes von DSTIP zum UNGÜLTIGEN und das letzte Byte zu einem Nichtnullwert setzen. (Das entspricht IP-Adresse 0.0.0.x, mit der x Nichtnull, einer unzulässigen Bestimmungsort-Adresse und sollte so nie vorkommen, wenn der Kunde den Domainnamen auflösen kann.) Im Anschluss an das UNGÜLTIGE Byte, das USERID begrenzt, muss der Kunde den Bestimmungsort-Domainnamen senden und es mit einem anderen UNGÜLTIGEN Byte begrenzen. Das wird verwendet, sowohl für "in Verbindung stehen" als auch "binden" Bitten.

Kunde zum SOCKE-Server:

Feld 1: SOCKE-Versionsnummer, 1 Byte, muss 0x04 für diese Version seinFeld 2: Befehlen Sie Code, 1 Byte:0x01 = stellen eine TCP/IP Strom-Verbindung her0x02 = gründen einen TCP/IP Hafen, der bindetFeld 3: Netzbyte bestellt Hafen-Zahl, 2 Bytes
  • Feld 4: Überlegen Sie ungültige IP-Adresse, 4 Bytes, zuerst drei müssen 0x00 sein, und der letzte muss nicht 0x00 sein
Feld 5: Die Benutzer-ID-Schnur, variable Länge, hat mit einer Null (0x00) geendet
  • Feld 6: Der Domainname des Gastgebers wollen wir uns, variable Länge in Verbindung setzen, die mit einer Null (0x00) begrenzt ist

Server dem SOCKE-Kunden:

Feld 1: ungültiges ByteFeld 2: Status, 1 Byte:0x5a = Bitte hat gewährt0x5b = Bitte zurückgewiesen oder hat gefehlt0x5c = hat Bitte gescheitert, weil Kunde identd (oder nicht erreichbar vom Server) nicht führt0x5d = hat Bitte gescheitert, weil der identd des Kunden die Benutzer-ID-Schnur in der Bitte nicht bestätigen konnteFeld 3: Netzbyte bestellt Hafen-Zahl, 2 BytesFeld 4: Netzbyte bestellt IP-Adresse, 4 Bytes

Ein Server mit dem Protokoll SOCKS4A muss den DSTIP im Bitte-Paket überprüfen. Wenn es Adresse 0.0.0.x mit der Nichtnull x vertritt, muss der Server im Domainnamen lesen, dass der Kunde das Paket einsendet. Der Server sollte den Domainnamen auflösen und Verbindung zum Bestimmungsort-Gastgeber machen, wenn es kann.

SOCKS5

Das SOCKS5 Protokoll wird RFC 1928 definiert. Es ist eine Erweiterung des SOCKS4 Protokolls. Es bietet mehr Wahlen der Beglaubigung an, fügt Unterstützung für IPv6 und UDP hinzu, der für DNS lookups verwendet werden kann. Der anfängliche Händedruck besteht jetzt aus dem folgenden:

  • Kunde verbindet und sendet einen Gruß, der eine Liste von unterstützten Beglaubigungsmethoden einschließt.
  • Server wählt einen (oder sendet eine Misserfolg-Antwort, wenn keine der angebotenen Methoden annehmbar ist).
  • Mehrere Nachrichten können jetzt zwischen dem Kunden und dem Server abhängig von der gewählten Beglaubigungsmethode gehen.
  • Kunde sendet eine SOCKS4 ähnliche Verbindungsbitte.
  • Server antwortet ähnlich SOCKS4.

Die unterstützten Beglaubigungsmethoden werden wie folgt numeriert:

  • 0x00: Keine Beglaubigung
  • 0x01: GSSAPI
  • 0x02: Benutzername/Kennwort
  • 0x03-0x7F: Methoden, die durch IANA zugeteilt sind
  • 0x80-0xFE: Methoden, die für den privaten Gebrauch vorbestellt sind

Der anfängliche Gruß vom Kunden ist

  • Feld 1: SOCKE-Versionsnummer (muss 0x05 für diese Version sein)
  • Feld 2: Zahl von Beglaubigungsmethoden unterstützt, 1 Byte
  • Feld 3: Beglaubigungsmethoden, variable Länge, hat 1 Byte pro Methode unterstützt

Die Wahl des Servers wird mitgeteilt:

  • Feld 1: SOCKE-Version, 1 Byte (0x05 für diese Version)
  • Feld 2: Gewählte Beglaubigungsmethode, 1 Byte, oder 0xFF, wenn keine annehmbaren Methoden angeboten wurden

Die nachfolgende Beglaubigung ist von der Methode abhängig. Benutzername- und Kennwort-Beglaubigung (Methode 0x02) wird RFC 1929 beschrieben:

Für die Beglaubigung des Benutzernamens/Kennwortes ist die Beglaubigungsbitte des Kunden

  • Feld 1: Versionsnummer, 1 Byte (muss 0x01 sein)
  • Feld 2: Benutzername-Länge, 1 Byte
  • Feld 3: Benutzername
  • Feld 4: Kennwort-Länge, 1 Byte
  • Feld 5: Kennwort

Server-Antwort für die Beglaubigung des Benutzernamens/Kennwortes:

  • Feld 1: Version, 1 Byte
  • Feld 2: Statuskennzeichen, 1 Byte.
  • 0x00 = Erfolg
  • jeder andere Wert = Misserfolg, Verbindung muss geschlossen werden

Die Verbindungsbitte des Kunden ist

  • Feld 1: SOCKE-Versionsnummer, 1 Byte (muss 0x05 für diese Version sein)
Feld 2: Befehlen Sie Code, 1 Byte:0x01 = stellen eine TCP/IP Strom-Verbindung her0x02 = gründen einen TCP/IP Hafen, der bindet
  • 0x03 = vereinigen einen UDP Hafen
  • Feld 3: Vorbestellt, muss 0x00 sein
  • Feld 4: Adresstyp, 1 Byte:
  • 0x01 = IPv4 richten
  • 0x03 = Domainname
  • 0x04 = IPv6 richten
  • Feld 5: Bestimmungsort-Adresse von
  • 4 Bytes für IPv4 richten
  • 1 Byte der Namenlänge, die vom Namen für den Domainnamen gefolgt ist
  • 16 Bytes für IPv6 richten
  • Feld 6: Hafen-Zahl in einer Netzbyte-Ordnung, 2 Bytes

Server-Antwort:

  • Feld 1: SOCKE-Protokoll-Version, 1 Byte (0x05 für diese Version)
Feld 2: Status, 1 Byte:
  • 0x00 = Bitte hat gewährt
  • 0x01 = allgemeiner Misserfolg
  • 0x02 = Verbindung, die nicht durch ruleset erlaubt ist
  • 0x03 = Netz unerreichbarer
  • 0x04 = veranstalten unerreichbaren
  • 0x05 = durch den Bestimmungsort verweigerte Verbindung veranstalten
  • 0x06 = TTL abgelaufener
  • 0x07 = Befehl nicht unterstützt / Protokoll-Fehler
  • 0x08 = richten Typ nicht unterstützter
Feld 3: Vorbestellt, muss 0x00 seinFeld 4: Adresstyp, 1 Byte:0x01 = IPv4 richten0x03 = Domainname0x04 = IPv6 richtenFeld 5: Bestimmungsort-Adresse von4 Bytes für IPv4 richten1 Byte der Namenlänge, die vom Namen für den Domainnamen gefolgt ist16 Bytes für IPv6 richten
  • Feld 6: Netzbyte bestellt Hafen-Zahl, 2 Bytes

Software

SOCKE-Server

  • Dante ist ein SOCKE-Server des Stromkreis-Niveaus, der verwendet werden kann, um günstige und sichere Netzkonnektivität zur Verfügung zu stellen, nur die Läufe des Gastgebers Dante verlangend, auf, Außennetzkonnektivität zu haben.
  • OpenSSH erlaubt dynamische Entwicklung von Tunnels, die über eine Teilmenge des SOCKE-Protokolls angegeben sind, den VERBINDEN Befehl unterstützend.
  • PuTTY ist ein Win32 SSH Kunde, der lokale Entwicklung von SOCKEN (dynamische) Tunnels durch entfernte SSH Server unterstützt.
  • Javanischer Sonne-Systemwebproxyserver ist ein versteckender Proxyserver, der auf Solaris, Linux und Windows-Servern läuft, der HTTPS, NSAPI Eingabe/Ausgabe-Filter, dynamische Wiederkonfiguration, SOCKSv5 und Rückvertretung unterstützt.
  • WinGate ist ein Mehrprotokoll-Proxyserver und SOCKE-Server für Windows von Microsoft.
  • SS5 SS5 ist ein Socke-Server, der die SOCKEN v4 und v5 Protokoll durchführt.
  • Felsturm-Felsturm ist ein SOCKE-Server, der einen Kunden vor seinem Bestimmungsort verbirgt.

SOCKE-Kunden

Kundensoftware muss heimische SOCKE-Unterstützung haben, um durch SOCKEN in Verbindung zu stehen. Es gibt Programme, die erlauben, diese Beschränkung zu überlisten:

Proxifiers

  • Vergleich von proxifiers

Das Übersetzen von Vertretungen

  • Polipo, ein schneller, leichter, nachschickender und versteckender Proxyserver mit der IPv6-Unterstützung. Der SOCKS4 und die SOCKS5 Protokolle sprechend, wird es empfohlen, zusammen mit dem FELSTURM anonymising Netz verwendet zu werden. Polipo ist eine Webvertretung, die HTTP 1.1 pipelining tut so, so kann es die Nachrichtenlatenz oder Zeitabstand des FELSTURMES erhöhen. Open Source, das auf GNU/Linux, OpenWrt, Windows, Mac OS X und FreeBSD läuft. Fast jeder WWW-Browser kann es verwenden.
  • Privoxy
  • socat

Außenverbindungen


Die Asche von Angela / Der Fluss Hutt (Neuseeland)
Impressum & Datenschutz