HTTPS该怎么用才安全?

本文涉及的产品
密钥管理服务KMS,1000个密钥,100个凭据,1个月
简介: HTTPS新闻v 我国仍然有300多万的Windows server2003、XP、Vista用户。而微软早已宣布不再对“Windows server2003、XP、Vista”进行更新服务了,由于系统得不到安全加固,使用这些系统进行web数据交互,更容易引发安全事故:用户信息泄露、系统遭受***、资金被盗、窃取数据等等。

HTTPS新闻

我国仍然有300多万的Windows server2003、XP、Vista用户。而微软早已宣布不再对“Windows server2003、XP、Vista”进行更新服务了,由于系统得不到安全加固,使用这些系统进行web数据交互,更容易引发安全事故:用户信息泄露、系统遭受***、资金被盗、窃取数据等等。

国外的大型互联网公司很多已经启用了全站 HTTPS,这也是未来互联网的趋势。

百度是国内全站部署 HTTPS,对国内互联网的全站 HTTPS 进程必将有着巨大的推动作用。

国内的大多网站并没有全站部署 HTTPS,只是在一些涉及账户或者交易的子页面/子请求上启用了HTTPS。

微软和google都已经宣布2016年及2017年之后不再支持 sha1 签名证书。

Mozilla更是坚决,在2016年7月1日起就停止支持sha1算法的SSL。


引言

最近有朋友问我,为什么很多网站变成“https://XXX”了。这是因为http数据传输不安全,而https可以保护用户隐私、防止流量劫持。

当然,现在https中的“TLS1.0 和 SSL3.0”也不安全了。

那https该怎么用才安全呢?下面就简单介绍一下“https”所提供的解决方案。


HTTPS概述

HTTPS 可以认为是 HTTP + TLS

HTTP 协议大家耳熟能详了,目前大部分 WEB 应用和网站都是使用 HTTP 协议传输的。

TLS 是传输层加密协议,它的前身是 SSL 协议,最早由 netscape 公司于 1995 年发布,1999 年经过 IETF 讨论和规范后,改名为 TLS。如果没有特别说明,SSL 和 TLS 说的都是同一个协议。

HTTP 和 TLS 在协议层的位置以及 TLS 协议的组成如下图:

wKiom1ea3TDD0pRrAAF-YmZZsCM007.png-wh_50 

TLS 协议主要有五部分:应用数据层协议握手协议报警协议加密消息确认协议心跳协议。

TLS 协议本身又是由 record 协议传输的,record 协议的格式如上图最右所示。

目前常用的 HTTP 协议是 HTTP1.1,常用的 TLS 协议版本有如下几个:TLS1.2TLS1.1 TLS1.0和SSL3.0。

其中 SSL3.0 由于 POODLE ***已经被证明不安全,但统计发现依然有不到 1% 的浏览器使用 SSL3.0。TLS1.0 也存在部分安全漏洞,比如 RC4 和 BEAST ***。

TLS1.2和TLS1.1暂时没有已知的安全漏洞,比较安全,同时有大量扩展提升速度和性能,推荐大家使用。但是Windows server2003、XP、Vista不支持TLS1.1和TLS1.2

    需要关注一点的就是 TLS1.3 将会是 TLS 协议一个非常重大的改革。不管是安全性还是用户访问速度都会有质的提升。不过目前没有明确的发布时间。

    同时 HTTP2 也已经正式定稿,这个由 SPDY 协议演化而来的协议相比 HTTP1.1又是一个非常重大的变动,能够明显提升应用层数据的传输效率。


HTTPS怎么用才安全?

HTTP 本身是明文传输的,没有经过任何安全处理。

例如用户在百度搜索了一个关键字,比如“苹果手机”,中间者完全能够查看到这个信息,并且有可能打电话过来骚扰用户。也有一些用户投诉使用百度时,发现首页或者结果页面浮了一个很长很大的广告,这也肯定是中间者往页面插的广告内容。如果劫持技术比较低劣的话,用户甚至无法访问百度。

    这里提到的中间者主要指一些网络节点,是用户数据在浏览器和web服务器中间传输必须要经过的节点。比如 WIFI 热点,路由器,防火墙,反向代理,缓存服务器等。

    在 HTTP 协议下,中间者可以随意嗅探用户搜索内容,窃取隐私甚至篡改网页。不过 HTTPS 是这些劫持行为的克星,能够完全有效地防御总体来说,HTTPS 协议提供了三个强大的功能来对抗上述的劫持行为:

内容加密浏览器到web服务器的内容都是以加密形式传输,中间者无法直接查看原始内容。

    加密算法一般分为两种,对称加密和非对称加密。所谓对称加密(也叫密钥加密)就是指加密和解密使用的是相同的密钥。而非对称加密(也叫公钥加密)就是指加密和解密使用了不同的密钥。

身份认证保证用户访问的是web服务,即使被 DNS 劫持到了第三方站点,也会提醒用户没有访问web服务,有可能被劫持

    身份认证主要涉及到 PKI 和数字证书。通常 PKI(公钥基础设施)包含如下部分:

  •     End entity:终端实体,可以是一个终端硬件或者网站

  •     CA:证书签发机构

  •     RA:证书注册及审核机构。比如审查申请网站或者公司的真实性

  •     CRL issuer:负责证书撤销列表的发布和维护

  •     Repository:负责数字证书及 CRL 内容存储和分发

数据完整性防止内容被第三方冒充或者篡改。

    openssl 现在使用的完整性校验算法有两种:MD5 或者 SHA。由于 MD5 在实际应用中存在冲突的可能性比较大,所以尽量别采用 MD5 来验证内容一致性。SHA 也不能使用 SHA0 和 SHA1,中国山东大学的王小云教授在 2005 年就宣布破解了 SHA-1 完整版算法。SHA家族的五个算法,分别是SHA-1、SHA-224、SHA-256、SHA-384和SHA-512,后四有时并称为SHA-2


相关文章
|
4月前
|
安全 搜索推荐 前端开发
揭秘 HTTPS 加密协议:保护你的网上安全之道
揭秘 HTTPS 加密协议:保护你的网上安全之道
570 0
|
10月前
|
安全 算法 小程序
互联网并发与安全系列教程(17) - 生产环境配置HTTPS证书
互联网并发与安全系列教程(17) - 生产环境配置HTTPS证书
121 0
|
1月前
|
安全 Nacos 数据安全/隐私保护
【技术干货】破解Nacos安全隐患:连接用户名与密码明文传输!掌握HTTPS、JWT与OAuth2.0加密秘籍,打造坚不可摧的微服务注册与配置中心!从原理到实践,全方位解析如何构建安全防护体系,让您从此告别数据泄露风险!
【8月更文挑战第15天】Nacos是一款广受好评的微服务注册与配置中心,但其连接用户名和密码的明文传输成为安全隐患。本文探讨加密策略提升安全性。首先介绍明文传输风险,随后对比三种加密方案:HTTPS简化数据保护;JWT令牌减少凭证传输,适配分布式环境;OAuth2.0增强安全,支持多授权模式。每种方案各有千秋,开发者需根据具体需求选择最佳实践,确保服务安全稳定运行。
79 0
|
2月前
|
安全 数据安全/隐私保护
支付系统11 -微信支付11-支付安全-https中的数字证书
支付系统11 -微信支付11-支付安全-https中的数字证书
|
3月前
|
安全 网络安全 数据安全/隐私保护
https比http安全在哪
因此,HTTPS在保护用户隐私、防止数据泄露等方面具有很大的优势,是现代网络安全的重要组成部分。
45 0
|
3月前
|
安全 网络安全 数据安全/隐私保护
深入解析HTTPS:安全机制全方位剖析
深入解析HTTPS:安全机制全方位剖析
|
4月前
|
Web App开发 缓存 前端开发
《手把手教你》系列技巧篇(四十四)-java+ selenium自动化测试-处理https 安全问题或者非信任站点-下篇(详解教程)
【5月更文挑战第8天】这篇文档介绍了如何在IE、Chrome和Firefox浏览器中处理不信任证书的问题。作者北京-宏哥分享了如何通过编程方式跳过浏览器的证书警告,直接访问不受信任的HTTPS网站。文章分为几个部分,首先简要介绍了问题背景,然后详细讲解了在Chrome浏览器中的两种方法,包括代码设计和运行效果,并给出了其他浏览器的相关信息和参考资料。最后,作者总结了处理此类问题的一些通用技巧。
108 2
|
4月前
|
Web App开发 JavaScript 前端开发
《手把手教你》系列技巧篇(四十三)-java+ selenium自动化测试-处理https 安全问题或者非信任站点-上篇(详解教程)
【5月更文挑战第7天】本文介绍了如何在Java+Selenium自动化测试中处理浏览器对不信任证书的处理方法,特别是针对IE、Chrome和Firefox浏览器。在某些情况下,访问HTTPS网站时会遇到证书不可信的警告,但可以通过编程方式跳过这些警告。
75 1
|
4月前
|
安全 算法 网络协议
HTTPS:如何确保您的网站数据传输安全?
HTTPS:如何确保您的网站数据传输安全?
198 2
|
4月前
|
缓存 安全 应用服务中间件
蓝易云 - Nginx的HTTPS部署与安全性能优化教程
以上就是在Nginx上部署HTTPS并进行安全性能优化的基本步骤。需要注意的是,这些步骤可能会根据您的具体需求和环境有所不同。
47 0