SSL及其加密通信过程
一、什么是SSL
SSL英文全称Secure Socket Layer,安全套接层,是一种为网络通信提供安全以及数据完整性的安全协议,它在传输层对网络进行加密。它主要是分为两层:
- SSL记录协议:为高层协议提供安全封装、压缩、加密等基本功能
- SSL握手协议:用于在数据传输开始前进行通信双方的身份验证、加密算法的协商、交换密钥
OpenSSL是SSL的开源实现,它是作为密码学的安全开发包,提供相当强大全面的功能,囊括了主要的密码算法、常用的密钥和证书封装管理功能以及SSL协议,并提供了丰富的应用程序供测试或其它目的使用。它一共提供了8中对称加密算法和4中非对称加密算法。
二、HTTPS和SSL
HTTP(Hyper TEXT Transfer Protocol超文本传输协议)是目前互联网上应用最为广泛的一种网络协议,用于在Web浏览器和网站服务器之间传递信息,但是HTTP协议以明文的方式发送内容,不提供任何数据加密,攻击者能够很轻易通过抓包的方式截取传输内容并读懂其中的信息,所以HTTP不适合传输一些比较私密的信息,为了解决HTTP这一缺陷,HTTPS(Hyper TEXT Transfer Protocol over Secure Socket Layer)协议出现。HTTPS是在HTTP的基础上加入SSL协议。传输以密文传输,保证数据传输的安全以及确认网站的真实性(数字证书)。
HTTPS=HTTP+SSL
三、SSL加密方式
3.1 对称加密与非对称加密
在开始之前首先得对理解对称加密与非对称加密这两种加密方式。其中加密过程是
信息+密钥+算法=密文
3.1.1对称加密
对称加密实质加密和解密都使用同一个密