北京交通大学 刘明桦 张宸鸣 马晓璇
指导老师: 王升辉
摘 要
针对支付卡盗刷问题, 设计并实现了一种基于手掌特征认证技术的支付卡防盗刷安全支付系统。 该系统在普通支付卡密码基础上增加了掌纹与活体静脉特征双模融合的认证功能, 保证了刷卡行为必须由持卡人本人完成, 有效解决了盗刷问题, 保证了支付卡的安全。 系统利用TI的嵌入式处理平台实现了核心的刷卡终端的设计, 测试结果表明了设计的有效性。
关键词: 银行卡; 生物认证; 手掌静脉掌纹网络特征; 无线网络
Secure Payment System on the Basis of Authentication of Biological Characteristics
Abstract
We have designed a brush system for the security of bank card based on the authentication technology of Palm Vein and Palm Prints. The system function has two film fusion authentication in addition to ordinary bank card password, to ensure the credit behavior by the cardholder himself. In other circumstance of security failure, the safety of security card will still be guaranteed. The system uses the TI embedded processing platform to realize the kernel terminal design of card swiping, the testing result has showed the effectiveness of the design.
Key words: bank cards; biometric authentication; Palm Vein; Palm Prints; network characteristics; wireless network
1 项目背景
伴随着科学技术迅猛发展, 特别是智能卡在现代生活中的广泛应用, 类似于银行卡这种以塑料货币为载体的支付方式已经成为一种非常重要的支付手段。 在商场、 超市、 饭店等诸多场所都已经可以直接刷卡消费, 给人们的日常生活带来了很大的便利。
目前市场上主流的支付卡就其实现原理可分为磁卡、 ID卡、 IC卡等, 在我国, 目前使用最为广泛的是磁卡,如目前90%以上的银行卡都为磁卡。磁卡是利用磁性载体记录英文与数字信息,用来标识身份或其他用途的卡片。磁卡使用方便,携带方便,使用较为稳定可靠,造价便宜,用途极为广泛,参见图1。
图1 常用磁卡设备
随着磁卡的广泛应用, 传统磁卡的安全性问题愈发凸显。 磁卡的保密性和安全性较差, 磁条上的信息比较容易读出, 非法修改磁条上的内容也较容易。 利用磁卡自身缺陷进行经济犯罪的现象也日趋严重, 比如各地频繁出现的银行卡“异地盗刷”事件, 据某新闻报道, 某市市民银行卡遭异地盗刷, 卡在户主身上, 却被盗刷596万; 某女士银行卡被人复制13分钟即被盗刷68万; 福州、 广东等地也频频出现银行卡异地盗刷现象等。 经过警方调查发现, 市场上出现了专门用于盗取用户个人信息与现金的银行卡复制器。 欺诈者使用复制器时, 预先将一个刷卡器安装在银行的ATM机上, 记录下银行卡卡号, 再通过配套的微型无线摄像头拍下银行卡密码。 将卡号和密码两部分信息写到一张空白卡上, 就做成了一张克隆卡, 这样简单制作出的克隆卡就可以像普通卡刷卡消费。 另外还有不法分子在商场或酒店等场所安装伪无线POS机来实行盗刷。 这种伪POS机具有与真机同样可打印消费凭条的功能, 但内置一张3G上网卡, 并用自带内部程序捆绑邮箱。 消费者一旦在该伪POS机上刷卡并输入密码, 银行卡的信息和密码就通过3G上网直接发送到捆绑的不法分子邮箱中。 目前银行卡安全漏洞出现的攻击呈现出快速增加的趋势, 盗刷问题的集中出现, 这表明了以银行卡为代表的支付卡安全问题迫在眉睫。
目前, 针对上述银行卡被盗刷等安全问题, 人们关注的解决方案主要集中在以下几个方面:
1) 提高银行卡的自身安全系数。 由于磁卡的保密性和安全性较差, 磁条上的信息比较容易读出,非法修改磁条上的内容也较容易, 在发达国家和部分发展国家都已经开始推广使用IC卡, 逐步取代磁卡。 IC卡是通过卡里的集成电路存储信息, 卡中嵌入电擦式可编程只读存储器集成电路芯片(EEP-ROM)用于信息存储, 通常IC卡的存储芯片会带有加密功能, 具有存储容量大、 安全保密性好、 使用寿命长, 另外CPU卡具有数据处理能力等优点。
2) 密码增强防护及相应的安全方案。 在保密阶段也相继出现了电子口令卡与U盾等安全级别较高的保密手段。 其中口令卡相当于一种动态的电子银行密码, 用户需要在登录卡号与密码后再输入口令卡, 利用口令卡作为最后的保护屏障提高安全性。 U盾是用于网上银行电子签名和数字认证的工具, 它内置微型智能卡处理器, 采用1024位非对称密钥算法对网上数据进行加密、 解密和数字签名, 确保网上交易的保密性、 真实性、 完整性和不可否认性。 目前还出现了一种第三方认证技术, 即通过验证商讯通申请者的真实合法身份, 最大程度上地杜绝虚假信息, 保证商讯通的利益。
上述解决方案可解决部分安全问题, 如加大了卡内信息的复制难度等。 但一旦银行卡或者密码被不法分子窃取, 目前的技术手段并不能防护银行卡的盗刷问题。 而防盗刷的关键在于一定要持卡人本人参与交易。 因此, 鉴于人体的生物特征具有普遍性、 唯一性、 稳定性、 不可复制、 不易被遗忘以及可采集性的特点, 为此, 本作品考虑利用人体生物特征作为支付卡防盗刷的技术手段。
生物特征认证技术具有安全、 可靠、 准确的特性, 在世界范围内多家银行、 学校、 医院等场合得到广泛应用。 目前生物特征认证技术主要有指纹识别、 虹膜识别、 人脸识别、 掌纹认证等, 各类技术都受环境、 体表条件、 形体姿态等因素影响, 有一定的局限性, 见表1。 在基于人体生物特征的各类认证技术中, 指纹人脸等信息非常易于被人盗取, 不适用于银行等安全性需求较高的场合, 而科学家发现人的一生中虹膜并非一直不变的研究结果让人们不得不重新对生物信息的可靠性再次进行研究。
商用化民用化的生物特征认证技术, 一方面要具有稳定性、 唯一性、 不可复制性等安全特性; 另一方面要易于采集, 好比我们不可能为了身份认证抽血化验DNA。 在经过一段时间的探索研究后, 人们逐渐将研究方向转移到满足上述需求的掌纹静脉认证上来。
手掌信息比较常见的用途是门禁系统, 通常此种方式采用的是掌纹信息, 因掌纹信息易于被盗取并且易受外伤等不可抗因素影响, 故很难用于安全级别更好的系统中。 而加入静脉信息认证后, 外伤对于认证的影响变小, 同时静脉的不可复制性也进一步提升了认证技术的安全性。 在日本中部一家银行将于2012年9月引入借助手掌扫描识别用户的自动取款机。 这家银行介绍, 这套生物识别系统由日本富士通公司开发, 用户使用自动取款机时只需接受手掌扫描、 输入个人识别码和出生日期即可实现身份辨识。 这是继土耳其农业银行之后全球第二家引入“生物识别自动取款机”的银行, 极大方便用户的同时,能够很好地应对在极端情况如地震水灾等自然灾害下的混乱情况。
表1 各种生物认证技术的比较
基于以上调研分析, 针对银行卡盗刷问题, 我们制定完成一套采用手掌内部静脉血管与掌纹相结合认证方式的安全支付系统。 该系统在普通银行卡密码基础上增加了掌纹与活体静脉特征双模融合的认证功能, 充分利用掌纹具有活体识别、 特征唯一、 非接触式等特点, 保证了刷卡行为必须由持卡人本人完成。 在其他安全措施失效的情况下, 仍可保证银行卡的安全。
本作品的特色如下:
1) 提出了一种基于掌部信息认证技术的银行卡防盗刷方案, 采取静脉和掌纹双模及活体认证技术, 防止了他人非法盗刷行为的发生。
2) 用户生物特征信息统一存储于银行或可信的第三方的服务器, 对生物特征进行加密传输和存储, 保证了生物信息本身的安全性。
3) 以TI的Devkit 8500A(AM3715)平台为核心实现了生物认证刷卡终端的功能, 该系统易于移植与推广, 有较为广阔的应用前景。
2 系统方案
2.1 系统描述
支付系统安全防护主要考虑三个方面的问题:
1) 安全手段的唯一性、 稳定性, 并且难以被复制。
2) 生物信息传输过程中的安全性。
3) 用户个人生物信息的存储安全。
针对以上三方面, 我们设计了一种基于生物特征认证的安全支付系统。 该系统采用手掌静脉掌纹双模认证方法, 用人体的活体生物特征信息作为密钥, 保障了密钥的唯一性与稳定性; 处理后的特征信息发送时采用非对称加密算法, 保证了密钥的安全传输; 最后将特征信息存储在银行系统或可信的第三方服务器中, 由权威安全部门统一维护, 保障用户信息的安全性。
如图2所示为基于生物认证技术的安全支付系统结构。 系统由静脉掌纹采集器、 支付卡读卡器、 嵌入式平台以及服务器端组成。 安全支付系统类似于一般网银支付宝服务流程, 在使用之前要进行用户注册, 其流程通常为用户刷卡, 读卡器读取用户卡号, 存储于Devkit 8500开发板, 通过手掌静脉掌纹采集器采集人体的手掌静脉图像和掌纹图像, 通过图像处理算法在平台实现静脉与掌纹的特征提取, 将支付卡卡号与特征信息两部分作为用户信息, 加密算法处理后, 通过网络将该信息发送至可信的第三方服务器数据库中。
图2 基于生物认证技术的安全支付系统结构
用户刷卡过程则是一个认证过程, 与注册过程类似, 通过读卡器读取支付卡卡号等信息, 同时通过采集器采集人体的手掌静脉图像与掌纹图像, 提取静脉与掌纹的网络特征, 将支付卡卡号与通过网络发送至服务器端, 通过在服务器数据库中进行索引操作, 将对应的生物信息特征值发送回采集器, 进行匹配认证, 若与数据库中该用户信息的相关度满足要求, 则支付成功, 否则支付失败。
2.2 系统框架
如图3所示为安全支付系统的系统框架, 分为主要四个部分: 静脉掌纹采集部分、 读卡器部分、 核心板(TI的Devkit 8500A(AM3715))与服务器端。
1) 读卡器: 读卡器为符合标准的IC卡读卡设备, 通过RS232串口与核心板连接, 完成支付卡数据读写功能。
2) 掌部特征采集器: 掌部特征采集器完成手掌静脉掌纹的图像采集。 该采集装置由箱体, 手掌放置部分, 白炽光源, 内部反光部分, 红外摄像头组成。 白炽光源用以采集手掌掌纹图像; 而摄像头周围的红外光源则用来为红外图像传感器提供光源, 用以采集静脉图像。 采集的图像通过USB接口接入AM3715核心板中, 进行后续处理。
图3 系统框架
3) 核心板AM3715: AM3715对采集到的手掌静脉及掌纹图像进行处理、 融合及判决, 然后将处理加密的生物特征通过网络模块传入服务器端。
4) 服务器: 实现银行数据系统的模拟, 存储用户个人信息与手掌静脉掌纹特征信息, 并对申请的支付行为进行认证判决。
3 系统实现
本系统的核心功能在TI公司的Devkit8500(AM3715)嵌入式开发平台上实现, 外围器件主要有静脉掌纹采集器, WS-R-C系列Mifare读卡器; 软件开发平台为Microsoft Visual Stdio 2008, Microsoft SQL Server 2008, Win CE Embedded 6.0 Platform Builder, Windows Mobile 6.0 Professional SDK, 操作系统为Win CE 6.0。 AM3715的相关资源如表2所示。
表2 平台资源
在上述硬件平台基础上, 本作品的工作主要体现在硬件设计和软件设计两个方面, 主要有手掌及银行卡信息的获取、 图像处理、 网络传输等几个方面, 技术路线如图4所示。
图4 技术路线
3.1 硬件设计
3.1.1 掌纹静脉采集器的开发设计
手掌静脉与掌纹采集装置由箱体、 手掌放置部分、 白炽光源、 内部反光部分、 红外摄像头组成。 箱体环境相对封闭, 减少了外界环境所带来的干扰噪声。 手掌放置部分使采集者对采集过程感到舒适, 手掌方向固定不变, 方便之后的图像定位处理。 而且该采集装置采用白炽光源采集手掌掌纹图像, 摄像头周围均匀分布一组红外灯, 用以采集静脉图像。 最后将采集到的图像通过USB接口传入AM3715开发平台中, 并进行处理。
静脉识别技术的原理是根据血液中的血红素有吸收红外线光的特质, 将具有红外线感应度的摄像头对着手掌进行摄影。 将血管图样进行数字处理, 制成血管图样影像。 静脉识别就是首先通过摄像头取得静脉分布图, 依据专用比对算法提取特征值, 然后通过红外线CCD摄像头获取手指或手背静脉的图像,将静脉的数字图像存储在服务器系统中, 最后将特征值存储。 静脉比对时, 实时采取静脉图, 提取特征值, 运用先进的滤波、 图像二值化、 细化手段对数字图像提取特征, 同存储在服务器中静脉特征值比对, 从而对个人进行身份鉴定, 确认身份。 全过程采用非接触式。
3.1.2 银行卡读卡模块
为模拟支付终端刷卡系统,在系统中添加外设读卡器,模拟消费时磁卡刷卡或者其他类型卡在消费时为终端机提供账户信息。采用WS-R-C系列Mifare读卡器读取用户卡号, 使用USB接口供电, RS232串口通信,其通讯参数为波特率57600b/s,8位数据位,1位停止位, 无校验。 最大读卡距离可达100mm,带有蜂鸣器。
系统所用卡为S50非接触式IC卡, 符合ISO14443A标准规范, 容量为8Kb, 数据保存期为10年,可改写10万次, 读无限次。 S50卡不带电源, 自带天线, 内含加密控制逻辑电路和通信逻辑电路, 卡与读卡器之间的通信采用国际通用的DES和RES保密交叉算法, 具有极高的保密性能。 与接触式IC卡相比较, 非接触式卡具有可靠性高、 操作方便、 防冲突、 可适用于多种应用、 加密性能好等无可比拟的优点, 所以它很适宜应用于电子钱包、 公路自动收费系统和公共汽车自动售票系统等。 发达国家IC银行卡的使用已较为普及, 中国人民银行、 工行、 建行等各大银行正大力推行安全性高、 功能强大的IC银行卡, IC银行卡取代目前的磁条银行卡是大势所趋。 目前犯罪分子盗刷的银行卡多为磁条银行卡,因为盗取磁条上的资料相对容易, 复制伪冒卡成本低。 而IC卡是以芯片作为介质, 与磁条卡相比, 芯片卡安全性高, 卡内敏感数据难以被复制。
ISO14443A系列支持Mifare S50、 S70、 UltraLight & Mifare Pro、 FM11RF08等兼容卡片, 可以自动寻卡, 默认情况下为自动寻卡。 ISO14443A标准规范最远读取距离在7~15mm范围内, 属超短距离非接触式RFID卡类。MIFARE卡内部存储器是由E2PROM组成的,共划分为16个扇区,每个扇区4个块,每块16字节,共1K字节。对E2PROM的读写都以块为单位进行,即每次读/写16字节。协议所使用的频率在射频识别系统中属于高频频段, 这个频段的协议比较成熟, 应用也比较广泛。 ISO14443A定义的卡是近耦合卡(PICC), 对应的读卡器简写为PCD, 采用13.56MHz工作频率, 具有防冲突机制。 目前同类产品读卡器的实现大多采用专用的射频读写集成芯片, 结构简单、 实现方便, 但是专用的射频读写集成芯片涉及国外RFID芯片设计的相关知识产权。 卡片上还内建有增值/减值的专项的数学运算电路, 非常适合公交/地铁等行业的检票/收费系统。 典型的检票交易时间最长不超过100ms, 包括卡片的认证,6个扇区的读(768b,2个扇区的认证),2个扇区的写操作(256b)
3.1.3 无线网络模块设计
WF8000-U(Wi-Fi)模块是一种专为ARM板板设计的, 可以将ARM板的终端以无线方式互相连接的技术的一款新型产品, 是改善基于IEEE 802.111标准的无线网路产品之间的互通性的现代化产, WF8000U(Wi-Fi)模块是一个高性能, 具有成本效益的802.11b/g无线的USB模块, 高度集成MAC/BBP和2.4GHz射频单芯片。 它完全适应IEEE802.11b/g的高标准, 无线连接范围大, 有庞大的吞吐量。 凭着优越的射频架构和优化算法, 构建了WF8000-U模块良好的性能和低功耗费。
3.2 软件设计
3.2.1 图像采集
采用DirectShow实现图像信息采集。 利用DirectShow为多媒体流的捕捉和回放提供了强有力的支持, 我们可以很方便地从支持WDM驱动模型的采集卡上捕获数据, 并且进行相应的后期处理乃至存储到文件中。 DirectShow使用Filter Graph的模型来管理整个数据流的处理过程; 参与数据处理的各个功能模块叫作Filter; 各个Filter在Filter Graph中按一定的顺序连接成一条“流水线”协同工作。 按照功能来分, Filter大致分为三类: Source Filters、 Transform Filters和Rendering Filters。 Source Filters主要负责取得数据, 数据源可以是文件、 因特网或者计算机里的采集卡、 数字摄像机等, 然后将数据往下传输;Transform Fitlers主要负责数据的格式转换、 传输; Rendering Filtes主要负责数据的最终去向, 我们可以将数据送给声卡、 显卡进行多媒体的演示, 也可以输出到文件进行存储。
通过DirectShow采集的图像位深为16位, 而图像处理算法需要位深为24位, 图片格式不同, 因此后续需要用软件方法需要将图片格式进行转换, 以便后续处理, 见图5。 RGB565格式, 即RGB565彩色模式, 一个像素占两个字节, 其中, 第一个字节的前5位用来表示R(Red), 第一个字节的后三位+第二个字节的前三位用来表示G(Green), 第二个字节的后5位用来表示B; 对于RGB888来说, 每个像素由3个字节组成, R、 G、 B分别为8位。
3.2.2 图像处理算法实现
采用了图像增强、 中值滤波、 图像分割、 模板匹配等方法实现了手掌特征的获取。 图像增强是为了突出图像中的某些信息, 削弱或是除去某些不需要的信息, 使结果对某种特定应用比原图像更适合。 中值滤波的基本原理是把数字图像或数字序列中一点的值用该点的一个领域中各点值的中值代替。 中值的定义为:一组数A1,A2,…,An,按数值大小顺序排列并取其中值
Y即为序列a1,a2,…,an的中值,当n为奇数时,位于中间位置的那个数值称为这n个数值的中值。 当n为偶数时, 位于中间位置的两个数值的平均值称为这n个数值的中值。 根据不同的情况, 中值滤波可以选用不同形状和不同大小的窗口, 二维中值滤波的窗口形状和窗口尺寸对滤波的效果影响较大。 常用的滤波窗口尺寸有3×3、5×5、7×7等, 随着尺寸的增大, 滤波效果会更明显。
图5 图像采集流程
图像分割是指把图像分成各具特性的区域并提取出感兴趣的目标的技术和过程。 这里我们采用模板匹配法找到手掌的三个关键点, 通过该三点的位置确定出唯一的ROI(有效)区域。 模版匹配法: 一般的图像匹配技术是利用已知的模板利用某种算法对识别图像进行匹配计算获得图像中是否含有该模板的信息和坐标, 见图6。
图6 模板匹配原理
算法实现: 已知原始图像S(W, H), 利用以下公式衡量它们的相似性:
上述公式中第一项为子图的能量, 第三项为模板的能量, 都和模板匹配无关。 第二项是模板和子图的互为相关, 随(i, j)而改变。 当模板和子图匹配时, 该项由最大值。 在将其归一化后, 得到模板匹配的相关系数:
当模板和子图完全一样时, 相关系数R(i, j)=1。 在被搜索图S中完成全部搜索后, 找出R的最大值Rmax(im,jm),其对应的子图Simjm即位匹配目标。显然,用这种公式做图像匹配计算量大、速度慢。我们可以使用另外一种算法来衡量T和Sij的误差,其公式为:
计算两个图像的向量误差,可以增加计算速度,根据不同的匹配方向选取一个误差阈值E0,当E(i,j)>E0时就停止该点的计算,继续下一点的计算。实验证明,被搜索的图像越大,匹配的速度越慢; 模板越小, 匹配的速度越快; 阀值的大小对匹配速度影响大。 改进的模板匹配算法:
1) 将一次的模板匹配过程更改为两次匹配;
2) 第一次匹配为粗略匹配。 取模板的隔行隔列数据, 即1/4的模板数据, 在被搜索图上进行隔行
隔列匹配, 即在原图的1/4范围内匹配。 由于数据量大幅减少, 匹配速度显著提高。 同时设计一个合理的误差阈值E0,式中:e0为各点平均的最大误差,一般取40~50即可;m,n为模板的长宽;
3) 第二次匹配是精确匹配。在第一次误差最小点(imin,jmin)的邻域内,即在对角点为(imin-1, jmin-1),(imin+1,jmin+1)的矩形内,进行搜索匹配,得到最后结果。根据模版匹配找到手掌三个关键点, 进而确定ROI(有效)区域, 如图7所示。
3.2.3 手掌静脉掌纹特征提取实现
从图像入口选择11×11的像素点矩阵作为静脉网络特征的提取模板, 如图8所示。
图7 ROI(有效)区域
图8 提取模板
具体算法:首先计数变量的初始值为0,把矩阵左上角与右下角点连成一线并且将其作为0°, 然后将其逆时针旋转180°,最外围同一直线上的点作为一组特征像素点。之后将该两点像素的灰度值与矩阵中心像素值X进行比较, 如果X(m, n)>X(m-5, n-5)+yuzhi且X(m, n)<X(m+5, n+5)+yuzhi (yuzhi为阈值, m, n分别为横坐标与纵坐标), 则技术变量加1, 以此进行比较。 最终, 如果计数变量大于设定数值, 则X的值设置为255, 反之则负值为0。
3.2.4 加密算法实现
手掌静脉掌纹特征信息加密选择密钥绑定法。 将用户的银行卡卡号与生物特征信息相融合, 生成具有安全性的特征数据, 在验证时, 由用户现场的生物特征与所持银行卡共同作用, 确保用户本人使用,避免他人盗刷的可能性。
选用的是RSA公开密钥密码体制, 即使用不同的加密密钥与解密密钥, 是一种“由已知加密密钥推导出解密密钥在计算上是不可行的”密码体制。 在公开密钥密码体制中, 加密密钥(即公开密钥)PK是公开信息, 而解密密钥(即秘密密钥)SK是需要保密的。 加密算法E和解密算法D也都是公开的。 虽然秘密密钥SK是由公开密钥PK决定的, 但却不能根据PK计算出SK。 正是基于这种理论, RSA算法通常是先生成一对RSA密钥, 其中之一是保密密钥, 由用户保存; 另一个为公开密钥, 可对外公开, 甚至可在网络服务器中注册。 为提高保密强度, RSA密钥至少为500位长, 一般推荐使用1024位。 对方收到信息后, 用不同的密钥解密并可核对信息摘要。
明文以分组为单位进行加密, 每个分组的二进制值均小于n, 实际中分组的大小是i位, 其中2i<n<=2i+1。对明文分组M和密文分组C,加密与解密过程如下:
C=Me mod n
M=Cd mod n=(Me)d mod n=Med mod n (6)
其中收发双方均已知d, 因此公钥加密算法的公钥为PU={e, n}, 私钥为PR={d, n}。 该算法要满足下列条件:
1) 可以找到e,d和n,使得对所有M<n,有Med mod n=M。
2) 对所有M<n,计算Med mod n和Cd mod n是比较容易的。
3) 由e和n确定d是不行的。
实现算法描述:
1) 选择一对不同的、 足够大的素数p, q。
2) 计算n=p×q。
3) 计算f(n)=(p-1)×(q-1), 同时对p, q严加保密, 不让任何人知道。
4) 找一个与f(n)互质的数e, 且1<e<f(n)。
5) 计算d, 使得de≡1 mod f(n)。 这个公式也可以表达为d≡e-1 mod f(n)。
公式中, ≡符号的左边必须和符号右边同余, 也就是两边模运算结果相同。 显而易见, 不管f(n)取什么值, 符号右边1 mod f(n)的结果都等于1; 符号的左边d与e的乘积做模运算后的结果也必须等于1。 这就需要计算出d的值, 让这个同余等式能够成立。
6) 公钥PU=(e, n), 私钥PR=(d, n)。
7) 加密时, 先将明文变换成0至(n-1)的一个整数M。 若明文较长, 可先分割成适当的组, 然后再进行交换。
3.2.5 数据库设计
数据库设计框图如图9所示, 在数据结构设计中, 定义数据数据库类CDataBas, 定义其全局(ex-tern)对象database。 News.dat文件, 用于显示主页信息。 此处用到了C语言的流文件操作。
图9 框图
数据库表设计:
说明表的名称、 标识符和所包含的主要字段建立数据库BankUser, 数据库表data, 如图10所示, record, 如图11所示; 连接账号sa, 密码sa。
data表标识符: index、 account、 name、 psw、 sex、 birthday、 money、 palmdata、 veindata。record表标识符: index、 account、 date、 money、 client。
图10 data表设计
图11 record表设计
数据库算法设计:
(1) 算法的输入输出数据: 输入为注册信息及存取款、 转账, 输出为登录后的查询服务。
(2) 算法执行步骤:
1) 注册: 输入注册信息, 执行SQL语言, 遍历用户账号, 确认是否以注册。 未注册则执行SQL插入语句, 插入注册信息到数据库表中。
2) 登录: 遍历数据库表, 找到账号匹配密码, 如密码相匹配则登录成功, 否则登录失败。
3) 存取款: 修改类中存储钱的信息的变量, 执行存取操作, 操作成功则修改表中数据。
4) 转账: 先遍历表, 寻找转出账号是否存在, 转入账号是否够余额。 成立则修改表中相应位置的金额。
5) 管理员界面显示用户信息: 遍历显示。
6) 删除账号: 执行SQL删除语句, 把对应编号的条款删除。
(3) 算法所涉及的数据结构: SQL 2000数据库, 用CDataBase类对象database来访问数据库表。
(4) 算法复杂度分析: 注册o(n), 登录o(n), 存取款o(n), 转账o(n), 显示用户信息o(n), 删除账号o(n)。
3.2.6 软件流程
首先进行摄像头与读卡器的初始化, 系统使用者选择注册模式或认证模式; 通过刷卡读取卡号,判断是否成功读取, 若读取失败则再次刷卡; 通过摄像头采集手掌静脉与掌纹的图像, 先进行中值滤波预处理, 去除椒盐噪声, 再通过模板匹配法找到手掌的关键点, 并且计算出ROI(有效)区域,之后通过特征提取算法分别对手掌静脉与掌纹进行特征提取; 将提取到的生物特征与卡号组成整体特征值, 利用加密算法加密后通过Wi-Fi无线网络将其传入服务器。 若开始的选择为注册模式, 则将加密后的特征值存入服务器, 若成功存储则在开发平台上显示注册成功, 反之则显示注册失败;若开始的选择为认证模式, 则将该特征值在服务器端通过卡号索引到已存储的生物信息, 发送到开发平台后跟当前需要认证的特征值进行比对, 若归一化匹配的值在设定阈值内则返回认证成功并且开发平台上显示, 否则显示认证失败, 如图12所示。
4 系统调试测试
4.1 驱动测试
测试方案: 在加入驱动前插入摄像头, 系统会提示输入设备名。 带驱动添加成功后, 系统则不再提示。
解决方法: 首先将对应平台的驱动程序zc030x.dll拷贝到${WINCE600}\ PLATFORM\ Devkit 8500\Files目录下, 将zc030x.reg中的内容添加到platform.reg末尾, 将zc030x.bib的内容添加到plat-form.bib的MODULES节下。 重新编译NK.bin, 使得系统自动加载驱动, 无需手动安装, 接上摄像头,将不再提示输入驱动程序名称。
图12 系统流程图
zc030x.reg的内容为:
[HKEY_LOCAL_MACHINE\Drivers\USB\Load Clients\2760\Default\Default\ZC030X]
"DLL"= "ZC030X.DLL"
[HKEY_LOCAL_MACHINE\Drivers\USB\ClientDrivers\ZC030X]
"Prefix"= "ZCX"
"Dll"= "ZC030X.DLL"
zc030x.bib的内容为:
MODULESzc030x.dll $(_FLATRELEASEDIR)\zc030x.dll NK SHK
测试结果: 成功添加了摄像头的驱动, 接入摄像头后不再提示输入驱动程序名称。
4.2 读卡测试
测试方案: 将读卡器与开发板的扩展串口连接(中间需加TTL转RS232的电平转换模块和一个交叉串口线)。 把为读卡器供电的USB端连接到开发板的USB接口上, 读卡器供上电后将会听到一声蜂鸣。在测试程序的界面上可进行打开串口和读取卡号等操作。
测试设备: 读卡器一个、 非接触式IC卡一张。
测试数据及结果: 如下图所示, 可发现设备ID。
实现功能: 如图13所示, 点击Open Port后, 程序成功打开了Devkit 8500A开发板的扩展串口com1, 然后点击按钮ReadID, 成功读取了放在读卡器上的IC卡卡号。
4.3 摄像头与红外灯光线测试
测试方案: 首先将摄像头通过USB接入开发平台中, 通过自己开发设计的界面来观测图像。 通过调节摄像头焦距使其在手掌采集位置聚焦, 能够采集到较为清晰的图像。 进而通过增减红外灯个数调节红外灯光强弱以观测采集到的手掌静脉网络图像。 关闭红外灯光后打开白炽灯以采集手掌掌纹图像。 在基本实现可采集较清晰度图像后再进行整体微调, 达到可以同时采集清晰手掌静脉与掌纹图像的效果。
测试设备: USB摄像头、 红外灯、 白炽灯。
测试结果: 图14为经过调节后采集到的静脉图像。
图13 读卡器读写测试
图14 摄像头测试
4.4 算法测试
通过中值滤波去除噪声, 选用窗口的宽度为11×11。 之后将中值滤波处理后的图像进行图像增强,及将静脉掌纹网络特征进行加深处理。 之后再进行模板匹配, 来寻找手掌的三个关键点, 确定手掌的ROI区域, 通过特征值提取算法对该ROI区域进行处理, 并将其二值化。 调节中值滤波窗口的宽度、 图像增强时灰度中间值的选择以及加深程度、 手掌静脉掌纹网络特征提取的矩阵宽度、 阈值参数以及二值化的阈值, 使最终输出的手掌静脉网络图像清晰, 干扰较小, 如图15所示。 对图像进行细化处理, 减少所需处理的信息量, 便于提取静脉特征并且方便存储, 如图16所示。
图15 静脉调试流程
图16 掌纹调试流程
图17 通信调试
4.5 无线通信测试
通过Wi-Fi模块连接上网络后,在平台上运行通信客户端,服务器监听约定端口,当客户端有连接请求时,服务器应答成功后便可接收客户端发来的信息了,如图17所示。
4.6 认证测试
首先进入认证模式,采集用户的静脉掌纹图像, 将图像进行特征提取,然后通过卡号与数据库中用户注册过的特征信息进行匹配,如图18所示。若匹配得到的归一化相关系数小于给定阈值,则认证通过,否则拒绝,如图19所示。
图18 认证测试——通过
图19 认证测试——拒绝
4.7 系统界面
系统演示主要分为三个方面:
(1) 银行系统。
银行注册账户系统向生物认证终端(以下简称终端)发送注册命令, 终端获取卡号发送给银行系统, 若银行系统接收成功且未重复注册, 则终端继续向银行系统发送掌纹信息; 若银行系统接收成功,则终端继续向银行系统发送静脉信息, 若银行系统接收成功, 则银行系统将个人信息存入数据库, 注册成功, 如图20所示。
图20 银行系统设计
(2) 超市系统。
刷卡成功且输入密码后, 终端将卡号及密码发送至服务器, 若密码正确, 则服务器将此卡号的掌纹和静脉信息发送回相应的终端, 终端提示用户录入掌纹和静脉信息, 若匹配成功, 则终端将消费金额发送到服务器, 若余额大于消费金额, 则消费成功, 否则消费失败, 如图21所示。
图21 超市系统设计
(3) ATM取款系统。
由于ATM机具有用户界面, 所以我们模拟了一个由三个设备组成的网络, 即: 生物认证终端, 由一台电脑模拟的ATM机, 由另外一台电脑模拟的服务器。 ATM机向生物认证终端发送登录命令, 终端将卡号和密码发送至ATM机, ATM机将账号及密码发送至服务器, 若密码正确, 则服务器将对应的掌纹和静脉信息发送给ATM机, ATM机将从服务器收到的信息发送到终端, 终端提示用户录入掌纹和静脉信息, 若匹配成功, 则终端将成功标识发送到ATM机, ATM机登录成功。 服务器将个人账户信息发送到ATM机供用户查询操作等, 如图22所示。
图22 ATM系统设计
服务器主界面如图23所示。
有客户端连接时界面如图24所示。
用户注册界面如图25所示。
用户在客户终端刷卡后, 将卡号读入, 如图26所示。
用户在客户终端通过采集器采集用户掌纹静脉图像, 并且在客户终端进行特征提取, 将特征值发送至服务器, 如图27所示。
图23 服务器主界面
图24 服务器主界面——客户端连接时
图25 用户注册界面
图26 用户卡号读入
图27 提取用户信息
补充用户个人信息、 密码与验证码, 如图28所示。
显示注册结果, 如图29所示。
图28 补充用户信息、 密码与验证码
图29 显示注册结果
4.8 系统测试参数
为测试整体系统性能, 对30个人进行了手掌静脉掌纹采集, 对其认证注册结果进行记录。
(1) FRR是同一个人注册后进行两次认证。
从测试结果: FRR=1/60=1.67%, T=2s
(2) FAR测试非法用户认证他人模块。
测试结果: 非法用户全部被拒绝, FAR=0, T=3s。
5 结论
5.1 系统创新
1) 多重安全防护: 系统采取静脉和掌纹双模认证, 并且采用了非对称加密算法, 增强了可靠性,保护用户信息安全, 减小了被盗用的可能性。
2) 手掌静脉掌纹网络特征提取算法自主设计, 不易被破解, 提高了特征信息的安全性。
3) 用户特征信息统一存储于服务器, 进行统一维护, 个人无法获得用户的特征。
5.2 系统特色
1) 实时性: 能够完成实施采集存储与对比认证。
2) 唯一性: 必须本人使用。
3) 安全性: 该系统采用手掌静脉与掌纹双重认证, 而且在特征值传输过程中采用了非对称的加密算法, 提高了安全性, 减小了特征被盗取的可能性。
5.3 应用前景
手掌静脉掌纹识别技术是一种新兴的、 有很好前景的生物特征识别技术。 能够获得符合要求的静脉图像是进行手掌静脉掌纹识别的前提条件, 能否获得符合要求的图像直接影响到最终认证的匹配准确率, 因此需要有更加先进的设备。 随着科技的发展, 将会出现三维血管模型的认证技术, 该认证技术将会使得手掌静脉识别技术的安全性更高, 更难造假。
在信息安全至关重要的今天, 手掌静脉与掌纹双模融合, 提高了验证的唯一性、 准确性与可靠性,该生物特征信息的支付系统成本低廉, 易于移植, 稳定性、 错误率低, 可以用于任何需要银行卡支付的场合, 例如商场、 超市等。
专家点评
该项目针对支付卡盗刷问题, 在嵌入式平台上设计并实现了基于掌纹加手掌静脉识别的支付演示系统,整体思路较新颖,安全防护措施考虑充分,软硬件设计实现能力强,整个演示流程顺畅,有很好的潜在应用价值。该项成果在大样本条件下的识别准确率方面还可继续深化研究,以进一步提高成果的实用性。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。