1、实验目的
l了解对称加密、非对称加密体制概念
l了解散列函数、数字签名和数字证书的概念和理论
l掌握基于Openssl的对称加密、密钥对的创建和应用
l掌握基于Openssl数字签名和数字证书的创建和应用
2、实验环境
l硬件要求:阿里云云主机ECS 一台。
l软件要求:Linux/ Windows 操作系统
3、实验内容
OpenSSL是一个开放源代码的软件库包,应用程序可以使用这个包来进行安全通信,避免窃听,同时确认另一端连接者的身份。这个包广泛被应用在互联网的网页服务器上。
参考资料:
https://gitee.com/mirrors/openssl?utm_source=alading&utm_campaign=repo#download
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 install openssl openssl-devel -y”
创建lx.txt文件:输入“vi lx.txt”命令创建 lx.txt 文件,随便写入一段内容,然后输入命令“cat lx.txt” 查看 lx.txt 文件的内容。
注:使用vi命令后,按i进入编辑,编辑完毕后按ESC,:wq即可保存退出
利用对称加密算法对lx.txt进行加密:输入“openssl enc -e -des -in lx.txt -out encrypt.txt -pass pass:666999”命令,即将文件内容加密到encrypt.txt文件,输入“cat encrypt.txt”命令可查看加密后的内容。
利用对称加密算法对lx.txt进行解密操作:输入“openssl enc -d -des -in encrypt.txt -out decrypt.txt -pass pass:666999” 命令,即将encrypt.txt文件的内容解密到decrypt.txt 文件,输入“cat decrypt.txt”命令可查看解密后的内容。
4.2 散列函数
计算lx.txt的MD5散列值:输入“openssl md5 -out MD5.txt lx.txt”命令,再输入“cat MD5.txt”命令获取lx.txt 的MD5散列值:
计算lx.txt的SHA256散列值:输入命令“openssl sha256 -out SHA256.txt lx.txt”,再输入命令“cat SHA256.txt” 即可获取 lx.txt 的 SHA256 散列值:
4.3 非对称加密
创建2048位的公钥密码体制RSA密钥对:首先输入命令“openssl genrsa -out private_key.pem 2048”,创建 2048 位的私钥。再输入命令“openssl rsa -in private_key.pem -pubout -out public_key.pem”,从而生成 2048 位的公钥密码体制 RSA 密钥对。
利用创建的公钥加密lx.txt:输入“openssl rsautl -encrypt -in lx.txt -inkey public_key.pem -pubin -out pb_lx.txt.encrypt”命令,加密 lx.txt 文件内容至 pb_lx.txt.encrypt 文件,输入“cat pb_lx.txt.encrypt”命令可查看加密后的内容。
私钥进行解密:输入“openssl rsautl -decrypt -in pb_lx.txt.encrypt -inkey private_key.pem -out pb_lx.txt.decrypt”命令,解密 pb_lx.txt.encrypt 文件内容至 pb_lx.txt.decrypt 文件, 输入“cat pb_lx.txt.decrypt”命令可查看解密后的内容。
4.4 数字签名
对文件lx.txt进行数字签名:输入“openssl dgst -sha1 -sign private_key.pem -out pr_lx.txt.signed lx.txt” 命令,生成私钥签名。输入“cat pr_lx.txt.signed”命令查看文件的内容。
鉴别:输入命令“openssl dgst -sha1 -verify public_key.pem -signature pr_lx.txt.signed lx.txt”,进行公钥验证签名。
4.5 证书
创建根目录:输入命令“openssl genrsa -out rootCA.key 4096”。
创建并自签名根证书:输入命令:openssl req -x509 -new -nodes -key rootCA.key -sha256 -days 365 -out rootCA.crt。其中Province name、Locality name等信息根据实际情况填写即可
创建证书秘钥:输入命令“openssl genrsa -out Yho.com.key 4096”
配置 certificate.conf 文件:输入命令“vi certificate.conf”,输入配置内容:
[req]
default_bits = 4096
prompt = no
req_extensions = req_ext
distinguished_name = dn
[dn]
C = CN
ST = Shaanxi
L = xian
O = Zhongxing
OU =Zhongxing
emailAddress = 2604216829@qq.com
CN = xxx.com
[req_ext]
extendedKeyUsage = serverAuth
subjectAltName = @alt_names
[alt_names]
DNS.1 = xxx.com
IP.1 = 139.224.196.250
创建签名:输入命令 “openssl req -new -key Yho.com.key -config certificate.conf -out Yhoo.com.csr”
生成证书:输入命令:openssl x509 -req -in Yhoo.com.csr -CA rootCA.crt -CAkey rootCA.key -CAcreateserial -out Yhoo.com.crt -days 365 -sha256 -extfile certificate.conf -extensions req_ext