信息安全试验报告四文档格式.docx

上传人:b****5 文档编号:18602177 上传时间:2022-12-29 格式:DOCX 页数:11 大小:570.26KB
下载 相关 举报
信息安全试验报告四文档格式.docx_第1页
第1页 / 共11页
信息安全试验报告四文档格式.docx_第2页
第2页 / 共11页
信息安全试验报告四文档格式.docx_第3页
第3页 / 共11页
信息安全试验报告四文档格式.docx_第4页
第4页 / 共11页
信息安全试验报告四文档格式.docx_第5页
第5页 / 共11页
点击查看更多>>
下载资源
资源描述

信息安全试验报告四文档格式.docx

《信息安全试验报告四文档格式.docx》由会员分享,可在线阅读,更多相关《信息安全试验报告四文档格式.docx(11页珍藏版)》请在冰豆网上搜索。

信息安全试验报告四文档格式.docx

(2)了解HTTPS的工作原理

(3)配置IIS或Apache的HTTPS功能

(4)使用OpenSSL协议开发一个安全聊天程序

硬件环境:

软件环境:

Windows7

实验步骤与内容:

(1)熟悉OpenSSL库中SSL函数使用接口

使用OpenSSL.exe(Linux中可执行文件名是openssl)可以做很多工作,是一个很好的测试或调试工具。

显示版本和编译参数:

>

opensslversion-a

查看支持的子命令:

openssl?

SSL密码组合列表:

opensslciphers

测试所有算法速度:

opensslspeed

测试RSA速度:

>

opensslspeedrsa

测试DES速度:

opensslspeeddes

产生RSA密钥对:

opensslgenrsa-out1.key1024

取出RSA公钥:

opensslrsa-in1.key-pubout-out1.pubkey

RC4加密文件:

>

opensslenc-e-rc4-in1.key-out1.key.enc

RC4解密文件:

opensslenc-d-rc4-in1.key.enc-out1.key.2

计算文件的MD5值:

opensslmd5<

1.key

计算文件的SHA1值:

opensslsha1<

openssl版本

Ssl组合密码

Openssl支持的子命令

SSL协议的主要功能即把TCP的字节流变成了一个安全的流,所有基于TCP的程序可以很容易地采用SSL协议。

主要的变化在于accept/connect()变化为使用OpenSSL提供的SSL_accept/SSL_connect(),read/write()变化为SSL_read/SSL_write()。

初始化函数库

SSL_load_error_strings();

OpenSSL_add_all_algorithms();

客户端

SSLv3_client_method();

SSL_CTX_new();

SSL_CTX_set_accepted_Cas();

//认可的CAs

SSL_CTX_use_certificate_file();

//自己的证书

SSL_CTX_use_PrivateKey_file();

//自己的私钥

SSL_CTX_check_private_key();

//检查证书-私钥一致性

SSL_CTX_set_cipher();

//自己喜欢的算法组合

服务器端

SSLv3_server_method();

(3)配置Apache的HTTPS功能

1、安装好apache环境,注意要装ssl版本的。

这里装在c:

/apache目录下。

2、生成服务器证书

1)在DOS命令下进入apache/bin目录

2)在windows环境下需先设置Openssl环境变量:

执行命令

3)生成私钥文件,这是用128位rsa算法生成密钥,得到server.key文件。

4)生成证书请求文件。

执行命令

5)签署服务器证书文件。

这是用步骤3,4的的密钥和证书请求生成证书server.crt,-days参数指明证书有效期,单位为天,x509表示生成的为X.509证书。

3、配置httpd.conf

1)打开httpd.conf文件,移除:

Includeconf/extra/httpd-ssl.conf

LoadModulessl_modulemodules/mod_ssl.so

2)打开httpd-ssl.conf,修改如下:

<

VirtualHost_default_:

443>

SSLEngineOn

SSLCertificateFile../bin/server.crt

SSLCertificateKeyFile../bin/server.key

#SSLCertificateChainFile../bin//ca.crt//暂未启用

#......

DocumentRoot"

c:

/apache/htdocs"

ServerName:

443

/VirtualHost>

1、java实现DES加密socket通信

加密:

publicstaticbyte[]encrypt(byte[]datasource){

try{

SecureRandomrandom=newSecureRandom();

DESKeySpecdesKey=newDESKeySpec(password.getBytes());

//创建一个密匙工厂,然后用它把DESKeySpec转换成

SecretKeyFactorykeyFactory=SecretKeyFactory.getInstance("

DES"

);

SecretKeysecurekey=keyFactory.generateSecret(desKey);

//Cipher对象实际完成加密操作

Ciphercipher=Cipher.getInstance("

//用密匙初始化Cipher对象

cipher.init(Cipher.ENCRYPT_MODE,securekey,random);

//现在,获取数据并加密

//正式执行加密操作

returncipher.doFinal(datasource);

}catch(Throwablee){

e.printStackTrace();

}

returnnull;

}

解密:

publicbyte[]decrypt(byte[]src)throwsException{

//DES算法要求有一个可信任的随机数源

//创建一个DESKeySpec对象

//创建一个密匙工厂

//将DESKeySpec对象转换成SecretKey对象

//Cipher对象实际完成解密操作

//用密匙初始化Cipher对象

cipher.init(Cipher.DECRYPT_MODE,securekey,random);

//真正开始解密操作

returncipher.doFinal(src);

2、客户端和服务器端代码的编写

之前OPENSSL已经在电脑上安装好了

程序分为两部分,客户端和服务器端,我们的目的是利用SSL/TLS的特性保证通信双方能够互相验证对方身份(真实性),并保证数据的完整性、私密性。

1.客户端程序的框架为:

/*生成一个SSL结构*/

meth=SSLv23_client_method();

ctx=SSL_CTX_new(meth);

ssl=SSL_new(ctx);

/*下面是正常的socket过程*/

fd=socket();

connect();

/*把建立好的socket和SSL结构联系起来*/

SSL_set_fd(ssl,fd);

/*SSL的握手过程*/

SSL_connect(ssl);

/*接下来用SSL_write(),SSL_read()代替原有的write(),read()即可*/

SSL_write(ssl,"

Helloworld"

strlen("

HelloWorld!

"

));

2.服务端程序的框架为:

meth=SSLv23_server_method();

bind();

listen();

accept();

SSL_read(ssl,buf,sizeof(buf));

对程序来说,openssl将整个握手过程用一对函数体现,即客户端的SSL_connect和服务端的SSL_accept.而后的应用层数据交换则用SSL_read和SSL_write来完成。

直接利用公钥和私钥文件进行验证的程序截图:

运行服务器端并输入密码1234:

运行客户端:

因未安装相关证书,因此显示“Clientdoesnothavecertificate.”但程序的执行流程展示出保密通信的过程。

利用证书文件的程序执行结果:

运行服务器端:

结论分析与体会:

在这一阶段的学习中,我了解到OpenSSL是强大的套接字层密码库,囊括了主要的密码算法常用的密钥和证书封装功能及ssl协议。

HTTPS是基于ssl的安全http通道,其安全基础就是ssl。

现在信息安全在网络上的一个最主要的应用就是如何实现加密通信,我通过java写了一个通过DES加密的socket通信,保证通信过程中,不会把明文泄露。

通过openssl库,实现了openssl下的加密通信。

通过Apache开启HTTPS,我了解了如何获得密钥和证书,对证书在身份认证方面的作用有了直观的了解。

通过Openssl协议开发安全聊天程序,我也学习了如何调用Openssl库中的各个方法。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 经管营销 > 销售营销

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1