网络安全实验报告身份验证

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

网络安全实验报告实验二:身份验证

班级:

学号:

姓名:

合作人:

时间: 2012.11.1-11.23

一、实验目的及任务

1、掌握关系数据库系统的基础知识和基本原理。

2、掌握一种关系数据库管理系统,如:Mysql

3、掌握一种软件开发工具JDK,Myeclipse、jsp、Struts2.

4、掌握开发语言jsp

5、能应用JSP开发工具进行b/s编写程序

6、掌握一种加密算法原理,如:MD5,用此算法对数据进行加密,并能编写程序实现

7、掌握浏览器/服务器模式的工作原理

8、编程实现认证系统,调试所编程序

9、观察程序运行结果

二、实验环境

1、浏览器

2、服务器

3、关系数据库管理系统(Mysql)、JDK.

三、实验原理

随着Internet的飞速发展,网络安全的地位日益突出。网络的安全措施应是能全方位地针对各种不同的威胁,这样才能确保网络信息的保密性、完整性和可用性。作为安全服务中的一种----实体认证尤为重要。在一个公开的分布式网络环境中,工作站上的用户希望访问分布在网络上的服务器资源。但网络上的资源仅允许授权用户的特定权限的访问,因此,在分布式网络中,必须提供一种机制来对用户的身份进行认证。现在常用的一些认证协议是基于B/S模式的三方验证协议,广泛应用于Internet服务的访问,网络中的认证协议服务起着可信仲裁者的作用。认证协议基于对称密码体制或非对称密码体制,可提供安全的客体认证。用户在客户机上登录,在登录界面上,输入用户名User和密码Password,用户名以正常字符显示,密码以星号显示,为了防止密码在网上传输被窃听者获取,用户输入的密码在客户机上加密(username)、(Password),所以在网上传输的是经过加密的用户密码(username)、(Password)。即使偷听者知道密钥K,或者获取数据库的信息,所以即使都到信息加密(username)、(Password),也得不到用户的明文密码(username)、(Password)。服务器接收客户机传输过来的信息,提取用户名User密文(username)、(Password),存到数据库中。管理员在服务器数据库中,读出库中存贮的用户名与密码,与接收来的用户名与密码相比较,如果相等,则为合法用户,如果不相等,则为非法用户。

四.流程图如下:

(1)基于MD5密码体制(2)浏览器

(3)

(4)

(5)网络传输

(6)服务器端

常规加密:保密

五.核心代码:

数据库连接+注册加密

public boolean save(String username,String password){ flag=false;

MD5 md5=new MD5();

password=md5.getMD5ofStr(password);

String sql="insert into

tb_user(name,password1) values(?,?) ";

conn=MysqlUtil.openConn();

try {

ps=conn.prepareStatement(sql);

ps.setString(1, username);

ps.setString(2, password);

flag=!ps.execute();

} catch (SQLException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

return flag;

}

身份验证

public boolean check(String username,String password){

flag=false;

MD5 md5=new MD5();

System.out.println(username);

password=md5.getMD5ofStr(password);

System.out.println(password);

String sql="select * from tb_user where name=? and password1=? ";

conn=MysqlUtil.openConn();

try {

ps=conn.prepareStatement(sql);

ps.setString(1, username);

ps.setString(2, password);

rs=ps.executeQuery();

int count=0;

while(rs.next()){

count++;

}

System.out.println(count);

if(count!=0){

flag=true;

}

} catch (SQLException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

return flag;

}

加密算法

六.实验总结:

基于共享密钥的身份验证是指服务器端和用户共同拥有一个或一组密码。当用户需要进行身份验证时,用户通过输入或通过保管有密码的设备提交由用户和服务器共同拥有的密码。服务器在收到用户提交的密码后,检查用户所提交的密码是否与服务器端保存的密码一致,如果一致,就判断用户为合法用户。如果用户提交的密码与服务器端所保存的密码不一致时,则判定身份验证失败。

基于公开密钥加密算法的身份验证是指通信中的双方分别持有公开密钥和私有密钥,由其中的一方采用私有密钥对特定数据进行加密,而对方采用公开密钥对数据进行解密,如果解密成功,就认为用户是合法用户,否则就认为是身份验证失败。

相关文档
最新文档