实现系统安全由如下核心组件和数据库组成:
1.安全引用监视器SRM:Windows执行体中的组件,负责定义代表安全上下文的访问令牌结构体,执行对象的访问检查,操作用户特权,生成任何导致安全审计的消息
2.本地安全授权子系统Lsass:Lsass.exe映像文件的用户模式进程,负责本地系统安全策略(如哪些用户可以允许登陆机器,密码策略,对用户和组的赋予特权,系统安全审计的设置),用户认证,向事件日志发送安全审计消息。本地安全授权服务Lsasrv(Lsasrv.dll)是Lsass加载的一个dll,实现了上述大部分功能
3.Lsass策略数据库:包含本地系统安全策略配置的数据库。该数据库存储于HKLM\SECURITY中。它包含了哪个域可以获得信任并允许登录、哪些用户可以访问权限并且以哪种方式进行访问(交互、网络、服务登录)、哪些用户被分配哪些特权、执行哪种审计。Lsass策略数据库也存储用于缓存域登录的登录信息和Windows服务的用户登录信息。
4.SAM服务(Security Accounts Manager):负责管理包含了定义本地机器的用户名和组的数据库的一系列子例程。SAM服务由\Windows\System32\Samsrv.dll实现,运行与Lsass进程中
5.SAM数据库:包含本地用户名和组账户的密码以及其他属性的数据库,不运行域控制器的功能。域控制器中SAM存储系统的管理员恢复账号定义和密码。SAM数据库存储于HKLM\SAM中
6.活动目录:目录服务包含一个存储域中对象信息的数据库。域是一些计算机以及这些计算机的安全组的集合,这些安全组由一个单独实体管理。活动目录存储了域中对象的信息,包括用户、组和计算机。密码信息和域中用户的特权存储在活动目录中,在域控制器的指派下复制给域中的计算机。活动目录服务端进程由\Windows\System32\Ntdsa.dll实现
7.认证包:包含了运行在Lsass进程和客户进程上下文的dll,实现了Windows认证策略。认证dll负责检查用户名与密码是否相匹配,若匹配,向Lsass进程返回用户的安全标示SID,LSASS使用该SID生成访问令牌
8.登录进程(WinLogon):运行\Windows\System32\Winlogon.exe映像的用户模式进程,负责响应SAS请求和管理交互的登录会话。
9.GINA:运行在Winlogon进程中的用户模式dll,winlogon使用它来获取用户名和密码或者智能卡PIN。标准GINA位于\Windows\System32\Msgina.dll
10.网络登录服务(Netlogon):一个Windows服务(\Windows\System32\Netlogon.dll),向域控制器建立安全隧道,发送安全请求,比如交互登录或者LAN管理器和NTLM认证验证
11.内核安全设备驱动:内核模式的函数库,实现LPC接口功能,其他内核模式安全组件包括EFS使用这些接口与用户模式的Lsass进行通信。KSecDD位于\Windows\System32\Driver\Ksecdd.sys
运行在内核模式的安全引用监视器与运行在用户模式的Lsass通过LPC进行通信。在系统初始化期间,SRM创建一个SeRmCommandPort的命名端口,Lsass连接至此端口。Lsass创建一个SeLsaCommandPort的命名端口,SRM连接到此端口后,双方开始进行私密通信。SRM创建一个共享内存区域,用于传输大于256字节的消息,SRM将这块共享内存区域的句柄在连接端口时传递给Lsass。只要在系统初始化时SRM和Lsass连接到对方的对应端口后,它们不再监听各自端口。因此,之后的用户进程没有办法以恶意目的连接到Lsass或者SRM得端口,因为请求永远得不到响应。