tls协议

【转帖】HTTPS 详解一:附带最精美详尽的 HTTPS 原理图

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

SSL/TLS握手过程

雨燕双飞 提交于 2020-01-19 01:50:08
1、握手与密钥协商过程 基于RSA握手和密钥交换的客户端验证服务器为示例详解TLS/SSL握手过程 再看一张手绘时序图 (1).client_hello 客户端发起请求,以明文传输请求信息,包含版本信息,加密套件候选列表,压缩算法候选列表,随机数,扩展字段等信息,相关信息如下: • 支持的最高TSL协议版本version,从低到高依次 SSLv2 SSLv3 TLSv1 TLSv1.1 TLSv1.2,当前基本不再使用低于 TLSv1 的版本; • 客户端支持的加密套件 cipher suites 列表, 每个加密套件对应前面 TLS 原理中的四个功能的组合:认证算法 Au (身份验证)、密钥交换算法 KeyExchange(密钥协商)、对称加密算法 Enc (信息加密)和信息摘要 Mac(完整性校验); • 支持的压缩算法 compression methods 列表,用于后续的信息压缩传输; • 随机数 random_C,用于后续的密钥的生成; • 扩展字段 extensions,支持协议与算法的相关参数以及其它辅助信息等,常见的 SNI 就属于扩展字段,后续单独讨论该字段作用。 (2).server_hello+server_certificate+sever_hello_done • server_hello, 服务端返回协商的信息结果,包括选择使用的协议版本

netmon工作原理

試著忘記壹切 提交于 2020-01-11 07:12:44
参考文献: netmon中解析非1433端口的TDS协议 TDS的解析 在前面一篇博客 netmon中解析非1433端口的TDS协议 中我们提到了netmon如何去解析非1433端口的TDS。我们是通过在tcp.npl这个文件中添加命名实例的tcp端口号,让该端口的tcp包跳转到tds.npl中去解析。下面我们来看一下tds.npl中有哪些内容呢?首先我看到在tds.npl中定义了一个 TDSPacketTypeTable: View Code Table TDSPacketTypeTable( value ) { switch( value ) { case 0x01: "SQLBatch"; case 0x02: "PreTDS7Login"; case 0x03: "RPCRequest"; case 0x04: "Response"; case 0x06: "Attention"; case 0x07: "BulkLoadBCP"; case 0x0E: "TransMgrReq"; case 0x10: "Login7"; case 0x11: "SSPIMessage"; case 0x12: "Prelogin"; case 0x17: "SSL"; default: "Undefined"; } } 这里面的这些值是不是很熟悉?是的,这些就是我们TDS包的名字

Tomcat 配置SSL/TLS(https)

我的未来我决定 提交于 2020-01-11 02:15:11
1.什么是SSL/TLS TLS:Transport Layer Security 安全传输层 SSL:Secure Sockets Layer 安全接口层 SSL/TLS协议确保安全的访问web页面,它是如何做到的呢? 1.当配置了SSL/TLS后,数据在传输前将被加密,传输方在传输数据时进行加密,接收方接受数据时解密,这意味着服务器和客户端在传输数据时都会进行加密与解密操作,所以在中间截断者(抓包)即使获取到了传输内容也无法看到其内容。 2.当客户端第一次请求网页内容时会弹出一个是否添加到信任网站的页面,当你选择将该页面添加为信任页面后并继续请求访问时,服务器会请求询问该客户端是否确认授权,如果授权则允许访问。 3.SSL/TLS协议常被应用于B2B(business-to-business) 4.大多数SSL网站无需手动授权,因为这些网站经过了有公信的第三方证书授权,而这些授权信息已经添加到浏览器中了 2.SSL/TLS与Tomcat 当在tomcat服务器跑一个项目时(javaweb),配合SSL是十分有必要的。通常来说,当配置了SSL后,当服务器接只有对收到请求的进行解密操作才能看到请求内容,如果无法解密,将会返回一个错误的请求给客户端。 tomcat支持大部分加密协议和加密算法,Java语言自带加密能力(tomcat用java语言编写),通过JCE/JCA进行加密操作

使用wireshark分析SSL/TLS

痴心易碎 提交于 2019-12-29 07:36:18
一、基本概念   SSL:(Secure Socket Layer,安全套接字层),位于可靠的面向连接的网络层协议和应用层协议之间的一种协议层。SSL通过互相认证、使用数字签名确保完整性、使用加密确保私密性,以实现客户端和服务器之间的安全通讯。该协议由两层组成:SSL记录协议和SSL握手协议。 TLS:(Transport Layer Security,传输层安全协议),用于两个应用程序之间提供保密性和数据完整性。该协议由两层组成:TLS记录协议和TLS握手协议。 SSL/TLS位于传输层和应用层之间,应用层数据不再直接传递给传输层,而是传递给SSL层,SSL层对从应用层收到的数据进行加密,并增加自己的SSL头。 1、不使用SSL/TLS的HTTP通信,就是不加密的通信。所有信息明文传播,带来了三大风险。 (1) 窃听风险(eavesdropping):第三方可以获知通信内容。 (2) 篡改风险(tampering):第三方可以修改通信内容。 (3) 冒充风险(pretending):第三方可以冒充他人身份参与通信。 2、SSL/TLS协议是为了解决这三大风险而设计的,希望达到: (1) 所有信息都是加密传播,第三方无法窃听。 (2) 具有校验机制,一旦被篡改,通信双方会立刻发现。 (3) 配备身份证书,防止身份被冒充。 3、SSL/TLS协议的基本过程是这样的: (1)

SSL与TLS的区别

时光毁灭记忆、已成空白 提交于 2019-12-29 07:36:00
SSL(Secure Socket Layer 安全套接层)是基于HTTPS下的一个协议 加密 层,最初是由网景公司(Netscape)研发,后被IETF(The Internet Engineering Task Force - 互联网工程任务组)标准化后写入(RFCRequest For Comments 请求注释),RFC里包含了很多互联网技术的规范! 起初是因为HTTP在传输数据时使用的是明文(虽然说POST提交的数据时放在报体里看不到的,但是还是可以通过抓包工具窃取到)是不安全的,为了解决这一隐患网景公司推出了SSL安全套接字协议层,SSL是基于HTTP之下TCP之上的一个协议层,是基于HTTP标准并对TCP传输数据时进行加密,所以HPPTS是HTTP+SSL/TCP的简称。 由于HTTPS的推出受到了很多人的欢迎,在SSL更新到3.0时,IETF对SSL3.0进行了标准化,并添加了少数机制(但是几乎和SSL3.0无差异),标准化后的IETF更名为TLS1.0(Transport Layer Security 安全传输层协议),可以说TLS就是SSL的新版本3.1,并同时发布“RFC2246-TLS加密协议详解”,如果想更深层次的了解TLS的工作原理可以去RFC的官方网站:www.rfc-editor.org,搜索RFC2246即可找到RFC文档! SSL连接过程

SSL/TLS 握手过程详解

好久不见. 提交于 2019-12-29 07:35:43
转自:http://www.jianshu.com/p/7158568e4867 我们知道,HTTP 协议都是明文传输内容,在早期只展示静态内容时没有问题。伴随着互联网的快速发展,人们对于网络传输安全性的要求也越来越高,HTTPS 协议因此出现。如上图所示,在 HTTPS 加密中真正起作用的其实是 SSL/TLS 协议。SSL/TLS 协议作用在 HTTP 协议之下,对于上层应用来说,原来的发送接收数据流程不变,这就很好地兼容了老的 HTTP 协议,这也是软件开发中分层实现的体现。 SSL/TLS 握手是为了安全地协商出一份对称加密的秘钥,这个过程很有意思,下面我们一起来了解一下。 以下内容需要你对加解密、数字签名和数字证书的概念有一定了解,这里 有一篇文章 可以帮你快速了解这几个概念。 SSL/TLS 握手过程 上图大致描述了 SSL/TLS 的握手过程,但缺少了一些信息不利于理解,我会在后面的讲解里再列出来。 Client Hello 握手第一步是客户端向服务端发送 Client Hello 消息,这个消息里包含了一个客户端生成的随机数 Random1、客户端支持的加密套件(Support Ciphers)和 SSL Version 等信息。通过 Wireshark 抓包,我们可以看到如下信息: Wireshark 抓包的用法可以参考 这篇文章 Server Hello

Nginx 教程 #3:SSL 设置

不问归期 提交于 2019-12-22 14:30:16
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 大家好!分享即关怀,我们很乐意与你分享其他的一些知识。我们准备了一个 Nginx 指南,分为三个系列。如果你已经知道一些 Nginx 知识或者想扩展你的经验和认知,这个再合适不过了。 我们将告诉你 Nginx 的运作模式、蕴含的概念,怎样通过调优 Nginx 来提高应用性能,或是如何设置它的启动和运行。 这个教程有三个部分: 基本概念 —— 这部分需要去了解 Nginx 的一些指令和使用场景,继承模型,以及 Nginx 如何选择 server 块,location 的顺序。 性能 —— 介绍改善 Nginx 速度的方法和技巧,我们会在这里谈及 gzip 压缩,缓存,buffer 和超时。 SSL 安装 —— 如何配置服务器使用 HTTPS 创建这个系列,我们希望,一是作为参考书,可以通过快速查找到相关问题(比如 gzip 压缩,SSL 等)的解决方式,也可以直接通读全文。为了获得更好的学习效果,我们建议你在本机安装 Nginx 并且尝试进行实践。 SSL 和 TLS SSL(Socket Secure Layer 缩写)是一种通过 HTTP 提供安全连接的协议。 SSL 1.0 由 Netscape 开发,但由于严重的安全漏洞从未公开发布过。SSL 2.0 于 1995 年发布,它存在一些问题,导致了最终的

SSL与TLS的区别以及介绍

爱⌒轻易说出口 提交于 2019-12-22 14:10:22
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> SSL:(Secure Socket Layer,安全套接字层),位于可靠的面向连接的网络层协议和应用层协议之间的一种协议层。SSL通过互相认证、使用数字签名确保完整性、使用加密确保私密性,以实现客户端和服务器之间的安全通讯。该协议由两层组成:SSL记录协议和SSL握手协议。   TLS:(Transport Layer Security,传输层安全协议),用于两个应用程序之间提供保密性和数据完整性。该协议由两层组成:TLS记录协议和TLS握手协议。   SSL是Netscape开发的专门用户保护Web通讯的,目前版本为3.0。最新版本的TLS 1.0是IETF(工程任务组)制定的一种新的协议,它建立在SSL 3.0协议规范之上,是SSL 3.0的后续版本。两者差别极小,可以理解为SSL 3.1,它是写入了RFC的。   SSL (Secure Socket Layer)   为Netscape所研发,用以保障在Internet上数据传输之安全,利用数据加密(Encryption)技术,可确保数据在网络上之传输过程中不会被截取。目前一般通用之规格为40 bit之安全标准,美国则已推出128 bit之更高安全标准,但限制出境。只要3.0版本以上之I.E.或Netscape浏览器即可支持SSL。   当前版本为3

webservice ssl 1 SSL/TLS 协议入门

我的未来我决定 提交于 2019-12-22 14:03:25
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> SSL(Secure Sockets Layer,安全套接层),及其继任者 TLS(Transport Layer Security,传输层安全)是为网络通信提供安全及数据完整性的一种安全协议。TLS与SSL在传输层对网络连接进行加密。 为Netscape所研发,用以保障在Internet上数据传输之安全,利用数据加密(Encryption)技术,可确保数据在网络上之传输过程中不会被截取及窃听。 SSL协议位于TCP/IP协议与各种应用层协议之间,为数据通讯提供安全支持。SSL协议可分为两层: SSL记录协议(SSL Record Protocol):它建立在可靠的传输协议(如TCP)之上,为高层协议提供数据封装、压缩、加密等基本功能的支持。 SSL握手协议(SSL Handshake Protocol):它建立在SSL记录协议之上,用于在实际的数据传输开始前,通讯双方进行身份认证、协商加密算法、交换加密密钥等。 SSL协议提供的服务主要有:   1)认证用户和服务器,确保数据发送到正确的客户机和服务器;   2)加密数据以防止数据中途被窃取;   3)维护数据的完整性,确保数据在传输过程中不被改变。 一、什么是SSL? SSL或者Secure Socket Layer