图解SSL和加密解密

Secure Sockets Layer(安全的套接字层)位于TCP/IP协议与各种应用层协议之间,为数据通讯提供安全支持。用于保障在Internet上数据传输之安全,利用数据加密技术,可确保数据在网络上之传输过程中不会被截取及窃听。

2.SSL的会话过程
            SSL会话主要分为三步:
                      1.客户端向服务器端索要并验正证书;
                      2.双方协商生成“会话密钥”;对成密钥
                                    3.双方采用“会话密钥”进行加密通信;

图解SSL和加密解密

3.加密算法和协议

图解SSL和加密解密

3.1 对称加密
    加密和解密使用同一个密钥
常见的加密算法:
    DES、3DES、AES、Blowfish、Twofish、IDEA、RC6、CAST5
特性:
    1、加密、解密使用同一个密钥;
    2、将原始数据分割成为固定大小的块,逐个进行加密;
缺陷:
    1、密钥过多;
    2、密钥分发困难;

3.2 公钥加密
            密钥分为公钥与私钥
公钥:从私钥中提取产生;可公开给所有人;
私钥:通过工具创建,使用者自己留存,必须保证其私密性;

特点:用公钥加密的数据,只能使用与之配对儿的私钥解密;反之亦然;
用途:
数字签名:主要在于让接收方确认发送方的身份;
密钥交换:发送方用对方公钥加密一个对称密钥,并发送给对方;
数据加密:

3.3  单向加密
    提取数据指纹(特征码);只能加密,不能解密;
常见算法:md5、sha1

特性:定长输出、雪崩效应;
功能:完整性;

3.4 密钥交换
    IKE(Internet Key Exchange互联网密钥交换)
1.公钥加密
2.DH(Deffie-Hellman地狱男爵)

4.PKI
    PKI是Public Key Infrastructure的首字母缩写,翻译过来就是公钥基础设施;PKI是一种遵循标准的利用公钥加密技术为电子商务的开展提供一套安全基础平台的技术和规范

公钥基础设施主要包含以下四个:

签证机构:CA
注册机构:RA
证书吊销列表:CRL
证书存取库

5.openssl命令

openssl有众多子命令,基本可分为三类:
            1.标准命令
            2.消息摘要命令(dgst子命令)
            3.加密命令(enc子命令)
5.1 对称加密
加密:~]# openssl enc -e -des3 -a -salt -in fstab -out fstab.ciphertext
解密:~]# openssl enc -d -des3 -a -salt -out fstab -in fstab.ciphertext

5.2 单向加密
        ~]# openssl dgst -md5 /PATH/TO/SOMEFILE

5.3 生成用户密码
          ~]# openssl passwd -1 -salt $(openssl rand -hex 5)

5.4 生成随机数
        ~]# openssl rand -hex NUM   
        ~]# openssl rand -base64 NUM

5.5 公钥加密
生成私钥:~]# (umask 077; openssl genrsa -out /PATH/TO/PRIVATE_KEY_FILE NUM_BITS)
提取公钥:~]# openssl rsa -in /PATH/FROM/PRIVATE_KEY_FILE -pubout

6.构建私有CA

1.在CA的服务器上生成私钥
[root@ch sysroot]# (umask 077;openssl genrsa -out /etc/pki/CA/private/cakey.pem 4096)

2.生成自签证书
[root@ch sysroot]# openssl req -new -x509 -key /etc/pki/CA/private/cakey.pem -out /etc/pki/CA/cacert.pem -days 365
 
Country Name (2 letter code) [XX]:CN
State or Province Name (full name) []:Beijing
Locality Name (eg, city) [Default City]:Beijing
Organization Name (eg, company) [Default Company Ltd]:CH
Organizational Unit Name (eg, section) []:Ops
Common Name (eg, your name or your server's hostname) []:ch
Email Address []:

3.为CA提供所需的目录及文件
123 [root@ch sysroot]# mkdir  -pv  /etc/pki/CA/{certs,crl,newcerts}
[root@ch sysroot]# touch  /etc/pki/CA/{serial,index.txt}
[root@ch sysroot]# echo  01 > /etc/pki/CA/serial

以上步骤是在CA服务器端操作

--------------------------------------------------------------------------------

http服务器向CA请求签署证书

a.主机生成私钥
[root@localhost ~]# mkdir /etc/httpd/ssl
[root@localhost ~]# cd /etc/httpd/ssl
[root@localhost ssl]# (umask 077; openssl genrsa -out /etc/httpd/ssl/httpd.key 1028)

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/46a88eed8e2f3b7dad8a06c7eb1c2bbc.html