网络之HTTPS
HTTPS的基本概念
HTTPS是披着SSL衣服的HTTP,由网景公司创造,所有浏览器都支持该协议。
HTTPS = HTTP+SSL(TLS),TLS是传输层加密协议,前身是SSL协议。HTTPS没有将未加密的HTTP报文直接发送给TCP,HTTPS在讲发文发送TCP之前,先发送给安全层SSL或者TLS,进行加密,现在HTTP安全层是通过SSL将其替代协议TLS来实现的。
HTTP和HTTPS的区别
SSL是安全层,建立在SSL隧道上需要做隧道认证,至少要完成单向认证或者双向认证,之后数据,在传输的过程中都进行了加密处理;通常HTTP使用的业务层做的数据字段的加密是业务数据的加密,传输过程中是没有加密的;而HTTPS是经过加密的,安全认证的。
- HTTP是无状态的,明文传输,而HTTPS是经过SSL/TLS加密的安全传输。
- HTTP连接端口是80,HTTPS是443,两者的连接端口也不相同。
- HTTP不需要申请证书,HTTPS需要向CA机构申请证书。
- HTTP因为不需要加密因此传输更快,HTTPS效率慢但是更安全。
HTTPS的优点
- 服务端认证(防伪装)
- 客户端认证(防伪装)通常现在web服务,不需要做客户端认证,只需要做服务器认证;
- 客户端和服务器的数据不会被修改,因为整个传输过程是加密的。(完整性保护)
- 客户端和服务器端的对话是加密的,不用担心被窃听,使用抓包工具监听HTTPS端口抓不到数据。
- 所有客户端和服务器都支持这些协议
对称加密和非对称加密
对称加密
加密和解密都是用同一个密匙,他的优点是运算速度块,缺点是传输秘钥不安全。
非对称加密
又称作公开秘钥加密,加密和解密都使用不同的秘钥。
公钥所有人都能获取,通信发送方获得接收方的公钥后,可以使用公钥进行加密,接收方收到通信内容后使用私钥进行解密。
有点事更安全的传输数据,缺点是运行速度慢。
HTTPS采用的加密方式
对称加密效率高但是不安全,非对称加密安全但是运算慢。HTTPS采用混合加密机制,使用非对称密钥加密,传输对称密钥加密方式所需要的密钥,从而保证安全性;获取密钥后,再使用对称加密进行通信,保证效率。
认证
CA是数字证书认证机构是客户端与服务器双方都可信赖的第三方机构。
服务器的运行人员向CA提出公开密匙的申请,CA在判断申请者的身份后(有时会判断这个域名是不是属于你的公司),会对已经申请的公开密钥做数字签名,然后分配这个已签名的公开密钥,并将该公开的密钥证书绑定在一起。CA可以给你签发OV证书或者EV证书,他们还会人工验证你的公司是否符合他们的签发标准,这些是收费的,通常收费的证书申请的有效期是1年,免费申请的是3个月(DV证书Domain Validation)。
证书的组成
域名证书,证书链。CA还会根据你所申请的证书的配置环境是Nginx,IIS,Tomcat分为不同的文件,但是说到底其实我们需要的是一个证书链。
证书中包含:颁发机构(用来寻找链中的下一个验证节点),证书的有效期,证书申请信息,公钥(与服务器的私钥是一对),签名(用于验证证书内容是否被篡改)
流程如下,当用户访问已经申请证书的域名时,浏览器先判断这个服务器上的证书是不是可信的,关键一步是需要解密证书的签名部分,因为签名是由中间证书签发的,所以需要中间证书的公钥进行解密。如果解密后验证这个证书是合法的,然后再判断中间证书是否合法,因此仅需向上一级索要公钥,验证签名,直到进行到根证书,根证书是在操作系统中的,也就是在本地中可以找到根证书的公钥,如果系统没有,需要手动导入。
使用openssl怎么制造证书
首先安装OpenSSL软件,然后通过命令
openssl req -new -newkey rsa:2048 -nodes -keyout www.test.com.key -out www.test.com.csr
进入交互界面后,填写你的国家麻城市没名字,申请的域名,邮箱等。
申请后会得到两个文件一个是xxx.key,另一个是xxx.csr。
从域名角度分析,证书分为单域名,通配符域名,多域名证书。csr文件包含了证书申请的信息,加密和散列算法以及公钥,同时也有了自己的私钥。
CYC2018-Note
网络之HTTPS的更多相关文章
- ios9网络请求https适配
发现问题:今天升级Xcode 7.0 bata发现网络访问失败.输出错误信息: The resource could not be loaded because the App Transport S ...
- 网络协议-HTTPS
转载:http://www.renfed.com/2017/02/03/https/ 一.解决问题 HTTPS解决的是中间人攻击 公网:域名解析--IP:所以中间站点抢答返回错误IP 局域网:路由器找 ...
- NodeJS学习笔记 (9)网络服务-https(ok)
模块概览 这个模块的重要性,基本不用强调了.在网络安全问题日益严峻的今天,网站采用HTTPS是个必然的趋势. 在nodejs中,提供了 https 这个模块来完成 HTTPS 相关功能.从官方文档来看 ...
- [Python] 前程无忧招聘网爬取软件工程职位 网络爬虫 https://www.51job.com
首先进入该网站的https://www.51job.com/robots.txt页面 给出提示: 找不到该页 File not found 您要查看的页已删除,或已改名,或暂时不可用. 请尝试以下操作 ...
- 网络安全通信https工作原理
HTTPS其实是有两部分组成:HTTP + SSL / TLS, 也就是在HTTP上又加了一层处理加密信息的模块.服务端和客户端的信息传输都会通过TLS进行加密,所以传输的数据都是加密后的数据 1. ...
- 网络编程-HTTPS
明文: 对称加密: 非对称:(公钥:pk 私钥:sk) 对称+非对称: 先用非对称方式发送num1给server,server用私钥得出key(由num1算出来),自此,约定C.S以此key(num1 ...
- iOS开发——网络篇——数据安全(MD5),HTTPS,检测网络状态
一.数据安全 1.提交用户的隐私数据一定要使用POST请求提交用户的隐私数据GET请求的所有参数都直接暴露在URL中请求的URL一般会记录在服务器的访问日志中服务器的访问日志是黑客攻击的重点对象之一 ...
- 理解Docker(6):若干企业生产环境中的容器网络方案
本系列文章将介绍 Docker的相关知识: (1)Docker 安装及基本用法 (2)Docker 镜像 (3)Docker 容器的隔离性 - 使用 Linux namespace 隔离容器的运行环境 ...
- iOS开发网络篇—监测网络状态(转)
文章转载自:http://www.cnblogs.com/wendingding/p/3950114.html iOS开发网络篇—监测网络状态 一.说明 在网络应用中,需要对用户设备的网络状态进行实时 ...
随机推荐
- 膜 zhouakngyang 宝典
持续更新! 注意:本文无 F12. about 周老师:怎么这么强! ZAKY 打 CF 大图:zaky cgr rk1 大图:zaky 传奇 \(1\) ZAKY 打 ATC ZAKY 切题
- 关于Android手机CPU不同架构的问题
1.共有7种架构 armeabiv-v7a: 第7代及以上的 ARM 处理器.2011年15月以后的生产的大部分Android设备都使用它. arm64-v8a: 第8代.64位ARM处理器,很少设备 ...
- Android开源项目分类汇总-转载
太长了,还是转载吧...今天在看博客的时候,无意中发现了@Trinea在GitHub上的一个项目Android开源项目分类汇总,由于类容太多了,我没有一个个完整地看完,但是里面介绍的开源项目都非常有参 ...
- 纯css 实现文本换行
业务场景:dialog中嵌套的表单,实现信息展示,由于存储路径过长并且在一行显示,导致多出的文字出现在弹出框外面了,页面极丑,所以需要将存储路径实现自动换行. 技术点:<p style=&quo ...
- 精尽Spring MVC源码分析 - WebApplicationContext 容器的初始化
该系列文档是本人在学习 Spring MVC 的源码过程中总结下来的,可能对读者不太友好,请结合我的源码注释 Spring MVC 源码分析 GitHub 地址 进行阅读 Spring 版本:5.2. ...
- Java基础语法吐血整理
前言 自己的Java理论知识方面一直都不是很好,决定从0开始好好总结下,把想到的和以前不确定的(查阅资料确定)的知识整理一下,加油!!坚持!!! Java概述 Java三大体系 1.JavaSE 标准 ...
- [日常摸鱼]bzoj2724蒲公英-分块
区间众数经典题~ http://begin.lydsy.com/JudgeOnline/problem.php?id=4839这里可以提交~ 题意大概就是没有修改的询问区间众数,如果有一样的输出最小的 ...
- s2-061 漏洞复现
0x00 漏洞简介 Apache Struts2框架是一个用于开发Java EE网络应用程序的Web框架.Apache Struts于2020年12月08日披露 S2-061 Struts 远程代码执 ...
- 从源码角度学习Java动态代理
前言 最近,看了一下关于RMI(Remote Method Invocation)相关的知识,遇到了一个动态代理的问题,然后就决定探究一下动态代理. 这里先科普一下RMI. RMI 像我们平时写的程序 ...
- Mysql 52条SQL语句性能优化策略汇总
1.对查询进行优化,应尽量避免全表扫描,首先应考虑在where及order by涉及的列上建立索引. 2.应尽量避免在where子句中对字段进行null值判断,创建表时NULL是默认值,但大多数时候应 ...