登录方式CredentialProvider的优点

总结一下新的登录方式CredentialProvider的优点:
 
1、实现所谓的“会话隔离”
使用Credential Provider 方式实现“操作系统服务以及其他关键进程”和“用户进程”
在不同的 会话(session)中运行,这样有利于提高安全性。
 
2、基于COM的设计,使得登录界面可以添加微软给定的控件,来实现开发者想要实现
的功能。即用一致的外观和方法来完成不同的用户验证方案。更加美观(我个人认为:)。

 

Vista之前,Windows的开机密码认证模块一般是由Gina DLL完成的。
Gina原理
WinLogon会和GINA DLL进行交互,缺省是MSGINA.DLL(在System32目录下)。微软同时也为我们提供了接口,
我们可以自己编写GINA DLL来代替MSGINA.DLL。在默认情况下,GINA显示登陆对话框,用户输入用户名及
密码 。所以要获得用户名和密码 ,则可以写一个新的GINA DLL,其中提供接口调用msgina.dll的函数。


在先前版本的 Windows 中,各种系统进程之间的关系并不直观。例如,在系统引导时,交互登录管理器
 (%SystemRoot%\System32\Winlogon.exe) 会启动“本地安全机构子系统服务”(Lsass.exe) 和“服务控
制管理器”(Services.exe)。此外,Windows 会使用一个名为 Session 的命名空间容器来隔离在不同登
录会话中运行的进程。


但在推出 Windows Vista 之前,登录到控制台的用户共享的是 Session 0(即,由系统进程使用的会话),
这就造成了潜在的安全问题。例如,如果某个运行于 Session 0 中的编写拙劣的 Windows 服务在交互式
控制台上显示一个用户界面,从而允许恶意软件通过粉碎攻击之类的方法来攻击窗口并有可能获得管理特
权,就会引发此类安全问题。


    为解决这些问题,若干个系统进程都针对 Windows Vista 进行了重新设计。会话管理器 (Smss.exe) 
是在使用先前版本的 Windows 时在引导期间创建的第一个用户模式进程,但在 Windows Vista 上,会话
管理器会启动自己的另一个实例来配置 Session 0,该会话将独自供系统进程专用。用于Session 0 的会
话管理器进程将启动“Windows 启动应用程序”(Wininit.exe)(一个用于 Session 0 的 Windows 子系统
进程 (Csrss.exe)),然后退出。“Windows 启动应用程序”会通过启动“服务控制管理器”、“本地安
全机构子系统”和一个用来管理计算机的终端服务器连接的新进程(即“本地会话管理器”(Lsm.exe))持
续运行。


    当用户登录到系统上时,初始的会话管理器会创建其自己的一个新实例来配置新会话。新的 Smss.exe 
进程会为这个新会话启动 Windows 子系统进程和 Winlogon 进程。让主会话管理器使用自己的副本初始化
新会话并不会为客户端系统带来任何有利条件,但在充当终端服务器的 Windows Server“Longhorn”系统上,
可以并行运行多个副本以提高多个用户的登录速度。


    在这个新的体系结构下,各系统进程(包括 Windows 服务)在 Session 0 中进行了隔离。如果运行于
 Session 0 中的某个 Windows 服务显示一个用户界面,则“交互服务检测”服务 (%SystemRoot%\System32\UI0Detect.exe) 
会通过在用户的安全上下文中启动自己的实例并显示消息来通知所有登录的管理员。如果用户选择“显示消
息”按钮,该服务会将桌面切换到 Windows 服务桌面,用户可在这里与服务的用户界面交互,然后再切换
回自己的桌面。


凭据提供程序Credential Provider


即使是登录体系结构也在 Windows Vista 上发生了变化。在先前版本的 Windows 上,Winlogon 进程会加
载在注册表中指定的“图形识别与认证”(GINA) DLL 来显示要求用户提供其凭据的登录 UI。遗憾的是,
GINA 模式受到了许多限制,包括只能配置一个 GINA、第三方很难编写完整的 GINA,以及具有非标准用户
界面的自定义 GINA 会改变 Windows 用户体验。


而 Windows Vista 使用了新的“凭据提供程序”体系结构来代替 GINA。Winlogon 会启动一个单独的进程,
即“登录用户界面主机”(Logonui.exe),该进程将加载在 HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\Currentversion\Authentication\Credential Providers 中配置的凭据提供程序。Logonui 可以并行托管多个凭据提供程序;实际上,Windows Vista 随带了交互
式 (Authui.dll) 提供程序和智能卡式 (Smart-cardcredentialprovider.dll) 提供程序。为确保统一的用
户体验,LogonUI 会管理对最终用户显示的用户界面,但它还会允许凭据提供程序指定文本、图标和编辑控件之类的自定义元素。


延迟式自动启动服务
如果您曾经在 Windows 系统启动后立即登录到系统上,您或许在桌面被完全配置并且您可以与外壳和所启
动的任何应用程序进行交互之前经历了一些延迟。在您登录时,“服务控制管理器”会启动多个被配置为自
动启动服务并因此在引导时激活的 Windows 服务。许多服务都会执行与登录活动争用资源的CPU 密集型初
始化和磁盘密集型初始化。为解决此问题,Windows Vista 采用了一个被称为延迟式自动启动的新服务启动
类型,如果服务不必在 Windows 引导后立即激活,便可使用该类型。

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值