Einführung in die Benutzerverwaltung
Eins möchte ich gleich klarstellen: Alles, was im Folgenden erwähnt wird, bezieht sich auf die Windows -
Systeme NT, 2000, XP und Server 2003. Alles andere (95, 98, Me oder noch älter) hat gar keine "richtige"
Benutzerverwaltung, und das was diese Systeme haben, ist es echt nicht Wert, gesondert erwähnt zu werden.
Sicherheit wird heute zu Recht groß geschrieben. Schon seit vielen Jahren machen sich kluge Köpfe Gedanken
darüber, wie man es erreichen kann, daß auf einem Computersystem nicht jeder alles darf, sondern daß man
für einzelne Objekte (Dateien, Ordner, Drucker, Rechner) Berechtigungen erteilen kann, so daß ein
kontrollierter Zugang zu diesen Objekten möglich ist.
Während man sich für den privaten Bereich zuerst mal schlecht vorstellen kann, was der ganze Aufwand denn
soll, so sieht man doch schnell ein, daß in großen Firmen oder Behörden, in denen alle Rechner miteinander
vernetzt sind, sehr wohl Maßnahmen erforderlich sind, daß nicht jeder alles darf. Schon alleine aus
datenschutzrechtlichen Gründen, welche gesetzlich verankert sind, ist dies notwendig.
Um also einzelne Objekte gezielt schützen zu können, besteht der erste Schritt darin, daß der Rechner Wissen
muß, wer denn gerade einen Zugriff versucht. Dies setzt voraus, daß sich jeder, der interaktiv an einem PC
etwas tun möchte, vorher am PC anmelden muß, das heißt, er gibt seinen Benutzernamen dabei an. In aller Regel
muß man dabei auch ein geheimes Paßwort angeben, um sicherzustellen, daß man sich nicht als jemand ausgibt, der man
in Wirklichkeit gar nicht ist.
Alle oben genannten Windows - Systeme verlangen zwingend, daß man sich mit Benutzernamen und Paßwort anmeldet.
Es gibt über einen Trick die Möglichkeit, daß die Anmeldung bereits in der System - Registry fest gespeichert ist,
und man den Benutzernamen und das Paßwort nicht bei jedem Start neu eintippen muß; aber selbst dann ist man unter
einem ganz bestimmten Namen angemeldet und identifizierbar.
Exkurs: automatische Anmeldung konfigurieren
Der folgende Registry - Ordner ist relevant:
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Winlogon
Dort gibt es die Einträge "DefaultUserName" (String), "DefaultPassword" (String), und
"AutoAdminLogon" (DWORD). Wenn es sie nicht gibt, kann man sie neu anlegen. Wenn der
AutoAdminLogon auf 1 steht, dann wird mit der angegebenen User/Passwort - Kombination
eine automatische Anmeldung durchgeführt.
|
|
Der Vorgang der Angabe des Benutzernamens und des Paßwortes zum Zweck der Erlangung des Zugangs nennt man
"Authentifizierung". Der Mechanismus im System, der darüber entscheidet, ob eine Authentifizierung erfolgreich
war (zugang erteilt) oder nicht (Zugang gesperrt), benötigt natürlich eine Art Datenbank, welche eine bestimmte
Menge an Benutzern kennt, und natürlich auch deren Paßwörter.
Paßwörter werden jedoch grundsätzlich nicht im Klartext hinterlegt, sonst würde man es bösartigen Angreifern
viel zu leicht machen. Ein Paßwort wird mit einer sogenannten "one-way" Codierungsfunktion übersetzt, und nur
dieses Funktionsergebnis wird gespeichert oder für Vergleiche verwendet. Ich weiß gar nicht, ob diese Codierungs-
funktion öffentlich bekannt ist, oder nicht, aber das ist auch egal: Diese Funktion sorgt dafür, daß das Paßwort
auf eine ganz bestimmte Weise verhackstückt wird, und das Ergebnis hat nichts mehr mit dem Original - Paßwort
zu tun. Der Begriff "one-way" deutet schon an, daß es keinen Weg zurück gibt: Es gibt keine Möglichkeit, aus dem
codierten Paßwort wieder auf das ursprüngliche Paßwort zurückzukommen.
Exkurs: Windows - Paßwörter hacken
Hacker versuchen natürlich, Paßwörter
herauszufinden. Dafür müssen sie zuerst mal an die entsprechende Datenbank rankommen; völlig unmöglich ist es zwar nicht, aber
die Datei ist sehr gut geschützt. Wenn man dann das codierte Paßwort darin gefunden hat, bleibt einem nur, unendlich viele
verschiedene Paßwörter zu generieren, diese durch die Codierungsfunktion zu jagen und zu hoffen, daß das Ergebnis
irgendwann dem entspricht, was man in der Datenbank gefunden hat (die sogenannte brute-force-Methode). Es gibt
Tools, die das können, um ein vergessenes Admin - Paßwort wiederzufinden, oder eben ein anderes Paßwort, das
zufällig dasselbe Ergebnis nach der Codierung bekommt. Je besser das Paßwort ist (also z.B. viele Buchstaben), desto
länger brauchen die Tools auch. Dabei können durchaus Tage vergehen, bis eine Lösung gefunden ist. Ein
Tool für diesen Zweck ist z.B. das Programm "LC4" von @stake.
Viele Tools für verlorengegangene Passwörter, nicht nur für Windows, hat die Firma
LostPassword.com.
|
|
Jedes der oben genannten Windows Systeme bietet eine eigene Benutzerverwaltung an, damit kann man eine
sogenannte "lokale Anmeldung" durchführen. Lokal deshalb, weil sie nur auf dem entsprechenden Rechner gilt.
Es wäre in größeren Unternehmen natürlich fatal, wenn jeder Rechner seine eigene Authentifizierung hätte; wie
sollte dann entschieden werden, ob Herr Meyer auf dem Drucker zwei Stockwerke tiefer auch drucken darf ? Ein
heilloses Durcheinander wäre die Folge. Darum gibt es in Windows schon seit den ersten Anfängen von NT das Konzept
der Domäne: Eine Domäne ist wie ein Zusammenschluß von vielen verschiedenen Ressourcen (z.B. PCs und Drucker), die
sich alle zusammen eine einzige Authentifizierungsdatenbank teilen. Dies setzt dann voraus, daß alle auch einer
zentralen Instanz vertrauen müssen (der sogenannten "Authority"). Es gibt sogar die Möglichkeit, daß eine Domäne
einer anderen vertraut, und dies einseitig oder gegenseitig.
Eine Domäne hat immer auch einen Namen (zum Beispiel "A-M-I.DE"). Wenn man sich an einem Rechner anmeldet, dann
gibt es unter den Feldern für den Benutzer und das Paßwort häufig ein drittes Feld, in dem man angeben kann, an
welcher "Authority" man sich denn anmelden möchte: Entweder lokal (dann steht der Rechnername drin), oder eben
an einer Domäne mit dem entsprechenden Namen. Dazu muß man aber vorher seinen Rechner "in die Domäne eingegliedert"
haben, und dies geht nur, wenn der Administrator der Domäne dies auch erlaubt.
Jetzt habe ich schon erwähnt, welche Benutzerdatenbanken es gibt (lokal oder domänenweit), aber noch nichts über
die Verwaltung und die Technik erläutert.
Die lokale Benutzerdatenbank kann man sehr einfach ansehen, unter Windows NT geht es mit "Programme / Verwaltung /
Benutzermanager", ab Windows 2000 gibt es in der Systemsteuerung einen Ordner "Verwaltung", in dem die
Benutzerverwaltung angesiedelt ist. Dort gibt es auf Serversystemen auch "Active Directory-Benutzer und -Computer",
damit kann man domänenweit Benutzer verwalten. In Windows XP gibt es die Benutzerverwaltung direkt in der
Systemsteuerung.
Die Benutzerverwaltung beinhaltet eine Liste von Einträgen, etwa wie in diesem Schaubild:

Die doppelt gerahmten Elemente sind dabei Einträge für Benutzergruppen, und einzeln gerahmte Elemente sind
einzelne Benutzer.
Jedes dieser Elemente hat eine systemweit eigene Identifikationsnummer, den sogenannten "SID"
(security identifier), der im Bild auch zu sehen ist. Dies wird gemacht, um eine wirklich eindeutige Identifikation
eines Eintrags zu haben, weil zwei Namen auch schonmal gleich sein können (z.B. zwei Peter Meyers in einer Firma).
Einen Eintrag für einen normalen Benutzer nennt man auch einen "account" oder "user account" (account = engl. "Konto").
Exkurs: Aufbau eines SID
Ein SID hat variable Länge, und er ist im obigen Bild etwas verkürzt dargestellt.
Er besteht aus Zahlen, die von Bindestrichen getrennt angezeigt werden. Vorne steht zuerst das "S" als
Prefix, dann folgt eine sogenannte "revision number", in diesem Falle die 1, und ein "identifier authority value",
in diesem Fall die 5, welche für "Windows 2000 security system" steht. Dieser Wert ist sogar 48-bittig. Dahinter
folgt eine variable Anzahl an 32 - Bit Werten, sogenannte "subauthority values", die die SID möglichst einzigartig
machen sollen (in meinem Beispiel sind es zwei Werte, 24 und eine weitere), und ganz am Schluß die letzte Zahl
heißt "RID" (relative identifier). Dieses System ist so ausgeklügelt, daß es praktisch unmöglich ist, daß auf
dieser Welt einmal zwei identische SIDs generiert werden.
|
|
Programmier-Exkurs: Ermitteln eines SID
Mit der API - Funktion "LookupAccountName" kann man durch Eingabe des Rechnernamens
und des Kontonamens den zugehörigen SID ermitteln.
|
|
Die Tatsache, daß es neben den "normalen" Benutzern auch sogenannte Benutzergruppen gibt, erleichtert die
Administration von größeren IT - Systemen. Wenn man sich eine große Firma vorstellt, die etliche Rechner
mit unterschiedlichen Zugangsberechtigungen hat, dann stellt folgende Situation einen immensen Aufwand dar:
Herr Mayer aus der Buchhaltung hat gekündigt, und Herr Schmidt, ein neuer Mitarbeiter, tritt seine Nachfolge an. Wenn man jetzt
unternehmensweit alle Ressourcen, auf die Mayer zugreifen durfte, entsprechend umstellen müßte, wäre man
viele Stunden beschäftigt. Stattdessen verwendet man Benutzergruppen: Die Berechtigung für den Fileserver
mit den Buchhaltungs - Daten wird der Benutzergruppe "Buchhaltung" erteilt. Mayer's account wird jetzt einfach
gelöscht, damit natürlich auch seine Mitgliedschaft in der Benutzergruppe "Buchhaltung", und Schmidt's
account wird der Benutzergruppe "Buchhaltung" zugeordnet. Das war schon alles: Die einzelnen Ressourcen
bekommen von dieser Änderung zuerst mal gar nichts mit, und der Administrator hat mit einem Handgriff seinen
Job erfüllt. Auf diese Weise kann man auch sehr einfach eine gezielte Zugangskontrolle für alle möglichen
Ressourcen erreichen, indem man Benutzergruppen wie etwa "normaler Benutzer", "Vorstandsmitglied",
"Netzwerktechniker" oder "Kantinenpersonal" einrichtet. Selbstverständlich kann jeder account in unbegrenzt
vielen Gruppen Mitglied sein.
Wie das ganze technisch funktioniert, wird im Teil 2 (access control lists)
beschrieben. Außerdem wird
erklärt, was "Privilegien" und "Token" sind, und wie sie verwaltet werden.
|