浅析基于网络还原卡的网络认证
来源:用户上传
作者: 蒋灏东
[摘要]通过分析网络还原卡的基本原理,设计一直基于还原卡的网络认证方式,在实践中有效解决计算机机房因不断增加产生管理难的问题。
[关键词]网络还原卡登录认证嵌入设计
中图分类号:TP3文献标识码:A文章编号:1671-7597(2009)1210082-01
本文设计和实现的基于网卡的客户端验证方案有以下优点:(1)解决了以往机房管理系统必须添加额外硬件才能实现的问题;(2)充分利用网络还原卡通过设置中断向量获得BIOS控制权的特征,使得客户端的登录程序不易使用者绕过具有较高的安全性;(3)节省PCI空间,避免了和还原卡使用相同技术而发生冲突的问题且便于完善和扩充。
一、设计思想
要在引导进入系统前进行BIOS登录认证,首先要了解计算机启动的过程,当计算机启动时系统BIOS的启动代码首先要做的事情就是进行POST(Power-On Self Test,加电后自检),自检正常结束后将引导进入系统。要在BIOS下进行登录,就要在进入系统前使得登录程序获得BIOS的控制权。要把在引导系统前完成登录,使登录程序在BIOS下运行,可以把程序写入BIOS的ROM芯片中,利用芯片的扩展功能实现。由于BIOS的内存分配空间有限,使得如果以后进一步扩展的话有困难,使用这种方法必须找到主板生产厂家,比较麻烦,而且在写入时如出错容易烧掉主板,代价太大。BIOS是计算机软硬件最底层的程序为计算机提供最低级的、最直接的硬件控制与支持,记录了各硬件的信息,如采用调用BIOS中断向量的方法容易与还原卡在技术上产生冲突,网络还原卡工作原理是网络还原卡把自编软件固化在板上的EPROM里作为可访问的ROM组件。在网络还原卡ROM中修改操作系统引导人口INT 19H的中断向量,可获得BIOS系统控制。优先执行自己ROM中的程序。程序启动后的查找系统BIOS的中断向量表,截取INT13中断,用自己的INT13程序替换掉原有的INT13程序,达到对硬盘读写的拦截。在网络还原卡BOOT ROM中写入引导程序,使得在系统引导时拦截启动信息,用非标准设备引导系统。在技术上具有可行性。
二、设计方案
(一)扩展ROM获取BIOS中断向量过程。当计算机启动进行上电自检(POST)时,会为BIOS的所有调用程序建立一个中断向量,在缺省向量被设置好之后,将对所有的扩展的ROM块进行扫描。检查各种扩展卡的ROM块,确定扩展卡的ROM块为有效块后将控制权传递给它,为了寻找有效的扩展ROM块,BIOS于C0000―DFFFFH内存映象空间内,以2KB为单位进行扫描,每一个有效的扩展卡的ROM块,必须建立一个标识供POST来识别它。此时,网络还原卡的ROM程序可以通过设置中断向量获得控制权,将网络还原卡挂到系统中。一个有效的ROM块应满足如下定义:
字节0:55H;
字节1:AAH;
字节2:长度指示器,表示ROM中以512B为1块的信息块个数(长度P512)。
为测试ROM模块的完整性,需要求一个检查和。在定义的ROM中,每1B按模100H求和,其和必须为0,该模块才被认为有效。当系统的ROMBIOS找到1个有效的ROM时,它对ROM的字节3(将是一个可执行代码)作1次远调用(farcall),适配器板现在可以执行它的加电初始化任务。执行完初始化工作后,适配器插件板上的ROM应通过1条远返回(far return)指令,将控制权交还给ROMBIOS程序,完成系统的启动。
(二)登录程序嵌入网络还原卡程序。通过上述方法,当网络还原卡的ROM块满足有效条件时,可以获得BIOS的控制权,以将自身的程序挂到系统上执行。将登录程序嵌入网络还原卡程序中。在还原卡正常工作后,执行网络还原卡的程序时,显示用户登录界面(用户登录端)。用户可以在此输入用户名和密码,并选择上机或下机登录端程序根据登录参数设置与服务器进行网络连接,提交认证信息;服务器收到认证信息后,与数据库建立连接,并提交认证请求;数据库收到认证请求后,根据提交过来的认证信息进行判断,得出认证结果(能否在该机位上机),并将认证结果返回给用户登录端;用户登录端根据认证结果作出相应的处理。
(三)登录原理与方法。登录程序在操作系统引导前运行,无高层的IP地址协议,故登录程序需要与服务器联系,得到自己的IP地址,服务器的MAC地址,使用TCP/IP协议和服务器进行通信。引导协议BOOTP是一种基于UDP/IP的协议。这种协议允许正在启动的主机动态配置而无需用户监督。BOOTP主要用于客户机从服务器获得自己的IP地址,服务器的IP地址和MAC地址。
BOOTP客户机用UDP68端口以广播的形式发出一个名为BOOTREQUEST的IP地址查询请求帧,这个请求帧中包含了客户机物理地址,然后客户机等待服务器的响应,如果在特定时间段内没有收到响应,客户机就重新发出请求。网络中的运行BOOTP服务的服务器接收到的这个请求帧,根据这帧中的MAC地址在BOOTPTAB启动数据库中查找这个MAC的记录,如果没有此MAC的记录则不响应这个请求,如果有就将FOUND帧发送回客户机。FOUND帧中包含的主要信息有客户机的IP地址、服务器的IP地址、硬件类型、网关IP地址、客户机MAC地址和启动映象文件名。在客户机IP地址不知道的情况下,服务器必须要有一个硬件地址和IP地址相对应的数据库。客户机IP地址也被放到“bootreply”的某一字段中。客户机获得服务器回送的IP地址和服务器的IP地址,MAC地址后,接受用户输入的登录数据,用TCP/IP协议把数据发送给服务器,经过服务器验证后返回数据,如是合法用户,启动计算机,否则不予响应。
(四)服务器端设计。服务器端要与客户机进行两次的通讯,首先通讯回送客户机IP,服务器IP,MAC地址,服务器要运行BOOTP服务,使用熟知的UDP67端口读取UDP数据报,因客户机不知道自己的IP地址,不能响应服务器的ARP请求,这时BOOTP服务器通过服务器广播这个BOOTP应答而不直接将应答发回该客户。要考虑好BOOTP服务运行以保证客户机能顺利获得回送数据包。第二次通讯接收来自用户登录端的登录请求,从数据包中分解出登录信息,并将登录信息提交数据库进行登录处理,处理后作出响应,根据机器编号、用户名、密码、登录用户的账户信息以及当前的上机信息判定该用户是否允许上机或下机,并把结果返回客户机。可以使用VC等加上SQL来开发,该部分程序可利用数据库的存储过程完成,这样便于系统的更新与维护。在设计时应考虑由于机房里的计算机数量多,很多时候学生都是同一时间进入机房启动计算机,这时数据库要处理大量来自用户机的登录请求,需要处理的任务量非常大,除了提高服务器的硬件性能外,在设计过程中应考虑在接收数据包时采取多线程来截取避免堵塞。
参考文献:
[1]王书海、刘明生、肖众,机房管理系统用户登录认证方案设计[J].实验室研究与探索,2005,24(2).
[2]仲兆满、韩其睿、管燕,一种基于网卡的网络实验室安全设计[J].仪器仪表用户,2005,12(5).
转载注明来源:https://www.xzbu.com/8/view-1067031.htm