SSL层从而具有了保护保护交互隐私以及完整性,还有提供对网站服务器身份认证的功能,简单说就是安全版的HTTP
SSL(Sucurity Sockets Layer安全套接层)
为网络通信提供安全及数据完整性的一种安全协议
是操作系统对外的API ,SSL3.0 更名为 TLS
如何保证网络安全数据完整性呢?
采用了身份验证和数据加密保证网络通信的安全和数据的完整性。
加密方式
一、对称加密 -- 加密和解密都使用同一个密钥。容易泄露
二、非对称加密 --- 加密使用的密钥和解密使用的密钥是不相同的 (公钥私钥)性能过低
三、哈希算法 --- 将任意长度的信息转化成固定长度的值,算法不可逆 常见如 MD5
四、数字签名 --- 证明某个信息或者文件是某个人发出的/认同的
HTTPS数据传输流程
浏览器将支持的加密算法信息发送给服务器
服务器选择一套浏览器支持的加密算法,以证书的形式回发给浏览器
浏览器验证证书的合法性,并结合证书公钥加密信息发送给服务器
服务器使用私钥解密信息,,验证哈希,加密响应消息回发给浏览器
浏览器解密响应消息,并对消息进行验证,之后进行加密交互数据
HTTPS 与 HTTP的区别
HTTPS 需要到CA申请证书,HTTP不需要
HTTPS 是密文传输,HTTP 是明文传输
连接方式不同,HTTPS 默认443端口 HTTP 默认80 端口
HTTPS = HTTP + 加密 + 认证 + 完整性保护 ,较 HTTP 安全
从HTTP 转化到 HTTPS 真的安全吗?
那倒未必
浏览器默认填充http:// 有被劫持的风险
网站管理员通常用301 302 跳转到https,可以使用HSTS优化,不过正在推行中,并未称为主流,面试里面很少会问到。