Einzelnen Beitrag anzeigen

Assarbad
(Gast)

n/a Beiträge
 
#4

Re: Was macht GINA.DLL, MSGINA.DLL

  Alt 31. Aug 2003, 13:10
Es gibt keine GINA.DLL auf einer Standardinstallation. Dort heißt sie immer MSGINA.DLL. Übliche Methoden diese DLL zu ersetzen sind:
1. Registryeintrag ändern und auf eigene GINA zugreifen lassen
2. MSGINA umbenennen und selber als MSGINA.DLL reinkopieren (kann Konflikte mit der SFC/WFP geben)

Die GINA macht alles was mit der Authentifizierung eines Benutzers zusammenhängt. Dazu zählt als sichtbarste Maßnahme der Logon-Bildschirm mit der Logonbox, welche in der sogenannten SAS (Secure Attention Sequence) laufen. Dazu zählt im übrigen auch der "Bildschirm" der erscheint, wenn man Strg+Alt+Entf drückt. Genau das ist auch der Grund, warum man beispielsweise die GINA ersetzen kann um Strg+Alt+Entf zu unterdrücken, aber ohne einen Tastaturfiltertreiber schreiben zu müssen.
Es gibt diverse Produkte und auch Delphi-Komponenten die sich dieser Methode bedienen. Man sollte allerdings bmerken, daß in allen Fällen Admin-Rechte notwendig sind um eine solche Änderung vorzunehmen.

Die GINA erstellt beim Einloggen eines Benutzers eine sog. LogonSession (hat weder was mit dem Desktop noch der WindowStation direkt zu tun). Eine LogonSession ist etwas imaginäres, was durch ein Token quasi materialisiert. Will heißen durch das Token eines eingeloggten Benutzers (jeder Prozeß und diverse andere Projekte besitzen dieses Token) wird der Benutzer identifiziert sobald er sich einmal eingeloggt hat (will heißen bei einem Zugriff auf eine Ressource muß nicht erneut nach dem Paßwort gefragt werden, sondern das Token symbolisiert den Benutzer).

Ich habe ausdrücklich Wert auf die leichte Verständlichkeit, statt an allen Stellen korrekter Begriffe, gelegt. Also bitte dahingehend Kritik verkneifen.

Hier noch einmal was im PSDK zu dem Thema steht. Außerdem empfehle ich, fall du dich mit dem Thema ernsthaft auseinandersetzen willst, das Buch "Programming Windows Security" von Keith Brown.

Zitat von Microsoft:
A GINA DLL has the following responsibilities:

SAS monitoring
The GINA is responsible for recognizing a secure attention sequence (SAS), monitoring for SAS events, and notifying Winlogon when an SAS has occurred. Note that there can be more than one SAS defined, and the set of defined SASs can change over time. For example, there can be one set of SASs when Winlogon is in the logged-off state and another set when it is in the logged-on state.

Winlogon provides services to assist the GINA in using the CTRL+ALT+DEL SAS.

SAS processing
One reason for modularizing Winlogon and making the GINA replaceable is to provide alternative identification and authentication mechanisms. To do this, the GINA must present all user interfaces resulting from the recognition of an SAS. When no user is logged on, the GINA is responsible for presenting identification and authentication options as well as any other permissible options that are not authenticated. When a user is logged on, the GINA is responsible for presenting the relevant options to the user as well as taking whatever actions are deemed appropriate. For example, in a system that includes a smart card, it may be appropriate to automatically lock the workstation if the user removes the smart card.

Shell activation
When a user logs on, the GINA is responsible for creating one or more initial processes for that user. (In this documentation, it is assumed that these initial processes present an interface to the user. However, the processes can actually be any processes and do not necessarily have to interact with the user.) These processes are referred to as the user shell or just the shell. As part of shell activation, the GINA must assign the newly logged-on user's token to the processes. Winlogon provides a service to assist the GINA in assigning the token.
  Mit Zitat antworten Zitat