网络之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开发网络篇—监测网络状态 一.说明 在网络应用中,需要对用户设备的网络状态进行实时 ...
随机推荐
- JDBC(二)—— 获取连接池方式
## 获取数据库连接的方式 ### 方式一 ```javaDriver driver = new com.mysql.cj.jdbc.Driver(); String url = "jdbc ...
- 落谷P3041 [USACO12JAN]Video Game G
题目链接 多模式匹配问题,先建 AC 自动机. 套路性的搞个 DP: \(f[i][j]\) 表示前 \(i\) 个字符,当前在 \(AC\) 自动机上的节点是 \(j\) 能匹配到的最多分. 初始化 ...
- 记一次storm提交任务遇到的坑
摘要:主要是自己没有真正理解storm jar命令参数的意义. 情景复现: 在storm集群中使用命令提交后,在UI界面中,一直看不见任务提交上来的任务,但是在集群提交的shell界面中,是可以看到相 ...
- docker容器之间通过bridge进行通信
创建用户自定义bridge docker network create my-net # 创建了一个名为"my-net"的网络 将容器加入到"my-net"中 ...
- 最详细Python批量字典暴力破解zip密码
工具破解 前两天在网上下来了一波项目案例,结果全是加密的压缩包,于是去网上找了一个压缩包破解的工具 苦于工具破解太慢,一个压缩包要好久,解压了三个之后就放弃了,准备另寻他法 密码字典 巧的是破解的三个 ...
- js--数组的map()方法的使用
javaScript中Array.map()的用法 前言 作为一个刚刚踏入前端世界的小白,工作中看到身边同事大佬写的代码就像古诗一样简介整齐,而我的代码如同一堆散沙,看上去毫无段落感,而且简单的功能需 ...
- Hexo使用思维导图插件
进入Hexo博客的根目录,执行下面命令安装插件 npm install hexo-simple-mindmap 添加思维导图格式,按层级顺序 {% pullquote mindmap mindmap- ...
- 移动端 Swiper
一.什么是swiper 开源.免费.强大的触摸滑动插件 Swiper常用于移动端网站的内容触摸滑动 Swiper能实现触屏焦点图.触屏Tab切换.触屏多图切换等常用效果 #二.如何使用 1.首先加载插 ...
- 图像处理论文详解 | Deformable Convolutional Networks | CVPR | 2017
文章转自同一作者的微信公众号:[机器学习炼丹术] 论文名称:"Deformable Convolutional Networks" 论文链接:https://arxiv.org/a ...
- Spark-4-为何要处理数据倾斜
什么是数据倾斜 对Spark/Hadoop这样的大数据系统来讲,数据量大并不可怕,可怕的是数据倾斜. 何谓数据倾斜?数据倾斜指的是,并行处理的数据集中,某一部分(如Spark或Kafka的一个Part ...