admin管理员组

文章数量:1531981

2024年6月11日发(作者:)

WINDOWS指纹登录系统的设计与实现

WINDOWS指纹登录系统的设计与实现

段少雄

田捷

2

李恒华

(中科院自动化所人工智能实验室,北京 100080)

1

摘 要:自动指纹识别作为一种较为成熟的生物特征识别技术,相对于

传统的“ID+密码”的身份认证方式而言,具有安全方便的优点,近年来得到研

究人员越来越多的关注。针对传统WINDOWS NT/2000登录方式安全性不足、操

作不方便的问题,本文提出了指纹识别技术与WINDOWS身份验证相结合的解决

方案,开发了基于指纹识别的WINDOWS登录系统,以增强现有系统的安全性,

同时免去用户输入和记忆密码的负担。

关 键 词:自动指纹识别;WINDOWS; 登录系统;GINA

1 引 言

传统的WINDOWS登录系统是通过“ID+密码”的方式来进行身份认证的,将未经授

权的人拒之门外,从而保障计算机信息安全。但密码机制存在易被窃取和猜测、难记忆等缺

陷。随着计算机技术的发展和信息安全要求的不断提高,这种“ID+密码”的方式已经不能

满足高效安全的要求,并且操作上给用户带来额外负担。而指纹识别,作为生物特征识别技

术之一,具有唯一、稳定、高效等优点,可以作为新一代的身份认证方式,日益得到人们的

广泛关注,被逐渐应用于诸多领域。

为此,我们研制开发了一种基于指纹识别的WINODWS NT/2000登录系统。该系统是用

指纹替代传统的密码方式进行身份认证,当登录者的指纹图像与计算机模板库中的指纹模板

匹配成功后,计算机获得登录者身份,进入登录者的个人桌面;若登录者的指纹图像与计算

机模板库中的指纹模板均不匹配,计算机提醒登录者重新采集图像或发出非法登录的预警。

这种方法增强个人计算机的安全性,免除记忆和输入密码的痛苦。

本文第二节简要介绍传统WINDOWS登录系统的原理;第三节阐述基于自动指纹识别

的WINDOWS登录系统的总体结构、模块定义和设计方法;第四节给出实现的图例和系统分

析。

1

2

基金资助:国家自然科学基金(69875019),863项目(2001AA144120)。

联系作者:田 捷,E_MAIL:tian@

doctor

.com, 电话:62559951

- 1 -

WINDOWS指纹登录系统的设计与实现

2 WINDOWS NT/2000登录系统概述

2.1 基本原理

WINDOWS NT/2000 中的WINLOGON进程负责管理登录相关的安全性工作,它负责处

理用户的登录与注销、启动用户SHELL、输入口令、更改口令、锁定与解锁工作站等。

WINLOGON由三个组成部分:可执行文件(以下称LOGON),提供图形界面

认证功能的动态库(以下简称GINA - Graphical Identification and Authentication,图形

标识和身份验证),以及一些网络服务提供动态库(Network Provider DLL)。其模型如图1所

示:

图 1 WINLOGON参考模型

整个登录过程是在LOGON和GINA的协作下完成的,GINA动态库的信息在注册表

HKEY_LOCAL_MACHINESoftwareMicrosoftWindows NTCurrentVersionWinlogon的键

GinaDLL中定义,该处的值为GINA的实际路径名和文件名,如果没有该键则LOGON会调

用系统默认的动态库。

LOGON处理一些下层导出的接口函数,而登录的身份验证都是在GINA中实现的,微

软的Windows NT/2000提供的GINA是,它实现了Windows NT/2000默认的登

录界面。不过为了支持更多的交互登录验证方式,这个GINA动态库是可以替换的,可以自

己开发GINA 动态库以实现其他的身份验证方法,如智能卡、指纹等其他验证机制。因此,

我们开发自己的GINA动态库来实现指纹方式登录系统是可行的。

2.2 登录主要流程

GINA与LOGON为登录用户的交互过程如图 2,图中列举出了登录的几个主要过程。

- 2 -

WINDOWS指纹登录系统的设计与实现

StateWinLogonGINA

Boot

Calls GINA's WlxNegotiate()

Calls GINA's WlxInitialize()

No one logged on

Monitoring device(s) for SAS

A SAS be entered

Calls WlxSasNotify()

Calls GINA's WlxLoggedOutSas()

User logged on

A SAS be entered

Calls WlxSasNotify()

Calls GINA's WlxLoggedOnSas()

wants to lock machine

Returns WLX_LOCKWINSTA

windowstation locked

wants to unlock machine

Calls WlxSasNotify()

Calls GINA's WlxWkstaLockedSas()

Returns WLX_UNLOCKWINSTA

User logged on

wants to log off and shu tdown via SAS

Calls WlxSasNotify()

Calls GINA's WlxLoggedOnSas()

Returns WLX_LOGOFFANDSHUTDOWN

Calls GINA's WlxLogoff()

Calls GINA's WlxShutdown()

Shutdown

图 2 GINA和WINLOGON的交互过程

下面我们详细介绍第一个登录过程——系统刚启动时的登录过程。

当WINDOWS NT/2000启动时,会启动LOGON登录。LOGON将加载并交互一些动态

连接库,其中包括GINA动态库。GINA通过输出一个函数WlxNegotiate告诉LOGON自己

- 3 -

WINDOWS指纹登录系统的设计与实现

的版本,并且得到LOGON的版本,用以支持不同的协议集。当LOGON和GINA都认为对

方的版本可以满足自己的运行需求时,GINA的WlxInitialize函数被调用。在该函数被调用

时,GINA将获得LOGON提供的函数集。不同版本的WINDOWS操作系统对应的函数集不

同,其中,WIN2000的函数集为WLX_DISPATCH_VERSION_1_3,其详细定义参见VISUAL

C++的头文件“WINWLX.H”。函数集中提供的函数在GINA本身的使用中将十分有用。当

获取这些信息的同时,GINA通常会分配一些自己需要的内存,记录一些全局变量,如最后

一次登录用户的信息等。同时,GINA在初始化函数中做一些初始化工作。

完成初始化工作后,LOGON调用GINA输出的函数WlxDisplaySASNotice显示用户登

录欢迎界面,也就是我们常看到的输入密码之前的那个界面,用于显示一些提示信息和欢迎

信息。这个函数还会监督是否有自己定义的SAS(Secure Attention Sequence,安全提示码序

列)出现。如果出现,则要通知LOGON有个登录请求发出。SAS在WINDOWS NT/2000

下缺省为CTL+ALT+DEL,但是并不一定只有CTL+ALT+DEL才能作为SAS,GINA本身可

以提供SAS监督,例如在自动指纹登录系统中可以用指纹采集仪采集到指纹的信号作为

SAS。

当监视到有SAS时,LOGON调用GINA的WlxLoggedOutSAS函数。GINA用这个函

数来显示对话框收集用户信息,并且调用LSA(Local Security Authority,本地安全验证)进

行验证,验证通过就登录用户了。

3 自动指纹识别登录系统的设计

3.1 设计原理和系统模块

为了将指纹识别技术应用在WINDOWS NT/2000登录系统,我们需要定制GINA,将自

动指纹识别模块嵌入到其中,完成其中的身份验证。主要任务如下:

任务一,自定义SAS,监视指纹采集仪上的指纹信息。在欢迎界面时如果采集到指纹,

则视为一个SAS;在登录界面下如果采集到指纹,则认为是用户输入指纹验证身份。

任务二,提供接口让用户录入指纹

任务三,将采集到的指纹和用户数据库中的指纹模板进行匹配,找出匹配的用户,读取

其用户信息。

任务四,完成指纹和用户信息的关联,修改系统原有的用户管理程序。

我们的自动指纹登录系统的数据流图见图 3。

- 4 -

WINDOWS指纹登录系统的设计与实现

Windows系统自动指纹登录系统

WINLOGON

GINA

SAM数据库

指纹数据库数据

WINDOWS原有

用户管理程序

用户指纹管

理程序

图 3 自动指纹登录系统的数据流图

系统包括两个大的模块:GINA模块和用户指纹信息管理模块。系统模块如图 4所示:

自动指纹登录系统

模块

2.用户指纹信息

管理模块

1.1

WlxNegotiate

1.2

WlxInitialize

图 4 自动指纹登录系统模块设计

1.3

WlxDisplaySASNotice

1.4

WlxLoggedOutSAS

1.12

WlxShutdown

……

2.1

2.2

- 5 -

WINDOWS指纹登录系统的设计与实现

3.2 实现步骤

将两个模块封装成两部分——用户管理程序和GINA程序,下面分别介绍其实现。

GINA程序是一个动态库,主要是按照微软的标准实现几个标准输出函数,其中的一些

函数在上面已经提到,下面介绍几个必须实现的函数及其功能。

WlxNegotiate:GINA通过输出函数WlxNegotiate告诉Winlogon自己的版本,并且得到

Winlogon的版本,用以支持不同的的协议集。当Winlogon和GINA都认为对方的版本可以

满足自己的运行需求时,GINA的WlxInitialize函数被调用。在该函数被调用时,GINA将获

得Winlogon提供的函数集。

WlxInitialize:Winlogon为机器上的工作站调用一次该函数,主要是做一些初始化工作,

包括获得获得Winlogon提供的函数集的指针,为它们之间通信的全局变量分配内存、初始化。

为了实现自动指纹登录,我们在这里激活指纹采集仪。

WlxDisplaySASNotice:该函数的唯一功能就是显示欢迎窗口,并且监督是否有自己定义

的SAS(安全提示码序列)出现。如果出现,则要通知WinLogon有个登录请求发出。这里我

们监视指纹采集仪是否采集到指纹,如果采集到指纹则产生一个SAS。同时我们保留原来的

SAS,使用户可以选择两种不同的登录方式。

WlxLoggedOutSAS:GINA用这个函数来显示对话框收集用户信息,并且调用LSA进行

验证。如果用户输入用户信息,则采用传统的身份验证方式进行身份验证。如果用户输入指

纹,则采用指纹来验证身份,如果通过验证则在登录用户后关闭指纹采集仪,以便进入系统

后其他程序使用。

WlxActivateUserShell:成功登录后Winlogon将调用此函数,用来激活用户的shell进程。

WlxLoggedOnSAS:此时用户已经登录,当Winlogon收到一个SAS后调用此函数。显

示的界面可以让用户执行锁定计算机、注销、重新启动、关闭计算机,更改密码或启动任务

管理器等操作。

WlxDisplayLockedNotice:当工作站被锁定后,Winlogon调用此函数来显示锁定信息,

如锁定者、锁定时间等。此函数显示的对话框和WlxDisplaySASNotice显示的对话框类似,

能处理WLX_WM_SAS消息。这里就需要再次激活指纹采集仪,并且监视指纹采集仪是否采

集到指纹图像。

WlxWkstaLockedSAS:工作站处于锁定状态,Winlogon收到一个SAS时将调用此函数,

根据返回值可以解除工作站锁定、注销当前已登录用户或继续保持工作站锁定。如果用户输

入指纹,则对其身份进行验证以决定是否解除锁定。如果通过验证同样需要关闭指纹采集仪。

WlxIsLockOk:Winlogon在锁定工作站之前调用此函数。用来设置一些选项,如将屏幕

保护标记为安全。

WlxIsLogoffOk:当用户试图注销当前用户的时候,Winlogon调用此函数来决定是否允

许注销当前用户。

WlxLogoff:Winlogon调用此函数通知GINA注销当前用户。

WlxShutdown:Winlogon在关闭计算机之前调用此函数,以便GINA能执行一些关闭动

作,如关闭指纹采集仪。

这些函数的具体实现细节详见MSDN相关章节,这里不再赘述。我们这里主要介绍如何

- 6 -

WINDOWS指纹登录系统的设计与实现

将指纹识别模块嵌入到GINA程序中,从而实现用指纹来进行身份认证登录WINDOWS

NT/2000系统。

从上面的介绍中我们知道在GINA中需要验证身份有两个地方:一是系统启动时登录用

户需要验证身份,二是系统锁定后解除锁定的时候需要验证身份。这两个过程对应的函数分

别是WlxLoggedOutSAS 和WlxWkstaLockedSAS。为了得到指纹图像,我们需要指纹采集仪

配合工作,所以需要做一些指纹采集仪的初始化和关闭工作。所以在函数实现时就要先激活

指纹采集仪,然后对输入的指纹进行认证,如果通过就登录用户并关闭指纹采集仪,其流程

如图 5所示,各个步骤分布在系统中的各个函数中,上面已经介绍过了。

按照要求实现上述的所有函数并封装成动态链接库,在动态链接库中输出上述的函数,

然后在注册表项HKEY_LOCAL_MACHINESoftwareMicrosoftWindows NTCurrentVersion

Winlogon中增加一个字符串类型名为GINADLL键,其值为我们的动态链接库的文件名和路

径名。重起计算机,我们的GINA程序就可以工作了,如果注册了指纹就可以直接用指纹登

录了。

开始

初始化指纹采集仪

采集指纹图像

N

匹配

Y

登录用户并关闭指纹采集仪

结束

图 5 用指纹验证身份的流程图

下面我们简单介绍用户管理程序的设计,这个程序主要的主要功能是注册指纹。

用户管理程序是一个普通的可执行程序,主要有三个功能需要实现:

1. 从SAM(Security Accounts Manager)数据库中读取用户信息。

2. 用一个树型控件将用户的信息显示出来。

3. 为选定的用户注册指纹模板。

使用函数NetLocalGroupGetMembers和NetLocalGroupEnum就可以得到系统中所有用户的相

- 7 -

WINDOWS指纹登录系统的设计与实现

关信息,用户信息的显示可以使用Windows的树型控件就可以了,其实现比较简单,这里不

详细说明了。而用户的指纹注册则采用自动指纹识别系统中的注册模块,用指纹采集仪采集

用户输入的指纹,可以为同一个帐户注册多枚指纹,也可以用不同的手指代表不同的用户。

4 系统演示与结论

在计算机(安装WINDOWS NT/2000操作系统)上安装了本系统后就可以使用指纹来登

录计算机了,图 6是用指纹登录时的界面。这样用户只要将手指放在指纹采集仪上轻轻一按

就可以完成身份验证登录到WINDOWS系统了,再也不需要重复输入密码那种乏味的事情,

也不需要记忆密码,系统的安全性也得到了提高。同时,为了和密码系统兼容,我们还保留

Windows原来的登录方式。

图 6 自动指纹登录系统

作为计算机信息安全的卫士,本系统能大大加强现有计算机系统的安全性,同时又使用

户从繁琐的密码中解放出来,的确为用户带来了很大的方便。根据目前用户的反馈使用情况

来看,我们的指纹登录系统在指纹识别率和使用方便性上表现良好,得到了用户的认可。

本系统已经实现了WINDOWS NT/2000指纹登录,为了使系统在功能上更加完善,这个

家族还需要一些新成员,如指纹屏幕保护、指纹硬盘等,这样可以更好地加强个人计算机的

信息安全,同时使操作更简单,并且无需用户记忆繁琐的密码。

参 考 文 献

[1] , and ti, Biometrics: Personal Identification in a Networded Society, Kluwer

Academic Publishers,1999.

[2] 武岩, 田捷, 王星明. 融合自动指纹认证的安全密码体制在网络安全中的应用. 信息安全与电子对抗关

键技术研讨会论文集. 西安,1999

[3] 王星明, 田捷, 武岩. 一种结合自动指纹认证与密码技术的安全机制. 计算机工程,1999, 25 特刊:

144-146

[4] Xiping Luo, Jie Tian and Yan Wu, A Minutia Matching algorithm in Fingerprint Verification, 15th ICPR, Vol.4,

pp.833-836, Barcelona, 2000.

[5] Xiping Luo, Jie Tian. Knowledge Based Fingerprint Image Enhancement, 15th ICPR, Vol.4, pp.783-786,

- 8 -

WINDOWS指纹登录系统的设计与实现

Barcelona, 2000.

[6] Xiping Luo, Jie Tian. Fingerprint Image Enhancement Based on Curve Simulation, The 2000 International

Conference on Imaging Science, Systems, and Technology (CISST'2000), 2000, Las Vegas, USA.

Design and Implement of Windows’s Logon System Using

Fingerprint Identification

DUAN Shao-xiong TIAN Jie LI Heng-hua

(AI Lab, Institute of Automation, Beijing 10080, China)

Abstract: Fingerprint identification, as one of biometric technologies, is being widely used in

forensics and civilian application areas. It has attracted more and more researchers’ attention

because it is more reliable relative to traditional methods such as ID and passwords. In this paper,

we introduce mainly application problems of fingerprint identification technology in course of

design and developing of WINDOWS logon system. The research shows that the technique route

we adopted is correct and advanced, the develop software makes WINDOWS system more effective

to management and more convenient to operation.

Key words: Automatic Fingerprint Identification; WINDOWS; Logon; GINA

- 9 -

本文标签: 指纹登录用户