什么是HTTPS?

基于安全套接字层的超文本传输协议(HTTP over SSL),一个Netscape开发的Web协议。HTTPS在HTTP应用层的基础上使用安全套接字层(或者升级版传输层安全,Transport layer Security)作为子层。

为什么需要HTTPS?

HTTP(效率高)以明文方式发送内容,三大风险:1.窃听,2.篡改,3.冒充。

两者异同?

同:同一基础协议。

异:1.URL开头不同。2.HTTP标准80端口,工作与应用层;HTTPS标准443,工作在传输层。3.HTTP无加密和证书,HTTPS反之(免费证书少,需要一定费用)。

如何工作?

使用HTTPS连接时,服务器响应初始连接并提供它支持的加密方法。作为回应,客户端选择一个连接方法,两者交换证书验证身份。确保相同秘钥后传输加密信息,关闭连接。

SSL动作:1.验证服务器端,2.允许client和server选择加密算法和秘钥,确保双方支持。3.验证客户端。4.用公钥加密生成共享加密数据,5.创建加密的SSL连接。6.基于SSL连接传递HTTP请求。

如果用非对称加密,只能保证单项数据传输的安全性(公钥公开,可解私钥加密的数据)。

一、公钥如何获取

证书:网站的身份证(里面包含公钥),在用户访问时发给用户,让他们用里面的公钥加密数据。

CA:只有少数是权威公正的,比如VeriSign

所以企业也加入了对称秘钥提高安全性(也能节约时间,每一次session用session key加密运算非常快,降低公钥加密耗时)。那可能存在的问题就在证书上:1.证书伪造。2.证书篡改

那么在了解证书格式时,数字签名和摘要(对传输内容hash——>摘要,再通过CA私钥加密——>数字签名)是有利的防伪武器。

着重关注证书4点内容:1.机构名字CA,2.数字签名,3.证书持有者公钥,4.签名用到hash算法。

完全伪造证书:1.浏览器内嵌CA根证书,不认识直接认为危险证书。2.根据存在的CA名找到内置根证书和公钥对伪造的摘要解密,失败被认为危险证书。

篡改证书:一般是代理拿到证书后用公钥修改成自己的。1.根据证书的CA找到CA根证书和公钥对数字签名解密得到证书摘要。2.根据使用hash计算证书摘要。3.对比不一致则是危险证书。

HTTPS和HTTP(加密知识)的更多相关文章

  1. 网络协议 13 - HTTPS 协议:加密路上无尽头

    系列文章传送门: 网络协议 1 - 概述 网络协议 2 - IP 是怎么来,又是怎么没的? 网络协议 3 - 从物理层到 MAC 层 网络协议 4 - 交换机与 VLAN:办公室太复杂,我要回学校 网 ...

  2. 【转】Https内部机制基础知识

    互联网权威机构 - CA 机构,又称为证书授权 (Certificate Authority) 机构,浏览器会内置这些"受信任的根证书颁发机构" (即 CA). 数字证书 提及 H ...

  3. HTTPS中的加密验证部分理论

    为了加深自己对于https加密这一块的映象,决定写出来试试 就是在http层下面加了一个ssl层, 服务器将自己的公钥发送给证书机构,申请证书,证书机构首先会验证个服务器是否合法,线上或者线下,然后用 ...

  4. ESP32的Flash加密知识

    一.Flash 加密功能用于加密与 ESP32-S2 搭载使用的 SPI Flash 中的内容.启用 Flash 加密功能后,物理读取 SPI Flash 便无法恢复大部分 Flash 内容.通过明文 ...

  5. selenium 对https网站(加密证书)进行自动化测试

    由于公司需要,被测网站有证书加密,由于在selenium启动firefox的时候,它会重新建一个profile作为启动的profile,所以无论你怎么把站点设为可信任站点,在selenium启动的fi ...

  6. https验证新发现-老知识

    HttpsURLConnection.setDefaultHostnameVerifier(hostnameVerifier); 可以设置https全局的域名校验规则 HttpsURLConnecti ...

  7. 非对称加密与HTTPS(转)

    序:HTTPS更安全,为什么? 因为HTTP协议本身毫无安全性可言. 当你访问一个纯HTTP的网站(以及与这个网站有任何网络交互)时,你发出去一个请求.在这个请求到达网站服务器的路途上,不管是你家的路 ...

  8. HTTPS学习(一):准备知识

    div.example { background-color: rgba(229, 236, 243, 1); color: rgba(0, 0, 0, 1); padding: 0.5em; mar ...

  9. HTTPS加密原理(转)

    Header HTTP.HTTPS在我们日常开发中是经常会接触到的. 我们也都知道,一般 Android 应用开发,在请求 API 网络接口的时候,很多使用的都是 HTTP 协议:使用浏览器打开网页, ...

随机推荐

  1. Python_Mix*匿名函数,sorted,filter,map,递归函数,二分法查找

    lambda匿名函数(函数名统一都叫lambda) 为了解决简单的需求而设计的一句话函数 语法: lambda 参数 返回值 n = lambda a,b: max(a,b) ret = n(9,4) ...

  2. presto 判断数据量是否大于一个比较小的值的优化

    问题来源于以下场景: 我们需要对一张数据表做导出文件操作,需要判断如果数据量不多的时候,直接导出提供下载,如果数据量超过一定数值,则异步处理导出和下载. 这里就引入一个问题,如果我们直接count一张 ...

  3. ubuntu16.04安装anaconda、环境配置

    anaconda默认3.7降级到3.6 conda install python=3.6 anaconda安装后找不到conda命令: 执行测试命令 conda info -e conda: comm ...

  4. 关于C#mvc用iis发布,虚拟目录的问题。

    mvc关于iis发布虚拟目录的问题,解决方法是修改代码中路径的方式,例如ajax中常用的为url:“/Home/Index”,可修改为 url: '@Url.Action("Index&qu ...

  5. Ubuntu 17.04版本下,opencv进行源码编译安装

    本文主要针对Ubuntu 17.04版本下,opencv进行源码编译安装.开发环境主要针对python 对 openCV库的调用. 安装 gcc cmake 编译环境 sudo apt-get ins ...

  6. mybatis源码解析之Configuration加载(四)

    概述 上一篇文章,我们主要讲了datasource的相关内容,那么<environments>标签下的内容就看的差不多了,今天就来看一下在拿到transationManager和datas ...

  7. ionic2APP 如何处理返回键问题

    1.APP中难免会有自定义各种modal.alert,modal或alert处于激活状态时android用户按物理返回键,页面被返回,而这些弹窗切没有被返回,一种解决办法是可以在每个组件内用生命周期钩 ...

  8. python的标准数据类型

    python有5种标准的数据类型 1. number(数字) int(有符号的整形) long(长整[也可以代表八进制和16进制]) float(浮点型) complex(复数类型) 2.string ...

  9. letCode-1

    日前,使用暴力法破解此题,认为这是很简单的算法,但是所有人都能想出来的算法,凭什么优秀?所以在看到了大神“Grandyang”的博客上精妙的解法,实在是认为自己需要修炼,在此写在这里是为了做笔记,加深 ...

  10. 2016/12/20 dplの课练

    1.个人博客的文件,只输出学生姓名 cat 111 |sed 's/[0-9a-zA-Z:/. -]//g' 2.只输出每个学生的url cat 111 |sed 's/.*:\/\///g' 3. ...