指纹采集设备

2024-06-01

指纹采集设备(共5篇)

指纹采集设备 篇1

0 引言

随着指纹识别技术的发展, 由于唯一性和终身不变的特性, 采用指纹特征进行人员的身份识别成为国内外的一种趋势, 指纹识别技术得到了广泛的应用。作为指纹识别中的一项重要技术内容, 尽管四十多年前指纹采集设备就已问世, 但直到近些年, 大家对指纹采集设备的关注才逐渐加大。近年来, 指纹采集设备市场飞速发展, 体积在缩小, 价格在降低, 指纹系统被整合为诸如笔记本电脑、硬盘、鼠标、键盘等电子设备的一部分。本文将围绕设备类别、触摸式与刮擦式的比较、活体检测等内容介绍指纹采集设备相关技术的应用和发展。

1 指纹采集设备类别及发展

第一代采集设备使用的是光学技术, 目前绝大多数采集设备属于以下其中一种:光学的、晶体的和超声波的。当今使用的主要是是光学和晶体传感器。由于体积紧凑, 便于嵌入笔记本电脑、手机、智能卡等物体, 晶体传感器现在得到了广泛应用。

光学传感器:光学传感器的优点包括经受温度变化、相当低的成本、分辨率较高、较好的图象质量和更大传感范围。光学传感器的缺点是尺寸大以及污垢、油脂等污染对光学传感器的影响。

晶体传感器:最初晶体传感器的问世是为了克服光学传感器的体积和成本问题。然而, 考虑到设施的高安全性, 需要较大的传感区域, 这样事实上晶体传感器的成本就不比光学传感器低了。将物理信息转换成电子信息的四种不同的晶体传感器技术分别是:电容性的、热量的、电场的和压电的。

超声波传感器:在超声波传感器中, 传送器向手指传送声音信号, 接收器探测到在手指皮肤之间来回的回声信号。用皮肤和空气间声音阻抗的不同来测量距离, 这样就获得了指纹的图象。这种传感器的频率范围是20千赫到几千兆赫。如要相互区分指纹, 那就需要高频率来获得所需的信号差异。

事实证明, 超声波传感器获得图象的准确率要比市场上其它指纹传感技术好。超声波技术也是能反应手指次表皮肤的几种少有的技术中的一种, 这样能穿透脏物、油脂等。尽管超声波传感器被认为也许是指纹技术中最精确的一种, 但由于尺寸大、成本非常高, 没有被广泛使用, 而且, 用超声波传感器获取图象需要耗时几秒, 时间较长。

2 触摸式与刮擦式的比较

如今使用的大多数传感器是接触式。当使用接触式传感器时, 只要将手指放置在传感器上保持几秒钟不动就可以了, 接触式传感器的使用者不需要培训。然而, 接触式传感器也存在一些缺点:

(1) 传感器很快就会变脏, 必须要进行清洁。

(2) 残留指印的问题。国外研究表明, 根据传感技术的类型, 有的可能会重新激活残留在指纹传感器上的指印。

(3) 手指的旋转是识别的另一个问题。一些比对算法不接受手指大角度的旋转 (例如超过20度) 。

(4) 传感区域成本与尺寸的权衡。晶体传感器这个问题尤其突出, 成本主要取决于芯片模具的区域。

由于这些缺陷, 一种新的传感器问世了:刮擦式传感器。刮擦式传感器与手指一样宽, 但只有几像素高。因此, 刮擦式传感器的主要优点, 特别是对于晶体传感器来说, 是成本下降。扫描只包括纵向运动, 在结束时, 将先前所获得的所有图象进行重组, 得到指纹图象。

刮擦式传感技术最先问世时只与热量传感器相结合, 但目前已经在许多不同的传感器中得到了应用。与接触式传感器不同, 刮擦式传感器在使用过程中能够保持很干净, 不存在残留指印的现象, 而且在大多数情况下, 手指的旋转也不是问题。但刮擦式传感器也存在一些缺点, 比如:

(1) 使用前要进行学习。在使用者习惯于正确扫描 (没有急剧的速度变化或不连贯) 之前, 需要做很多次尝试。

(2) 为能跟上扫描速度, 界面必须能捕获足够多的指纹图象层。

(3) 从图象层到指纹图象的重整过程需要持续一段时间, 有时会出错。

3 指纹采集仪的活体检测技术

活体检测是指系统在注册、识别认证过程中检测样品是否是活体。一些指纹识别系统的生产厂商也宣称他们在系统中具备活体检测的能力。通常有两种方法进行活体检测: (1) 利用附加的部件获取生命特征; (2) 利用系统已捕获的信息检测生命特征。第一种方法的缺点是价格贵, 体积大。第二种方法对算法要求比较高。目前比较常用的是第一种。只有在美国, 过去的几年中提出了许多基于生命特征的指纹采集设备中的活体检测专利。这里将描述其中的一些方法。

温度:表皮的温度大约在20—30摄氏度, 这种方法主要利用传感器检测表皮的温度是否在正常范围来进行活体检测。

光学特性:光学传感器可以利用人体皮肤与其他材质光学特性的比较作为一种活体检测方法。这种特性包括在不同光照条件下的吸光、反射、散射和折射。

电阻:根据手指的湿度, 皮肤电阻的范围从几千欧姆到几百万欧姆。由于有些人手指干燥而有些人潮湿, 空气条件和心理状况等也会改变人体皮肤的湿度, 因此皮肤电阻所允许的范围会很大。

脉动血氧:脉动血氧在医学领域是用来测量病人动脉血中血色素氧气饱和度。脉动血氧计也可以用来测量脉动速率。涉及的技术基于两个主要原理: (1) 血色素根据氧化度以两个不同的波长吸收光; (2) 每一次脉搏跳动时动脉血的波动量为吸收增加了跳动成分。

ECG、脉搏血氧与温度相结合:1998年的一项美国专利建议活体检测中最好使用多个生物特征, 并给出了许多非确定的生物测定参数, 最适宜的是脉搏血氧、心电图 (ECG) 和温度传感器相结合。

表皮下方的探测:人体的皮肤包括两层:表皮和真皮。不仅可以在表皮找到指纹纹样, 也可以在两层皮肤中间发现相同的纹样, 这就是此方法检测所利用的原理。

参考文献

[1]Federal Bureau of Investigation.The Seience of Fingerprint:classification an uses, United State, Empire Book, 2001[Z].

[2]David M, Dario M, Anilk J, Salil P.Handbook of Fingerprint Recognition[Springer London Ltd., 2009[Z].

基于FPGA的指纹采集系统设计 篇2

1. 指纹采集系统总体设计

本系统采用Xilinx公司Spartan-3E系列XC3S500E型FPGA芯片作为控制核心, 其50万门的容量满足了全系统设计的需要。选用基于OV7120黑白CMOS图像传感器芯片的指纹传感器, 采集640×480的灰度指纹图像。

指纹采集系统的总体结构如图1所示。整个系统中的I2C控制模块、SRAM模块和VGA显示控制模块全部在FPGA芯片上设计实现。OV7120指纹传感器有16根信号线, 通过FPC16扁平电缆连接XC3S500E系统板上的FX2-100S-1.27DS连接器。同时, XC3S500E系统板也提供了标准VGA接口连接显示器。

2. 指纹采集系统控制流程设计

整个指纹采集系统的软件控制流程如下:主控FPGA芯片XC3S500E向指纹传感器发出开始工作命令;然后, 通过FPGA中的I2C总线控制模块向指纹传感器发出工作方式设置命令;在I2C控制模块完成对OV7120指纹传感器的工作方式设置后, 开始实时接收采集的指纹数据, 同时将采集到的一帧指纹数据写入在FPGA中设计的SRAM中;最后由VGA控制模块读取SRAM中的指纹数据经VGA端口送到显示器显示。

2.1 I2C总线控制模块设计

OV7120指纹传感器的工作方式、数据输出格式、扫描模式等参数的设置通过SCCB串行接口来实现的。而SCCB串行接口就是简化的I2C总线。在XC3S500E芯片上采用VHDL语言程序软件模拟方式, 实现对I2C总线接口控制, 完成对OV7120指纹传感器工作方式的设置。

根据I2C总线的通信协议, 将总线上的信号划分为空闲 (idle) 、启动 (start) 、写 (write) 、确认 (ack) 和停止 (stop) 五种工作状态。I2C控制模块在接受到FPGA发出的启动信号后, 进入start状态, 并根据写寄存器命令, 进入write状态。由于写操作都是以字节进行的, 对应8个周期的I2C总线写操作, 故设计一个8节拍的计数器, 使得write状态能维持8个SCL周期。在完成字节写操作之后, 将进入ack状态。进入ack状态, 标志一个写寄存器命令已经完成。I2C总线状态转换关系如图2所示。

I2C总线控制模块的状态转换部分源程序如下:

2.2 SRAM模块设计

在XC3S500E芯片内部设计SRAM模块进行数据的缓存, 相比采用外部SRAM芯片存储, 大大提高了数据读写速度。指纹传感器输出的一帧指纹图象数据大小约为300k, 相应设计的SRAM有19个地址引脚, 8根数据线, 有片选引脚CS、写有效引脚wr、读有效引脚rd。wr和rd分别与CS联合控制读写使能。

2.3 VGA显示控制模块设计

VGA显示控制模块设计总体结构如图3所示。图中二分频子模块把50mhz时钟频率分成25mhz并提供给其它子模块作为时钟;VGA时序控制子模块用于产生640X480显示范围, 并控制显示范围和消隐范围以及产生水平同步时序信号hs和垂直同步时序信号vs的值;按照SRAM中数据存储地址读出显示数据, 并将R、G、B的值通过VGA接口传到CRT显示器。

VGA时序控制子模块部分的行列控制源程序如下:

3. 总结

这种基于FPGA芯片的指纹采集系统, 全部控制逻辑在单个FPGA芯片内部实现, 简化了外部电路设计;利用FPGA较高的工作频率使得指纹采集、传输、处理速度快, 在后期还可加入图像处理的算法进一步提高成像质量。全系统具有机构简单、体积小、可靠性高等优点, 具有较强的实用价值。

摘要:本文设计了一个基于Xilinx公司FPGA芯片XC3S500E的实用指纹采集系统。给出了指纹采集系统的总体结构和控制流程, 并详细描述了各个控制模块的工作原理以及设计实现方法。

关键词:指纹采集,FPGA,I2C总线

参考文献

[1]田耘, 徐文波.Xilinx FPGA开发实用教程[M].清华大学出版社, 2008:1-25.

[2]徐志军, 徐光辉.CPLD/FPGA的开发与应用[M].北京:电子工业出版社, 2002:30-70.

[3]李泽文.I2C总线控制及基于FPGA的实现[J].科技经济市场, 2006, 8:23-25.

[4]罗钧, 吴克松, 廖红华.基于NiosII的图像采集和显示的实现[J].电子技术应用, 2007, (2) :24~27.

指纹采集设备 篇3

指纹图像采集是进行指纹识别的第一步,也是关键的一步,所采集到的指纹图像质量的好坏直接影响指纹识别的后续工作,影响到整个系统的性能[1,2,3]。采集的指纹图像质量易受外界环境影响——手湿、手干或者手指放置位置过偏,都会造成图像质量严重下降,直接影响后续图像提取的细节点特征是否可靠,从而无法进行匹配。指纹过干图像,则脊线不够连续,甚至有许多断裂的地方,可能导致伪细节点;指纹过湿图像,则脊谷边界不清晰,甚至图像模糊漆黑,导致提取不出真实的细节点。

FPS200是Veridicom公司推出的一种电容式半导体指纹传感器[4]。FPS200指纹传感器包含两组采样保持电路。这两组电路分别保存充电后和放电后的极间电压,根据两次电极间的电压差,可以获得每一行指纹脊和谷形成的电容值。电容值经过A/D转化后就能作为采集指纹图像的数字量。改变FPS200传感器中DTR(放电时间),DCR(放电电流)和PGC(放大器增益)三个寄存器的值,可以调整采集到的指纹图像的质量。其中,PGC主要控制传感器内部放大器的增益,也就是控制图像的对比度。改变DCR与改变DTR的作用相反。对于湿指纹,增加DTR可以明显地减少噪声影响。而对干指纹的输入,减少DTR的值可以缓解指纹的断裂程度。

文献[5]中提出了一种采集方法,通过图像分割、优势方向评估和干湿性判断,给出图像质量总评分。对于太干的指纹,通知用户湿润手指后再采集,对于太湿的指纹,通知擦干后重新采集。如果太偏,提醒注意手指放置位置。文献[6]引入FPS200的参数调整,通过预设三组寄存器参数值,在提醒用户的同时,根据指纹的干湿性,选择合适的一组参数。Veridicom的图像搜索功能(ImageSeekTM)通过改变电容阵列的参数值在1秒内扫描多幅指纹图像并自动选择最好的一幅[4]。但是,该功能并没有公开实现算法。现提出了一种针对FPS200的自适应指纹采集算法。该算法在采集指纹图像的同时实时对图像进行干湿判断和质量评分,根据计算结果动态调整传感器的参数值,改善采集到的图像质量。

2 自适应指纹采集算法

自适应指纹采集算法通过动态调整FPS200传感器参数,可以适应手指一定程度的干湿状况。由于干湿判断和质量评估必须在采集指纹图像帧的同时实时完成,所以指纹质量判别算法只能采用简单的快速方法。

现提出的自适应指纹采集算法首先对指纹进行图像分割,提取前背景区域,然后判断干湿指纹,若该指纹不干不湿,采集成功,否则,根据指纹的干湿程度调整FPS200参数重新采集,同时对采集的指纹进行质量评分。根据采集指纹图像的质量分数确定是否停止参数调整。当参数调整结束后,若指纹还是过干或过湿,则通知用户采集失败,并提醒用户湿润手指或者擦干手指。

采集算法中的图像分割、干湿判断和质量评分只利用了简单的分块图像灰度特征,计算复杂度较低,可以满足系统的实时要求。

2.1 指纹图像分割

通过适当的图像分割,能提高质量评分和干湿判断等步骤的速度和准确性。干湿判断只需在前景区进行,而质量评分则需要根据不同的区域使用不同的评分函数。分割算法使用均值和绝对偏差等一阶特征作为分割依据。尽管受噪声影响大,但是相对于基于方向信息的分割算法,该算法速度更快。由于指纹中心区域比较清晰[7],因此以指纹中心区域的灰度特征作为分割的依据。总体思路是先求出指纹的中心位置,然后以指纹中心的绝对偏差作为分割阈值的依据,对指纹进行分割。

首先,把图像分成大小为15×15像素的小块,然后计算每块的块灰度均值(记作MBlock)和块绝对偏差(记作DBlock)。

式中,I(i,j)为图像像素的灰度值。

然后搜索指纹的中心区域。绝对偏差大的图像块的聚集区域最有可能是指纹的中心区域,因此以这些图像块的块绝对偏差的均值计算阈值,就可以求出指纹的中心位置。计算块绝对偏差(DBlock)的均值(MDeviationBlock)以及绝对偏差(DDeviationBlock),可以得到判别指纹中心区域的阈值。

(3)式中,K1是调整系数。

利用此阈值可以得到指纹中心区域的边界,进而求出中心点坐标,同时进行指纹位置是否过偏的判断。

接着,利用指纹中心区域的特征值计算分割阈值,进行前/背景分割。分割掩膜公式如下

(4)式中,DCenter是指纹中心点附近3×3邻块区域的区域绝对偏差。K2为调整系数。当MaskBlock为1时,该块为前景,反之为背景。

分割后对分割所得掩膜进行滤波平滑,去除孤立的图像块。

2.2 指纹干湿判断

指纹的干湿程度直接影响后续图像提取的细节特征点是否可靠。对指纹的干湿度进行判断,可以筛选采集的指纹图像,并以此为基础对传感器参数进行调整,改善图像质量。

干湿判断具体操作过程如下。对于每一个前景图像块,分别计算块内小于和大于块灰度均值的所有象素的灰度均值(Munder 和Mupper),即脊线和谷线灰度的均值。

其中,

以干块因子Munder /DBlock和湿块因子Mupper×DBlock来判断干图像块和湿图像块。对于质量良好的指纹图像块,干块因子较小而湿块因子较大。对于过干的指纹图像块,干块因子较大。对于过湿的指纹图像块,湿块因子较小。如果某一图像块的干块因子大于阈值Tdry1,则该图像块被标注为干图像块。如果其湿块因子小于阈值Tmoist1,则该块被认为是湿图像块。分别统计所有干图像块和湿图像块占前景图像块的比例,如果干块比例超过阈值Tdry2,则认为该指纹图像太干。若湿块比例超过阈值Tmoist2,则该指纹为湿指纹[5]。若指纹既被评为干指纹,又被认为是湿指纹,定义该指纹为差指纹。在调整传感器参数时,需特殊处理。

2.3 指纹质量评分

质量评分用于评估采集指纹图像的质量,是传感器参数调整的重要依据。本算法基于指纹的灰度特征,选取了5个不同的质量评分因子。考虑到不同的质量评分因子的贡献不同,采用了加权方法[8]计算指纹的质量总评分。

首先是指纹区的Fisher值(记为F)[9],其计算公式如下

(10)式中,

对于质量好的指纹,谷线与脊线的像素均值差值很大,而各自区域上的方差比较小,因此F大。质量不好的指纹的F则偏小。因此Fisher值适合作为指纹的质量评分因子。

其次使用指纹区的绝对偏差作为另一个质量因子,而引入指纹区脊线与谷线像素数目比例能更好地完善指纹图像质量评分。以上三个质量评分因子都只是针对指纹区的灰度特征进行评分,对于背景区,引入背景区的绝对偏差和噪声灰度均值作为评分因子。

在分别求取了以上各评分因子后,对指纹图像给出一个综合评分值

(15)式中,Si(i=0~4)为5个质量评分因子的分数,Wi表示其权值,且∑iWi=1。

2.4 电容式传感器参数调整

在手指按下的短时间内,本算法通过快速自适应调整FPS200的参数,多次重新采集指纹图像,直到指纹图像的质量满足一定要求。

2.4.1 调整参数的选取

改变放电时间DTR或者放电电流DCR均可以调整FPS200传感器的灵敏度[4]。本文算法通过调整DTR以适应手指一定程度的干湿状况,DTR的最大调整范围为0到127。DTR、DCR和PGC的初始值均采用器件缺省值。

2.4.2 传感器参数的调整

可根据指纹的干湿度来控制DTR参数的调整方向。对于湿指纹,应增大DTR。对于干指纹,应减小DTR。但是对于又干又湿的差指纹,需要进行特殊处理。差指纹的出现一般是采集到的湿指纹受残留指纹(或者大片的背景噪声)的影响,因为比较淡的残留指纹区可能被认为是干块,指纹将被判断成差指纹。这时,可以使用尝试的方法确定DTR的调整方向,尝试分别增大DTR和减小DTR,根据采集的指纹质量确定最佳的调整方向。

DTR调整的步长采用自适应变步长方法。使用FPS200采集到的质量较好的指纹图像,其灰度均值都在一个均值中心区域附近波动,而过干或者过湿的指纹图像灰度均值则会远离此中心区域。因此,当采集指纹图像的灰度均值远离此中心区域时,DTR取较大的调整步长进行粗调,以加快调整速度,提高算法的效率。当灰度均值接近此中心区域时,DTR调整的步长设为一个较小的值,通过质量评分进行细调,以得到质量更好的指纹。

2.4.3 调整结束的条件

为了保证在指定的时间内完成指纹图像的采集,DTR不能无限次调整,必须设置停止条件,在适当的时候停止调整。

首先,当找到质量最好的指纹时,停止参数调整,采集也随之结束。每次重新采集到指纹后,对新指纹进行质量评分,判断该分数是否最大值,若是则停止调整,否则继续调整参数,直到找到最大值为止。最后,当参数调整次数超过预设的次数NMAX时,结束调整,防止过度调整。

3 实验结果

实验中使用FPS200作为指纹传感器采集指纹,FPS200工作在USB模式。图1是DTR采用缺省值时采集到的一个典型湿指纹图像,图2则是对应同一指纹进行DTR自适应调整后采集到的质量较好的图像。图3和图4则是典型的干指纹图像和对应的自适应采集的图像。

由实验结果可见,自适应调整算法可以改善较干或者较湿的指纹图像质量。在实验中,质量较差的指纹图像的调整次数一般不会超过4次,采集时间小于0.5s,可以满足指纹识别系统的实时采集要求。

4 结论

提出的自适应指纹采集算法对在线采集的指纹进行实时干湿判断和质量评分,根据判决结果动态调整传感器的参数。算法在一定程度上改善了不同环境、不同手指对指纹采集图像质量的影响。

参考文献

[1]田捷,陈建生,张阳阳,等.指纹识别技术的新发展.自然科学发展,2006;16(4):400—408

[2]李振明,林耀荣,赵丽敏,等,基于梯度的方向图估计改进算法.科学技术与工程,2006;6(12):1620—1624

[3]薛俊韬,王树成,刘正光.指纹图像的自适应预处理研究.计算机工程与设计,2008;29(1):157—159

[4]Veridicom.Fingerprint Sensor.http://www.veridicom.com/pdfs/FPS.pdf,2007

[5]祝翠琴.针对固态指纹传感器的图像质量评估方法.计算机工程与应用,2003;39(16):102—104

[6]徐明进.嵌入式自动指纹识别系统中几个重要问题的研究.重庆:重庆大学,硕士论文,2005

[7]Yu Decong,Ma Lihong,Lu Hanqing,et al.Fusion method of finger-print quality evaluation from the local Gabor feature to the global spa-tial-frequency structures.Advanced Concepts for Intelligent Vision Systems.Heidelberg:Springer Berlin,2006:776—785

[8]Qi Jinqing,Desiree Abdurrachim,Li Dongju,et al.Ahybrid method for fingerprint image quality calculation.Fourth IEEE Workshop on Automatic Identification Advanced Technologies,New York;2005:124—129

指纹采集设备 篇4

信息化技术已持续发展十余年,各种网络已经过了多年的漫长建设周期,而在建设过程中由于功能需求不断的变化,会出现大量不同的业务系统、应用组件以及不同版本的操作系统、硬件等设备的不断叠加[1]。这种叠加导致的往往是网络内部IT资产的管理混乱,而从安全角度来说,由于更新换代的速度过快,一些大型网络中往往会出现照顾不到的信息孤岛。这样的信息孤岛多是已经不再使用的老旧业务系统,但由于内部网络的复杂性而被忽略,而这样的孤岛却又是日常安全问题中最薄弱的点,最容易被黑客突破的点。例如随着智能电网的建设和发展,其在线监测系统的不断增加导致“信息孤岛”问题愈发突出,使管理复杂度增加[2,3]。

另一方面,随着互联网技术的不断发展和开发,各类因应用组件造成的安全事件或由应用组件所造成的服务中断等事故,只能是依靠于反馈的方式逐级进行问题提交。对于各类不同应用组件的使用,我们在某一应用组件出现安全风险时只能进行单一的针对性修复或防御策略追加,而无法有效匹配全网中所有的受影响系统,并进行统一的安全修复和防御策略追加,只能被动防御。对于应用组件的变更、系统升级等变化无法进行有效探测和追溯以及安全预警,为改变被动防御的现状,实现资产的有效识别、追溯,建立有效的积极防御体系,需要建立长期的资产全状态管理及预警能力,通过周期化、自动化的软硬件资产普查,掌握各类资产的安全属性,并在漏洞爆发时可以做到有效应对,从而更符合各种政策规范的要求,为网络及业务的稳定运行提供技术保障[4]。

目前,现有设备缺乏对资产的自主发现能力,难以发现网络中存在的“信息孤岛”。从扫描设备来说,扫描设备往往只兼顾其漏洞库所涵盖的设备,对于一些“设备未能识别”的资产缺乏持续的发现能力,因此某些信息孤岛难以被捕获到;而对于事件管理平台来说,若资产不出现可被拦截或捕获的安全事件,资产便永远不会被平台所发现。同时,现有设备缺乏对资产的全方位信息定位能力[5]。一个IT资产,除了其所属管理范围和业务系统外,还具备相当多的外围属性,如:设备类型、组件类型、各类应用版本信息等等[6,7]。而目前互联网上常见的漏洞都是针对特定类型及版本的组件或应用产生的,所有这些信息一旦能够被识别并存储下来进行持续跟踪,便可以实现对漏洞危害范围的持续跟踪。

针对以上问题,本文研究并设计了基于指纹采集的网络空间大规模侦测系统,通过采集网络空间的指纹信息,对网络设备组件进行识别,利用分布式调度和分布式存储技术[8,9,10],设计并实现了大规模分布式侦测,极大提升了侦测速度和侦测效率。本系统具备对IT资产的自主发现能力,并对IT资产进行全方位信息定位,实现对网络空间的全面、实时、精确侦测。

1 系统设计

网络空间是由无数节点构成,每个节点都是一个接入网络的物理设备。多数网络设备内部都装有特定的组件,自主研发或者使用第三方组件。每个网络设备会使用到多款组件,组件是构成网络空间的最小组成单元。基于指纹采集的网络空间大规模侦测系统通过调用调度服务器、UI(User Interface,用户界面)服务器、数据库服务器和网络设备指纹获取服务器,对服务器、应用程序服务器、路由器、防火墙、网络摄像头和交换机等网络空间设备进行大规模侦测,其具体结构如图1所示。

调度服务器采用分布式调度技术,对多个节点实现智能的任务分发、负载均衡、异常处理、进度汇总、结果汇总等。为实现分布式调度技术,公用的中间层采用高效内存存储方案,存储任务队列、异常信息、进度信息、结果信息等,调度与每个节点通过公用的中间层来交换相关数据。

UI服务器为界面有关的软件人机交互、操作逻辑等提供服务,包含了报表、站点管理、系统管理等的操作界面。UI服务器为操作界面提供后台支持,以实现用户友好交互,在系统中起着重要的衔接作用。

数据库服务器为应用提供服务,服务包括查询、更新、事务管理、索引、高速缓存、查询优化、安全及多用户存取控制等。数据库服务器提供了用于数据操纵的标准接口API,并提供监控性能、并发控制等工具,由DBA(Database Administrator,数据库管理员)统一负责授权访问数据库及网络管理。数据库服务器提高了系统性能,降低了网络开销,同时便于平台扩展。

网络设备指纹获取服务器通过对网络设备的特定端口进行请求,判断端口是否开放;并根据端口返回信息,利用指纹比对技术,结合指纹数据库,对网络设备所使用的组件类型进行识别,从而完成对网络空间的侦测。

2 系统架构

网络空间大规模侦测系统组成如图2所示,分布式调度模块管理各个端口探测引擎,针对侦测目标对象,结合指纹库,进行周期性的组件指纹探测,并将结果数据存储入库,供数据展示模块调用,进行查询、统计、导出等操作。监测结果存储在监测结果数据库中,通过数据展示模块对数据进行处理,可以实现数据查询、数据统计和数据导出等功能。综合管理模块负责任务管理、引擎管理以及日志管理,保证系统的正常运转。

用户建立任务后,UI通过API接口传递到后台数据库,由调度引擎获取任务并将任务按一定规则先后分配给各检测引擎,检测引擎接收任务后执行检测功能,通过命令行参数驱动Xmap、Wmap和POC(Proof of Concept,验证测试)功能的执行,获取到相应数据后,以IP或域名的方式归类到相应字段,再通过调度程序将获取数据入库到Mongo DB。最终由UI接口从数据库提取相应数据完成信息的展示。

基于指纹采集的网络空间大规模侦测系统核心主要分为权限控制、UI展示、数据库、任务调度、核心检测组件五层。权限控制定义了用户权限范围,是系统操作功能的实现基础。报表及UI包含报表、站点管理、系统管理等界面操作,是与用户操作相关的核心模块。数据库使用My SQL及Mongo DB数据库,进行面向对象封装。其中Mongo DB是一种NO-SQL类型的数据库,具备更好的高并发读写性能,具备无限扩容能力,是目前国内外很多云系统建设的基础数据库。任务调度实现自动的任务调度功能,能够自动将检测任务分发到不同检测引擎进行并发处理。核心检测组件包括站点发现、信息探查模块、端口探测模块、指纹探测模块,是系统所有检测功能的具体执行部分。

3 系统实现

3.1 指纹探测

3.1.1 Web服务器指纹探测

Web服务器指纹探测模块主要通过探测:网站响应头部数据、网站文件类型、网站对40错误响应的返回、网站对500错误响应的返回(如果存在)、网站对超长请求的响应返回、网站对畸形请求的响应返回、服务端口标识回显等请求,并利用返回信息作为判别依据进行Web服务器的指纹判断。通过指纹解析引擎获得目标网站的Web服务器发行版本、版本号等信息。同时,这些探测信息可用于辅助判断远程服务器上运行的操作系统、Web脚本语言、Web组件及相应版本型号。

3.1.2 Web应用指纹探测

Web应用指纹探测模块利用高精度的指纹识别技术对Web应用进行精确识别。该模块主要通过探测Web应用服务器上所运行的第三方Web组件特征信息来判断其所使用的组件情况和具体版本信息,主要探测以下几个请求和返回信息进行Web应用指纹判断:网站响应头部信息、HTML页面内META标签信息、HTML内JS、CSS等链接信息、特殊URL地址及URL参数、COOKIE/Session内特征字段特定文件名、文件内容及文件MD5。将这些信息进行组合匹配,包括:网站响应头部信息、HTML页面信息、特殊URL信息、网站文件MD5哈希值信息等。这些内容中都会存在一些Web应用的唯一性特征,多种方式的组合能提高程序的检测精度,几乎不会存在误报情况,从而实现对目标Web服务器上所运行的组件精确判断。

3.1.3 操作系统指纹探测

操作系统指纹探测模块基于Nmap端口扫描工具,不断持续跟踪和分析不同版本操作系统在TCP/IP栈中的数据特征,获得网站开放端信息、端口上的协议类型和版本等信息。通过对扫描结果的处理,从Banner中获取网站使用的Web容器及类型以及其它应用信息。不同操作系统在接收TCP或UDP请求时,其返回的数据填充内容、IP头中的SEQ NUMBER等特征呈现出不同的规律,在该规律上进行深度挖掘,可以精确识别操作系统服务版本。

3.2 基于指纹库的网络设备组件识别

基于指纹库的网络设备组件识别模块是网络空间大规模侦测系统的核心。该模块通过对网络设备的特定端口进行请求,根据端口返回信息,利用指纹比对技术,结合指纹数据库,对网络设备所使用的组件类型进行识别。该模块根据TCP/IP协议规范特征进行扫描探测,由于RFC没有明确TCP连接初始序列号、TCP可选项、TCP窗口大小、TCP时间戳、TCP ECN标记、异常属性的TCP关闭端口、分片IC-MP请求、服务控制ICMP请求、异常属性的UDP关闭端口,为了获得未明确定义导致的差别,本模块采用如下方法进行探测:

①对目标端口探测,获得至少一个开放端口和一个关闭端口。

②构造16个探测报文,包含6个序列号和可选项的TCP探测报文,2个ICMP探测报文,1个ECN的TCP探测报文,6个关闭端口的TCP探测报文,1个关闭端口的UDP探测报文。

③构造的16个探测报文,确保每个报文在100ms内发送。如果某个报文没有应答,则重新发送一次。

④提取目标指纹,结合目标的已知操作系统类型,构造先验指纹库。

⑤使用构造的先验指纹库探测新的目标主机。

⑥使用HTTP协议连接远程Web服务器获取相应应答报文,通过比较应答报文特征来识别Web服务器类别与版本。

3.3 分布式数据存储及任务调度

为解决大规模数据的存储和分析问题,系统采用分布式架构,为网络空间大规模侦测提供可靠的平台支持。该架构使系统具有可扩展性,可根据需求添加不同的功能。各模块之间的低耦合性降低了系统的维护难度。针对大规模网络空间,系统将任务分解,合理分配资源,分布式并行处理提高了处理效率。当实现数据获取、处理、展示等功能时,系统调用不同的处理单元,对多个节点实现智能的任务分发、负载均衡、异常处理、进度汇总、结果汇总等,将分解的任务分配到合适的资源中,保证任务能平稳处理,任务调度使系统可以分布式的处理任务。通过使用高效内存存储方法,构建公用的中间层实现调度与每个节点间的数据交换。

3.3.1 分布式数据存储

分布式数据存储采用Mongo DB这一文档型分布式数据库,多个节点数据库服务器用于存储网站检测相关的数据及结果数据、统计数据等大量数据内容,如图3所示。

其中Mongo DB为实现分布式存储,把数据保存到其他机器当中,所用到的Mongodb Shard指的是分片,Shard为水平方向的多节点数据分散存储,通过并行计算可满足大规模网络空间数据的并发访问、处理和分析等需求。系统通过主从存储、分片存储的方法,保证了数据的安全性和可靠性,提高了数据的大规模存取能力。

3.3.2 任务调度

网络空间大规模侦测系统的任务调度模块,调用各组件指纹探测模块,对IP目标进行组件指纹探测扫描;IP目标分为境内目标和境外目标,其中境外目标在扫描时需要使用VPN代理;最后任务调度模块将扫描结果写入目标组件指纹数据库。任务调度模块完成整个系统的任务生成、任务分发、任务接收、任务执行、异常处理、数据统计、任务复杂均衡等功能,其执行流程如图4所示。

当任务下发时,检测任务自动将大的检测任务拆分为内部小任务,并将小任务存放任务队列。内部小任务按照任务下发标准接口,传递给检测模块节点。各业务层的业务检测模块均提供标准的任务接受API,任务下发子模块,验证任务参数数据的正确性,并将任务参数数据按照API规范传递到各个业务层检测节点。为保证负载均衡,任务下发算法自动在内部自动将大的检测任务拆分为小的任务,存放到队列,将队列中的任务下发给多个区域的多个业务检测单元;其间会记录各个检测单元到目标网络的速度,用于指导下一批次任务优选最快的检测单元。当下发给检测节点的任务由于检测节点服务器故障或网络故障而无法完成时,异常处理模块接受检测节点的异常报告或超出一定时间无法连接检测节点时,自动将下发给该检测节点的任务转移到其他节点继续执行。最后检测节点按照API规范汇报进度,进度汇总模块将这些进度信息汇总存储,供界面读取。

4 实验测试

网络空间大规模侦测系统包括任务调度服务器、组件指纹探测服务器、数据库服务器和系统UI服务器等,经由路由器进行连接,通过任务调度,利用分布式存储等技术,完成对境内外网络设备的指纹获取和判别。系统对境外目标进行网络设备指纹获取时,需要通过代理节点,突破自身IP访问限制,访问国外站点。网络空间大规模侦测系统部署如图5所示。

网络空间大规模侦测系统包括1台任务调度服务器、9台组件指纹探测服务器、3台数据库服务器和1台系统UI服务器,具体硬件配置信息如表1所示。

网络空间大规模侦测系统指纹库覆盖全球主流的500种网络设备组件,后续随着指纹库的持续增加,侦测系统的识别率将不断提高。当侦测周期为2天时,网络空间大规模侦测系统可覆盖100万个IP目标;当侦测周期为15天时,可覆盖1000万个IP目标。

4.1 D-Link路由器漏洞

多种网络设备,例如路由器和网络摄像头,都具有各自的固件。不同固件就是不同的操作系统,属于网络设备的操作系统。针对网络设备各自特有的固件进行分析,可以研究网络设备的安全漏洞。固件存在漏洞一般是由程序员在开发摄像头功能性程序的过程中疏忽造成,可能导致命令执行等高危漏洞,而存在的后门帐号可能是开发人员(个人行为)或者生产厂商(公司行为)预留的。

D-Link路由器的固件是指其内部运行的系统及程序,系统一般是轻量级的类Unix操作系统,而程序用于控制和实现路由器的各种功能。利用网络空间大规模侦测系统,通过基于固件分析的网络设备漏洞研究技术,可以发现D-Link路由器中存在安全漏洞的设备信息。在2013年10月份曝光的D-Link路由器漏洞中,受影响的D-LINK路由固件版本涉及DIR-100、DI-524、DI-524UP、DI-604S、DI-604UP、DI-604+、TM-G5240、TM-G5240、BRL-04R、BRL-04UR、BRL-04CW、BRL-04FWU。通过基于指纹的网络空间大规模侦测系统探测发现,世界上约63000台设备受到影响。存在漏洞的D-Link路由器分布如图6所示,图中红色圆圈代表存在漏洞的D-Link路由器分布位置。

4.2 心脏出血漏洞

心脏出血漏洞通过读取网络服务器内存,攻击者可以访问敏感数据,从而危及服务器和用户的安全。敏感的安全数据,如服务器的专用主密钥,可使攻击者在服务器和客户端未使用完全正向保密时,通过被动中间人攻击解密当前或已存储的传输数据;或在通信方使用完全正向保密的情况下,发动主动中间人攻击。攻击者无法控制服务器返回的数据,因为服务器会响应随机的内存块。

利用网络空间大规模侦测系统,扫描覆盖全球1945815个主机,侦测结果发现714828个主机处于易受攻击状态,其中33303个主机位于中国。图7为心脏出血漏洞分布热力图,图中颜色越深代表漏洞分布越多。图8为心脏出血漏洞数目随时间变化示意图,该示意图显示随着时间推移,心脏出血漏洞正逐步被修复。

5 结束语

针对现有IT资产扫描设备缺乏对资产的自主发现和全方位信息定位能力,本文设计并实现了基于指纹采集的网络空间大规模侦测系统,通过采集网络空间的指纹信息,对网络设备组件进行识别,并利用分布式调度和分布式存储技术实现网络空间大规模分布式侦测,极大提升了侦测速度和侦测效率。实验表明,本系统可以有效地对网络空间进行全面、实时、精确侦测。

摘要:随着信息化设备的更新换代,网络内部容易出现信息孤岛,造成IT资产管理混乱,进而影响信息系统的安全性和稳定性。基于指纹采集的网络空间大规模侦测系统通过采集网络空间的指纹信息,对网络设备组件进行识别,基于分布式架构设计并实现了大规模分布式侦测,极大提升了侦测速度和侦测效率。

关键词:指纹采集,IT资产,大规模侦测,分布式架构,设备识别

参考文献

[1]刘诚.浅析电力行业信息安全管理[J].计算机安全,2008(7):74-77.

[2]张洪涛,徐靖.电力企业信息集成接口技术研究,2007,35(22):45-48.

[3]刘毅,刘军,毛琛琳.基于中间件技术的电网在线监测数据集成系统设计[J].电网与清洁能源,2012,28(5):39-45.

[4]杨艳,刘建华,田东平.基于决策树算法的信息资产识别[J].现代电子技术,2010,23:77-79.

[5]刘念,张建,华张昊.网络环境下变电站自动化系统的信息资产识别[J].电力系统自动化,2009,33(13):53-57.

[6]Rahman M A,Manshaei M H,Al-Shaer E.A game-theoretic approach for deceiving Remote Operating System Fingerprinting[C].2013 IEEE Conference on Communications and Network Security(CNS):73-81.

[7]Nikiforakis N,Kapravelos A,Joosen W,et al.On the Workings and Current Practices of Web-Based Device Fingerprinting[J].IEEE Security&Privacy,12(3):28-36.

[8]张恩,张广弟,兰磊.基于Mongo DB的海量空间数据存储和并行[J].地理空间信息,2014,12(1):46-48.

[9]钟运琴,方金云,赵晓芳.大规模时空数据分布式存储方法研究[J].高技术通讯,2013,23(12):1219-1229.

指纹采集设备 篇5

随着网络技术和通信技术的发展, 传统的个人身份鉴别手段已不能完全满足现代社会经济活动和社会安全防范系统的需要, 人们越来越多地把目光转向生物识别技术, 如指纹, 虹膜, 脸型, 声音, 掌纹等。在众多生物识别技术中, 指纹由于其高稳定性, 唯一性, 采集方便, 实用性强等特殊优势[1], 备受用户青睐。指纹识别已经广泛应用于司法、门禁、考勤、金融、社保和户籍等安防和身份认证领域。指纹识别系统的组成由指纹采集和指纹识别两部分组成。指纹采集是指纹识别的前提, 其关键是选择一款性能优越, 价格合适, 使用方便的指纹传感器。众多开发者使用瑞典Finger Print Cards公司的电容式面装指纹传感器FPC1011F和FPC1011C系列[2,3,4,5]。本文使用FPC1011C2和ST公司的STM32107VCT, STM32通过SPI接口进行指纹采集, 并通过串口将采集到的指纹图像发送至上位机, 在上位机端实现指纹识别。

二、FPC1011C的硬件特性

一般半导体使用直接测量法, 探测到的手指信号微弱, 造成指纹图像不稳定。而FPC1011C使用发射式测量法, 增强探测信号, 可采集到高质量的指纹图像。它具有以下主要特点:抗静电大于15KV, 耐磨高达100万次, 工作电压为2.5v或3.3v, 传感器阵列为152x200点, 分辨率为363dpi, 内置8位模数转换器, 高速的SPI接口。

2.1采集原理

FPC1011C内部的功能框图如图1所示。它属于电容式传感器, 内部包含一个152行200列的传感器阵列, 当手纸按压传感器表面, 所有金属电极充当一个电容板, 接触传感器表面的手指充当另一个电容板, 器件表面的保护层作为两极板的绝缘层。指纹纹理的凹凸会在传感器阵列上产生变化的电容, 引起二维阵列上电压的变化。通过采样保持电路以及A/D转换器, 获得高质量的指纹图像。每次通过读取传感器内部FIFO的SPI指令捕获8个像素, 逐次捕获可完成一行指纹数据的采集, 捕获完所有的行便形成一幅完整的指纹图像。可以通过设置内部相关寄存器的值改变指纹图像的尺寸。

2.2寄存器及指令

在SPI模式下, 通过指令对FPC1011C的寄存器进行读写操作, 完成对FPC1011C的设置以及指纹数据的采集。共有14条读写指令和9个控制寄存器。主要的寄存器以及指令功能如下: (1) STATUS寄存器:包含FIFO的状态信息; (2) DRIVC寄存器:设置连接驱动电压幅度的大小; (3) ADCREF寄存器:设置AD转换的动态范围; (4) SENSEMODE寄存器:选择测试模式。正常工作模式下, 该寄存器应被清楚。 (5) SPISTAT:包含SPI接口的状态信息。 (6) SPI指令, 指令代码和功能描述如表1所示。

2.3SPI时序

在指纹采集电路中, FPC1011C被设置为从机。在SPI从模式中, 传感器支持的传输模式为MODE0, 即CPOL=0, CPOH=0, 如图2所示。

具体的时序要求如下: (1) 在数据传输中, SCS保持低电平; (2) MOSI线上的数据在SCK的上升沿被采样; (3) SCK在空闲状态时, 可为高电平, 也可为低电平; (4) MISO线上的数据在SCK的下降沿发生变化; (5) 最高位先被移出, 最低位最后被移出; (6) 一次接收和发送的数据长度都是8位。

FPC1011C通过SPI执行读写寄存器命令的时序如下图3和图4所示。

写寄存器时, 主机首先发送命令字节, 然后是参数字节。读寄存器时, 主机首先发送读取命令和相应参数, 然后FPC1011C在SPI_DO上返回1个或多个数据。

三、基于FPC1011C的指纹采集系统

3.1系统硬件结构

本指纹采集系统以ST半导体的STM32107F为核心处理器。STM32107F是基于第二代ARMCortex-M3内核的微控制器是为嵌入式系统应用而设计的高性能、低功耗的互联型32位微处理器, 集成了各种高性能的标准接口如以太网, USB, CAN, I2C, I2S等, 适用于仪器仪表、工业控制、通讯系统等领域。主频达到72MHz, 能够满足指纹采集的需求。该控制器自带串行外围SPI接口, 能够很方便地与FPC1011C连接。具体硬件电路如图5所示。将PA口配置成SPI功能, PA5, PA6, PA7分别作为SPI的SCK, MISO, MOSI与FPC1011C的CK, DI和DO连接, PB9作为FPC1011C的片选信号。为了将采集到的指纹数据发送至PC, 将STM32的USART通过MAX232与PC连接。

3.2指纹采集软件

指纹采集的总体流程如图6所示。首先进行STM32和FPC的初始化, 然后检测是否有指纹, 如果有, 则读取指纹数据并传送至上位机, 完成指纹的采集。STM32的SPI相关的初始化代码为:

FPC1011的初始化主要完成三个控制寄存器的设置, 包括将DRIVE寄存器设置为127, 将ADCREF设置为2, 将SENSEMODE寄存器设置为0。前两数值个将影响到采集指纹图像的质量, 其具体值根据应用可能不同。设置的具体过程为首先通过SPI发送指令码, 再发送指令参数。

初始化后通过SPI发送RD_SENSOR指令启动FPC1011开始采集指纹。然后查询是否有指纹数据。有两种查询的方法, 一种是在发出RD_SENSOR指令后等待365-409个时钟, 另一种是通过反复发送RD_SPISTAT指令, 判断STATUS寄存器的DA位是否为1。如果为1, 说明FPC的存储阵列中已有指纹数据可用。然后通过RD_SPIDATA指令读取指纹数据。在默认情况下, 如果没有改变XREAD和YREAD的值, 则将读取整个传感器的152×200个字节的数据。读取后可将指纹数据通过串行口发送至PC, 以便PC端的指纹识别系统进行指纹数据的进一步处理, 实现指纹的识别。

上位机端可利用Visual C++或Visual Studio等开发环境编写相应的上位机界面。上位机接收串口的数据, 形成BMP图像并显示。本设计采集到的指纹数据如图7和图8所示。

3.3指纹识别

指纹识别流程包括预处理, 特征点提取和匹配。在取到指纹图像之后, 由于采集的过程及采集设备的限制, 难免会使图像受到“污染”, 同时原始图像信息量过高, 不利于存储, 所以需经过预处理的过程。预处理是由于主要包含指纹图像的平滑, 滤波, 增强, 二值化, 细化等步骤。经过预处理后, 提取出有用的特征点, 进而通过对特征点进行匹配, 最后输出比较结果。

四、总结

本文利用STM32F107和FPC1011C实现一个指纹采集系统, 在PC端实现指纹识别, 利用PC的高性能, 满足实时工作的需求。同时STM32强大的控制能力使得本系统可以应用于门禁, 保险等诸多领用领域。本文接下来要做的是将指纹识别算法移植到DSP上, 构建一个基于DSP的嵌入式的指纹识别系统。

摘要:本文利用MCU STM32和电容式指纹传感器FPC1011C2设计一个自动指纹识别系统。STM32通过SPI接口控制FPC1011C采集指纹图像, 并通过串口将指纹数据传输至上位机, 在PC端完成指纹识别。该系统能可靠地实现高质量的指纹图像采集和快速的指纹识别。该采集系统具有自动检测指纹、结构简单、使用方便的特点。

关键词:指纹采集,STM32,FPC1011C

参考文献

[1]李春雷.指纹识别算法的研究及基于FPGA的硬件实现.山东:山东大学, 2005

[2]杨磊, 张文超, 秦会斌.基于STM32的指纹识别系统设计与实现[J].机电工程, 2011 (12) , 1531-1535

[3]陈淑静, 马天才.基于FPC1011F的指纹识别系统[J].山西电子技术, 2009 (5) , 32-33

[4]李爽.基于FPC1011C电容式传感器指纹识别系统设计[J].信息与电脑, 2010 (6) , 30-31

上一篇:生命周期成本理论下一篇:控制主体