雷强
摘要:传统形式下的双因子认证技术由于技术复杂性强、实施成本高等方面的问题使应用范围受到限制。针对这种状况,提出了利用强加密方式的身份认证标识文件(PIF)作为双因子认证中的关键因子。据此,设计了客户端进行身份认证方式,并用C#技术实现。测试证明,与其他双因子认证技术相比,该认证技术具有容易使用、成本较低、性能好的特点,切实保障了用户身份认证的安全。
关键词:身份认证;双因子;身份标识码
中图分类号:TP309 文献标识码:A 文章编号:1009-3044(2017)33-0127-02
身份认证是信息系统的收到防线。若没有严格有效的身份认证方法,用户的合法身份易被黑客窃取和滥用,在这种情况下,即使增加再多的设备和资金,建立更严格的安全管理规范也是徒劳。由此可见身份认证的安全性具有极其重要的意义。
1 项目背景
现实情况下存在着众多的认证方式和手段,目前的认证方式大多数为短信认证、指纹认证、虹膜认证等,这些验证方式虽然简单方便,却也存在着弊端和不足。传统的认证方式存在信息容易丢失、泄露、安全性、稳定性、可靠性等弊端,这样会给客户带来不可预料的后果,为了改善以往的缺漏,于是此项目对传统的服务器端身份认证方式进行改进,以一种客户端身份认证方式取代它。
2 身份认证的重要性
身份认证作为整个信息安全体系的基础,并且是信息安全的通行证。身份认证也叫做"身份检验"或"身份识别",是用于辨认操作者身份的重要手段,从而确定该用户是否具有对所需资源的访问和使用的权限,进而使计算机和网络体系的访问策略能够可靠并且有效地执行,以防止恶意攻击者假冒合法用户获取相应资源的访问权限,保证系统和数据的安全,以及授予访问者的合法利益。身份认证对于辨别系统中用户身份的合法性以及保护信息都有不可忽视的作用,在登录认证时确认是否是本用户,若不是则没有访问权限,这样对用户的基本信息起到保护作用,使得个人信息不被泄露,充分地体现了身份认证的重要性。
3 身份认证功能设计
认证系统的主要功能有:
1) 用户注册:采集个人信息进行注册;
2) 用户登录:核实用户身份的真实性和合法性;
3) 密码修改:用户更新密码信息;
4) 密码找回:密码丢失后的找回功能。
5) 二次获得PIF文件:用户计算机不固定,需要更换时,需要向服务器二次获取原有的PIF文件,但获取时,必须执行身份确认。
4 设计原理
双因子认证系统[1]中,密码是常规因子,而第二个因子[2],主要采用以下三类:
1) 合法用户自己知道的某个秘密,例如,PIN码;
2) 合法用户所拥有的其他标识,例如,手机,数字证书,UKEY[3]等;
3) 合法用户所固有的生物特征,例如,脸部特征,指纹,声音,虹膜等。
双因子认证方式,较传统的静态密码认证方式,更加安全、稳定。本身份认证系统的功能包括用户注册和用户登录两个模块,用户注册时产生PIF文件(Personal Identify File个人身份标识文件 ),登录期间和用户密码构成双因子认证。用户的客户端存储用户身份识别的PIF文件(属于第2个认证因子),PIF文件中的數据为个人身份标识码(简称PIN),该数据由账号和密码经过加密形成。所以,服务器端并不直接存放用户密码,而是将PIN码加密存放于服务器端数据库中。防止非法者窃取密码。界面如图:
5 认证系统的数据库设计
认证系统中关键是修改传统的用户表设计,从表1中可以看出用户表中并没有账号、密码数据而是PIN码,前面已经介绍PIN中的数据组成,这里不再赘述。
6 关键技术
系统采用C#技术实现,主要包含以下几个页面:注册、登录页面、修改个人信息及密码、重新求取PIF、PIF的加密,个人身份的数据库验证[4]以及文件操作。
其认证原理如下图2所示,系统认证过程分为两步:第一步,用户真实身份识别,第二步:合法用户的个人信息认证。
具体认证流程如下:
1) 用户初次登录系统时,要进行系统初始化。初始化时工作主要是设置用户PIF文件的存放位置及文件的名称。
2) 将初始化信息保存在Cookies文件中,为了避免信息的泄露和被窃取破解,该信息经过MD5和SHA加密保存[5]。
3) 非首次登录,认证系统自动读取PIF中的PIN数据,若为发现PIF文件,则用户身份识别不成功,后续操作无法进行;若核对正确,系统会将PIN码解密,并与用户数据表中的PIN码的解密数据进行比较,若相同则用户是真实用户,否则身份为非法用户。
4) 身份识别成功后,系统进行用户身份认证。本系统的这个工作仅在客户端进行。客户端仅将PIN解密后得到的账号、密码与用户输入的账号、密码进行比对,若相同,则用户为合法用户,反之为非法用户。认证过程如图2所示:
图2 登录认证流程
登录认证关键代码:
private void buttonDenglu_Click(object sender, EventArgs e)
{SqlConnection conuser = new SqlConnection();
try
{string sql = "select * from Table_1 where tbl_yonghu.tu_name=@pname and tbl_yonghu_tu_pin=@pwd";
SqlCommand cmd = new SqlCommand();
cmd.Parameters.AddWithValue("@pname", textBox1.Text);
cmd.Parameters.AddWithValue("@pwd", textBox2.Text);
conuser.Open();
SqlDataAdapter da = new SqlDataAdapter(cmd);
DataTable dtuser= new DataTable();
da.Fill(dtuser);
if (dtuser.Rows.Count > 0)
{MessageBox.Show("合法用户!"); }
else
{MessageBox.Show("非法用户!"); } }
catch (Exception ex)
{
MessageBox.Show("ex,message");}
finally
{sqlcon.Close(); } }
用户注册代码:
private void buttonzhuce_Click(object sender, EventArgs e)
{string uname = textBox1.Text.Trim();
string upwd = textBox2.Text.Trim();
string again = textBox3.Text.Trim();
if (upwd != again)
{ MessageBox.Show("您两次输入的密码不相同,请检查后,重新输入!"); }
else
{ string connString = "Data Source=.;Initial Catalog=qq";
SqlConnection conuser = new SqlConnection(connString);
int number = 0;
string sqlreg = string.Format("insert intotbl_yonghu (name,password)"
+ "VALUES('{0}','{1}')", uname, upwd);
conuser.Open();
SqlCommand cmd = new SqlCommand();//创建command对象
number = cmd.ExecuteNonQuery();//执行语句并返回受影响的行数
string message = number > 0 ? "插入信息成功!" : "插入信息失败!";
MessageBox.Show(message);
connection.Close();} }
7 系统特点
本系统[6]的优点:
1) 安全性高、实用性强。系统中的第2个因子PIF文件,不易获得,即使黑客非法获得,也不能直接使用,仍需进行严格的身份识别和认证。
2) 系统效率高。系统中采用了PIF文件以及客户端的身份认证,比通过网络进行服务器端的双因子认证方式效率高。
3) 扩展性好。认证方式适合C/S和B/S的系统。
4) 用户有权保管自己的私有数据。账号、密码这两个关键的数据,用户自行保管,私有权大大提升。 (下转第134页)
8 结束语
该认证方式采用PIF文件作为第2个认证因子,较使用手机、UKEY、智能卡等附加硬件设备的方式,无疑降低了使用成本、简化了操作的复杂性。同时,该认证方式通过身份识别和身份认证两个步骤,大大加强了身份认证的审查力度,同时将最终的服务器端认证改成客户端的认证,降低了账号、密码数据在网络中传输被窃取和监听的安全问题。这种方式可以扩展到解决用户权限的动态审核。
参考文献:
[1] 龙丽萍,陈伟建,杨拥军,等.基于双因子认证技术的RFID认证协议的设计[J].计算机工程与应用. 2013,34(11):3726-3730.
[2] 汤宁,李勇平,王靖琰,等.多模式生物特征识别的身份验证系统[J].计算机工程与设计,2012, (6):317-321.
[3] 付青琴,昂正全,徐平江.一种改进的智能卡认证方法的实现[J].计算机工程与科学.2014,36(1):95-97.
[4] 王振辉,王振铎,张敏,等.Web数据库安全中间件的设计与实现[J].科学技术与工程,2012,13(22):1335-1340.
[5] 王昆,沙瀛,譚建龙.基于Cookie劫持的Deep-Web用户数据安全性分析[J].计算机研究与发展.2012,(s2):17-22.
[6] 张丽,赵洋,史丽敏.基于0TP的增强型身份认证系统的研究与设计[J].计算机工程与科学,2008,30(6):112-115.