Ident
Ident ist ein Netzwerkprotokoll, mit dem ein Server feststellen kann, welcher Benutzer eines Mehrbenutzersystems eine bestimmte TCP-Verbindung geöffnet hat. Ident verwendet dazu das Transmission Control Protocol auf Port 113 und ist im RFC 1413 festgelegt.
Identd | |||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Einsatzgebiet: | Kommunikation | ||||||||||||||||||||||||
Port: | 113/TCP | ||||||||||||||||||||||||
| |||||||||||||||||||||||||
Standards: | RFC 1413 (1993) |
Ident-Nachrichten bestehen stets aus einer Zeile von ASCII-Text, die durch einen Zeilenumbruch mit den Zeichen <CR><LF> abgeschlossen wird.
Eine Anfrage ist dabei wie folgt aufgebaut:
<Port auf dem Zielsystem>, <Lokaler Port>
Gültige Antworten wiederholen die Anfrage und haben eine der folgenden Formen:
<Port auf dem Zielsystem>, <Lokaler Port> : USERID : <Betriebssystem> : <Benutzername> <Port auf dem Zielsystem>, <Lokaler Port> : ERROR : <Fehlermeldung>
Einsatzgebiete des Ident-Protokolls sind zum Beispiel
- Simple Mail Transfer Protocol: Wird bei der Annahme einer Mail eine Ident-Anfrage an das Sendersystem gestellt und die Ident-Antwort in die Kopfzeilen der E-Mail aufgenommen, so ist der Betreiber des Sendersystems in der Lage, gefälschte Mails später seinen Benutzern zuzuordnen
- Internet Relay Chat: Hier ermöglicht es beispielsweise dem Channel Operator, statt eines ganzen Hosts nur einen einzelnen Benutzer von der Diskussion auszuschließen
Beispiel-Szenario
Aufbau einer SMTP-Verbindung
Ein Benutzer „tei“ am Client-Computer 10.10.10.10 baut mit einem beliebigen Client-Port 31010 eine Verbindung zum SMTP-Server 10.20.20.20:25 auf.
Jede TCP-Verbindung lässt sich aus dem Quadrupel Source-IP, Source-Port, Destination-IP, Destination-Port eindeutig identifizieren. Für diese SMTP-Verbindung lauten die Daten:
Eigenschaften der SMTP-Verbindung | ||
---|---|---|
IP-Adresse | Port | |
Source | 10.10.10.10 | 31010 |
Destination | 10.20.20.20 | 25 |
Ident-Lookup
Um die richtige Verbindung zu finden und einem Benutzer zuordnen zu können, benötigt der Identd das entsprechende Quadrupel aus IPs und Ports.
Der Ident-Client (in diesem Fall z. B. der SMTP-Daemon) baut nun eine Verbindung von der Destination-IP der SMTP-Verbindung (10.20.20.20) mit einem beliebigen Source-Port (z. B. 42020) eine Verbindung zur Source-IP der SMTP Verbindung auf den Well-known Port des Identd auf (Port 113). Damit kennt der Identd zwei der vier Eigenschaften der TCP Verbindung, zu welcher er Auskunft geben soll: Die Source- und Destination-IP.
Damit der Identd die Verbindung eindeutig identifizieren kann, muss der Ident-Client nun noch den Source- und Destination-Port der SMTP-Verbindung mitteilen. Er schickt dem Ident-Server dazu die Ports der SMTP-Verbindung:
31010, 25
Der Ident-Daemon sucht mittels einer Schnittstelle zum TCP/IP-Stack des Betriebssystems nach der Verbindung und deren Benutzer mit dem entsprechenden IP und Port Quadrupel. Der Ident-Daemon antwortet dann mit der Betriebssystemkennung seines Servers, z. B. „UNIX“, und dem Benutzernamen des Besitzers der TCP-Verbindung, „tei“:
31010, 25 : USERID : UNIX : tei
Die Ident-Verbindung wird geschlossen. Der SMTP-Daemon kennt nun den Namen des Benutzers der die SMTP-Verbindung aufgebaut hat und kann diese Information z. B. im E-Mail-Header hinterlegen.