0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

基于CA认证技术实现具有安全性的学生电子投票系统的设计

电子设计 来源:郭婷 作者:电子设计 2019-09-11 08:02 次阅读

网格是利用互联网把地理上广泛分布的各种资源(计算资源、存储资源、软件资源、数据资源、信息资源等)连成一个逻辑整体,就像一台超级计算机一样,为用户提供一体化信息和应用服务,虚拟组织最终实现在这个虚拟环境下的资源共享和协同工作,彻底消除资源“孤岛”,最充分地实现信息共享。

本文借助成熟的JSP、网格和CA等技术,实现了网格环境中的学生电子投票系统。该系统通过学生对教师授课效果的投票来评价教师的教学质量,以及教师受学生欢迎的程度。系统在设计中遇到了如何实现禁止重复投票、怎样处理投票结果、如何解决安全性等问题。通过解决这些问题,总结出使用Cookies可以解决禁止重复投票,在同一个服务器中的JSP文件要共享一个Application对象等经验,这对网格环境中JSP开发有较高的参考价值。该系统将用户在线填写的投票数据存储在后台MySql投票库中,通过实时地读取数据,以可视化的结果实时展示给用户。它与传统投票方式相比,具有高效率和低成本的优点,能够快速准确地统计出投票结果。但是大部分网上投票系统一直都没有解决投票的有效性和安全性问题。因此,本文给出了网格中该系统的安全性解决方案。

1 网格技术

网格技术利用互联网,把分散在不同地理位置的计算机组织成一个虚拟的超级计算机,其中每一台参与计算的计算机就是一个节点,而整个计算是由成千上万个节点组成的一张网格,从而实现即插即用的效果。简单地讲,它是把整个网络整合成一台巨大的超级计算机,实现各种资源的全面共享。网格具有如下特点:

(1)异构性。网格环境由分布在广域网上不同管理域的各种不同类型的计算资源组成,并且每类资源有各自不同的属性。

(2)分布与共享。分布是网格硬件在物理上的特征,而共享是在网格软件支持下实现的逻辑特征。

(3)自相似性。网格的局部和整体之间存在着一定的相似性。局部在许多方面具有全局的某些特征,而全局的特征在局部中也有一定的体现。

(4)动态多样性。不仅网格环境下的一些资源本身具有动态性,而在整个网格环境下,随着计算资源、数据资源不断加入和撤销、故障等原因,网格系统下的局部环境也在动态地改变着。在网格的设计与实现时,必须考虑到新资源能够很自然地加入到网格中,与原来的资源融合在一起,共同发挥作用。

(5)自治性与管理的多重性。网格环境下的局部资源既属于个人或机构,由个人对资源作相应的管理和维护,又要在网格系统作整体部署时,由网格管理员根据系统任务情况统一调度网格环境下的资源。

2 数据库连接技术JDBC

Java中连接数据库的技术之一是JDBC,它是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。JDBC为工具/数据库开发人员提供了一个标准的API,据此可以构建更高级的工具和接口,使数据库开发人员能够用纯Java API编写数据库应用程序。

通常在使用基于数据库的Web应用时,JDBC工作步骤为:(1)与数据库建立连接;(2)进行SQL语句操作,取出数据;(3)断开数据库连接。

Connection con=DriverManager.getConnection(“url”);

Statement stmt=con.createStatement();

ResultSet rs=stmt.executeQuery(“SELECT a,b,c FROM Table1”);

while (rs.next()) {

int x=rs.getInt(“a”);

String s=rs.getString(“b”);

float f=rs.getFloat(“c”);}

3 基于MVC模式的在线投票系统

随着互联网的发展,网上投票系统逐渐成为人们生活中的必不可少的一部分,如2008年奥运投票系统、网上流行的娱乐投票系统等。各种各样的投票系统日益发展,充分调动了人们参与活动的积极性。

3.1 MVC(Model-View-Controller)模式

使用MVC模式(如图1)设计Web应用程序非常有效。其结合了JSP和Servlet两种技术,Servlet可充当Controller的角色,JSP可以充当View层的角色,即采用JSP显示页面内容,但它并不处理任何的业务逻辑,而采用Servlet进行数据处理以生成动态内容。

基于CA认证技术实现具有安全性的学生电子投票系统的设计

MVC模式具有更清晰的页面表现、清楚的开发者角色划分,可以充分利用开发小组中的界面设计人员。同时,增加了代码的重用率,使软件的可维护性、可扩展性、灵活性和封装性大大提高。

3.2 系统流程图

基于网格的电子投票系统,设计非常直观,用户很容易看出投票的情况,并且只有合法用户才能进行有效投票。该系统分为多个功能模块,主要有以下功能:用户登录、校验、增加新投票项目、修改投票项目、删除投票项目、投票、查看投票结果、退出系统。本投票系统还具有防止重复投票的功能。系统流程图如图2。

基于CA认证技术实现具有安全性的学生电子投票系统的设计

3.3 系统实现特色

(1)JDBC连接数据库技术

在网格中实现该系统,如何操作数据库是不可避免要遇到的问题,目前有多种数据库连接技术,如CGI技术、WebAPI技术、RAD技术和JDBC技术等。通过分析,JDBC为所有数据库管理系统提供一种标准接口,可以为多种关系数据库提供统一访问,简单容易掌握,速度快。所以,选择了通过JDBC连接数据库和访问数据库,执行查询和提取数据等操作,部分代码如下:

public JDBCConnect ( ) {

try {Class.forName(url); //加载数据库驱动程序

conn=DriverManager.getConnection(url);} //建立连接

catch (Exception e) {

System.out.println (“JDBCConnect():”+e.getMessage());}}

(2)禁止重复投票

系统主要应用JSP的内置对象Application,与Session对象相比,Application对象的含义更加广泛。在使用Session对象时,各个客户端共享一个Session对象;而使用Application对象时,在同一个服务器中的JSP文件共享一个Application对象,除此之外,可以使用Application对象的getServerInfo()方法来获取JSP的版本信息和名称。

应用Cookie技术实现一个IP地址每周只能投一次票的功能。通过request.getRemoteHost()方法取得客户端的IP地址后,将其存放在Cookie对象中,并且通过cookie.setMaxAge(60*60*24*7)的方法设置存储时间。通过Cookie技术,可以防止在某一段时间内某个投票者重复使用同一IP地址重复投票。这种投票技术的特点是对重复投票得到了有效控制,而且可以记录投票者的IP地址,并可间接确定用户身份,因此该技术在网上被广泛使用。

注意,此系统禁止重复投票,一个IP地址每周只能投一次票,投票时,系统自动记录该主机IP地址,当学生代表在本周第二次投票时,系统给出相关提示信息。

实现投票的关键代码如下:

(1)使用JSP的内置对象Application

<% String id=request.getParameter(“id”);

if (id==null) {response.sendRedirect(“index.jsp”);}else {

String sql=“update tb_voteOneTime set number=number+

1 where id=′”+id+“′”;

connection.executeUpdate(sql);

connection.closeConnection();

application.setAttribute(“id”,id);

response.sendRedirect(“show.jsp”);}%>

(2)应用Cookie实现一个IP地址每周只能投一次票的功能

<jsp:useBean id=“connection” scope=“request” class=

“com.dao.JDBConnection”/>

<%@page import=“java.util.Date”%>

<%String IP=request.getRemoteHost();

Cookie [] cookies=request.getCookies();

boolean flag=true;

for (int i=0;i<cookies.length;i++) {

if (IP.equals(cookies[ i].getValue())) {flag=false;}}

if (flag){String id=request.getParameter(“id”);

String sqlVote=“update tb_VoteIP set number=number

+1 where id=′”+id+“′”;

connection.executeUpdate(sqlVote);

connection.closeConnection();

Cookie cookie=new Cookie(“IP”,IP);

cookie.setMaxAge(60*60*24*7);

response.addCookie(cookie);

response.sendRedirect(“show.jsp”);

} else{out.print(“<script language=′JavaScript′>

alert(′一个IP地址每周只能投一次票′);

window.location.href=′index.jsp′;</script>”);}%>

3.4 安全性解决方案

一个安全实用的电子投票系统应该满足如下标准:

(1)民主性。只有合法的投票者才能投票,且只能在规定的时间段内投票。

(2)准确性。投票不能被中间机构或他人篡改、复制或删除时不被发现;无效的选票可以被及时发现从而不会被计入最终的统计结果。

(3)秘密性。选票的投出是匿名的,任何机构或个人不能确定投票者的投票内容,也不能确定选票的投票者。

(4)可证实性。投票者可以确定其投票被正确计算在最终结果中。任何参与者或其他观察监督者都可以核实最终结果的正确性。

(5)公平性。最终统计结果公布前,任何参与者都无法得知中间的选票统计信息,因为中间的选票统计信息可能会影响投票者的投票意向。

(6)简单性。投票者无需特别的设备和技术就可简单快速地完成投票;投票者无需到特别的地点进行投票;投票活动的组织进行应该简单且效率高。

本系统采用CA认证技术有效解决了投票过程的安全性问题。CA(Certificate Authority)认证中心是指用于证明某一主体的身份以及合法性的权威认证机构,由社会公认的具有法律效力的权威机构组成,或由某单位的权威部门组成。由CA中心给用户签发认证证书,证书中包含用户身份名称和验证密码等信息。投票中心存放投票数据,记录投票结果。

如果双方主体都有证书,而且都信任彼此的认证中心CA,则双方可相互明确彼此的身份,其采用的认证协议是SSL协议。在相互认证可以进行之前,双方首先要相信彼此的认证中心。实现过程中,要求双方都有彼此认证中心自身的证书,认证中心自身的证书中包含认证中心的公钥。这样才能确保双方由认证中心签署的证书具有合法性。

本文在网格环境中,设计开发出了安全有效的电子投票系统,给出了系统流程图,实现了实时性的跨Web服务器动态网页的创建。以JSP实现页面显示,JavaBean编写数据库连接,Servlet控制整个系统的流程,从而实现用户界面和数据库之间良好的交互,有效提高了系统的效率和性能。基于CA认证技术较好地解决了安全性问题,保证了投票者的合法性、公正性、真实性和有效性。


声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 互联网
    +关注

    关注

    54

    文章

    11036

    浏览量

    102363
  • 计算机
    +关注

    关注

    19

    文章

    7277

    浏览量

    87497
  • JAVA
    +关注

    关注

    19

    文章

    2946

    浏览量

    104338
收藏 人收藏

    评论

    相关推荐

    如何保证汽车远程信息系统安全性

    程师面对并解决范围广阔的技术安全和可靠性问题。目前,许多设备都具有联网的功能,联网设备易受攻击的特性已经成为必须面对的挑战。在开放的网络环境中工作的嵌入式设备越多,安全性就越来越成为事
    发表于 08-28 12:38

    安全闪存铸就高安全性智能卡

    加载器闪存3发货前锁定安全闪存加载器4向客户发货闪存加载器必须与硬件一同进行认证。闪存的安全加载英飞凌SOLID FLASH™技术完美融合最佳灵活性与可靠
    发表于 12-07 10:19

    如何支持物联网安全性和低功耗要求设计

    不仅需要满足技术要求,而且还要以对用户直观的方式实现。复杂的水龙头序列或需要连接硬件加密狗以管理安全性,损害用户体验并最终损害制造商的收入流。但是,使用MCU和专用IC中的安全功能,开
    发表于 12-26 16:30

    FPGA器件如何提升物联网安全性

    满足器件级安全需求的特性,来帮助实现这些目标。日益增长的IoT安全需求物联网(IoT)可被视为由多个电子网络组成,这些网络需要端到端的起始于器件级的分层
    发表于 06-25 08:18

    怎么提高SRAM工艺FPGA的设计安全性

    随着FPGA的容量、性能以及可靠的提高及其在消费电子、汽车电子等领域的大规模应用,FPGA设计的安全性问题越来越引起人们的关注。相比其他工艺FPGA而言,处于主流地位的SRAM工艺F
    发表于 08-23 06:45

    HarmonyOS学习之三:HarmonyOS 系统安全性

    HarmonyOS(鸿蒙操作系统)采用全新的微内核设计,具有增强的安全性和低延迟。该微内核旨在简化内核功能,在内核外的用户模式下实现尽可能多的系统
    发表于 11-26 09:30

    实现更强大IoT设备安全性的步骤

    本文将讨论实现更强大IoT设备安全性的步骤,并解释嵌入式安全性背后的不同概念,以及如何针对嵌入式设备安全性实施一致且包罗万象的方法。发现设备漏洞
    发表于 02-22 06:26

    数据采集系统的功能安全性怎么保障?

    现在我们对系统功能安全的要求显著增长。从核电站到医疗设备,无故障系统已成为部分应用的理想选择,也是其他应用的必备条件。例如,在传感领域,获取的数据如果不正确或遭到损坏,结果可能具有破坏
    发表于 03-05 07:30

    怎样利用虚拟仪器技术去开发引信软件安全性测试系统

    引信软件安全性测试系统有什么特点?怎样利用虚拟仪器技术去开发引信软件安全性测试系统
    发表于 04-09 07:01

    如何利用电子技术提高汽车舒适安全性

    如何利用电子技术提高汽车舒适安全性电子技术的导入会成为今后技术开发的关键
    发表于 05-13 06:28

    汽车安全性的内容和影响因素是什么?

    汽车安全性的内容和影响因素是什么? 电子技术在汽车行驶安全上的应用有哪些?
    发表于 05-14 06:43

    求一种高安全性RKE系统实现方案

    本设计提出一种高安全性RKE系统实现方案,详细介绍了系统的硬件原理电路、软件流程设计以及实现编码解码的原理。
    发表于 05-14 06:19

    助力采用MCU的自主系统实现自主安全性

    人工智能(AI)和机器学习(ML)技术在自主日益增强的系统中的应用越来越普遍,这将提高各行各业对更智能的安全系统的要求。关注重点已经从节约成本转向给用户带来便利
    发表于 03-29 15:09

    动态口令身份认证机制及其安全性研究

    基于口令的身份认证是目前多数应用系统所采用的安全机制。动态口令是身份认证机制新的发展方向。本文详细阐述了常用的三种动态口令机制,并对它们的安全性
    发表于 05-27 15:16 19次下载

    轨交系统安全性设计

    本文将从轨交系统安全性设计的必要、控制设计、需求分析以及实现等方面进行阐述。 1. 安全性设计的必要
    的头像 发表于 01-16 16:55 688次阅读
    轨交<b class='flag-5'>系统安全性</b>设计