图解SSL和加密解密-原理篇

1.SSL原理

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

 

2.SSL的会话过程

            SSL会话主要分为三步:

                    1.客户端向服务器端索要并验正证书;

                    2.双方协商生成“会话密钥”;对成密钥

                    3.双方采用“会话密钥”进行加密通信;  

3.加密算法和协议

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 对称加密

1

2

加密:~]# openssl enc -e -des3 -a -salt -in fstab -out fstab.ciphertext

解密:~]# openssl enc -d -des3 -a -salt -out fstab -in fstab.ciphertext

5.2 单向加密

1

        ~]# openssl dgst -md5 /PATH/TO/SOMEFILE

 5.3 生成用户密码

1

         ~]# openssl passwd -1 -salt $(openssl rand -hex 5)

 5.4 生成随机数

1

2

        ~]# openssl rand -hex NUM    

        ~]# openssl rand -base64 NUM

 5.5 公钥加密

1

2

生成私钥:~]# (umask 077; openssl genrsa -out /PATH/TO/PRIVATE_KEY_FILE NUM_BITS)

提取公钥:~]# openssl rsa -in /PATH/FROM/PRIVATE_KEY_FILE -pubout

 

6.构建私有CA

(以下详细命令参考http://ch666.blog.51cto.com/10870222/1761516)

1.在CA的服务器上生成私钥

1

[root@ch sysroot]# (umask 077;openssl genrsa -out /etc/pki/CA/private/cakey.pem 4096)

2.生成自签证书

1

2

3

4

5

6

7

8

9

[root@ch sysroot]# openssl req -new -x509 -key /etc/pki/CA/private/cakey.pem -out /etc/pki/CA/cacert.pem -days 365 

3.为CA提供所需的目录及文件

1

2

3

[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.主机生成私钥

 

b.生成证书签署请求

 

c.将请求通过可靠方式发送给CA服务器

 

以上操作是在http服务器端操作

 

4.在CA主机上签署证书

 

5.查看证书中的信息

(1)客户端获取要吊销的证书的serial

(2)CA服务器根据客户提交的serial和subject信息,对比其与本机数据库index.txt中存储的是否一致

(3)CA服务器吊销证书

(4)生成吊销证书的吊销编号(仅在第一次吊销证书时执行)

(5)更新证书吊销列表

查看crl文件

 

 

 

  • 2
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

skydust1979

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值