IAM系统的功能模块包括注册子模块、销户子模块、身份认证子模块、访问管理子模块、IAM与ERP系统的接口子模块、针对ERP系统的防火墙子模块、加密传输子模块等。 (1)注册子模块 用户注册时需提交用户的基本信息。如果采用指纹验证,还需要提供指纹图像。IAM系统客户端先记录用户的基本信息,接着对提交的指纹图像进行预处理后提取其特征。 用户在填写基本信息时,需重复输入密码。一旦2次密码匹配且采集到指纹,系统则将用户的基本信息加密后传输给服务器,以验证用户的合法性。如果合法,则用户的注册资料将存入相关数据库,并返回注册成功信息;否则,返回注册失败的信息。 (2)销户子模块 用户退出ERP系统时需进行用户注销操作。用户注销由IAM客户端发起请求,由IAM服务器端进行处理。销户时也要进行用户信息的核对,并将操作记录存进日志中。 (3)身份认证子模块 身份认证是IAM系统的灵魂和基础,该模块提供了多种识别方式供ERP实施人员在实施的过程中自由选择组合。 1)指纹认证 指纹是一种比较稳定的生物特征,不会因年龄或健康情况的变化而变化,2枚指纹即使具有相同的总体特征,但局部特征(即特征点)却不可能完全相同。指纹识别技术通常使用指纹的总体特征,即纹形、三角点等来进行分类后,再用局部特征,即位置、方向等来识别用户身份。识别过程包括:指纹的获取,指纹图像预处理,指纹特征提取,以及指纹特征匹配。 指纹特征匹配采用指纹几何特征技术。考虑到指纹可能存在茧、刀伤或者采集干扰等问题,同一用户可以新增2个~3个指纹,目的是使数据库里尽可能存有用户的最新指纹。 2)智能卡认证 用户可以使用钾能卡来登录系统。智能卡是一种用于存放用户身份信息的、内置的、不可复制的集成电路。智能卡认证通过使用不可复制的硬件来保证用户身份的唯一性。 用户将自己的信息存储到智能卡上,当IAM系统检测到有智能卡插入时,就读取智能卡上的数据,并将其发送到IAM系统的服务器端,进行验证。 3)USBKey认证 USBKey认证使用了具有USB接口的USBKey硬件。每个USBKey硬件都有用户PIN码,且内置单向散列算法(MD5)。USBKey认证首先要在USBKey和服务器中各存储一个能证明用户身份的密钥。当需要验证用户身份时,先由客户端向服务器发出一个验证请求。服务器接到此请求后生成一个随机数并传给客户端(此为冲击)。客户端将收到的随机数提供给插在客户端上的USBKey,由USBKey使用该随机数与存储在USBKey中的密钥进行带密钥的单向散列运算(HMAC-MD5),并将得到的结果作为认证证据传送给服务器(此为响应)。与此同时,服务器也使用该随机数与存储在服务器数据库中的该客户密钥进行HMAC-MD5运算。如果服务器的运算结果与客户端传回的响应结果相同,则认为客户端是一个合法用户。 (4)访问管理子模块 在ERP系统中,每一种用户能够访问的资源是不同的,因此要由系统管理员来对各用户进行划分权限。系统管理员甚至可以设置系统中各个用户的用户名和密码,这对系统的安全造成了隐患。本系统在为用户重设密码时,采用了系统产生随机数后发送到用户邮箱的方式,在数据库中的密码也要经过MD5加密后再进行存放。 (5)IAM系统与ERP系统的接口子模块 开放性是一个IAM系统的重要特性。开放就是必须要有通用的开放接口,能通过简单、灵活的开发,与各种应用系统紧密连接。 (6)ERP系统的防火墙子模块 系统在用户登录时,IAM对其IP地址和端口进行登记,另外再获取正在与ERP系统通信的IP和端口,通过对比,当正在发生通信的源IP和端口与已经登记的不同时,就对其进行拦截。 (7)加密传输子模块 在往网络发送信息之前,协议层需调用安全层中的加密模块加密后发送信息,以达到安全通信的目的。本系统采用以随机数作为AES(AdvancedEncryptionStandard)加密算法的Key加密机制,并配合MD5散列算法,较好地解决了网络传输的安全性问题。 2、IAM系统设计 下面介绍系统的设计: (1)软件平台和开发工具 操作系统:带有ServicePack2.0的MicrosoftWindowsXPProfessional。 数据库平台:MySQL-4.0.13forWindows。 开发工具:MicrosoftVisualStudio,ADO.NET(连接数据库)。 (2)服务器端设计 IAM系统Server端负责管理用户身份以及完成与客户端的交互,并管理用户的智能卡信息、USBKey信息、指纹信息等数据库。 IAM系统结构关系如图1所示。图2是以指纹认证为例的服务器端的运行界面。 (3)客户端设计 以指纹认证为例,注册子模块完成对授权新用户信息的注册,主要工作包括指纹特征信息获取、用户认证信息加密、用户认证信息传输、用户认证信息解密和指纹特征信息匹配。认证子模块用于验证请求登录的用户是否是合法的用户,用户在登录过程中,需要输入正确的用户名密码及相匹配的指纹才能通过认证。注册及认证模块会调用图像的预处理模块、特征值提取以及网络传输等模块。在网络传输子模块中使用了AES加密技术。用户登录时,如果成功登录,则会获得通过验证用户特有的权限。一旦通过验证,对应的菜单栏将加亮,用户便通过了进入ERP系统的认证,获得了访问管理的资格。 3、设计过程中遇到的问题以及解决方法 与现有的ERP系统的平滑连接是IAM系统设计追求的目标。下面介绍在本系统设计中所提出并实现的IAM与ERP系统的3种对接机制。 (1)机制1——加密文件作中间桥梁 用户登录IAM系统通过验证后,IAM系统会在其服务器端生成一个加密文件。当用户调用ERP系统时,ERP系统会连接到IAM服务器端去读加密文件,获得该用户成功登录的资料后,系统直接进入ERP系统的功能界面。此机制的特点是:使用加密文件作为中间桥梁,以实现2个不同系统的对接。 (2)机制2——标识变量交互 登录IAM系统通过验证后,IAM服务器会给IAM客户端返回一个标识变量。当该用户在本次髓录中使用ERP系统时,由IAM客户端直接将此标记变量传递给ERP系统。ERP系统会先检查是否有正确的参数传递过来,然后再把接收到的参数与企业的安全数据库进行验证。如确认,系统直接进入ERP系统的功能界面。 (3)机制3——句柄交互 用户登录IAM系统并通过验证后,该用户获得了使用ERP系统的权限。当该用户使用ERP系统时,IAM客户端会获得ERP系统登录界面需要输入的参数句柄。当输入相关资料后,IAM客户端将其值赋给相应的句柄,然后通过调用Windows提供的相关API函数把赋了值的旬柄发送到ERP系统的登录程序。如果用户信息正确,系统直接进入ERP系统的功能界面。 该机制将ERP用户的权限管理转移到了IAM系统,提高了ERP系统用户管理的安全性。 4、结束语 实践证明,本文所介绍的既独立于现有的ERP系统,又能够与现有的ERP系统实现平滑连接的多因子验证的IAM系统设计方案是切实可行的,其使用的技术也是成熟的,对提高ERP系统的安全性效果显著。