您好,我是湘王,这是我的CSDN博客,欢迎您来,欢迎您再来~
在互联网应用中,安全性问题已经越来越突出。从DDoS攻击、矿机劫持、乌云事件(白帽子变成黑帽子),到窃听、偷拍、强制植入(广告),参与互联网应用的软硬件设备越来越多。PC服务器、移动终端(手机、POS机、扫码枪、OBD)、各类NB-IoT/IoT终端、固件电路板(树莓派)等等,都可能成为被攻击的对象。
其实,所有这些问题,归纳起来就是三大风险:
1、偷窃:窃听、偷拍、倒卖、劫持;
2、篡改:包头、包内容、植入;
3、冒充:伪造、钓鱼。
所以,早在上个世纪(1994),为了解决这种网络通信的安全风险,有一群聪明人(NetScape公司)提出了一个解决方案:
1、通过引入加密与解密技术,来杜绝偷窃问题;
2、通过引入信息摘要与校验和,来杜绝篡改问题;
3、通过引入第三方认证机构,来杜绝身份冒充问题。
在上述背景下,SSL产生了,SSL全称是Secure Sockets Layer(安全套接字层),是为网络通信提供安全保障及数据完整性的一种安全协议。SSL位于TCP/IP与各种应用层协议之间,为通讯提供安全支持。SSL包含记录层与传输层,主流HTTP服务器都支持SSL。
SSL的基本运行过程包括下面几步:
1、客户端发出加密通信请求(ClientHello),并向服务器提供:用于会话密钥的随机数(第一个随机数)、加密算法和压缩算法;
2、服务器收到请求并向客户端回应(ServerHello):用于会话密钥的随机数(第二个随机数)、加密算法、压缩算法、服务器证书,以及索取客户端证书;
3、客户端收到服务器回应后,先验证服务器证书,否则显示警告,选择继续或终止访问。再从服务器证书中取出公钥,并向服务器发送:用服务器公钥加密的随机数(第三个随机数,pre-master key)、编码改变通知、客户端握手结束通知(前述所有内容的Hash值,给服务端校验);
4、服务器收到请求并作出当前会话的最后回应(ServerHello):收到第三个随机数并计算生成会话密钥,向客户端发送数据、编码改变通知、之前商定的加密方法、密钥和服务器握手结束通知(前述所有内容的Hash值,给客户端校验);
5、整个握手阶段结束。客户端与服务器通过HTTP及会话密钥进行消息通信。
需要注意的是:在最后一步「服务端收到第三个随机数并向客户端发送数据」时,以及后续的内容传输,采用的都是对称加密算法,原因是效率问题。
Netscape公司推出了SSL,而IETF(The Internet Engineering Task Force,互联网工程任务组)将SSL进行扩展并制定了一系列标准之后,提出了TLS。
TLS是SSL的升级版,是为了适应更广泛的应用场景,它的全称是Transport Layer Security(传输层安全),是继SSL之后的一种为保障互联网通信安全及数据完整性的安全协议。总的来说:
TLS1.0对应SSL3.1
TLS1.1对应SSL3.2
TLS1.2对应SSL3.3
感谢您的大驾光临!咨询技术、产品、运营和管理相关问题,请关注后留言。欢迎骚扰,不胜荣幸~