一种基于主板BIOS的身份认证方案及实现 分类: arm-linux-Ubuntu windows驱动程序WDF 2015-05-11 11:02 372人阅读 评论(1) 收藏


BIOS简介

BIOS是只读存储器基本输入/输出系统它是被固化到计算机中的一组程序为计算机提供最低级的最直接的硬件控制在计算机系统中起着非常重要的作用BIOS是硬件与软件程序之间的接口负责解决硬件的即时需求并按软件对硬件的操作要求具体执行BIOS的功能包括自检及初始化硬件中断处理程序服务处理

1. 自检及初始化

这个部分的功能是启动计算机包括三个部分第一个部分是用于计算机刚接通电源时对硬件部分的检测也叫做加电自检POST),功能是检查计算机是否良好第二个部分是初始化包括创建中断向量设置寄存器对一些外部设备进行初始化和检测等其中很重要的一部分是BIOS设置主要是对硬件设置的一些参数当计算机启动时会读取这些参数并和实际硬件设置进行比较如果不符合会影响系统的启动最后一个部分是引导程序功能是引导DOS或其他操作系统BIOS先从软盘或硬盘的开始扇区读取引导记录如果没有找到则会在显示器上显示没有引导设备如果找到引导记录则会把计算机的控制权转给引导记录由引导记录把操作系统装入计算机在计算机启动成功后BIOS就完成了任务

2. 程序服务处理和硬件中断处理

程序服务处理程序主要是为应用程序和操作系统服务这些服务主要与输入输出设备有关为了完成这些操作BIOS必须直接与计算机的I/O设备打交道

通过端口发出命令向各种外部设备传送数据以及从它们那里接收数据使程序能够脱离具体的硬件操作而硬件中断处理则分别处理PC机硬件的需求

BIOS的服务功能是通过调用中断服务程序来实现的这些服务分为很多组每组有一个专门的中断

BIOS启动过程

1    通过执行一段位于内存最高端的15字节的代码完成启动32位机内存最高地址FFFFFFF0000JMPBIOSPOST

2    2.大部分POSTTEST通过BIOS在中断向量表00000000H——

 

000003FFH中填写服务例程

3.BIOS 扫描C0000——

DFFFFH内存映象空间检查各种扩展的ROM传递控制此时扩展ROM程序可获得控制权将自身挂到系统上BIOS对扩展的ROM检查从C0000H开始2KB为增量直到DFFFFH每一个有效的扩展的ROM必须建立一个标识供POST来识别它适配器的ROM块控制结束最后返回到BIOS

4.继续其他POST

5.调用INT19H的中断向量执行引导程序实现系统自举

嵌入程序模块头信息

嵌入到BIOS中的程序模块必须满足一定的要求否则BIOS无法读取其头信息如表1所示

表1

嵌入程序模块头信息

偏移地址

长度

说明

0

1

55H

模块有效标志1

1

1

AAH

模块有效标志2

2

1

模块长度

512字节为单位

3

3

入口执行代码

一条远调用跳转指令

 

字节0、1组成一个字,值为AA55H,BIOS检测过程中的模块有效标志。

字节2:模块长度,表示ROM中以512字节为一块的信息块的个数。最大值为FFH,即模块的长度不能超过127.5K。

字节3:ROM可执行程序开始。POST找到有效ROM模块时,远调用ROM模块字节3中的指令,ROM模块可获得控制权,最后执行RETF指令返回BIOSPOST。

另外,嵌入模块文件中所有字节进行相加,得到和K,KMOD100H=0,K即为计算机系统认可的有效模块校验和。

四、网络身份认证实现原理及嵌入方法

1. 网络身份认证实现原理

网络身份认证就是系统通过网络通讯核查用户的身份证明过程实质上是查明用户是否具有他所请求资源的存取和使用权用户身份认证是安全系统的第一道防线目的是防止非法用户访问系统其方法是由系统提供一定的方式让用户标识自己的名字或身份

用户标识和鉴定的方法有很多种而且在一个系统中往往是多种方法并举以获得更强的安全性常用的方法是用一个用户名或者用户标识号来标明用户身份系统内部记录着所有合法用户的标识系统鉴别此用户是否是合法用户若是则可以进入下一步的核实若不是则不能使用系统为了进一步核实用户系统常常要求用户输入口令Password)。通过用户名和口令来鉴定用户的方法简单易行但用户名与口令容易被人窃取因此用户身份认证还可以采用比较复杂的计算过程和函数来完成

基于注册系统安全性的考虑避免注册的种种弊端在此提出网络注册中基于BIOS系统的用户身份认证方法BIOS注册程序作为扩展BIOS单独生成一个ROM模块注册程序主要具备如下功能对进入实验室的用户进行身份认证合法用户可以使用任何一台计算机非法用户拒绝登录注册程序在操作系统引导之前运行无高层的IP地址协议故注册程序需要与登录服务器联系得到自己的IP地址服务器的MAC地址使用TCP/IP协议和登录服务器进行通信登录服务器首先开机等候客户机的请求客户机在启动时,必须从网络上得到自身的IP地址以及服务器的IP地址,因此,首先以广播的方式和服务器进行联络,服务器收到客户机的请求后,向客户机返回客户机的IP地址以及服务器的IP地址MAC地址然后,客户机接收用户的登录信息,并用TCP/IP协议把登录信息发送给服务器,服务器验证登录信息之后,把控制信息发送给客户机,注册认证程序接收到服务器的控制信息后,如果客户是合法用户,则退出注册认证程序,启动计算机如果为非法用户,则锁定系统,不启动计算机,直到有合法的用户登录为止

 

网络身份认证系统的用户身份识别特点为:

1    1满足计算机启动时用户认证的顺序先认证后启动计算机网络身份认证是在操作系统启动之前进行这样才能保证系统注册认证的安全性这种身份认证是在启动BIOS的过程中进行的没有进行任何操作系统的装载只有当认证结束后才装载操作系统

2    2网络身份认证程序进行的认证是在没有任何操作系统的情况下模拟TCP/IP协议

 

为提高网络注册程序的安全性避免其他人对数据的窃取还可以对系统本身的通讯数据采取加密措施数据加密是防止数据在存储和传输过程中失密的有效手段加密的基本思想是根据一定的算法将原始数据明文变换为不可直接识别的格式密文),从而使得不知道解密算法的人无法获知数据的内容

加密方法主要有替换和置换两种单独使用这两种方法的任意一种都是不够安全的但是将这两种方法结合起来就能提供相当高的安全程度

2. 模块嵌入方法

鉴于AwardBIOS在市场上非常流行用户使用也很普遍本文重点介绍在AwardBIOS中嵌入用户模块的方法AwardBIOS嵌入程序设计的基本流程包括

1    1首先用汇编编写DOS下的COM程序必须注意到程序是优先于操作系统执行的所以程序中不能调用任何DOS中断服务

2    2调试通过后COM文件前加上文件头最后返回指令为RETF控制文件大小为512字节的整数倍重新编译生成COM文件

3    3生成的COM文件利用其中的checksum工具生成文件的校验码在值为0的字节处添加相应的16进制数直到校验和为xx00H为止

4    4BIOS分析工具cbrom将文件作为ISAPCI模块嵌入到BIOS文件中

5    5用读写BIOS工具awdFlash将新的BIOS文件烧录到主板BIOS

 

3分析AwardBIOSDOS工具cbrom

cbrom的功能就是在BIOS文件中添加删除与提取模块以便满足用户自己的需求用法如下

cbromBIOS文件名/参数模块名|RELEASE|EXTRACT

版权声明:本文为博主原创文章,未经博主允许不得转载。

原文地址:https://www.cnblogs.com/mao0504/p/4706426.html