SSL 仿真作业
周小龙 201011677 集成电路设计
一、SSL 介绍
SSL(Secure Sockets Layer 安全套接层)及其继任者传输层安全(Transport Layer
Security,TLS)是为网络通信提供安全及数据完整性的一种安全协议。TLS 与 SSL 在传输
层对网络连接进行加密。
SSL 协议的工作流程: 1)客户端向服务器发送一个开始信息以便开始一个新的
会话连接;2)服务器根据客户的信息确定是否需要生成新的主密钥,如需要则服务
器在响应客户的信息时将包含生成主密钥所需的信息;3)客户根据收到的服务器响
应信息,产生一个主密钥,并用服务器的公开密钥加密后传给服务器;4)服务器恢
复该主密钥,并返回给客户一个用主密钥认证的信息,以此让客户认证服务器。
二、Openssl 在 Windows 系统下的仿真
1、在 windows 下生成 RSA 私钥
(1) 采用 1024 位 RSA 私钥,并利用 DES3 加密算法生成私钥。该过程中会提示输入
RSA 私钥密码,有效密码为 4~511 位,如输入有误会出现错误。
OpenSSL>genrsa-des3
-out myca.key 1024
指令和参数解释:
genrsa
-des3
-out myca.key 生成密钥文件
生成 rsa 私钥文件
用 des3 算法加密 myca.key 密钥文件
生成 RSA 私钥如图所示:
在该过程中要求设置密码,我们需要按要求设置密码。
(2)查看生成的私钥(要输入先前设置的密码):
2、生成自签名的数字证书
(1)用 req 命令创建自签名的 X.509V3 格式的 CA 证书。
创建时会提示输入先前所设的密码。然后提示输入国家,地区,城市,组织与姓名,电
子邮件等,我输入的是 cn,shandong,jinan,sduxy,zhouxiaolong,zhou70525319@126.com。
设置证书的有效期为 365 天。没有输入设置语句即为采用默认系统设置。
参数解释:
-days 365 ——使这个证书的有效期是 365 天,之后它将不能再用;
-new ——创建一个新的证书;
-x509 ——创建一个 X509 证书(自己签名的);
-nodes ——这个证书没有密码,为了建立 SSL 隧道使用,因为到目前为止,stunnul
仍不支持带有密码的证书;
-out *.pem ——把 SSL 证书写到哪里;
-keyout *.pem ——把 SSL 证书放到这个文件中;
(2)查看创建好的证书内容:
三、利用数字证书建立加密隧道 SSL
1、建立服务器/客户端连接
利用 VNC 软件 VNC Server 和 VNC Viewer 在服务器 server 与客户端 client 之间建立连
接。
2、生成密钥和证书
利用 openssl 软件生成建立连接所用到的密钥和证书,过程如前所述,生成证书为
server.pem(服务器端)、client.pem(客户端);
server.pem 如下:
client.pem 如下:
3、设置 stunnel,建立 SSL
Stunnel 的设置是通过配置文件 stunnel.conf 完成的。
(1)服务端配置文件内容示范
# 使用服务器模式
client = no
debug = 7
key = server.pem
cert = server.pem
# 隐藏 Stunnel 的托盘图标(值为 no 时隐藏)
taskbar = yes
# 将代理服务器提供的端口加密映射成本机端口
[VNC]
# 客户端连接的端口
accept = 443
# 代理服务器所在的 IP 及提供的端口
connect = 127.0.0.1:5900
含义:使用 server.pem 证书,将本机 127.0.0.1:5900 的端口加密映射成本机 443 端
口 VNC 是标识名,可以改成其他的标识。
直接运行 stunnel.exe,就可以服务器方式启动 Stunnel 了。
(2)客户方式配置文件内容示范
# 使用客户模式
client = yes
key = server.pem
cert = server.pem
[VNC]
accept = 127.0.0.1:995
connect = 202.194.20.230:443
直接运行 stunnel-4.11.exe,就可以以客户方式启动 Stunnel 了。
(3)设置浏览器的代理地址
将客户端的浏览器的代理地址设置为 127.0.0.1,端口设置为 accept 中设置的
值,即可通过 Stunnel 实现加密代理访问。服务器与客户端的隧道连接通讯如图所示:
服务器端:
客户端: