HTTPS基础原理和配置 - 1

https,基础,原理,配置 · 浏览次数 : 246

小编点评

**HTTPS基础原理和配置** **什么是HTTPS?** HTTPS是加密传输协议,它用于安全地进行网络通信。HTTPS加密数据,确保数据传输的完整性和安全性。 **HTTPS的原理** HTTPS采用SSL协议进行通信。SSL协议是一种对称加密协议,这意味着通信方在发送和接收数据之前可以验证对方的身份。 1. **客户端请求** 客户端向服务器发送一个HTTPS请求,包括以下信息: * 客户端的ID * 服务器的ID * 请求的资源 * 客户端的加密算法 2. **服务器响应** 服务器收到客户端的请求,验证其身份,并根据客户端的加密算法对数据进行加密。 3. **数据传输** 服务器将加密后的数据发送给客户端。 4. **客户端解密** 客户端使用其私钥解密服务器发送的数据。 **HTTPS的配置** 1. 客户端需要安装SSL证书,该证书验证了客户端的身份。 2. 客户端需要设置SSL设置,指定其支持的加密算法。 3. 客户端需要设置HTTPS代理服务器,该服务器可以根据客户端的IP地址自动选择最安全的加密算法。 **TLS的优势** * 安全性:TLS使用SSL协议进行通信,SSL协议能够对数据进行加密,确保数据完整性和安全性。 * 可兼容性:TLS支持各种浏览器和设备,使其易于部署。 * 可扩展性:TLS可以与多个服务器共享一个证书,方便部署。

正文

近期又碰到了SSL相关的事情, 就心血来潮开个新专题 - 《HTTPS基础原理和配置》

本文是第一篇文章, 主要介绍SSL TLS加密协议的相关内容。

加密协议历史概要

SSL TLS加密协议其实并没有很长的历史,1995年网景发布了SSL v2.0,这也是web加密的开始。这使得电子商务领域,人们可以在线提交密码和信用卡,并且至少是相当安全的。

SSLv3.0很快发布,这版被保罗·柯克(Paul Coker)及其他人完全重写。这是一个非常坚实的协议。事实上,IETF采用SSL v3.0,并使它成为并不是网景独有的协议,叫做TLS(Transport Layer Security)。SSL意思是安全套接字层,但现在叫传输层安全。

所以,TLS v1.0几乎和SSL v3.0 一模一样,只是进行了一两个小优化,并且IAF使之标准化。如果你深究这些协议,TLS v1.0实际上就是SSL v3.1;所以你可以认为他们是连续的。

但是最终IETF提出了新版本v1.1(一些小优化),然后是v1.2,引入了一些新的加密算法。但是看到这你可能会想“好吧,有些客户端支持这些,有些客户端支持更新的,这取决于它们发布的时间. 安全性上可能差不太多". 但实际在安全意义上,这些中的大多数已经以被破解了。

关键历史节点

  • SSL v2.0 1995年 网景 发布
  • SSL v3.0 1996年发布 修复v2的主要问题
  • TLS v1.0 1999年 IETF发布;对SSLv3小优化
  • TLS v1.1 2006年 发布 小优化
  • TLS v1.2 2008年发布 改进hash和AEAD模式

😂 被破解历史概要

首先是SSL v2.0, 设计之初就被破解😂😂😂, 所以,ssl v2.0确实不推荐使用;已经被破解很长很长时间了,不安全。 我们经常听到的支持的SSL版本一般也是从SSL v3.0开始的.

SSL v3.0呢, 之前一直在用,直到2014年11月被破解。

TLS
v1.0和v1.1基本安全。

最新的v1.2(其实现在已经不算最新的了, TLS v1.3已经出来了, 但是目前主流的最新协议还是1.2), 是唯一一个还没有针对性攻击的版本(PS: 当然, 近期也有针对TLS v1.2的漏洞爆出, 但还算OK)。

TLS有一个混乱的历史,并没有真正最好的安全记录,但TLS v1.2一直还是最好的,当涉及到与浏览器和服务的交互,它内置在几乎一切的浏览器和服务器中(最新的)。

所以,TLS
v1.2是大势所趋, 如果涉及到关键业务数据交互, 如用户关键信息 支付 金融等场景, TLS v1.2才能真正有保障, 而其他老的加密协议, 都已经被破解了, 黑客想拿到你的数据(如果你用老的加密协议)只是时间问题, 并不存在技术上的难点。所以评估ATS(苹果的安全相关要求)合规也要求该版本。

😂 被破解关键历史节点

  • ❗❗❗❗❗ SSL v2.0 1995发布 - 设计之初被破解
  • ❗❗❗ SSL v3.0 1996发布 – 被POODLE破解(2014 .11)
  • ❗❗ TSL v1.0 1999发布 – BEAST(2011)和Lucky 13(2013)发现漏洞
  • ❗ T​LS v1.1 2006发布 – 被Lucky 13(2013)和RC4(2013,2015)发现漏洞
  • TLS v1.2 2008发布 – 只有在AEAD模式下是安全的

客户端兼容性

❗ 注意:

如果有条件, 强烈建议只选择 TLS v1.2版本. (对于传统企业, 真的挺难做到的)​

根据以上的内容来看, 那我只选择TLS v1.2协议好了, 但实际情况是, TLS v1.2 是2008年才发布的(标注发布), 而真正要落到实处所需要的时间更长. 所以很多客户端并不支持TLS v1.2.

这些客户端, 是广义的客户端, 包括:

  • 操作系统
  • 浏览器
  • 手机
  • 胖客户端(如Java客户端)
  • ...

所以,如果你计划服务器只选择1.2版本,你就可能失去了很多潜在客户(还在用旧的客户端的客户, 当然, 说不定用着旧电脑的员工也被拒之门外了...)。这并不是最好的举动,除非对绝对安全非常敏感。否则的话, 还是建议支持更多的安全协议让更多的客户可以兼容. 是吧? 毕竟比起http这种裸奔, 其他旧的协议好歹还是穿着衣服的.😏

但是, 另一些大平台, 已经开始倾向于v1.2。比如ios之前的ATS合规要求, 比如微软建议你放弃TLS v1.0和 TLS v1.1的支持。因此,行业正在朝着标准迈进。

支持TLS v1.2客户端列表

  • Windows 8 以上 (Windows Server 2008以上 - 2017年下半年才支持) (❗ win7不支持! 更别提win xp了)
  • RHEL 或 CentOS ≥ 6.5 (❗ 用CentOS 5.X的注意了啊, 不支持TLS v1.2 ​)
  • Chrome ≥ 30
  • 安卓 ≥ 5.0
  • 火狐浏览器 ≥ 27
  • IE/Edge ≥ 11 (❗主流的IE8 9 10都不支持!)
  • iOS ≥ 5
    • 注意:iOS 9应用需要TLS 1.2支持。(ATS合规要求, 当时后来好像很难推下去)

支持TLS 1.0 客户端列表

TLS 1.0 (真正安全的最老版本)几乎都支持(除了win xp sp2)。

win xp sp2

配置建议

再次推荐SSL Labs, 打分如下:

SSL Labs打分示例

高安全性 低兼容性

SSLProtocol all -SSLv3 -TLSv1 -TLSv1.1

只支持TLS v1.2. 当你配置加密协议时,如果只选择TLS
1.2,得分会是A

中安全性 高兼容性

SSLProtocol all -SSLv3

只支持TLS协议, 得分也会是A. (之前的, 近期不确定, 感兴趣的可以测一下).

低安全性 最大兼容性

SSLProtocol all

如果使用SSLv3.0,有风险,得C。

总结

选择加密协议, 要根据具体的需求, 有侧重, 也要做到安全性和兼容性的兼顾.

我之前有个相关的PPT, 感兴趣的话后续发上来.

三人行, 必有我师; 知识共享, 天下为公. 本文由东风微鸣技术博客 EWhisper.cn 编写.

与HTTPS基础原理和配置 - 1相似的内容:

HTTPS基础原理和配置 - 1

近期又碰到了SSL相关的事情, 就心血来潮开个新专题 - 《HTTPS基础原理和配置》 本文是第一篇文章, 主要介绍SSL TLS加密协议的相关内容。 加密协议历史概要 SSL TLS加密协议其实并没有很长的历史,1995年网景发布了SSL v2.0,这也是web加密的开始。这使得电子商务领域,人们

HTTPS基础原理和配置-2

〇、概述 作为概述,以下是本文要讲的内容。HTTPS 是什么? 每个人都可能从浏览器上认出 HTTPS,并对它有好感。然后再讲一遍基础知识,再详细讲一下协议版本,密码套件(Cipher Suites),本文的重点会落在如何配置 NGINX,让你的网站使用 HTTPS 服务。 除此之外,还有一个使用

HTTPS基础原理和配置-3

书接上文:HTTPS 基础原理和配置 - 2,接下来介绍: 配置 NGINX 后端 HTTPS 检查配置 配置 HSTS OCSP Stapling 重要部分来了。如何使用这些选项并配置NGINX? 一、NGINX 的 HTTPS 配置 这里有一些基本的原语(或叫做指令),你可以使用:ssl_cer

Vue基础语法整理

# vue基础用法&基础原理整理 1. vue基础知识和原理 1.1 初识Vue 想让Vue工作,就必须创建一个Vue实例,且要传入一个配置对象 demo容器里的代码依然符合html规范,只不过混入了一些特殊的Vue语法 demo容器里的代码被称为【Vue模板】 Vue实例和容器是一一对应的

Intel HDSLB 高性能四层负载均衡器 — 基本原理和部署配置

本篇主要介绍了 Intel HDSLB 的基本运行原理和部署配置的方式,希望能够帮助读者们顺利的把 HDSLB-DPVS 项目 “玩” 起来。

建设数字工厂:MRP物料需求计划的逻辑原理与配置方法

本期介绍MRP的基本逻辑原理和相关概念,并详细介绍如何在华为云数字工厂平台通过可视化建模配置实现自动计算生成MRP物料需求计划。

多数据源管理:掌握@DS注解的威力

大家在日常后端开发过程,不可避免的会接触到需要用到配置多个数据源的场景,在这里,小编介绍一种简单方便的,只需要简单的配置和一个@DS注解就能实现动态数据源的方式,这种动态数据源底层原理是基于Mybatis-plus来实现的。

分布式注册服务中心etcd在云原生引擎中的实践

作者:王雷 etcd是什么 etcd是云原生架构中重要的基础组件,由CNCF孵化托管。ETCD是用于共享配置和服务发现的分布式,一致性的KV存储系统,是CoreOS公司发起的一个开源项目,授权协议为Apache。etcd 基于Go语言实现,主要用于共享配置,服务发现,集群监控,leader选举,分布

IoT 边缘集群基于 Kubernetes Events 的告警通知实现(二):进一步配置

上一篇文章 IoT 边缘集群基于 Kubernetes Events 的告警通知实现 目标 告警恢复通知 - 经过评估无法实现 原因: 告警和恢复是单独完全不相关的事件, 告警是 Warning 级别, 恢复是 Normal 级别, 要开启恢复, 就会导致所有 Normal Events 都会被发送

Zookeeper安装部署

ZooKeeper 简介 ZooKeeper是一个开放源码的分布式应用程序协调服务,它包含一个简单的原语集,分布式应用程序可以基于它实现同步服务,配置维护和命名服务等。 ZooKeeper 设计目的 最终一致性:client不论连接到哪个Server,展示给它都是同一个视图,这是zookeeper最