HTTPS
1HTTPS
HTTPS:超文本传输安全协议是一种通过计算机网络进行安全通信的传输协议。HTTPS经由HTTP进行通信,但利用SSL/TLS来加密数据包。HTTPS开发的主要目的,是提供对网站服务器的身份认证,保护交换数据的隐私与完整性。
2 HTTP和HTTPS的区别
2.1 HTTP 是不安全的,而 HTTPS 是安全的
HTTP是不安全的,攻击者通过监听和中间人攻击等手段,可以获取网站帐户和敏感信息等。HTTPS被设计为可防止前述攻击,并在正确配置时被认为是安全的。
2.2 HTTP 的 URL 以 http:// 开头,而 HTTPS 的 URL 以 https:/
2.3 HTTP 标准端口是 80 ,而 HTTPS 的标准端口是 443
2.4在 OSI 网络模型中,HTTP 工作于应用层,而 HTTPS 工作在传输层
HTTP协议运行在TCP之上,所有传输的内容都是明文,客户端和服务器端都无法验证对方的身份。HTTPS是运行在SSL/TLS之上的HTTP协议,SSL/TLS运行在TCP之上。
2.5HTTP 无需加密,而 HTTPS 对传输的数据进行加密
HTTPS所有传输的内容都经过加密,加密采用对称加密,但对称加密的密钥用服务器方的证书进行了非对称加密。
1)对称加密:密钥只有一个,加密解密为同一个密码,且加解密速度快,典型的对称加密算法有DES、AES等;
2)非对称加密:密钥成对出现(且根据公钥无法推知私钥,根据私钥也无法推知公钥),加密解密使用不同密钥(公钥加密需要私钥解密,私钥加密需要公钥解密),相对对称加密速度较慢,典型的非对称加密算法有RSA、DSA等。
2.6 HTTP 无需证书,而 HTTPS 需要认证证书
https协议需要到ca申请证书,一般免费证书较少,因而需要一定费用。
3HTTPS工作原理
(1)客户使用HTTPS的URL访问Web服务器,要求与Web服务器建立SSL连接。
(2)Web服务器收到客户端请求后,会将网站的证书信息(证书中包含公钥)传送一份给客户端。
(3)客户端的浏览器与Web服务器开始协商SSL/TLS连接的安全等级,也就是信息加密的等级。
(4)客户端的浏览器根据双方同意的安全等级,建立会话密钥,然后利用网站的公钥将会话密钥加密,并传送给网站。
(5)Web服务器利用自己的私钥解密出会话密钥。
(6)Web服务器利用会话密钥加密与客户端之间的通信。
4 HTTPS的优点:
(1)客户端产生的密钥只有客户端和服务器端能得到;
(2)加密的数据只有客户端和服务器端才能得到明文;
(3)客户端到服务端的通信是安全的。
5 HTTPS的缺点
5.1 HTTPS比HTTP耗费更多服务器资源
https其实就是建构在SSL/TLS之上的 http协议,所以要比较https比http多用多少服务器资源,主要看SSL/TLS本身消耗多少服务器资源。
5.2 耗费的资源多,过程也复杂,访问不如HTTP高效。大流量网站非必要也不会采用,流量成本太高。
5.3HTTPS并不能防止站点被网络蜘蛛抓取。
在某些情形中,被加密资源的URL可仅通过截获请求和响应的大小推得,这就可使攻击者同时知道明文(公开的静态内容)和密文(被加密过的明文),从而使选择密文攻击成为可能。
5.4,SSL证书需要钱,功能越强大的证书费用越高,
个人网站、小网站没有必要一般不会用。
5.5,SSL证书通常需要绑定IP,不能在同一IP上绑定多个域名,IPv4资源不可能支撑这个消耗。
6 什么时候该使用 HTTPS?
银行网站、支付网关、购物网站、登录页、电子邮件以及一些企业部门的网站应该使用 HTTPS
7 、如何http切换到HTTPS
如果需要将网站从http切换到https到底该如何实现呢?
- 这里需要将页面中所有的链接,例如js,css,图片等等链接都由http改为https。例如:http://www.baidu.com改为https://www.baidu.com
2.虽然将http切换为了https,还是建议保留http。所以我们在切换的时候可以做http和https的兼容,具体实现方式是,去掉页面链接中的http头部,这样可以自动匹配http头和https头。例如:将http://www.baidu.com改为//www.baidu.com。然后当用户从http的入口进入访问页面时,页面就是http,如果用户是从https的入口进入访问页面,页面即使https的。