HTTP、SSL、HTTPS简介
HTTP(HyperText Transfer Protocol,超文本传输协议,默认使用80端口)是互联网上使用最广泛的一种协议。 但HTTP协议传输的数据是未加密的明文,因此使用该协议传输隐私信息是不安全的。
为解决该安全问题,最初由网景公司(Netscape)设计了SSL协议(Secure Sockets Layer,安全套接层),并内置于其浏览器Netscape Navigator中。该协议提供了身份验证与加密通讯方法,用于对HTTP协议传输的数据进行加密,以保证会话过程中的安全性。
HTTPS(Hyper Text Transfer Protocol over Secure Socket Layer 或 Hypertext Transfer Protocol Secure,超文本传输安全协议,默认使用443端口)即在HTTP协议的基础上加入SSL协议,是以安全为目标的HTTP通道,简单的讲即为HTTP的安全版。另外,HTTPS和SSL支持使用X.509数字认证,如果需要的话用户可以确认发送者是谁。
#HTTPS的主要作用
- 建立一个[信息安全通道,来保证数据传输的安全;
- 确认网站的真实性,凡是使用了 https 的网站,都可以通过点击浏览器地址栏的锁头标志来查看网站认证之后的真实信息,也可以通过 CA 机构颁发的安全签章来查询。
HTTPS与HTTP的区别
- httpHTTPaTP是超文本传输协议,信息是明文传输,HTTPS则是具有安全性加密传输协议;
- HTTP和HTTPS是完全不同的连接方式。用的端口也不一样;
- HTTP的连接很简单,是无状态的;HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,比HTTP协议安全。
#SSL协议概要
SSL及其继任者TLS(Transport Layer Security,传输层安全)是为网络通信提供安全及数据完整性的一种安全协议。TLS与SSL在传输层对网络连接进行加密。
SSL协议位于TCP/IP协议与各种应用层协议之间,为数据通讯提供安全支持。SSL协议可分为两层:
- **SSL记录协议(SSL Record Protocol):**它建立在可靠的传输协议(如TCP)之上,为高层协议提供数据封装、压缩、加密等基本功能的支持。
- **SSL握手协议(SSL Handshake Protocol):**它建立在SSL记录协议之上,用于在实际的数据传输开始前,通讯双方进行身份认证、协商加密算法、交换加密密钥等。
SSL协议主要提供如下服务:
- 认证用户和服务器,确保数据发送到正确的客户机和服务器;
- 加密数据以防止数据中途被窃取;
- 维护数据的完整性,确保数据在传输过程中不被改变。
HTTPS单向认证与双向认证
HTTPS的单/双向认证的握手过程如下:
单向认证
双向认证
参考资料
百度百科—https
Https单向认证和双向认证-by SuperRoot
An Introduction to Mutual SSL Authentication ——by Elvin Cheng