Linux平台下智能卡整体支持方案
时间:03-26
来源:互联网
点击:
3.身份认证的实现
在Linux下使用智能卡进行身份认证,需要自己编写相应的PAM模块。
3.1身份验证PAM模块的编写
编程位于PAM的应用接口层,最重要的是编写pam—authenticate()函数。这些API接口将被Linux系统
的login模块调用,为Linux系统提供登录认证[7]。图1是需要编写的pam authenticate 0的函数流程:
从图中可以看出,本函数首先对读卡器进行初始化工作,如果成功就调用自己的身份验证程序,当身份验
证失败后,就调用远程报警程序。远程报警程序简单可以调用简单的邮件命令mail发出邮件进行实现,也可以通过其它方法实现,甚至可以使用复杂的防盗追踪技术[9]。
3.2 PAM模块的配置
配置文件也放在了在应用接口层中,它与PAM API配合使用,从而达到了在应用中灵活插入所需鉴别模块的
目的。它的作用主要是为应用选定具体的鉴别模块,模块间的组合以及规定模块的行为。
1 认证模块
认证模块编译后为pam一木.S0文件,放在/1ib/security目录下。本系统编写的智能卡登录部分的PAM模块名为pam_login.so。
2 配置文件
在redhat Linux下配置文件放在/etc/pam.d下。在pam.d目录下文件名即为服务名,文件的格式为:
module-type control-flag modulel-path args
修改gdm-autologin文件,在文件首行添加:
auth sufficient pam_login.so
本部分配置完成之后,就完成了身份验证工作。
4.智能卡移除策略的实现
如果要实现智能卡的移除策略工作,需要解决两方面的问题:首先要编写新的智能卡守护进程,实时监控
智能卡的状态;第二是实现屏幕锁定和解锁的问题。下面分别讨论。
4.1智能卡守护进程的编写
智能卡守护进程实时查询智能卡的状态,当智能卡状态发生变化的时候向相应的程序发出信号。图2是智能
卡守护进程的流程图:
程序使用阻塞的方法,监控者智能卡是否移除[5]。如果移除,程序首先断开卡的连接,进入屏幕锁定状态。此时,程序通过启动经过改写的屏幕保护程序,从而锁定屏幕。
在屏幕锁定状态下,程序继续进行阻塞,一直到卡插入,如果身份验证成功,则解除锁定。
4.2屏幕解锁的实现
可以通过改写屏幕保护程序实现。研究一下屏幕保护程序解锁的程序lock.C[10],注意有以下代码:
while(si->pw_data && si->pw_data->state==pw_read)
意思是当X windows检测到事件类型等于键盘(event.xany.type==KeyPres s)的时候,就启动
handle_passwd_key (si, &event.xkey)口令验证程序。在这里添加事件类型为:event.xany.t yp e==
KeyPress|| event.xany.type==PointerMotion,那么鼠标进行移动时也触发相应的检测事件。
注意以下语句:
passwd_valid_p函数是身份的验证函数,它是采用PAM模块的方式定义的,定义在passwd-pam.c文件中。
把上面的语句改为:
此时,我们就可以实现简单的解锁工作。
5.结束语
按照以上的办法,实现了Linux系统下智能卡平台的整体支持方案。电子商务和电子政务单位在开源的
Linux平台下使用智能卡,就像windows平台一样方便。试验表明,运行稳定、可靠,可以满足热线彩票机等电子商务领域和电子政务的需要。经过改进之后,甚至可以在超市收银、电信收费终端设备上使用。
参考文献
1. 莫林莫托.杜大鹏 Windows Server 2003深层解决方案 2005
2. 赵建超 基于Linux下智能卡登陆操作系统的实现方法 [期刊论文] -西安航空技术高等专科学校学报2006(5)
3. Mario Strasser and Martin Saegesser,smartcard-login DocumentatiOn.2001 2007
4. ISO SmartCard standard.2003 2007
5. pcscworkgroup PC/SC Specifications 2.01.4 2007
6. Mario Strasser Smart Card Login HOWTO 2007
7. Ludovic Rousseau pcsc-lite 1.5.1 2009
8. Andrew G Morgan The Linux-PAM Module Writers'Guide.2001 2008
9. 李曙光.张琼声.李文琳 嵌入式 Linux系统智能手机防盗追踪功能的实现 [期刊论文] -微计算机应用2007(11)
10. RedHat Linux9 源代码 2003
作者:王东升 赵建超 (河南工业职业技术学院计算机工程系,河南省南阳市,473009)
来源:电子技术 2009 36(8)
在Linux下使用智能卡进行身份认证,需要自己编写相应的PAM模块。
3.1身份验证PAM模块的编写
编程位于PAM的应用接口层,最重要的是编写pam—authenticate()函数。这些API接口将被Linux系统
的login模块调用,为Linux系统提供登录认证[7]。图1是需要编写的pam authenticate 0的函数流程:
从图中可以看出,本函数首先对读卡器进行初始化工作,如果成功就调用自己的身份验证程序,当身份验
证失败后,就调用远程报警程序。远程报警程序简单可以调用简单的邮件命令mail发出邮件进行实现,也可以通过其它方法实现,甚至可以使用复杂的防盗追踪技术[9]。
3.2 PAM模块的配置
配置文件也放在了在应用接口层中,它与PAM API配合使用,从而达到了在应用中灵活插入所需鉴别模块的
目的。它的作用主要是为应用选定具体的鉴别模块,模块间的组合以及规定模块的行为。
1 认证模块
认证模块编译后为pam一木.S0文件,放在/1ib/security目录下。本系统编写的智能卡登录部分的PAM模块名为pam_login.so。
2 配置文件
在redhat Linux下配置文件放在/etc/pam.d下。在pam.d目录下文件名即为服务名,文件的格式为:
module-type control-flag modulel-path args
修改gdm-autologin文件,在文件首行添加:
auth sufficient pam_login.so
本部分配置完成之后,就完成了身份验证工作。
4.智能卡移除策略的实现
如果要实现智能卡的移除策略工作,需要解决两方面的问题:首先要编写新的智能卡守护进程,实时监控
智能卡的状态;第二是实现屏幕锁定和解锁的问题。下面分别讨论。
4.1智能卡守护进程的编写
智能卡守护进程实时查询智能卡的状态,当智能卡状态发生变化的时候向相应的程序发出信号。图2是智能
卡守护进程的流程图:
程序使用阻塞的方法,监控者智能卡是否移除[5]。如果移除,程序首先断开卡的连接,进入屏幕锁定状态。此时,程序通过启动经过改写的屏幕保护程序,从而锁定屏幕。
在屏幕锁定状态下,程序继续进行阻塞,一直到卡插入,如果身份验证成功,则解除锁定。
4.2屏幕解锁的实现
可以通过改写屏幕保护程序实现。研究一下屏幕保护程序解锁的程序lock.C[10],注意有以下代码:
while(si->pw_data && si->pw_data->state==pw_read)
意思是当X windows检测到事件类型等于键盘(event.xany.type==KeyPres s)的时候,就启动
handle_passwd_key (si, &event.xkey)口令验证程序。在这里添加事件类型为:event.xany.t yp e==
KeyPress|| event.xany.type==PointerMotion,那么鼠标进行移动时也触发相应的检测事件。
注意以下语句:
passwd_valid_p函数是身份的验证函数,它是采用PAM模块的方式定义的,定义在passwd-pam.c文件中。
把上面的语句改为:
此时,我们就可以实现简单的解锁工作。
5.结束语
按照以上的办法,实现了Linux系统下智能卡平台的整体支持方案。电子商务和电子政务单位在开源的
Linux平台下使用智能卡,就像windows平台一样方便。试验表明,运行稳定、可靠,可以满足热线彩票机等电子商务领域和电子政务的需要。经过改进之后,甚至可以在超市收银、电信收费终端设备上使用。
参考文献
1. 莫林莫托.杜大鹏 Windows Server 2003深层解决方案 2005
2. 赵建超 基于Linux下智能卡登陆操作系统的实现方法 [期刊论文] -西安航空技术高等专科学校学报2006(5)
3. Mario Strasser and Martin Saegesser,smartcard-login DocumentatiOn.2001 2007
4. ISO SmartCard standard.2003 2007
5. pcscworkgroup PC/SC Specifications 2.01.4 2007
6. Mario Strasser Smart Card Login HOWTO 2007
7. Ludovic Rousseau pcsc-lite 1.5.1 2009
8. Andrew G Morgan The Linux-PAM Module Writers'Guide.2001 2008
9. 李曙光.张琼声.李文琳 嵌入式 Linux系统智能手机防盗追踪功能的实现 [期刊论文] -微计算机应用2007(11)
10. RedHat Linux9 源代码 2003
作者:王东升 赵建超 (河南工业职业技术学院计算机工程系,河南省南阳市,473009)
来源:电子技术 2009 36(8)
- 一种新型防伪读码器的设计(01-01)
- 基于ARM与DSP的嵌入式运动控制器设计(04-25)
- 航天器DC/DC变换器的可靠性设计(02-12)
- 我国科学家人脸与笔迹识别领域获突破(04-29)
- 基于ARM核的AT75C220及其在指纹识别系统中的应用(05-24)
- 基于nRF2401智能小区无线抄表系统集中器设计(04-30)
