http大家多少都有些了解,毕竟要上网的话是肯定会接触到它的。http有个很明显的缺点,就是传输是明文的,很不安全。针对这个情况,就推出了https,也就是http+ssl/tls。

  对于明文不安全的问题,大家想到的肯定就是加密了。那么怎么加密呢?

  第一种方法,采用对称加密。当客户端与服务器开始连接时,服务器向客户端先发送一个密钥,之后大家都用这个密钥进行加解密。这里会产生一个问题,就是服务器在发送密钥的时候,有可能会被中间人截获,那么加密也就没有意义了。

  第二种方法,采用非对称加密对第一种方法的密钥进行一层额外的加密。当连接开始时,服务器向客户端发送一个公钥,要求客户端用此公钥加密要使用的对称密钥,服务端用私钥解密出来后,大家再一起愉快的使用对称密钥进行传输。那这样安全吗?也不。因为中间人也可以截获服务端发送的公钥(称为A),然后将自己生成的一个公钥(称为B)发送给客户端,那么当客户端发送用公钥B加密后的对称密钥时,中间人先用自己的私钥将对称密钥解出,再用公钥A加密发送给服务端,这样中间人也就顺利得到了对称密钥。那么这样也不安全。

  这时候我们发现如果只有客户端与服务器两方的话,是无法完成安全的连接的。那么就引入权威的第三方,也就是我们常说的证书颁发机构。

  证书颁发机构颁发的证书包含以下信息:

    1.证书颁发机构

    2.服务端网址

    3.用证书颁发机构私钥加密后的服务端公钥

    4.用证书颁发机构私钥加密后的证书签名

  接下来说一下引入证书后的连接流程:

    1.服务端要向机构递交自己的公钥,生成属于自己的证书。

    2.客户端向服务端发起连接,服务端将证书发送给客户端。

    3.客户端收到证书后,首先是要验证证书的真伪。因为各大浏览器和操作系统已经维护了所有权威证书机构的名称和公钥。所以只要知道是哪个机构颁发的证书,也就可以解密出证书签名和服务端公钥了。客户端按照签名的规则生成一个证书签名,看是否与发过来的一致,一致的话就可以放心的使用发过来的公钥了。

    4.证书验证成功后,客户端使用传过来的公钥加密要使用的对称密钥,传回给服务端。

    5.服务端将对称密钥解出,然后双方开始使用对称密钥加解密进行交互。

  因为中间人没法得到机构的私钥,自然也就无法伪造证书,也就保证了安全。其实这也就是https的主体思想了,https在http协议的基础上加了ssl安全层, 以上所说的验证流程就是在ssl层中完成的。

我所了解的https的更多相关文章

  1. 【流量劫持】躲避 HSTS 的 HTTPS 劫持

    前言 HSTS 的出现,对 HTTPS 劫持带来莫大的挑战. 不过,HSTS 也不是万能的,它只能解决 SSLStrip 这类劫持方式.但仔细想想,SSLStrip 这种算劫持吗? 劫持 vs 钓鱼 ...

  2. HTTPS 互联网世界的安全基础

    近一年公司在努力推进全站的 HTTPS 化,作为负责应用系统的我们,在配合这个趋势的过程中,顺便也就想去搞清楚 HTTP 后面的这个 S 到底是个什么含义?有什么作用?带来了哪些影响?毕竟以前也就只是 ...

  3. 7.让网站支持http和https的访问方式

    平台之大势何人能挡? 带着你的Net飞奔吧!:http://www.cnblogs.com/dunitian/p/4822808.html#iis 怎么让网站在本地支持SSL?http://www.c ...

  4. HTTPS简介

    一.简单总结 1.HTTPS概念总结 HTTPS 就是对HTTP进行了TLS或SSL加密. 应用层的HTTP协议通过传输层的TCP协议来传输,HTTPS 在 HTTP和 TCP中间加了一层TLS/SS ...

  5. 猖獗的假新闻:2017年1月1日起iOS的APP必须使用HTTPS

    一.假新闻如此猖獗 刚才一位老同事 打电话问:我们公司还是用的HTTP,马上就到2017年了,提交AppStore会被拒绝,怎么办? 公司里已经有很多人问过这个问题,回答一下: HTTP还是可以正常提 ...

  6. WebAPi之SelfHost自创建证书启动Https疑难解惑及无法正确返回结果

    前言 话说又来需求了,之前对于在SelfHost中需要嵌套页面并操作为非正常需求,这回来正常需求了,客户端现在加了https,老大过来说WebAPi访问不了了,这是什么情况,我去试了试,还真是这个情况 ...

  7. 苹果强制使用HTTPS传输了怎么办?——关于HTTPS,APP开发者必须知道的事

    WeTest 导读 2017年1月1日起,苹果公司将强制使用HTTPS协议传输.本文通过对HTTPS基础原理和通信过程内容的讲解,介绍APP开发者在这个背景下的应对办法. 几周前,我们在<htt ...

  8. 【原创】免费申请SSL证书【用于HTTPS,即是把网站从HTTP改为HTTPS,加密传输数据,保护敏感数据】

    今天公司有个网站需要改用https访问,所以就用到SSL证书.由于沃通(以前我是在这里申请的)暂停了免费的SSL证书之后,其网站推荐了新的一个网站来申请证书,所以,今天因为刚好又要申请一个证书,所以, ...

  9. https 安全验证问题

    最近为了满足苹果的 https 要求, 经过努力终于写出了方法 验证 SSL 证书是否满足 ATS 要求 nscurl --ats-diagnostics --verbose https://你的域名 ...

  10. Ubuntu下配置apache开启https

    一.HTTPS简述随着网络的日常,信息安全越来越重要,传统的网站都是http协议明文传输,而HTTPS协议是由SSL+HTTP协议构建的可进行加密传输.身份认证的网络协议,比http协议安全. 那ht ...

随机推荐

  1. LVM创建过程

    磁盘挂载需求/cachesys 50G /journal 300G /wij 50G /dthealth 20G /data 500G /backup 500G #第1步,创建pv,并查状态信息.ls ...

  2. D3(没写完

    说在博客前 这篇博客有许多使用到 STL 的地方,由于本人实在是记不全,所以我也参考了北大的一些教材,就别说我黈力了 QwQ 数据结构 今天讲的是数据结构啦(也是我这个蒟蒻最喜欢的 一些天天见面的好盆 ...

  3. AS之Lint 工具

    AndroidStudio内置的Lint工具,对app中的代码规范带来了极大的方便.对内存泄漏.代码冗余.代码安全.国际化.代码规范等很多方面都能检测,是一款非常强大的工具! 使用: 在AS--> ...

  4. 自定义view实现画个闪烁的心

    package com.loaderman.lovecircledemo; import android.support.v7.app.AppCompatActivity; import androi ...

  5. flutter image_picker

    点击选中图片,底部弹窗让用户选择使用相册还是相机,用户选中选项后,跳转到对应的相册或者相机功能,结果将图片显示出来 image_picker: ^0.6.1+4 iOS使用image_picker需要 ...

  6. ASP.NET MVC 发布WIN SERVER2012

    首先在打开服务器管理,点添加角色和功能 这个名字自己设置不打紧 勾选web服务器,之后点下一步 在功能选择中勾选下面部分 之后点击工具选择服务,确保web服务正在运行 此时服务端告一段落,返回主机打开 ...

  7. Linux 常用命令之 mv cp scp

    1.mv 命令是move的缩写,用于文件(或文件夹)移动的. 1)将 luna 目录下的文件 a.txt,移动到 miracle 目录下: mv ./luna/a.txt ./miracle/ 2)将 ...

  8. Prometheus存储模型分析

    Prometheus是时下最为流行的开源监控解决方案,我们可以很轻松地以Prometheus为核心快速构建一套包含监控指标的抓取,存储,查询以及告警的完整监控系统.单个的Prometheus实例就能实 ...

  9. Pytorch笔记 (3) 科学计算2

    一.组织张量的元素 (1)重排张量元素 本节介绍在不改变 张量元素个数 和 各元素的值的情况下改变张量的大小 torch.Tensor类的成员方法 reshape() 参数是多个int类型的值. 如果 ...

  10. 深入理解java:4.3. 框架编程之MyBatis原理深入解析

    1 引言 本文主要讲解JDBC怎么演变到Mybatis的渐变过程,重点讲解了为什么要将JDBC封装成Mybaits这样一个持久层框架.再而论述Mybatis作为一个数据持久层框架本身有待改进之处. 2 ...