加密

不可逆:

单向散列函数:MD5,SHA等

散列值的长度固定,计算速度快,具备单向性

可逆:

对称加密:DES,3DES,AES等

非对称加密:RSA等

其它:

混合密码系统

数字签名

证书


常用加密:

MD5:生成128bit的散列值,目前不安全

SHA-1:生成160bit的散列值,目前不安全

SHA-2:SHA-256,SHA-384,SHA-512

DES:将64bit明文加密成64bit密文的对称加密算法,秘钥长度是58bit,目前不安全

3DES:使用DES加密-解密-加密(3把秘钥)

AES:AES-128,AES-192,AES-256

RSA:非对称加密,公钥加密私钥解密,私钥加密公钥解密,速度慢

混合密码系统:网络上的密码通信所用的SSL、TLS都运用了混合密码系统

加密步骤:

1.消息发送者要拥有消息接收者的公钥

2.生成会话秘钥,作为对称加密的秘钥,加密消息

3.用消息接收者的公钥,加密会话秘钥

4.将2,3生成的加密结果,一并发给消息接收者

发送出去的内容包括:

用会话秘钥加密的消息(加密方法:对称加密)

用公钥加密的会话秘钥(加密方法:非对称加密)

解密步骤:

1.消息接收者用自己的私钥解密出会话秘钥

2.再用第一步解密出来的会话秘钥,解密消息


数字签名:防止有人篡改

1.消息发送者生成公钥私钥,把公钥给接收者

2.消息发送者把消息通过单向散列函数生成散列加密消息

3.消息发送者用自己的私钥对散列加密消息进行加密,生成签名

4.消息发送者把明文和用签名发给接收者

5.接收者通过发送者的公钥对签名进行解密,得到散列加密信息

6.接收者用散列函数对明文进行加密

7.把6的加密数据和5的加密数据进行对比


证书:

公钥证书:包含姓名,邮箱等个人信息,以及此人的公钥

并由认证机构CA施加数字签名


HTTPS:超文本传输安全协议

HTTP默认占用80断口,HTTPS默认占用443断口

HTTPS在HTTP基础上使用SSL/TLS来加密报文

TLS:传输层安全协议,前身是SSL(安全套接层)

HTTPS的成文:

1.证书费用,2.降低了访问速度

有些企业的做法是:包含敏感数据的使用HTTPS,其它的用HTTP

HTTPS的通信过程

1.TCP的3次握手

2.TLS的连接

3.HTTP请求和响应

TLS1.2连接的步骤,交换秘钥算法为ECDHE:

1.ClientHello,客户端发送,包含TLS版本,支持的加密组件(秘钥加密算法,对称加密算法,摘要算法),随机数

2.Server Hello,服务端发送,包含TLS版本,选择的加密组件,随机数

3.Certificate,服务器发送,服务器的公钥证书(CA认证)

4.Server Key Exchange,服务端发送,用以实现ECDHE(秘钥交换)算法的其中一个参数(Server params),为了防止伪造,Server Params经过了服务器私钥签名

5.Server Hello Done,服务端发送,告知客户端协商部分结束

客户端验证公钥签名

6.Client Key Exchange,客户端发送,用以实现ECDHE算法的另一个参数

客户端,服务器都可以使用ECDHE算法

根据Server Params,Client Params计算出一个新的随机秘钥串Pre-master secret

然后结合Client Random,Server Random,Pre-master secret生成用以加密会话的会话秘钥(主密钥),还会分别派生出客户端发送消息的秘钥和服务器端发送消息的秘钥

7.Change Cipher Spec,客户端发送,告诉服务器之后的通信会采用计算出的会话秘钥进行加密

8.Finished,客户端发送,包含连接至今全部报文的整体校验值(摘要),加密之后发送给服务器

9.Change Cipher Spec,服务端发送

10.Fished

到此为止,客户端服务器都验证加密解密没问题,握手正式结束

你可能感兴趣的:(加密)