tls协议

图解SSL/TLS协议

拟墨画扇 提交于 2020-03-20 14:03:26
我看了CloudFlare的说明( 这里 和 这里 ),突然意识到这是绝好的例子,可以用来说明SSL/TLS协议的运行机制。它配有插图,很容易看懂。 下面,我就用这些图片作为例子,配合我半年前写的 《SSL/TLS协议运行机制的概述》 ,来解释SSL协议。 一、SSL协议的握手过程 开始加密通信之前,客户端和服务器首先必须建立连接和交换参数,这个过程叫做握手(handshake)。 假定客户端叫做爱丽丝,服务器叫做鲍勃,整个握手过程可以用下图说明(点击看大图)。 握手阶段分成五步。 第一步,爱丽丝给出协议版本号、一个客户端生成的随机数(Client random),以及客户端支持的加密方法。 第二步,鲍勃确认双方使用的加密方法,并给出数字证书、以及一个服务器生成的随机数(Server random)。 第三步,爱丽丝确认数字证书有效,然后生成一个新的随机数(Premaster secret),并使用数字证书中的公钥,加密这个随机数,发给鲍勃。 第四步,鲍勃使用自己的私钥,获取爱丽丝发来的随机数(即Premaster secret)。 第五步,爱丽丝和鲍勃根据约定的加密方法,使用前面的三个随机数,生成"对话密钥"(session key),用来加密接下来的整个对话过程。 上面的五步,画成一张图,就是下面这样。 二、私钥的作用 握手阶段有三点需要注意。 (1

看完这篇 HTTPS,和面试官扯皮就没问题了

泄露秘密 提交于 2020-03-17 13:37:24
下面我们来一起学习一下 HTTPS ,首先问你一个问题,为什么有了 HTTP 之后,还需要有 HTTPS ?我突然有个想法,为什么我们面试的时候需要回答 标准答案 呢?为什么我们不说出我们自己的想法和见解,却要记住一些所谓的标准回答呢? 技术还有正确与否吗 ? HTTPS 为什么会出现 一个新技术的出现必定是为了解决某种问题的,那么 HTTPS 解决了 HTTP 的什么问题呢? HTTPS 解决了什么问题 一个简单的回答可能会是 HTTP 它不安全。由于 HTTP 天生明文传输的特性,在 HTTP 的传输过程中,任何人都有可能从中截获、修改或者伪造请求发送,所以可以认为 HTTP 是不安全的;在 HTTP 的传输过程中不会验证通信方的身份,因此 HTTP 信息交换的双方可能会遭到伪装,也就是 没有用户验证 ;在 HTTP 的传输过程中,接收方和发送方并 不会验证报文的完整性 ,综上,为了结局上述问题,HTTPS 应用而生。 什么是 HTTPS 你还记得 HTTP 是怎么定义的吗?HTTP 是一种 超文本传输协议(Hypertext Transfer Protocol) 协议, 它 是一个在计算机世界里专门在两点之间传输文字、图片、音频、视频等超文本数据的约定和规范 ,那么我们看一下 HTTPS 是如何定义的 HTTPS 的全称是 Hypertext Transfer

TLS/SSL 梳理

情到浓时终转凉″ 提交于 2020-03-16 03:16:16
数据加密通篇都是为了防止第三方的劫持伪造,保证连接安全, 毫无遮掩的明文传输只有民风淳朴的时候才是安全的。 先是一些基础的内容: 对称加密 最开始为了对数据进行加密,使用的是对称加密算法,即双方协商好一个密钥,传输的时候使用这个密钥对数据进行加密和解密,但是这个密钥当然不能使用网络传输,不然同样被第三方劫持就没有意义了,所以只能私下协商交换密钥。 最开始的DES(Data Encryption Standard)对称加密算法使用的是56bit的密钥,这个密钥稍微有点短,在后来完全可以暴力破解加密信息,对于56位的密码,只需要2的56次方就可以暴力穷举。 然后又有了新的算法,triple—DES也交3DES,三重加密算法,最高168位密钥,还有AES,以前搭梯子的时候经常能见到,最高256bit密钥,安全性和速度都很出色。 但是,和谁通信都私下传密钥明显不现实,于是就有了 非对称加密 各自有个私钥,使用公钥传输,全程只暴露公钥,具体过程: A先用自己的私钥加密数据,然后传递公钥和密文给B,B可以用自己的私钥解密 (在一篇文章中提到,使用私钥加密的是hash值,而数据本身是明文的,因为使用密钥加密任意的数据内容存在风险,比如可以刻意的上传一些特定的数据在下载下来,从而破解得到密钥(如RSA),对数据只是payload,所以文章中的逻辑是这样的:A用自己的私钥加密hash

【HTTPS】TLS/SSL握手失败的场景分析

喜欢而已 提交于 2020-03-12 13:33:56
0.背景知识 TLS/SSL握手的过程参考 SSL握手过程图解 1.常见报错 1.1 SSLHandshakeException handshake_failure 1.1.1 TLS/SSL协议版本不匹配 自从TLS 1.2版本在2008年发布以来,服务器处于安全性考虑通常也只支持较高版本TLS,比如 TLS1.2 及以上,如果这些客户端用低版本TLS/SSL向服务器发起握手,会因为服务器不支持而直接失败。 如JDK1.6就是用TLS1.0,访问使用 TLS1.2 的服务端就会报错,可以升级JDK1.8,默认使用1.2 1.1.2 cipher suite加密算法套件不匹配 服务器出于安全性考虑通常只会支持安全性较高的cipher,所以当客户端发过去的cipher suite安全性都比较低时会造成协商握手失败。 具体解决请戳 1.2 证书问题 1.2.1.客户端Bad Certificate 双向认证,不仅客户端要验证服务器证书,服务器也需要验证 客户端证书 。在服务器验证客户端证书的过程中,由于客户端证书证书链校验不通过,可能会直接产生Fatal Alert,导致握手直接中断。 解决方案:使用著名CA签发(如CFCA等)的客户端证书,如果可联系服务端开发可直接将自己的客户端证书放置在其信任列表汇总。 1.2.2 服务端 Certificate Validation

HTTPS中TLS/SSL的握手过程

半城伤御伤魂 提交于 2020-02-27 09:05:09
1,非对称加密技术 非对称加密算法需要两个密钥,公开密钥(publickey)和私有密钥(privatekey);公钥和私钥是成对出现的。 非对称加密例子:B想把一段信息传给A,步骤:1)A把公钥传给B;2)B拿到A的公钥并利用此密钥给信息加密;3)B把加密的信息传给A;4)A利用私有密钥对加密信息进行解密即可得到B想给自己的信息。 (这个过程叫做密码传输,即B把信息加密后传给A) 问题:如果有个捣乱的冒充B,也用A的公钥给一段信息加密,并传给A,A再私钥解密得到的信息就会误认为是B的。 要解决此问题,B需要给A传个验证信息,让A可以验证自己受到的信息是B传的。该验证信息即下面的数字摘要(数字指纹) 2,数字摘要技术 该技术主要利用了哈希函数的两个特性:1)单向性;2)计算结果位数固定 数字摘要是采用单向Hash函数将需要加密的明文“摘要”成一串固定长度(128位)的密文,这一串密文又称为数字指纹,它有固定的长度,而且不同的明文摘要成密文,其结果总是不同的,而同样的明文其摘要必定一致。“数字摘要“是https能确保数据完整性和防篡改的根本原因。 3,数字签名技术 数字签名技术既利用了数字摘要(数字指纹)技术也利用了非对称加解密技术 。 数字签名过程 :1)B利用哈希函数得到上面传输信息的哈希值;2)B利用私钥给哈希值加密(注意:这里的非对称加密(私钥加密,公钥解密

HTTPS原理01 -- SSL/TLS介绍

时光毁灭记忆、已成空白 提交于 2020-02-05 05:20:29
https=http+ssl 顾名思义,https是在http的基础上加上了SSL保护壳,信息的加密过程就是在SSL中完成的 SSL证书的定义:SSL证书是由专门的权威的数字证书颁发机构在验证一个域名的信息之后所发行的数字网络证书,它可以很好地维护网络信息的安全,防止这些信息被第三方所截取或是窃听。 ssl认证指的是客户端到服务器端的认证,它主要是提供对用户以及服务器的认证,对传送的数据进行加密和隐藏,它能够确保数据在传送过程当中不被改变,对于数据的加密性、数据的完整性有一定保障。 https ssl证书颁发后都有一个有效期。有时证书没过期都会出现无效的情况,那可能是电脑系统的时间不对会导致证书过期,因为https ssl证书颁发都有颁发日期和截止日期的。电脑系统当中的时间在证书有效时间之外,就有可能导致浏览器提示网站安全证书过期。 关于SSL证书原理,其实在一个网站部署了SSL证书之后,就相当于为这个网址配置两把密钥,一把叫做公钥,另一把叫做私钥。公钥的作用就是在用户将自己的信息留在这个网站时为这些信息加锁的钥匙,加了锁之后,这些信息就不能被轻易的读取,除非有专门的钥匙打开。而这把打开这个锁的钥匙,就是另一把密钥,也就是私钥。只有这把对应的私钥才可以打开公钥部下的锁,因此在这两把密钥的作用下,可以使客户的信息数据在网站中安全的传入并安全的浏览,不会被他人截取。 一、作用

HTTPS详解二:SSL / TLS 工作原理和详细握手过程

蹲街弑〆低调 提交于 2020-02-02 13:37:24
HTTPS 详解一:附带最精美详尽的 HTTPS 原理图 HTTPS详解二:SSL / TLS 工作原理和详细握手过程 在上篇文章 HTTPS详解一 中,我已经为大家介绍了 HTTPS 的详细原理和通信流程,但总感觉少了点什么,应该是少了对安全层的针对性介绍,那么这篇文章就算是对 HTTPS 详解一 的补充吧。还记得这张图吧。 HTTPS 和 HTTP的区别 显然,HTTPS 相比 HTTP最大的不同就是多了一层 SSL (Secure Sockets Layer 安全套接层)或 TLS (Transport Layer Security 安全传输层协议)。有了这个安全层,就确保了互联网上通信双方的通信安全,那么这个安全层是怎么工作的,SSL / TLS 握手过程又是怎样的呢?本文将对这些问题一一解答。 1、SSL / TLS 以及 SSL / TLS 握手的概念 SSL 和 TLS 协议可以为通信双方提供识别和认证通道,从而保证通信的机密性和数据完整性。TLS 协议是从Netscape SSL 3.0协议演变而来的,不过这两种协议并不兼容,SSL 已经被 TLS 取代,所以下文就以 SSL 指代安全层。 TLS 握手是启动 HTTPS 通信的过程,类似于 TCP 建立连接时的三次握手。 在 TLS 握手的过程中,通信双方交换消息以相互验证,相互确认

HTTPS 详解一:附带最精美详尽的 HTTPS 原理图

佐手、 提交于 2020-02-02 13:20:48
HTTPS 详解一:附带最精美详尽的 HTTPS 原理图 HTTPS详解二:SSL / TLS 工作原理和详细握手过程 前言 作为一个有追求的程序员,了解行业发展趋势和扩充自己的计算机知识储备都是很有必要的,特别是一些计算机基础方面的内容,就比如本篇文章要讲的计算机网络方面的知识。本文将为大家详细梳理一下 HTTPS 的实现原理。 近年来,随着用户和互联网企业安全意识的提高和 HTTPS 成本的下降,HTTPS 已经越来越普及。很多互联网巨头也在力推 HTTPS,比如谷歌的 Chrome 浏览器在访问 HTTP 网站时会在地址栏显示不安全的提醒,微信要求所有的小程序必须使用 HTTPS 传输协议,苹果也要求所有在 App Store 上架的应用必须采用 HTTPS ,国内外的大部分主流网站也都已迁移至 HTTPS,可见 HTTPS 全面取代 HTTP 只是时间问题。 说了这么多,究竟什么是 HTTPS,它与 HTTP 相比有什么优缺点?其底层原理又是怎么实现的呢?下面就为你一一解答,先来看一下 HTTP 的弊端吧。 1、HTTP 的最大弊端——不安全 HTTP 之所以被 HTTPS 取代,最大的原因就是不安全,至于为什么不安全,看了下面这张图就一目了然了。 图1. HTTP数据传输过程 由图可见,HTTP 在传输数据的过程中,所有的数据都是明文传输,自然没有安全性可言

物联网专题37:SSL / TLS

北城以北 提交于 2020-01-28 21:31:30
网络安全 随着计算机网络的发展,网络中的安全问题也日趋严重。当网络的用户来自社会的各个阶层和部门时,大量在网络中存储和传输的数据就需要保护,计算机网络安全是一门专业的学科。 计算机网络面临的安全性威胁: 1 被动攻击: 被动攻击是指攻击者从网络上窃听他人的通信内容。通常把这类攻击成为截获。在被动攻击中,攻击者只是观察和分析某一个协议数据单元PDU,而不干扰信息流。即使这些数据对攻击者来说是不易理解的,他也可以通过观察PDU的协议控制信息部分,了解正在通信的协议实体的地址和身份研究PDU的长度和传输的频度,从而了解所交换数据的某种性质。这种被动攻击又称为流量分析。在战争时期,通过分析某处出现的大量异常的通信量,往往可以发现地方指挥部的位置。 2 主动攻击: 篡改:攻击者故意篡改网络上传送的报文。 恶意程序:包括计算机病毒、计算机蠕虫、特洛伊木马、逻辑炸弹、后门入侵和流氓软件。 拒绝服务 DoS :攻击者向互联网上的某个服务器不断发送大量分组,使该服务器无法提供正常服务,甚至完全瘫痪。 安全的计算机网络: 数据加密模型: 两类密码体制 1 对称密钥密码体制: 2 公钥密码体制 数字签名: 公钥的分配: 如图所示为百度服务器的证书: 在详细信息中能看到 公钥 + 签名算法: 运输层安全协议 运输层安全协议(SSL TLS): SSL提供的安全服务: 来源: CSDN 作者: 小小刘木子

HTTP和HTTPS协议

假如想象 提交于 2020-01-26 20:20:47
介绍 http [1] 是Hyper Text Transfer Protocol(超文本传输协议)的缩写,是一种应用层协议,可用于将超文本服务器中文本、图片、音视频等内容传输到客户端浏览器。 构建与互联网之上的万维网,其主要组成部分就是http协议。目前使用的最广泛的http协议版本是http1.1。 最初的HTTP协议是万维网1991年诞生时,蒂姆·伯纳斯·李爵士(Sir Tim Berners-Lee)在European Organization for Nuclear Research使用的协议。之后万维网协会(World Wide Web Consortium)和Internet工作小组(Internet Engineering Task Force)合作,并最终发布了一系列的RFC,其中最著名的就是RFC 2616。RFC 2616定义了我们今天普遍使用的HTTP协议的一个版本——HTTP1.1。 在TCP/IP参考模型中和OSI参考模型中,http协议处于应用层的位置,http规定了客户端和Web服务端的通信协议,而html则规定了传输的内容的格式、类型。https是在http的基础上,增加了TLS/SSL协议,为通信内容进行加密操作。 http通信过程 http协议默认使用TCP的80端口进行通信。通过在浏览器中输入网站地址,URL (Uniform