Startseite
Impressum
Skills
Referenzen
pfeil Produkte
Links
pfeil Tips
Benutzerverwaltung 1
Benutzerverwaltung 2
Das ideale Paßwort
Datum und SQL-DB
DSL-Probleme
Dr. Watson Teil 1
Dr. Watson Teil 2
DTS Automatisierung
Installation autom.
Kalender und Zeit
Mail Automatisierung
Office Automation
Stack Frame
SQL Server
Strings + Unicode
VB 6 Tips & Tricks
Windows-Uhrzeit

 

Drucker - freundliche Darstellung


  zalando.de - Schuhe und Fashion online

 

Letzte Aktualisierung: 04.01.2023



Windows Benutzerverwaltung, Teil 1

Die Benutzerverwaltung von Microsoft Windows ist ein recht kompliziertes System; ich habe in den letzten Jahren sehr viele Anfragen dazu erhalten, und dabei entstand die Idee, die Grundlagen zur "Windows Security" einmal einfach und verständlich darzustellen.

Dieser erste Teil behandelt die Grundlagen der Benutzerverwaltung.

Einführung in die Benutzerverwaltung

Buchtips

Einige Links zum Thema

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.

Buchtips

"Windows Internals" von Solomon / Russinovich ist der Klassiker, um die Interna von Windows zu verstehen. Der Windows - Sicherheit ist ein eigenes Kapitel gewidmet, aus dem ich viele Anregungen für diesen Artikel erhalten habe. Solomon / Russinovich sind absolute Experten auf dem Gebiet der Windows - Betriebssysteme, sie haben unter anderem die Webseiten www.sysinternals.com und www.winternals.com erschaffen, wo es etliche Tools gibt, mit denen man dem Betriebssystem unter die Haube schauen kann.

Informationen zum Buch



"Taschenratgeber: Windows Vista" Diese Bücher sind der praktische Ratgeber für die tägliche Arbeit von Netzwerkadministratoren in kleinen, mittleren und großen Unternehmen. Ideal für den Arbeitsplatz oder den Einsatz unterwegs, denn diese Bücher zeigen Ihnen sofort die Antworten auf Fragen in den verschiedensten Situationen der Windows Vista - Administration und des Supports. Aber auch Windows - Poweruser können von diesem Buch profitieren. Übersichtliche Tabellen, Listen, Befehle und zahllose Schritt-für-Schritt-Anleitungen zeichnen diese Bücher aus: kurz, klar, präzise.

"Windows Befehle - kurz & gut" von Aeleen Frisch enthält praktisch alle Kommandozeilenbefehle, die man unter Windows zur Verfügung hat. Angefangen von den klassischen DOS - Befehlen über die Active Directory Konfiguration bis zur Prozeß- und Threadverwaltung ist alles drin, was das Herz des Skript - Programmierers begehrt.

Kleines, wertvolles Taschenbuch für 13 Euro: ein Muß für jeden Windows - Administrator.

Links

Ein kleines Tool, mit dem man sich die wichtigsten Informationen zu einem Benutzer - Account anzeigen lassen kann, findet man unter Produkte / AccountCheck

Eine schöne Artikelserie in Englisch, die erst zwei Jahre nach diesem Artikel entstand, aber sehr lesenswert ist: http://www.codeproject.com/KB/winsdk/accessctrl1.aspx

Das, was hier beschrieben wurde, gibt es in recht technischem englisch und nicht ganz so ausführlich auch bei Microsoft offiziell nachzulesen:

MSDN Security Portal

Support, Feedback, Anregungen

Alles verstanden ? Oder noch Fragen ? Wir freuen uns über Feedback zu den Tips, auch über Verbesserungsvorschläge. Schreiben Sie an support@a-m-i.de.