718 字
2 分钟
实验9 加密、数字签名与证书
1.实验目的
- 了解对称加密、非对称加密体制概念
- 了解散列函数、数字签名和数字证书的概念和理论
- 掌握基于
Openssl的对称加密、密钥对的创建和应用 - 掌握基于
Openssl数字签名和数字证书的创建和应用
2.实验环境
- 硬件要求:阿里云云主机ECS 一台。
- 软件要求:Linux/ Windows 操作系统
3.实验内容
OpenSSL是一个开放源代码的软件库包,应用程序可以使用这个包来进行安全通信,避免窃听,同时确认另一端连接者的身份。这个包广泛被应用在互联网的网页服务器上。
参考资料:
https://gitee.com/mirrors/openssl?utm_source=alading&utm_campaign=repo#download
https://www.jianshu.com/p/fb2ae3dc7986
https://www.yisu.com/zixun/21796.html
3.1对称加密
安装Openssl,并准备任意内容的文本文档lx.txt,利用对称加密算法对lx.txt进行加密和解密操作。
要求:要有过程描述文字,解释当前操作以及参数含义,并提供相应操作截图
3.2 散列函数
计算lx.txt的MD5和SHA256散列值
3.3 非对称加密
创建2048位的公钥密码体制RSA密钥对。利用创建的公钥加密lx.txt,私钥进行解密操作
3.4 数字签名
对文件lx.txt进行数字签名并鉴别
3.5 证书
使用openssl创建自签名证书
4.实验结果与分析
4.1 对称加密
- 安装
Openssl
yum info openssl //检查openssl版本yum update openssl //更新openssl- 使用加密算法进行加密解密
- 创建lx.txt文件

- 加密
openssl enc -e -des -in lx.txt -out lx1.txt
加密成功
- 解密
openssl enc -d -des -in lx1.txt -out lx1.txt
解密成功
4.2 散列函数
计算lx.txt的MD5和SHA256散列值
- 计算MD5
openssl md5 -out lx.txt.md5 lx.txtcat lx.txt.md5
- 计算SHA256散列值
openssl sha256 -out lx.txt.sha lx.txtcat lx.txt.sha
4.3 非对称加密
创建2048位的公钥密码体制RSA密钥对。利用创建的公钥加密lx.txt,私钥进行解密操作
OpenSSL> genrsa -out RsaPrivateKey.pem 2048OpenSSL> rsa -in RsaPrivateKey.pem -pubout -out RsaPublicKey.pemOpenSSL> rsautl -in plain.txt -out enc.txt -inkey RSAPublicKey.pem -pubin -encryptOpenSSL> rsautl -in enc.txt -out replain.txt -inkey RSAPrivateKey.pem -decrypt
密匙创建完成

生成公匙

加密于解密后文件
4.4 数字签名
对文件lx.txt进行数字签名并鉴别
sha1 -out digest.txt lx.txtrsautl -sign -inkey RsaPrivateKey.pem -in digest.txt -out signT.binrsautl -verify -inkey RsaPublicKey.pem -pubin -keyform PEM -in signT.bin
4.5 证书
使用openssl创建自签名证书
genrsa -des3 -out ca.key 1024rsa -in ca.key -out ca.keyreq -new -x509 -key ca.key -out ca.crt -days 365genrsa -des3 -out server.key 2048req -new -key server.key -out server.csrx509 -req -in server.csr -CA ca.crt -CAkey ca.key -set_serial 01 -out server.crt -days 365
5、实验小结
5.1 问题与解决办法
问题在进行数字签名时,运行sha1 -out digest.txt lx.txt命令错误。解决方法该问题是因为将sha1指令打为shal导致错误,输入sha1 -out digest.txt lx.txt后正确。
5.2 心得体会
- 本次实验报告熟系了应用OpenSSL实现对于文件的加密以及创建自签证书,实现对课上知识的印证。通过这次实验,我掌握了OpenSSL使用的具体流程,了解了常用Linux配置软件的基本用法,提高了自身编程能力。
- 通过这些常用的Linux命令操作,对OpenSSL的配置与使用,让我印证了上课所学的知识。
分享
如果这篇文章对你有帮助,欢迎分享给更多人!
实验9 加密、数字签名与证书
https://dreaife.tokyo/cn/encryption-signature/ 部分信息可能已经过时
相关文章 智能推荐
1
实验6 DNS协议分析与测量
cs-base 实验旨在了解DNS协议及其基本概念,包括域名结构、DNS服务器和域名解析原理。实验内容涵盖DNS系统配置、使用dig工具进行DNS信息测量,以及通过tcpdump和wireshark分析DNS查询数据包。实验结果显示了DNS查询的各个字段及其含义,最后总结了在实验过程中遇到的问题及解决方案,提升了对DNS协议的理解和编程能力。
2
实验7 HTTP协议分析与测量
cs-base 实验旨在了解HTTP协议及其报文结构,掌握使用tcpdump和wireshark进行HTTP数据包抓取与分析。通过下载新疆大学主页,分析HTTP版本、IP地址、状态码、内容字节数及头部字段。实验中解决了连接错误的问题,并提高了编程能力和对HTTP协议的理解。
3
实验2 IP协议分析
cs-base 实验旨在了解IP报文格式及字段含义,掌握tcpdump和Wireshark的使用。实验环境包括阿里云主机和操作系统。通过tcpdump抓包和Wireshark分析,学习IP协议结构及相关命令的应用,解决了traceroute命令和Xftp连接问题,提升了编程能力和对IP协议的理解。
4
实验8 WEB服务器的部署与应用
cs-base 实验旨在理解电子邮件系统结构、客户端与服务器通信及SMTP、POP3协议。通过在阿里云上安装和部署Nginx与Apache,实验展示了静态和动态网页的访问,解决了依赖包安装问题,并提高了对Linux配置软件的掌握与编程能力。
5
实验5 电子邮件
cs-base 实验旨在理解电子邮件系统的基本结构和通信协议,包括SMTP和POP3。通过使用邮件代理、客户端、Web邮件和telnet命令进行邮件收发,分析其通信过程和协议。实验结果表明,掌握了邮件发送的具体流程和SMTP协议的分析,提高了编程能力和对协议的理解。





