windows 登陆 和 pGina

  • 一 概述
  • 二 windows xp 登陆的类型
    • 1 交互式登陆
      • 本地登陆
      • 域名登陆
    • 2 网络登陆
    • 3 服务登陆
    • 4 批处理登陆
  • 三 交互式登陆组件
    • 1 Winlogon.exe
    • 2 Gina
    • 3 LSA服务
    • 4 SAM数据库
  • 四 交互式登陆过程
  • 五 pGina结构
  • 六 pGina的工作原理
  • 七 LocalMachine插件的介绍

一 概述

偶然的机会做windows登陆,采用的pGina开源项目, 将自己的一些理解记录一下
备注:
文章windows 登陆部分转载自:https://blog.csdn.net/kelsel/article/details/52758427

二 windows xp 登陆的类型

1 交互式登陆

交互式登录是我们平常登录时最常见的类型,就是用户通过相应的用户账号(User Account)和密码在本机进行登录。

本地登陆

采用本地用户账号登录,系统会通过存储在本机SAM数据库中的信息进行验证

域名登陆

采用域用户账号登录,系统则通过存储在域控制器的活动目录中的数据进行验证。如果该用户账号有效,则登录后可以访问到整个域中具有访问权限的资源。

2 网络登陆

如果计算机加入到工作组或域,当要访问其他计算机的资源时,就需要“网络登录”了
备注:这里需要提醒的是,输入的用户账号必须是对方主机上的,而非自己主机上的用户账号。因为进行网络登录时,用户账号的有效性是由受访主机控制的。##

3 服务登陆

服务登录是一种特殊的登录方式。平时,系统启动服务和程序时,都是先以某些用户账号进行登录后运行的,这些用户账号可以是域用户账号、本地用户账号或SYSTEM账号。采用不同的用户账号登录,其对系统的访问、控制权限也不同,而且,用本地用户账号登录,只能访问到具有访问权限的本地资源,不能访问到其他计算机上的资源,这点和“交互式登录”类似

4 批处理登陆

批处理登录一般用户很少用到,通常被执行批处理操作的程序所使用。在执行批处理登录时,所用账号要具有批处理工作的权利,否则不能进行登录。

三 交互式登陆组件

1 Winlogon.exe

Winlogon.exe是“交互式登录”时最重要的组件,它是一个安全进程,负责如下工作:
(1) 加载其他登陆组建
(2) 提供安全相关的用户操作图像界面, 以便用户能进行登陆或注销等相关操作
(3) 根据需要,同Gina发送必要信息

2 Gina

GINA的全称为“Graphical Identification and
Authentication”——图形化识别和验证。它是几个动态数据库文件,被Winlogon.exe所调用,为其提供能够对用户身份进行识别和验
证的函数,并将用户的账号和密码反馈给Winlogon.exe。
在登录过程中,“欢迎屏幕”和“登录对话框”就是GINA显示的。

3 LSA服务

LSA的全称为“Local Security Authority”——本地安全授权,Windows系统中一个相当重要的服务,所有安全认证相关的处理都要通过这个服务
它从Winlogon.exe中获取用户的账号和密码,然后经过密钥机制处理,并和存储在账号数据库中的密钥进行对比。
(1)如果对比的结果匹配,LSA就认为用户的身份有效,允许用户登录计算机。
(2)如果对比的结果不匹配,LSA就认为用户的身份无效。这时用户就无法登录计算机。

4 SAM数据库

SAM的全称为“Security Account Manager”——安全账号管理器,是一个被保护的子系统,它通过存储在计算机注册表中的安全账号来管理用户和用户组的信息。我们可以把SAM看成一个账号数据库。对于没有加入到域的计算机来说,它存储在本地,而对于加入到域的计算机,它存储在域控制器上

四 交互式登陆过程

1 用户首先按Ctrl+Alt+Del组合键。
2 Winlogon检测到用户按下SAS键,就调用GINA,由GINA显示登录对话框,以便用户输入账号和密码。
3 用户输入账号和密码,确定后,GINA把信息发送给LSA进行验证。
4 用户登录到本机的情况下,LSA会调用Msv1_0.dll这个验证程序包,将用户信息处理后生成密钥,同SAM数据库中存储的密钥进行对比。
5 如果对比后发现用户有效,SAM会将用户的SID(Security Identifier——安全标识),用户所属用户组的SID,和其他一些相关信息发送给LSA。
6 LSA将收到的SID信息创建安全访问令牌,然后将令牌的句柄和登录信息发送给Winlogon.exe
7 Winlogon.exe对用户登录稍作处理后,完成整个登录过程。

五 pGina结构


CP/GINA提供了增强或者代替默认的Windows登录认证功能。
pGina service是pGina系统的核心,它接收来自CP/GINA的证书,然后调用插件对它进行认证和授权或者其他的一些进行登录时的操作。pGina service自身并不进行认证和授权。做这些工作的全都来自插件。CP/GINA和pGina service之间的通信通过命名管道,在系统启动的时候插件由服务加载。

六 pGina的工作原理


1 pGina提供用户的输入界面,用户可通过界面输入登录凭据
2 GINA或者是CP将用户输入的登录凭据传动给pGina服务,服务再通过管道传给插件进行认证
3 经过插件的认证,pGina服务将认证成功或者是失败的结果一起传回给GINA/CP
4、如果在第三步的返回结果为成功的话,向操作系统传递一个成功的登录尝试。应当注意的pGina不是实际的登录负责登录到计算机,这个过程仍然是操作系统本身,所以如果一个验证通过的账户在操作系统中不存在,就会登录失败所以pGina提供了一个插件叫做“Local Machine”它会在pGina认证成功以后再操作系统中创建一个临时的账户

七 LocalMachine插件的介绍

三个阶段:
Authentication
插件参与到这个阶段来验证这个账户是谁,可以通过来自外部数据库的一些证书或者是其他的一些来源。
Authorization
这个阶段决定是否让通过Authentication阶段的账户获取需要的资源,例如一个用户只有属于指定分组的时候才能被允许登录。
Gateway
这个阶段同Authorization阶段类似,它的意图不是去授权一个账户而是提供一个授权后的管理。比如在LocalMachine这个插件中在这个阶段实现了创建一个临时账户(符合认证条件的)

一个插件可以参与零个或者多个阶段,在Authentication 阶段至少应该有一个插件注册成功如果没有插件注册了这个阶段,这个阶段就会失败。在Authorization阶段所有参与这个阶段的插件必须注册成功,如果没有插件注册,这个阶段成功通过。在Gateway阶段所有参与这个阶段的插件必须注册成功。如果没有插件注册这个阶段,这个阶段成功通过。
LocalMachine插件负责认证和授权本地存在的账户,同时它还可以创建通过授权的但是本地不存在的账户。在pGina的三个阶段(authentication, authorization, 和gateway)它都可以执行指定操作。

windows 登陆 和 pGina相关推荐

  1. 网站服务器windows登陆密码忘记,网站服务器windows登陆密码忘记

    网站服务器windows登陆密码忘记 内容精选 换一换 本节操作以使用"Microsoft Remote Desktop for Mac"工具远程连接"Windows S ...

  2. 使用ViKey加密狗实现Windows登陆的方法

    使用ViKey加密狗实现Windows登陆的方法 您可以让ViKey加密狗帮助您登录自己Windows系统,设置Windows系统绑定ViKey加密狗后,您只需在Windows登录验证时插入ViKey ...

  3. 查看windows登陆日志_如何在Windows登录屏幕上查看以前的登录信息

    查看windows登陆日志 By default, most versions of Windows record an event every time a user tries to log on ...

  4. 修改Windows登陆时显示上一次登陆的用户名

    系统在每次登陆的时候会显示上一次登陆的用户的用户名,***者很可能会根据被显示出来的用户名获取登陆密码并且非法进入系统.此项的手工修复方法如下:运行注册表编辑器regedit.exe,修改键 HKEY ...

  5. 简单的Windows登陆界面设计

    要求: 1.用户名必须为字母. 1 //限定用户名必须为字母 2 private void txtName_KeyPress(object sender, KeyPressEventArgs e) 3 ...

  6. 通过 pGina 对 Windows 设备进行管理

    文章目录 前言 1.环境信息 1.1.服务器端 1.2.客户端 2.pGina 安装及配置 2.1.下载并安装 2.2.配置 2.3.模拟测试 2.4.Windows 远程登录测试 总结 前言 对 W ...

  7. Windows下Hadoop的环境安装[转]

    1.下载并安装Cygwin,记得cygwin安装中要把SSH选择上,因为后面Hadoop会用到,不详述cygwin的安装过程.我是安装在D:\cygwin下 2.配置系统环境变量 在windows命令 ...

  8. windows中进程详解

    近来闲得无事,就在网上搜集了部分windows中的一些进程,希望大家能喜欢.这东西太多,也许会让你看得烦躁.冒犯指出敬请原谅,谢谢! 系统进程描述 system process 进程文件: [syst ...

  9. 新配windows服务器及上边功能的试用体会

    之前试用asp比较多,现在开始试用asp.net(C#),发现要使用的东西很多,asp.net是框架性语言,面向对象编程.而asp是解释性脚本语言.两则有很大差距.由于asp已经很古老了,新近的同事都 ...

最新文章

  1. 第10章 接口、继承与多态----抽象类和接口
  2. [Ruby编程语言].弗拉纳根_松本行弘读书笔记
  3. 车辆动力学基础(1)
  4. 【图】架构设计的10条经验
  5. 程序员的数学3线性代数pdf_程序员带娃福利:《汉声数学》41本PDF
  6. Node.Js同步mongdb数据
  7. 华为天才少年,竟然要我用充电宝打游戏!
  8. [AaronYang]C#人爱学不学[1]
  9. 电脑软件上的按钮原来是这样来的:按钮组件
  10. java json jar包下载_jsonobject必备jar包
  11. 数学建模工具篇(一)-LaTeX软件入门
  12. 用计算机技术辅助语文教学,利用计算机技术辅助拼音学习“潜力无限”
  13. 计算机双机对连局域网,图解双机/多机无线互联技巧_局域网教程
  14. SCSI——小型计算机系统接口
  15. qq安全保护进程更改计算机,QQ安全中心
  16. 为什么高水平程序员不喜欢接外包项目
  17. vscode怎样设置成中文
  18. 数据挖掘相关免费软件
  19. JAVA面试算法小记
  20. STM32使用Jlink下载出现NO cortex-M SW device Found解决(超详细)

热门文章

  1. 天涯合璧服务器维护 凤凰集,天涯明月刀12月第2批什么时候合服_天涯明月刀12月第2批合服服务器维护_游戏堡...
  2. 如何在手机TIM中使用QQ打卡
  3. python基础教程在线_Python基础教程(第3版)
  4. String类的常用方法大全!
  5. 扎心!来自互联网er的2019年度总结,看完笑着流泪……
  6. html5及CSS的学习3
  7. sharepoint 利用日历做会议室,车辆预订及工作流配置
  8. js基础 全局变量和局部变量的理解
  9. 使用java Graphics2D生成海报图片
  10. html制作网页案例代码-HTML5+CSS大作业——三八女人节主题设计(1页)-