Winlogon (Windows Logon) is the component of Microsoft Windows operating systems that is responsible for handling the secure attention sequence, loading the user profile on logon, creates the desktops for the window station, and optionally locking the computer when a screensaver is running (requiring another authentication step). In Windows Vista and later operating systems, the roles and responsibilities of Winlogon have changed significantly.

Overview 

Winlogon is launched by the Session Manager Subsystem as a part of the booting process of Windows NT.

Before Windows Vista, Winlogon was responsible for starting the Service Control Manager and the Local Security Authority Subsystem Service, but since Vista these have been launched by the Windows Startup Application (wininit.exe).

The first part of the logon process Winlogon conducts is starting the process that shows the user the logon screen. Before Windows Vista this was done by GINA, but starting with Vista this is done by LogonUI. These programs are responsible for getting user credential and passing them to the Local Security Authority Subsystem Service, which authenticates the user.

After control is given back to Winlogon, it creates and opens an interactive window station, WinSta0, and creates three desktops, Winlogon, Default and ScreenSaver. Winlogon switches from the Winlogon desktop to the Default desktop when the shell indicates that it is ready to display something for the user, or after thirty seconds, whichever comes first.

The system switches back to the Winlogon desktop if the user presses Control-Alt-Delete or when a User Account Control prompt is shown. Winlogon now starts the program specified in the Userinit value which defaults to userinit.exe. This value supports multiple executables.

Responsibilities 
 Window station and desktop protection
 Winlogon sets the protection of the window station and corresponding desktops to ensure that each is properly accessible. In general, this means that the local system will have full access to these objects and that an interactively logged-on user will have read access to the window station object and full access to the application desktop object.

 Standard SAS recognition
 Winlogon has special hooks into the User32 server that allow it to monitor Control-Alt-Delete secure attention sequence (SAS) events. Winlogon makes this SAS event information available to GINAs/credential providers to use as their SAS, or as part of their SAS. In general, GINAs should monitor SASs on their own; however, any GINA that has the standard ++ SAS as one of the SASs it recognizes should use the Winlogon support provided for this purpose.

 SAS routine dispatching
 When Winlogon encounters a SAS event or when a SAS is delivered to Winlogon by the GINA, Winlogon sets the state accordingly, changes to the Winlogon desktop, and calls one of the SAS processing functions of the GINA.

 User profile loading
 When users log on, their user profiles are loaded into the registry. In this way, the processes of the user can use the special registry key HKEY_CURRENT_USER. Winlogon does this automatically after a successful logon but before activation of the shell for the newly logged-on user.

 Assignment of security to user shell
 When a user logs on, the GINA is responsible for creating one or more initial processes for that user. Winlogon provides a support function for the GINA to apply the security of the newly logged-on user to these processes. However, the preferred way to do this is for the GINA to call the Windows function CreateProcessAsUser, and let the system provide the service.

 Screen saver control
 Winlogon monitors keyboard and mouse activity to determine when to activate screen savers. After the screen saver is activated, Winlogon continues to monitor keyboard and mouse activity to determine when to terminate the screen saver. If the screen saver is marked as secure, Winlogon treats the workstation as locked. When there is mouse or keyboard activity, Winlogon invokes the WlxDisplayLockedNotice function of the GINA and locked workstation behavior resumes. If the screen saver is not secure, any keyboard or mouse activity terminates the screen saver without notification to the GINA.

 Multiple network provider support
 Multiple networks installed on a Windows system can be included in the authentication process and in password-updating operations. This inclusion lets additional networks gather identification and authentication information all at once during normal logon, using the secure desktop of Winlogon. Some of the parameters required in the Winlogon services available to GINAs explicitly support these additional network providers.

Vulnerabilities 
Winlogon is a common target for several threats that could modify its function and memory usage. Winlogon has support for plugins that get loaded and notified about specific events. Some rootkits bundle Winlogon plugins because they are loaded before any user logs in. Some registry keys allow multiple values to be supplied that allow a malicious program to be executed at the same time as a legitimate system file.

See also
List of Microsoft Windows components
Architecture of the Windows NT operating system line
Vundo, a trojan that attaches itself to winlogon.exe
 getty, a similar process in UNIX
In the Windows XP Source code leak in September 2020, Winlogon was the only piece missing from the source code, rendering the leaked operating system incomplete.

References

External links
Customizing GINA - Part 1, Developer tutorial for writing a custom GINA
Customizing GINA - Part 2, Developer tutorial for writing a custom GINA
MSKB:193361 MSGINA.DLL does not Reset WINLOGON Structure
Windows Vista and Windows Server 2008:  Understanding, Enhancing and Extending Security End-to-end — Microsoft PowerPoint presentation that includes information on changes to Winlogon in Windows Vista and Windows Server 2008

Windows components
Computer security software
윈로그온(Winlogon)은 SAS를 다루고, 로그온 시 사용자 프로필을 로드하며, 화면 보호기가 실행중일 시에 컴퓨터를 잠그는 역할을 하는 마이크로소프트 윈도우 운영 체제의 구성 요소이다. 사용자 정보에 대한 실제 확인과 입수는 다른 구성 요소가 한다. 윈로그온은 자신의 함수와 메모리를 조작하는 여러 위협들의 흔한 목표가 된다.  이 프로세스의 메모리 사용이 증가한 경우 "하이재킹"되었을 가능성이 있다. 윈도우 비스타 이후로 윈로그온의 역할과 책임은 상당히 바뀌게 된다.

개요 
윈로그온은 인증 정책과 독립적인 인터페이스 함수들을 다룬다. 이것은 윈도우 스테이션을 위해 데스크톱을 생성하고, 타임아웃 과정을 구현하며, 윈도우 비스타 버전 이전에는 GINA를 위한 지원 함수를 제공하고, 머신의 설정과 사용자의 그룹 정책에 대한 책임을 가졌다.

윈로그온은 또한 윈도우 XP 버전 이후로는 이 윈도우가 합법적인 라이선스를 가졌는지도 확인한다.

윈로그온은 아래와 같은 책임을 진다.
 윈도우 스테이션과 데스크톱 보호
 윈로그온은 각각이 적절하게 접근 가능한지를 보장함으로써 윈도우 스테이션과 상응하는 데스크톱들에 대한 보호를 세팅한다. 대개 이것은 로컬 시스템이 객체들에 대해 모든 권한을 가질 것이고, 로그온한 사용자는 윈도우 스테이션 객체에 대한 읽기 권한과 애플리케이션 데스크톱 객체에 대한 모든 권한을 가질 것이라는 것을 의미한다.
 표준 SAS 인식
 윈로그온은 Control-Alt-Delete secure attention sequence (SAS) 이벤트를 감시할 수 있게 해주는 User32 서버에 대한 특별한 훅(hook)을 가진다. 윈로그온은 이 SAS 이벤트 정보를 GINA가 자신의 SAS로서 사용 가능하게 만들어 준다. 대개 GINA는 자신의 SAS를 감시해야 하지만, 표준++ SAS의 경우 윈로그온의 지원을 통해 자신의 것으로 인식한다.
 SAS 루틴 디스패칭
 윈로그온이 SAS 이벤트에 직면하거나 GINA에 의해 SAS가 배달될 경우, 윈로그온은 상황에 맞는 세팅을 하고, 윈로그온 데스크탑으로 바꾸며, GINA의 SAS 처리 함수 중 하나를 호출한다.
 사용자 프로필 로딩
 사용자가 로그온을 하면, 자신의 사용자 프로필은 레지스트리로 로드된다. 이렇게 하여, 사용자의 프로세스들은 HKEY_CURRENT_USER라고 하는 특별한 레지스트리 키를 사용할 수 있게된다. 윈로그온은 이 과정을 로그온 성공 이후로 (하지만 로그온한 사용자의 셸이 활성화되기 전에) 자동으로 수행한다.
 사용자 셸에 대한 보안 할당
 사용자가 로그온을 하면, GINA는 하나 또는 그 이상의 사용자 초기 프로세스를 생성할 책임이 있다. 윈로그온은 GINA를 위한 지원 함수를 제공하여 로그온한 사용자의 보안을 이 프로세스들에게 적용되게 한다. 그러나 이것을 하는 우선적인 방법은 GINA에게 CreateProcessAsUser 함수를 호출하여 시스템에게 서비스를 제공하는 것이다.
 화면 보호기 제어
 윈로그온은 키보드와 마우스의 활동을 감시하여 화면 보호기를 활성화 할지를 결정한다. 화면 보호기가 활성화 된 이후, 윈로그온은 키보드와 마우스의 활동을 계속 감시해서 화면 보호기를 종료할지를 결정한다. 만약 화면 보호기가 보안으로 표시된 경우, 윈로그온은 워크스테이션이 잠긴것으로 치부한다. 이 때 키보드나 마우스가 움직인다면 윈로그온은 GINA의 WlxDisplayLockedNotice 함수를 호출하고 잠긴 워크스테이션을 다시 시작한다. 만약 화면 보호기가 보안 설정이 되어있지 않다면 GINA에 대한 통보 없이 화면 보호기는 종료된다.
 복합 네트워크 제공자 지원
 윈도우 시스템에 설치된 복합 네트워크는 인증 프로세스에 포함될 수 있다. 이 포함은 윈로그온의 보안 데스크톱을 사용함으로써 추가적인 네트워크들에게 식별과 인증 정보를 보통의 로그온 과정에서 한번에 모을 수 있게 한다. 윈로그온 서비스 중에 요구되는 몇몇 파라미터들은 GINA가 분명하게 이 추가적인 네트워크 제공자들을 지원할 수 있게 해준다.

같이 보기 
 마이크로소프트 윈도우 구성 요소 목록
 윈도우 NT 아키텍처

외부 링크 
 Customizing GINA - Part 1, Developer tutorial for writing a custom GINA
 Customizing GINA - Part 2, Developer tutorial for writing a custom GINA
 MSKB:193361 MSGINA.DLL does not Reset WINLOGON Structure
 Windows Vista and Windows Server 2008:  Understanding, Enhancing and Extending Security End-to-end — Microsoft PowerPoint presentation that includes information on changes to Winlogon in Windows Vista and Windows Server 2008

윈도우 구성 요소