您好,欢迎来到好走旅游网。
搜索
您的当前位置:首页关于移动存储设备的认证

关于移动存储设备的认证

来源:好走旅游网
《信息安全综合课程设计》报告

题目:移动存储设备的认证

专业班级:学 号:姓 名:指导老师:时 间:

信息安全0801 班 0909080121 谢 旺 辉 柳 溶

2011.12-2012.01

一、 任务描述与需求分析

1. 任务描述

1.1设计背景:当今世界,随着电子信息产业的飞速发展,计算机已成为信息产业行业主流产品和人们在工作、生活、学习等各个方面不可缺少的工具,从而,信息数据的存储和转移成为计算机的一大问题,移动存储设备的发展和使用似乎成功解决了这一问题,但新的产品必然面临着新的问题:病毒和木马以移动存储设备为媒介进行传播,移动存储设备的广泛使用转移和窃取计算机主机的机密文件或重要文件等。我们可以给移动存储设备和计算机之间添加认证和保护层来解决这些问题。

1.2 任务描述:实现一个基于移动存储设备的认证系统,以U盘为介质,PC主机实现软件,合理选择加密算法,实现U盘和主机之间的内部认证、外部认证及双向认证。

2. 需求分析

(1) 以客户端形式实现认证系统软件和界面。

(2) 对盘符进行扫描,保存于数据库中,当有U盘插入时进行检测,

实现移动存储设备的检测功能。

(3) 通过权限对自己的或获得允许的U盘进行注册,生成加密文件,

供检测U盘时使用,实现U盘的权限管理功能。

(4) 对U盘进行认证,通过检测认证文件的对应和符合性,检测该U

盘是否为本机的合法注册设备,实现对非法U盘的控制和U盘访问的权限

(5) 对U盘的系统主机进行认证,检测系统是否为U盘的合法主机,

实现内部认证。

3. 开发平台与工具

本系统采用Java语言开发,其跨平台性和可移植性的特点适合于本系统的开发。

.开发平台:Win7系统; .开发环境:Java 6.0; .开发工具:Eclipse 3.2。

二、 系统设计

1、 系统结构

移动存储设备 认证系统 初始化环境模块 U盘注册模块 U盘认证模块 系统认证模块 2.1 系统功能实现模块图

如图2.11,系统分为四大模块:初始化环境模块、U盘注册模块、U盘认证模块、系统认证模块。

2、 功能说明

(1) 初始化环境功能

通过盘符扫描,实现U盘或移动存储设备的检测。 (2) U盘注册功能

通过生成加密文件,实现对U盘的注册。 (3) U盘认证功能

通过检测加密文件的对应性,实现对U盘的合法性和权限检测。 (4) 系统认证功能

通过主机数据库,检测系统主机。

3、 数据库

如下表是系统主机数据库中的初始盘符表。

表2.1 root_sys rootName C D E F G H

如下表是系统数据库中已注册U盘的加密认证文件。 表2.2 key_input keyStr keyET 12 C20ad4d76fe97759aa27a0c99bff6710

三、 详细设计

1. 系统流程图

开始

客户端启动

U盘认证 初始化环境 系统认证 U盘注册

初始化成功

密码输入

成功与否 成功与否

否 否 否 正确是否

是 认证失败认证失败重新输入 U盘弹出 认证成功 是 欢迎使用

输入代号 是

认证成功 注册成功

图3.1 系统流程图

2. 系统用例图

MyFrame

main()

RegFrame

dealReg() dealPW()

Encrypt

Encrypt(str) Compute()

Jtime

run()

3.2系统用例图

DealRoots deal() dealGetU() RootDao CreateDB() Save() RootsScan listRoots() toSting()

3. 代码实现

图3.3 代码结构实现

3.1客户端界面功能实现

用java控件实现系统客户端界面功能,通过调用和解析系统数据库中和U 盘中的加密文件实现系统认证和U盘认证,即实现内部认证,外部认证及双向认证功能,利用认证系统的初始化功能,实现U盘插入的检测功能。 相关代码: super();

getContentPane().setLayout(null); setBounds(100,100,400,300);

setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); final JPanel panel =new JPanel(); panel.setLayout(null);

panel.setBounds(0, 0, 400, 300); getContentPane().add(panel); final JButton bt1=new JButton();

bt1.setText(\"u盘注册\"); bt1.setBounds(10,40,80,30); panel.add(bt1);

final JButton entry=new JButton();

entry.setText(\"认证系统\"); entry.setBounds(115,40,90,30); panel.add(entry);

final JButton bt2=new JButton();

bt2.setText(\"认证u盘\"); bt2.setBounds(245,40,80,30);

panel.add(bt2);

final JLabel label=new JLabel(); label.setText(\"欢迎使用u盘认证系统!\"); label.setBounds(10,5,300,30); panel.add(label);

final JButton bt3=new JButton(); bt3.setText(\"初始化环境\"); bt3.setBounds(10,180,100,30); panel.add(bt3); outt=new JTextField();

outt.setBounds(20, 120, 200, 30); outt.setText(\"系统信息:\"); panel.add(outt);

3.2 注册功能实现

在系统和U盘中生成加密文件,保存在数据库和U盘中,实现U盘的注册功能。 相关代码:

setTitle(\"u盘注册密码输入\");

final JPanel panel =new JPanel(); panel.setLayout(null);

panel.setBounds(0, 0, 300, 180); getContentPane().add(panel); final JLabel passWord=new JLabel();

passWord.setFont(new Font(\"微软雅黑\",Font.PLAIN,12)); passWord.setText(\"请输入权限密码:\"); passWord.setBounds(20,20,100,30); panel.add(passWord);

passWordTextField=new JPasswordField(); passWordTextField.setText(\"\");

passWordTextField.setBounds(120,20,100,30); panel.add(passWordTextField); final JButton jb=new JButton(); jb.setText(\"确定\");

jb.setBounds(200,80,60,40); panel.add(jb);

3.3使用MD5加密

对注册生成文件进行加密,生成加密文件保存于数据库中。 代码实现算法:

public class Encrypt { private String inStr; private MessageDigest mad5; public Encrypt(String inStr){

this.inStr=inStr; try{

this.mad5=MessageDigest.getInstance(\"MD5\"); }

catch(Exception e){

System.out.println(e.toString()); e.printStackTrace(); } }

public String compute(){

char[] charArray=this.inStr.toCharArray(); byte[] byteArray=new byte[charArray.length]; for(int i=0;ibyte[] md5Bytes=this.mad5.digest(byteArray); StringBuffer hexValue=new StringBuffer(); for(int i=0;ihexValue.append(\"0\");

hexValue.append(Integer.toHexString(val)); }

return hexValue.toString();

}

3.4数据库实现

利用数据库实现系统初始环境和加密文件的保存,利于检测和认证外来

存储设备。 代码实现:

private Connection conn=null;

public void initConnection() throws Exception{ Class.forName(\"sun.jdbc.odbc.JdbcOdbcDriver\");

conn=DriverManager.getConnection(\"jdbc:odbc:mySQL\",\"root\",\"admin\"); }

public void closeConnection(){ if(conn!=null){

try {

} }

conn.close();

// TODO Auto-generated catch block e.printStackTrace(); } catch (Exception e) {

}

public void createDB(){

try {

}

closeConnection();

this.initConnection();

String sql1 = \"drop table Root_sys\"; String sql = \"drop table key_input\";

String sql2=\"create table Root_sys(rootName char(5))\"; String sql0=\"create table key_input(keyStr char(20),keyET varchar(50))\";

Statement stat = conn.createStatement(); stat.executeUpdate(sql1); stat.executeUpdate(sql); stat.executeUpdate(sql2); stat.executeUpdate(sql0);

System.out.println(\"创建成功!\"); // TODO Auto-generated catch block e.printStackTrace();

} catch (Exception e) {

finally{ } }

四、 实现过程

1. 具体实现

1.1客户端启动

图4.1为客户端启动的初始状态。

图4.1 客户端

当没有U盘或移动存储设备插入时,会显示系统信息,然后自动关闭,如下图:

图4.2无U盘插入的客户端状态图

1.2初始化环境

对系统盘符进行扫描和数据保存,用于检测U盘。

图4.3初始化成功图

1.3 U盘注册

对合法或获得允许的U盘进行注册,给与其访问权限。 无U盘插入时显示如下:

图4.4 U盘提示插入检测

当U盘插入时

图4.5 密码输入

图4.6 注册代码输入

1.4 U盘认证

无U盘插入时如图4.4。 对U盘进行认证: 当认证成功时如下图:

图4.7 U盘认证成功

如果认证失败则如图4.8:

图4.8 U盘认证失败

1.5 系统认证

无U盘插入时如图4.4。

当对系统进行认证成功时如图4.9:

图4.9 系统验证成功

验证失败时如下图4.10:

图4.10 系统认证失败

2进一步延伸和发展方向

虽然实现了移动存储认证系统的基本功能,但有些细节还需要改进,有些功

能还需要完善和增加。如:

(1) 初始化环境时,可设置权限,只有主机用户才能拥有权限进行管理。 (2) U盘注册,可对生成的加密文件进行深入解析,使其不容易被删除。 (3) 当U盘认证失败时,U盘自动弹出,使其无法访问系统主机。 (4) 对主机重要文件实现访问读写控制功能,保护重要文件。 (5) 实现认证系统的自启动和自关闭功能和随时监听功能。

五、 总结

通过本次信息安全综合课程设计,我学到了很多,认识到移动存储设备安全问题的重要性以及自身很多知识的缺乏和不熟练,当然在编程方面也有很大的进步,分析问题和解决问题的能力也加强了。总的来说,这次课程设计让我受益匪浅。

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- haog.cn 版权所有

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务