您现在正在浏览:首页 > 职教文章 > 职教论文 > 基于VB的动态矩阵密码系统的设计与实现

基于VB的动态矩阵密码系统的设计与实现

日期: 2009-2-6 6:23:53 浏览: 124 来源: 学海网收集整理 作者: 杨小萍, 李德录,鲍丽红

摘要:就目前账号密码频繁被盗问题,本文总结了常见的密码获取手段,提出通过改进密码结构提高密码的安全系数,设计了常规密码+动态矩阵密码的两级密码体系结构,期望从密码结构着手提高密码的安全性,并用VB实现了动态密码系统。
关键词:动态密码;网络安全;VB;

Design and Implementation of an VB-based Dynamic Matrix Cryptographic System
YANG Xiao-ping,LI De-lu,BAO Li-hong
(School of Physics and Information Science, Tianshui Normal University ,Tianshui Gansu 741001,China)
Abstract: This article summarized the common password gain method for the present account password pilfer problem, and designed the conventional password + dynamic matrix password two level of cryptosystem structure, expecting to enhance the password security through the password structure, then realized the dynamic cryptographic system with VB.
Key words: Dynamic password; Network security; VB;
1、 引言
伴随着网络应用的日趋广泛,众多的网络参与活动往往都需要对个人的身份进行识别,因此对应的账号、密码是必不可少的。但账号密码被盗问题层出不穷,虽然针对此类问题很多机构都做出了很大的努力和改善[1-5],但账号密码在黑客面前依旧表现的非常脆弱。本文通过对常见密码获取手段的分析,提出通过改进密码结构提高密码的安全系数,设计了常规密码+动态矩阵密码的两级密码体系结构,并用VB语言实现了该系统。
2、 常见密码获取的方法
2.1 键盘记录
每敲击一次键就记录键值并将对应键值发送到指定的IP地址,对方将通过键值分析得出密码。即通过木马监视用户正在操作的窗口,如果发现用户正在访问某网站系统的登录页面,就开始记录所有从键盘输入的内容。这种方法很通用也很简单,用于获取网银或者在线游戏的帐号密码时,效果一直很好。2004年11月的“网银大盗Ⅱ”木马,是一个典型的例子,它把几乎所有的国内网银系统都列为盗窃的目标[6]。在测试中,只有少数提供虚拟键盘技术的登录系统可以避开它。
2.2 鼠标取点
每点击一次鼠标就记录坐标并将坐标值发送到指定的IP地址,对方将通过坐标值分析出用户点击模块以获取密码。
2.3任务进程获取
一般与键盘记录与鼠标取点组合使用,监视任务进程,便于分析密码。
2.4 屏幕截取
每隔一时间段或者每点击一次鼠标将截取屏幕发送到指定IP地址。有些盗号木马的确会进行“录像”,它们并不会生成体积庞大的视频文件,而只是在键盘记录的基础上,额外记录了用户点击鼠标时的鼠标坐标,以及当时的屏幕截图。黑客根据这些数据,可以完全回放出用户在进行交易时敲击了哪些键、点击了哪些按钮、看到了什么结果。“证券大盗”(Trojan/PSW.Soufan)就是这样的木马,它抓取的屏幕截图是黑白色的,数据量很小,但对于病毒作者来说,这些黑白图片加上键盘鼠标数据已经足够了。
3、 常见防范措施
针对以上几种密码获取方法,常见的应对措施是采用软键盘或者软键盘随机键值等。软键盘的广泛使用可以防止键盘记录,但鼠标取点往往依旧将用户的密码暴露于无形。滚动的密码输入或是软键盘随机键值的出现使得密码安全性大大提高,然而依旧无法解决被屏幕截取这个难题。
4、 动态矩阵密码实现
为解决密码被盗的问题,笔者提出动态矩阵密码。动态矩阵密码指在滚动键值输入的基础上,为用户的传统密码又增添一个新的密码:矩阵密码,并且“一次一密”。用户在输入常规密码后,再次要求输入动态密码,而这个动态密码事先以矩阵的形式存储在用户信息里,使用时按照一定的规则输入其中一组,具体实现如下文所述。
4.1 动态矩阵密码算法思想
矩阵密码由n*m个数组成,n*m个数据就对应着n*m个坐标。在传统的登陆界面之后,接着系统要求用户输入矩阵密码,如图1矩阵密码输入界面图所示。每个用户手中都有一个密码核对器,其界面如图2所示,其上数字键也是滚动随机排列。根据矩阵密码输入界面显示的高亮点所在坐标,将该横纵坐标值组合值键入密码核对器,密码核对器将输出一个两位密码值,再将该值输入矩阵密码界面,产生第二组新的高亮点,再将该高亮点所在坐标继续输入到核对器,换取第二组密码,再将该密码输入矩阵密码界面,得到第三个高亮点坐标值,根据该随机坐标值,再通过用户手中的密码核对器,得到第三组密码,将该密码输入矩阵密码界面…如此反复,直到输入指定组数的矩阵密码,身份得以确认为止。
4.2动态矩阵密码的实现
以8*10矩阵密码为例,以下对具体实现方法做详细说明。
1) 客户登陆界面 即传统登陆界面,要求用户输入账号和密码。
2) 矩阵密码界面 如图1所示,系统随机提示坐标,提示的坐标会被高亮显示,要求用户输入高亮坐标所对应的坐标值。密码输入的键值将随机滚动,当捕获到鼠标在其区域时系统键值将停止滚动,并且隐藏键值。这样用户输入的字符便不会被截屏窃取了。
3) 用户密码核对器界面 如图2所示,键值也随机滚动,当捕获到鼠标在其区域时系统键值将停止滚动。
4) 多次输入 系统提示分多次输入矩阵密码。譬如,系统连续提示三个坐标,只有当三次坐标值都输入正确才可正常登陆系统。多次输入随机矩阵密码使得密码被一次破解的概率大大降低,即使被破解密码,也无法获得其它矩阵密码,无法登陆。
5) 矩阵密码的存储方式 可由卡片存储亦可用文件存储。
如笔者写的这个矩阵密码小程序。其输入方式都为滚动键值和键值隐藏的方式,由文件存储矩阵密码。
4.3 部分代码
滚动键值实现的部分代码:
For i = 0 To 9
Randomize
Num(i) = i
Numb(i) = Rnd(100) //取10个随机数
Next i

Do
Flag = 1
For i = 0 To 8 //数组0~9与随机数组相对应
If Numb(i) ﹥ Numb(i + 1) Then //对随机数组排序便得到一个0~9的随机数列,并
//保证一个数值不会重复出现。
k = Numb(i)
Numb(i) = Numb(i + 1)
Numb(i + 1) = k
k = Num(i)
Num(i) = Num(i + 1)
Num(i + 1) = k
Flag = 0
End If
Next

If Flag = 1 Then //如果排序完成,便跳出循环
Exit Do
End If
Loop
For i = 0 To 9
Command1(i).Caption = Num(i)
Next
键值设计的部分代码:
Private Sub Command1_Click(Index As Integer)
If Len(code) ﹤ 8 Then
code = code + Command1(Index).Caption
Form1.Text1.Text = code
End If
End Sub

Private Sub Command2_Click()
If Len(code) ﹤﹥ 0 Then
code = Left(code, Len(code) - 1)
Form1.Text1.Text = code
End If
End Sub
5、 结论
本文采用的常规密码+动态矩阵密码的两级密码体系结构增强了账号的安全性,使得密码的安全性飞跃性的提高。这种矩阵密码的结构更为安全、可靠。虽然在便利方面比以前的登陆系统稍有繁琐,然而就今天网络的广泛使用来说,这一点点的繁琐绝对是值得的。并且这种密码系统不仅仅适用于网络,还适用于很多领域,譬如ATM取款机、保险箱和一些重要的系统。随着科技的进步,人类的需求,这种新的密码结构将在各个领域广泛的应用和蓬勃的发展。

参考文献:
[1] 胡廉民,张九华,.分组密码算法的测试方法研究[J]. 电子科技大学学报,2007,(4).
[2] 网络安全基础知识之账号安全, https://www.3800hk.com/news/w62/15360.html[EB/OL] 2005.7
[3] 丁素英, 密码算法在网络信息安全中的应用[J]. 潍坊学院学报,2008,(2).
[4] 郑伟,. 浅析通信网络安全之密码技术[J]. 科技资讯,2008,(8).
[5] 打造黑客也读不懂的安*全*密*码[J]. 计算机与网络,2007,(18).
[6] 邵军, 国内网络银行反网络钓鱼安全技术研究与分析[J], 商场现代化, 2007.7 , 总第509期, 352-353
[7] 纪多辙, 刘万军, 李白萍. Visual Basic .NET程序设计实践教程[M]. 北京:清华大学出版社,2006

返回顶部