Sinn und Unsinn des identd

Ein identd läuft meistens auf Maschinen so, daß nur der Systembetreiber diesen einrichten kann, sodaß eine gewisse Vertrauenswürdigkeit des identd vorliegt (Gegen Hacker ist eh' kein Kraut gewachsen...), so daß eine Verwendung des identd mit einem gewissen positiven reellen Prozentsatz sinnvoll erscheinen mag.

Was macht nun der identd?

Jeder Rechner im InterNet ist wie jedes Telefon im Telefonnetz über eine eineindeutige Nummer erreichbar. Diese sogenannte IP-Nummer reicht aber bei Multitasking-Systemen nicht aus, den Gesprächs(partner)prozeß genau zu adressieren, schließlich können ja mehrere Kommunikationsprozesse auf dem gleichen Rechner laufen. Deswegen verwaltet jeder Rechner im InterNet seine Kommunikationsschnittstellen noch einmal extra und nummeriert diese durch. Das ist etwa so, wie die CB-Funkkanäle, nur daß eine Mehrfachbenutzung nicht sonderlich sinnvoll ist. Die Durchnummerierung heißt Portnummer. Die Nummern <1024 können nur von einer vertrauenswürdigen Person (dem SysAdmin) vergeben werden. So liegen dann auch alle Grundlegenden Funktionen auf diesen Systemports.

Auf einem dieser Ports kann ein identd laufen, er muß also von einer vertrauenswürdigen Person, dem SysAdmin des Rechners, installiert worden sein.

Besteht eine Verbindung, so kennen beide Kommunikationspartner das jeweils eigene und gegenüberliegende eindeutige Paar aud IP-Nummer und Port-Nummer, das den Kommunikations-Kanal vollständig spezifiziert.

Welche Person ist aber nun an der Gegenstelle der die Kommunikation anfordernde Betreiber des Prozesses? Nun, genau das sagt einem der identd.

Wozu braucht mensch diese Angabe? In den Logfiles des abgefragten Systems, kann die Antwort des identd mit aufgeschrieben werden, so daß bei Problemen der SysAdmin des entsprechenden Systems aufgefordert werden kann, sich doch mal mit der entsprechenden Pappnase auseinanderzusetzen.

Was ist, wenn der SysAdmin den identd nicht unter Kontrolle hat, oder gar selbst der Problembereiter ist? Nun, kann der SysAdmin mittels des identd Auszuges keine wirksamen Aktionen auslösen, greift mensch auf den SysAdmin wegen Fahrlässigkeit oder Absicht zurück... Nur versagt das ganze Konzept bei Maschinen, die keinen technisch über dem User stehenden SysAdmin haben (i.e. Einbenutzersysteme). Auf diesen ist de facto jeder sein eigener Sysop.

Die Folgerung daraus ist in RFC1413 eindeutig beschrieben:

6. Security Considerations

The information returned by this protocol is at most as trustworthy as the host providing it OR the organization operating the host. For example, a PC in an open lab has few if any controls on it to prevent a user from having this protocol return any identifier the user wants. Likewise, if the host has been compromised the information returned may be completely erroneous and misleading.

The Identification Protocol is not intended as an authorization or access control protocol. At best, it provides some additional auditing information with respect to TCP connections. At worst, it can provide misleading, incorrect, or maliciously incorrect information.

The use of the information returned by this protocol for other than auditing is strongly discouraged. Specifically, using Identification Protocol information to make access control decisions - either as the primary method (i.e., no other checks) or as an adjunct to other methods may result in a weakening of normal host security.

(Als der erste ircd mit ident-Abfrage erschien und von verschiedener Seite angedroht wurde, Hosts ohne ident-Identifikation abzulehnen, war meine erste Reaktion darauf, einen fake-identd in ircle einzubauen. Diese Notwehr hat sich dann als nicht notwendig erwiesen und daher ist die entsprechende Funktionalität auch nicht drin, ließe sich bei Bedarf aber durchaus nachrüsten...) [Olaf]

Mitgeholfen haben Lutz Donnerhacke und Olaf Titz


© Joey, 01 Jun 95