




免费预览已结束,剩余11页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
网络与信息安全实验报告学 院 计算机学院 专 业 计算机科学与技术 班 级 2003级计科3班 学 号 3005006057 姓 名 甑豪温 指导教师 宋 玮 2003 年 12 月实验一 数字证书的创建实验项目名称:数字证书的创建实验项目性质:验证型所属课程名称:网络与信息安全实验计划学时:2一、实验目的1、理解数字证书的概念;2、掌握创建数字证书的创建;3、掌握数字证书的签发;二、实验内容和要求1、使用Java中Keytool工具创建数字证书2、使用Keytool工具显示及导出数字证书3、使用Java程序签发数字证书三、实验主要仪器设备和材料1计算机及操作系统:PC机,Windows 2000/xp;2JDK1.5 四、实验方法、步骤及结果测试创建两个数字证书:使用别名、指定算法、密钥库和有效期的方式创建两个数字证书。显示并且导出已创建的数字证书的内容。签发数字证书。1、创建数字证书:实现代码及截图:语句keytool -genkey -alias mycer1 -keyalg RSA -keystore mycerstore1 -validity 1000keytool -genkey -alias mycer2 -keyalg RSA -keystore mycerstore2 -validity 2000语句及执行结果截图显示2、 显示并且导出已创建的数字证书内容(1)使用Keytool直接从密钥库显示证书详细信息(2)使用Keytool将数字证书导出到文件(3)在Windows中从文件显示证书实现代码及截图:语句(1)keytool -list -v -keystore mycerstore1(2)keytool -export -alias mycer1 -file mycer1.cer -keystore mycerstore1 -rfc(3)语句及执行结果截图显示(1)(2)(3)3、Java程序签发数字证书实现代码及截图:语句package com.ifrenzyc.signCert;import java.io.*;import java.security.*;import java.security.cert.*;import java.util.*;import sun.security.x509.*;public class SignCert public static void main(String args) throws Exception char storepass = 123456.toCharArray();char cakeypass = 123456.toCharArray();String alias = ifrenzyc2;String name = mykeystore;/ Cert of CA-c1FileInputStream in = new FileInputStream(name);KeyStore ks = KeyStore.getInstance(JKS);ks.load(in, storepass);java.security.cert.Certificate c1 = ks.getCertificate(alias);PrivateKey caprk = (PrivateKey) ks.getKey(alias, cakeypass);in.close();/ 得到签发者byte encod1 = c1.getEncoded();X509CertImpl cimp1 = new X509CertImpl(encod1);X509CertInfo cinfo1 = (X509CertInfo) cimp1.get(X509CertImpl.NAME + .+ X509CertImpl.INFO);X500Name issuer = (X500Name) cinfo1.get(X509CertInfo.SUBJECT + .+ CertificateIssuerName.DN_NAME);/ Cert of lf-c2CertificateFactory cf = CertificateFactory.getInstance(X.509);FileInputStream in2 = new FileInputStream(args0);java.security.cert.Certificate c2 = cf.generateCertificate(in2);in2.close();byte encod2 = c2.getEncoded();X509CertImpl cimp2 = new X509CertImpl(encod2);X509CertInfo cinfo2 = (X509CertInfo) cimp2.get(X509CertImpl.NAME + .+ X509CertImpl.INFO);/ 设置新证书有效期Date begindate = new Date();/ 60 dayDate enddate = new Date(begindate.getTime() + 3000 * 24 * 60 * 60* 1000L);CertificateValidity cv = new CertificateValidity(begindate, enddate);cinfo2.set(X509CertInfo.VALIDITY, cv);/ 设置新证书序列号int sn = (int) (begindate.getTime() / 1000);CertificateSerialNumber csn = new CertificateSerialNumber(sn);cinfo2.set(X509CertInfo.SERIAL_NUMBER, csn);/ 设置新证书签发者cinfo2.set(X509CertInfo.ISSUER + . + CertificateIssuerName.DN_NAME,issuer);/ 设置新证书算法AlgorithmId algorithm = new AlgorithmId(AlgorithmId.md5WithRSAEncryption_oid);cinfo2.set(CertificateAlgorithmId.NAME + .+ CertificateAlgorithmId.ALGORITHM, algorithm);/ 创建证书X509CertImpl newcert = new X509CertImpl(cinfo2);/ 签名newcert.sign(caprk, MD5WithRSA);System.out.println(newcert);/ 存入密钥库ks.setCertificateEntry(lf_signed, newcert);FileOutputStream out = new FileOutputStream(newstore);ks.store(out, newpass.toCharArray();out.close();语句及执行结果截图显示五、实验中出现的问题及解决方案六、思考题1、 数字证书的功能是什么?答:数字证书就是互联网通讯中标志通讯各方身份信息的一系列数据,提供了一种在Internet上验证您身份的方式。数字证书主要用于确保信息传输的保密性、数据交换的完整性、发送信息的不可否认性、交易者身份 的确定性。2、 keytool genkey 所产生证书的签发者是谁?答:当前系统用户。实验二 SSL编程实验项目名称:SSL编程实验项目性质:验证型所属课程名称:网络与信息安全实验计划学时:2一、实验目的1、理解SSL的作用;2、掌握SSL客户和服务器程序;二、实验内容和要求1、使用Java中的SSL编写SSL服务器程序2、使用Java中的SSL编写SSL客户端程序三、实验主要仪器设备和材料1计算机及操作系统:PC机,Windows 2000/xp;2JDK1.5 四、实验方法、步骤及结果测试1、编写SSL服务器程序实现代码及截图:语句import java.io.PrintStream;import .ServerSocket;import .Socket;import .ssl.SSLServerSocketFactory;public class MySSLServer public static void main(String args) throws ExceptionSystem.setProperty(.ssl.keyStore,mycerstore1);System.setProperty(.ssl.keyStorePassword,123456);SSLServerSocketFactory ssf=(SSLServerSocketFactory)SSLServerSocketFactory.getDefault( );ServerSocket ss=ssf.createServerSocket(5432);System.out.println(Waiting for connection.);while(true)Socket s=ss.accept( );PrintStream out = new PrintStream(s.getOutputStream( );out.println(Hi);out.close( ); s.close( );语句及执行结果截图显示3、 编写SSL客户端程序实现代码及截图:语句import java.io.BufferedReader;import java.io.InputStreamReader;import .Socket;import .ssl.SSLSocketFactory;public class MySSLClient public static void main(String args ) throws Exception System.setProperty(.ssl.trustStore,clienttrust); SSLSocketFactory ssf=(SSLSocketFactory) SSLSocketFactory.getDefault( ); Socket s = ssf.createSocket(, 5432); BufferedReader in = new BufferedReader( new InputStreamReader(s.getInputStream(); String str =in.readLine( ); System.out.println(str); in.close( ); 语句及执行结果截图显示五、实验中出现的问题及解决方案六、思考题3、 描述SSL的握手协议过程。答: (1)建立安全能力。客户机向服务器发送client_hello报文,服务器向客户机回应server_hello报文,建立如下的安全属性:协议版本,会话ID,密文族,压缩方法,同时生成并交换用于防止重放攻击的随机数。密文族参数包括密钥交换方法(Deffie-Hellman密钥交换算法、基于RSA的密钥交换和另一种实现在Fortezza chip上的密钥交换)、加密算法(DES、RC4、RC2、3DES等)、MAC算法(MD5或SHA-1)、加密类型(流或分组)等内容。(2)认证服务器和密钥交换。在hello报文之后,如果服务器需要被认证,服务器将发送其证书。如果需要,服务器还要发送server_key_exchange。然后,服务器可以向客户发送certificate_request请求证书。服务器总是发送server_hello_done报文,指示服务器的hello阶段结束。(3)认证客户和密钥交换。客户一旦收到服务器的server_hello_done报文,客户将检查服务器证书的合法性(如果服务器要求),如果服务器向客户请求了证书,客户必须发送客户证书,然后发送client_key_exchange报文,报文的内容依赖于client_hello与server_hello定义的密钥交换的类型。最后,客户可能发送client_verify报文来校验客户发送的证书,这个报文只能在具有签名作用的客户证书之后发送。(4)结束。客户发送change_cipher_spec报文并将挂起的CipherSpec复制到当前的CipherSpec。这个报文使用的是改变密码格式协议。然后,客户在新的算法、对称密钥和MAC秘密之下立即发送finished报文。finished报文验证密钥交换和鉴别过程是成功的。服务器对这两个报文响应,发送自己的change_cipher_spec报文、finished报文。握手结束,客户与服务器可以发送应用层数据了。如下图:4、 SSL的握手协议过程是否体现在程序中?说明分析过程。答:看不出SSL的握手协议过程。实验三 Sniffer网络嗅探器的使用实验项目名称:Sniffer网络嗅探器的使用实验项目性质:验证型所属课程名称:网络与信息安全实验计划学时:2一、实验目的通过Sniffer软件的使用,了解如何使用该软件对网络数据包进行分析;二、实验内容和要求捕获HTTP数据包,并进行分析,捕获的目标计算机为个人主机三、实验主要仪器设备和材料1计算机及操作系统:PC机,Windows 2000/xp;2Sniffer 四、实验方法、步骤及结果测试 扫描主机在Sniffer软件捕获期间浏览网页/,在该页面登录信箱,尝试输入用户名(此处为自己的姓名),密码(此处为自己的学号).通过查看捕捉报告来验证Sniffer是否能够查看局域网内流动的任何信息。1、 安装Sniffer2、 设置网络适配器截图:3、 设置捕获条件,“定义过滤器-高级”设置捕获报文为http。截图:4、显示个人主机所在局域网的所有通信连接截图:5、选择监视的目标主机截图:6、开始捕获,在Sniffer捕获过程中,在被监视主机上登录/,尝试输入用户名,密码.7、单击工具栏上“停止和显示“,查看捕获情况。8、查看专家解码,找到和用户名以及密码相关的报文,并截图显示。截图:五、实验中出现的问题及解决方案六、思考题为什么使用Sniffer可以查看到局域网上的所有网络连接?答:sniffer就是一种能将本地nc状态设成(promiscuous)状态的软件,当nc处于这种混杂方式时,该nc具备广播地址,它对所有遭遇到的每一个帧都产生一个硬件中断以便提醒操作
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026届山东省东营市四校连赛化学九年级第一学期期中监测模拟试题含解析
- 离婚协议书:婚姻终止后财产保值增值合作协议
- 离婚协议签订中关于子女抚养权纠纷的法律解决途径
- 离婚协议中赡养费支付期限与方式创新性研究
- 离婚协议书范本:融合心理辅导、情感疏导的合同样本
- 文化传媒私人工厂影视制作人员劳务派遣合作协议
- 宁波市精装修商品房买卖合同及售后装修质保服务协议
- 理发店员工培训与发展聘用一体化服务协议
- 婚姻破裂房产过户合同范本:合法合规操作指南
- 离婚协议书附带债务偿还及财产分割细则
- 一、长方体和正方体表面涂色的
- 《广播电视编导概论》课程教学大纲
- kinetix6200和6500模块化多轴伺服驱动器用户手册
- DB51∕T 2502-2018 中国川菜烹饪技术用语及菜名翻译规范
- 国外期刊运作的主要模式及发展趋势
- 区域性再生资源集散市场实施方案
- 液氨使用与储存安全技术规范
- 《幼儿园大班第一学期家长会》 PPT课件
- 施工手册柱式桥台
- PCR室作业指导书_检验SOP文件
- 上海市初级中学英语学科教学基本要求
评论
0/150
提交评论