一、SSL简介
1.SSL: secure socket layer(安全套接层)为网络通信提供安全及数据完整性的一种安全协议,囊括了主要的单向加密、对称加密、非对称加密算法、常用的密钥和证书封装管理功能以及SSL协议。
2.常用加密算法:
<1>对称加密:DES, 3DES, AES
<2>非对称加密(公钥加密):RSA, DSS, ECC
<3>单向加密:MD5, SHA1, SHA2, SHA256, SHA512, SHA3
3.SSL协议提供的安全信道三特性:
<1>数据的保密性:信息加密就是把明码的输入文件用加密算法转换成加密的文件以实现数据的保密。加密的过程需要用到密钥来加密数据然后再解密。主要通过对称加密实现。
<2>数据的完整性:加密也能保证数据的一致性。消息验证码(MAC),能够校验用户提供的加密信息,接收者可以用MAC来校验加密数据,保证数据在传输过程中没有被篡改过。主要通过单向加密实现。
<3>安全验证:加密的另外一个用途是用来作为个人的标识,用户的密钥可以作为他的安全验证的标识。SSL是利用公开密钥(非对称加密)的加密技术来作为用户端与服务器端在传送机密资料时的加密通讯协定。主要通过非对称加密实现。
二、OpenSSL主要命令
1.OpenSSL是SSL协议的一种实现
OpenSSL提供两个函数库和一个应用程序
libcrypto :实行加密解密功能。
libssl:实现ssl
openssl:应用程序
2.OpenSSL主要命令:
<1>openssl version:显示版本号
<2>openssl enc:指定加密法
openssl enc 加密方法 [-e| -d](加密、解密)-in FILE(指定要加密文件)-outFILE(加密后的文件)
<3>openssl dgst(后加单向加密算法)�Cmd5 FILE (获取文件的特征码)
md5sumFILE(获取文件特征码)| sha1sumFILE
<4> opennssl speed [加密算法] (测试当前系统上的加密算法的速度、不带参数对所有算法进行测试)
<5>openssl passwd �C1(md5)-salt 八位字符串(一般随机生成):对用户密码进行加密
<6>openssl rand-heax(十六进制)#(制定生成的位数:2#):生成随机数
<7>openssl rand �Cbase64 #:生成十六进制随机数位数为2#
<8>openssl genrsa [-out](指定私钥保存文件) [flie][#](指定位数:2的n次方):生成一个私钥,默认512位
<9>openssl genrsa 加密算法 [#](指定位数:2的n次方):对私钥加密
<10>openssl rsa �Cin FILE(私钥文件)-pubout:提取公钥
<11>(umask 077;openssl genrsa �Cout FILE #):制定密钥文件权限为600
三、OpenSSL使用:申请证书
1.生成一个私钥
(umask 077;openssl genrsa �Cout FILE #)
2.制作一个证书签署请求
openssl req �Cnew(指定证书请求) �Ckey FILE(私钥文件) �Cout FILE(保存为后缀为csr格式的文件:证书请求格式一般为.csr后缀)
填写个人信息
3.由CA负责签名(签署证书)
四、OpenSSL使用:自建CA
1.cd /etc/pki/CA/
2.生成一个私钥
(umask 077; openssl genrsa �Cout private/cakey.pem #)
3.生成自签证书
openssl req �Cnew �Cx509(自签) �Ckey FILE(上步生成的私钥文件) �Cout cacert.pem �Cdays #(指定使用时间默认为天)
个人信息,和申请的个人信息必须保持一致。
不一致
一致
4.创建数据库文件
touch serial index.txt
echo 01 > serial (序列号从01开始)
五、OpenSSL使用:签署证书
openssl ca �Cin FILE(申请者私钥文件)�Cout FILE(证书保存位置后缀为.crt)�Cdays #(使用时间)
查看文件index.txt serial (证书数据库)
修改信息默认值:vim /etc/pki/tls/openssl.cnf
六、openssl 专用客户端测试工具
openssl s_client �Cconnect(指定连接主机) HOST:PORT �CCAflile (指定证书文件) /path/to/cacertfile| -CApath(指定某个目录下的证书) /path/to/cacertfile_dir/ -ssl1|ssl2|ssl3|tls1(指定协议)
七、补充内容
1.一次安全的会话经过的步骤(单向加密、对称加密、非对称加密的结合)
数据发送方
<1>发送方使用选定的单向加密算法计算原始数据的特征码。
<2>发送方使用自己的私钥加密特征码,附加于原始数据后面。
<3>发送方生成一次性对称密钥,并使用此密钥加密数据(原始数据+加密后的特征码)。
<4>发送方使用接收方的公钥加密一次性对称密钥,附加于加密数据后面,发送数据
数据接收方
<1>接收方使用自己的私钥解密加密的一次性对称密钥。
<2>使用对称密钥解密数据,得到加密的特征码和原始数据。
<3>使用发送方的公钥解密加密的特征码。
<4>使用与发送方相同的单向加密算法重新计算数据的特征码,并与解密出的特征做比较。
2.OpenSSL中后缀名各表示什么文件
.key格式:私有的密钥
.crt格式:证书文件,certificate的缩写
.csr格式:证书签名请求(证书请求文件),含有公钥信息,certificate signing request的缩写
.crl格式:证书吊销列表,Certificate Revocation List的缩写
.pem格式:用于导出,导入证书时候的证书的格式,有证书开头,结尾的格式