具有动态口令认证机制的网上投票系统的设计论文Word文件下载.docx
《具有动态口令认证机制的网上投票系统的设计论文Word文件下载.docx》由会员分享,可在线阅读,更多相关《具有动态口令认证机制的网上投票系统的设计论文Word文件下载.docx(25页珍藏版)》请在冰点文库上搜索。
thesystemstructuredesignsandthetotalfunctiondesign.Withtheformofthefunctiondiagram,thesisexplainedthedesignoffunction,showedcorecodeandthesystemcirculateinterfaceofthemainfunction.
code
Keywords:
Theon-linevotesystem;
ASP;
SQL;
Thedynamicverifiable
目录
论文总页数:
20页
1引言 1.
1.1网上投票系统的概念 1
1.2网上投票系统概念的提出 1
1.3网上投票系统的适用范围 1
1.3.1什么样的主题适合做网上投票 1
1.3.2网上投票样本的合理性 2
1.3.3网上投票的程序与方法 2
2系统体系开发环境 2.
2.1系统的硬件环境 2
2.2技术上配合 3
2.3ASP简介 3
2.4SQL简介 4
2.5动态口令认证技术 6
2.5.1验证码起源 6
2.5.2验证码实现流程 6
2.5.3网上投票系统中的验证码的作用 7
3数据库的搭建 7.
3.1E-R图 7
3.2数据库的设计 8
3.2.1用户信息 8
3.2.2投票信息 9
3.2.3投票选项 错误!
未定义书签。
3.2.4管理员信息 10
4系统详细设计 0
4.1具有动态口令认证机制的网上投票系统的结构 10
4.2系统详细功能设计 11
4.2.1用户注册、登陆和和验证模块 11
4.2.2用户投票模块 13
4.2.3投票管理模块 15
结 论 1.8
参考文献 1.8
致 谢 1.9
声 明 2.0
1引言
随着计算机技术的飞速发展,尤其是网络技术的超速发展,带动了信息的广泛交流,人们每天需要大量的信息来充实自己,传统的投票和调查方式已经不能满足我们的需要,针对这种情况,网上投票系统应运而生。
网上投票系统除了能够完成传统的功能之外,更具有时效高和范围广的优点,更符合现代社会的需要。
从国际互联网到校园网,企业局域网,各种网上投票系统随处可见,意见调查,用户信息统计,经营情况调查都可以作为投票的内容,网上投票系统凭借其方便快捷等特点,已经成为互联网资源中不可缺少的一部分,并且,随着网络技术的发展,网上投票系统的作用将会越来越大。
据新闻报道,日本政府正投资10亿日元开发电子投票系统用于选举,荷兰、比利时和巴西等国家已经开始在部分地区使用网上投票系统,可见其巨大的发展潜力。
然而,在计算机网络中,任何方便实用的技术都必须建立在信息安全这块基石上。
一项网络技术的安全性,也是决定着想技术成败的关键性的性质。
而具有动态验证的网上投票系统既能使信息的保密性得到保证,又能确认投票者身份的有效性与唯一性,这样才能保证统计结果的真实有效。
1.1网上投票系统的概念
网上投票调系统是一种在网站上提出投票题目,由用户在线投票并对调查投票的统计结果直接显示的调查工具。
网站管理方可以通过网上调查并对投票结果自动进行系统分析后得出有用信息,如浏览用户对某产品或服务的看法等,是企业利用网站低成本进行市场调查的重要手段。
1.2网上投票系统概念的提出
网络的快速发展和计算机的广泛普及,为解决传统民意调查存在的缺点和提出网上投票系统概念提供了物质基础。
人们针对传统的民意调查存在的不足,开发了网上投票系统,大大提高了调查的时效性。
1.3网上投票系统的适用范围
从技术上来说,网上投票是十分简便的,时效性也强。
但是目前网上的民意调查似乎还有一定的随意性,没有按照严格的民意调查的程序与方法进行。
网上调查与传统民意调查有着很大不同,值得我们从各个角度去认识。
我个人认为,至少以下方面是需要关注的。
1.3.1什么样的主题适合做网上投票
网上投票对象只能来源于网络的使用者,而目前这部分使用者具有一定的特殊性,特别是在中国。
据CNNIC2006年9月公布的调查结果显示,我国互联网继续保持持续、稳定的增长态势。
其中网民数、上网计算机数分别达到了11000
第20页
共20页
万人、4950万台,与上年同期相比分别增长了18.1%和19.0%。
在网民的特征结构方面,男性、未婚、30岁以下、大学本科以下、月收入在2000元及以下(含无收入)网民的比例依然在网民各特征数据中占据主要地位,所占比例分别为58.7%、57.9%、82.6%、70.8%、70.9%,其中未婚、30岁以上网民的比例与上年同期相比都有所上升,但男性网民比例、大学本科以下、月收入在2000元及以下(含无收入)网民所占比例与上年同期相比有所下降;
在职业方面,学生所占比例超过了总网民的三分之一,达到了35.1%,其次是企业单位工作人员,占总数的29.6%,排在第三位的是学校教师及行政人员,所占比例为7.3%,国家机关、党群组织工作人员所占比例为6.6%,事业单位工作人员所占比例为6.5%,其他职业的网民所占比例都在5.0%以下。
因此,如果把一些大多数网民日常工作生活未涉及的调查内容作为网络投票的主题,结果就会产生偏差。
找到适合于网络调查的主题,是调查结果合理、有效的前提。
1.3.2网上投票样本的合理性
传统问卷调查,调查方可以根据需要抽取样本,以保证其合理性。
但网上投票调查基本上取决于上网用户的主观意愿。
而他的心绪、性格、当时环境等等因素,会对他是否主动参加调查起作用,也就会在一定程度上影响样本的合理性。
1.3.3网上投票的程序与方法
由于网络的特点,网上投票调查与传统的调查有着很大的区别。
因此,研究出一套适合网络特点的调查程序与方法是必要的。
本网上投票系统的调查程序与方法将在之后的章节详细阐述。
2系统体系开发环境
2.1系统的硬件环境
本系统在开发过程中以SQL为基础,ASP编程。
计算机和服务器的最低要求:
(1)处理器:
PentiumIII600MHz或者更高;
(2)内存(RAM):
至少64MB,建议128MB或更高;
(3)硬盘空间:
系统驱动上需求900MB的可用空间,安装驱动上要求3.3GB
的可用空间,可选的MSDN库文档另需1.9GB的可用空间;
(4)显示器:
需要设置成1024x768模式或者更高分辨率;
(5)其他:
CD-ROM或者DVD-ROM驱动器以及Microsoft鼠标或者兼容的指针设
备。
2.2技术上配合
个人计算机的出现加速了企业信息化进程,网络开发的新模式也日趋成熟,发展到现在,网络的开发模式已从工作站/服务器模式、Client/Server模式发展到以浏览器/web服务器体系结构模型的Browser/Server模式。
浏览器/web服务器最基本的形式是使用web服务。
浏览器/web服务器的出现实现了一个三层应用架构,它将客户机/服务器模型以及那些基于主机的处理模型的最好特性聚集在一起了,这一体系结构的目标是容易配置、信息的集中管理和简单的资源管理在这个开发思想中,服务器的负责向用户提供信息和要求的数据,另外通过客户浏览器软件,服务器是呈现给用户的图形化用户界面显示由服务器发送的住处服务器控制住处的布局和内容,这使信息的控制和管理非常可靠,计算机网络从体系结构到实用技术已逐步走向系统化、工程化、科学化。
在进行"
网上投票系统"
的开发时,用到了许多计算机方面的相关技术,其中也用到了许多新的开发技术和方法,这些也是完成系统开发的关键性技术,最主要的是:
软件工程、ASP技术、三层应用系统框架结构、SQL数据库技术等。
2.3ASP简介
MicrosoftActiveServerPages即我们所称的ASP,其实是一套微软开发的服务器端脚本环境,ASP内含于IIS3.0和4.0之中,通过ASP我们可以结合HTML网页、ASP指令和ActiveX元件建立动态、交互且高效的WEB服务器应用程序。
有了ASP你就不必担心客户的浏览器是否能运行你所编写的代码,因为所有的程序都将在服务器端执行,包括所有嵌在普通HTML中的脚本程序。
当程序执行完毕后,服务器仅将执行的结果返回给客户浏览器,这样也就减轻了客户端浏览器的负担,大大提高了交互的速度。
以下罗列了ActiveServerPages所独具的一些特点:
(1)使用VBScript、JScript等简单易懂的脚本语言,结合HTML代码,即可快速地完成网站的应用程序。
(2)无须compile编译,容易编写,可在服务器端直接执行。
(3)使用普通的文本编辑器,如Windows的记事本,即可进行编辑设计。
(4)与浏览器无关(BrowserIndependence),用户端只要使用可执行HTML码的浏览器,即可浏览ActiveServerPages所设计的网页内容。
ActiveServerPages所使用的脚本语言(VBScript、Jscript)均在WEB服务器端执行,用户端的浏览器不需要能够执行这些脚本语言。
(5)ActiveServerPages能与任何ActiveXscripting语言相容。
除了可使用VBScript或JScript语言来设计外,还通过plug-in的方式,使用由第三方所提供的其他脚本语言,譬如REXX、Perl、Tcl等。
脚本引擎是处理脚本程
序的COM(ComponentObjectModel)物件。
(6)ActiveServerPages的源程序,不会被传到客户浏览器,因而可以避免所写的源程序被他人剽窃,也提高了程序的安全性。
(7)可使用服务器端的脚本来产生客户端的脚本。
(8)物件导向(Object-oriented)。
(9)ActiveXServerComponents(ActiveX服务器元件)具有无限可扩充性。
可以使用VisualBasic、Java、VisualC++、COBOL等编程语言来编写你所需要的ActiveXServerComponent。
运行ASP所需的环境:
·
MicrosoftInternetInformationServerversion3.0/4.0onWindowsNTServer
MicrosoftPeerWebServicesVersion3.0onWindowsNTWorkstation
MicrosoftPersonalWebServeronWindows95/98
ASP的处理过程。
当一个用户浏览器(下图所示:
WebClient)从Web服务器(下图所示:
WebServer)要求一个ASP网页时,Web服务器会将这个ASP文件发送给Web服务器的ASP引擎(下图所示:
ASPEngine),ASP引擎则将该ASP网页中所有的服务器端脚本(下图所示:
<
%和%>
之间的代码)转换成HTML代码,然后将所有HTML代码发送给用户浏览器。
见下图所示:
2.4SQL简介
图2-1ASP处理过程
SQL全称是“结构化查询语言(StructuredQueryLanguage)”,最早的是IBM的
圣约瑟研究实验室为其关系数据库管理系统SYSTEMR开发的一种查询语言,它的前身是SQUARE语言。
SQL语言结构简洁,功能强大,简单易学,所以自从IBM公司1981年推出以来,SQL语言,得到了广泛的应用。
如今无论是像Oracle,Sybase,Informix,SQLserver这些大型的数据库管理系统,还是像VisualFoxporo,PowerBuilder这些微机上常用的数据库开发系统,都支持SQL语言作为查询语言。
StructuredQueryLanguage包含4个部分:
数据查询语言DQL-DataQueryLanguageSELECT;
数据操纵语言DQL-DataManipulationLanguageINSERT,UPDATE,DELETE;
数据定义语言DQL-DataDefinitionLanguageCREATE,ALTER,DROP;
数据控制语言DQL-DataControlLanguageCOMMITWORK,ROLLBACKWORK。
SQL的优点:
SQL广泛地被采用正说明了它的优点。
它使全部用户,包括应用程序员、DBA管理员和终端用户受益非浅。
SQL是一个非过程化的语言,因为它一次处理一个记录,对数据提供自动导航。
SQL允许用户在高层的数据结构上工作,而不对单个记录进行操作,可操作记录集。
所有SQL语句接受集合作为输入,返回集合作为输出。
SQL的集合特性允许一条SQL语句的结果作为另一条SQL语句的输入。
SQL不要求用户指定对数据的存放方法。
这种特性使用户更易集中精力于要得到的结果。
所有SQL语句使用查询优化器,它是RDBMS的一部分,由它决定对指定数据存取的最快速度的手段。
查询优化器知道存在什么索引,哪儿使用合适,而用户从不需要知道表是否有索引,表有什么类型的索引。
SQL可用于所有用户的DB活动模型,包括系统管理员、数据库管理员、应用程序员、决策支持系统人员及许多其它类型的终端用户。
基本的SQL命令只需很少时间就能学会,最高级的命令在几天内便可掌握。
SQL为许多任务提供了命令,包括:
(1)查询数据;
(2)在表中插入、修改和删除记录;
(3)建立、修改和删除数据对象;
(4)控制对数据和数据对象的存取;
(5)保证数据库一致性和完整性。
以前的数据库管理系统为上述各类操作提供单独的语言,而SQL将全部任务统一在一种语言中。
由于所有主要的关系数据库管理系统都支持SQL语言,用户可将使用SQL
的技能从一个RDBMS转到另一个。
所有用SQL编写的程序都是可以移植的。
2.5动态口令认证技术
动态口令技术是对传统的静态口令技术的改进,它采用双因子认证的原理,即用户既要拥有一些东西(somethingyouhave),如系统颁发的Token(令牌),又要知道一些东西(somethingyouknow),如启用Token的口令。
当用户要网上投票登录系统时,首先要输入启用Token的口令,其次还要将Token上所显示的数字作为系统的口令输入。
Token上的数字是不断变化的,而且与认证服务器同步,因此用户登录到系统的口令也是不断地变化的(即所谓的“一次一密”)。
双因子认证比基于口令的认证方法增加了一个认证要素,攻击者仅仅获取了用户口令或者仅仅拿到了用户的令牌访问设备,都无法通过系统的认证。
而且令牌访问设备上所显示的数字式不断地变化,这使得攻击变得非常困难。
因此,这种方法比基于口令的认证方法具有更好的安全性,在一定程度不同上解决了基于静态口令的认证方法所面临的威胁。
动态口令认证技术具体的实现即是验证码。
所谓验证码,是将一串随机产生的数字或符号,生成一幅图片,图片里加上一些干扰象素(防止OCR),由用户肉眼识别其中的验证码信息,输入表单提交网站验证,验证成功后才能使用某项功能。
验证码可防止大规模匿名操作的发生,如某些用户利用软件自动注册、登录、投票等不公正行为。
而加上随机的验证码之后,软件不可能计算出一样的验证码,因此就无法投票了。
2.5.1验证码起源
因为攻击者会使用有害程序注册大量的Web服务帐户(如Passport)。
攻击者可以使用这些帐户为其他的用户制造麻烦,如发送垃圾邮件或通过同时反复登录多个帐户来延缓服务的速度。
在大多数情况下,自动注册程序不能识别此图片中的字符。
简单的说呢,就是防止攻击者编写程序,自动注册,重复登录暴力破解密码。
验证码技术应运而生。
2.5.2验证码实现流程
服务器端随机生成验证码字符串,保存在内存中,并写入图片,发送给浏览器端显示,浏览器端输入验证码图片上字符,然后提交服务器端,提交的字符和服务器端保存的该字符比较是否一致。
一致就继续,否则返回提示。
攻击者编写的robot程序,很难识别验证码字符,顺利的完成自动注册,登录。
而用户可以识别填写,所以这就实现了阻挡攻击的作用。
而图片的字符识别,就是看图片上的干扰强度了。
就实际的效果来说,验证码只是增加攻击者的难度,而不可能完全的防止。
2.5.3网上投票系统中的验证码的作用
因为WEB站有时会碰到客户机恶意攻击,其中一种很常见的攻击手段就是身份欺骗它通过在客户端脚本写入一些代码,然后利用其客户机在网站反复登陆,或者攻击者创建一个HTML窗体,其窗体如果包含了注册窗体或投票窗体等相同的字段,然后利用“http-post”传输数据到服务器,服务器会执行相应的创建帐户,提交垃圾数据等操作,如果服务器本身不能有效验证并拒绝此非法操作,它会很严重耗费其系统资源,降低网站性能甚至使程序崩溃。
而现在流行的判断访问WEB程序是合法用户还是恶意操作的方式,就是采用动态口令技术。
本网上投票系统采用的方法是为用户提供一个包含随即字符串的图片,用户必须读取这些字符串,然后随登陆窗体或者投票窗体等用户创建的窗体一起提交。
因为人的话,可以很容易读出图片中的数字,但如果是一段客户端攻击代码,通过一般手段是很难识别验证码的。
这样可以确保当前访问是来自一个人而非机器。
3数据库的搭建
3.1E-R图
E-R如下:
用户ID
用户
用户密码
姓名
投票
显示结果
搜索
管理员ID
投票目的
管理员
增加
投票主题
删除
投票内容
管理员密码
更新
选项1
选项2
图3-1E-R图
数据库连接程序:
%
Setconn=Server.Createobject("
ADODB.Connection"
)
conn.open"
Driver={SQLServer};
server=(local);
uid=sa;
pwd=;
database=a;
"
%>
3.2数据库的设计
3.2.1用户信息
在用户注册时,用于存储“用户帐号”“用户密码”“用户真实姓名”“用户电话”“用户电子邮件”“用户地址”“用户备注”等相关信息。
表3-1用户信息表(userinfo)
列名
数据类型
说明
id
char(6)
用户帐号(主键)
pwd
name
varchar(20)
用户真实姓名(关键字)
tele
char(15)
用户电话
mail
varchar(40)
用户电子邮件(关键字)
address
用户地址
comment
varchar(100)
用户备注
3.2.2投票信息