什么是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. java基础概念

    jre是java运行环境 jdk是java开发工具包 java源文件←编译class字节码文件←运行结构

  2. java 8 Lambda

    警告: 初学者随笔, 请关闭此网页, 以免浪费你的时间

  3. 生成不同尺寸dimen的xml文件以及文件夹

    import java.io.File; import java.io.FileNotFoundException; import java.io.FileOutputStream; import j ...

  4. Python随笔--继承

  5. 关于dom&bom

    javascript 有三部分构成,ECMAScript,DOM和BOM,根据宿主(浏览器)的不同,具体的表现形式也不尽相同,ie和其他的浏览器风格迥异. 1. DOM 是 W3C的标准:[所有浏览器 ...

  6. C# 索引和长度必须引用该字符串内的位置 LENGTH

    今天遇到了 索引和长度必须引用该字符串内的位置 的问题. 原因是实用 Substring 对字符串进行了前五位的截取,但是忽略了字符串本身不足五位的情况. 如果不足五位,直接将整个字符串赋值过来,添加 ...

  7. jq解决a连接锚点平滑过渡

    <!DOCTYPE html><html> <head> <meta charset="UTF-8"> <title>& ...

  8. Web应用增加struts2支持

    编辑Web应用的web.xml配置文件,配置Struts2的核心Filter.下面是增加了Struts2的核心 Filter配置的web.xml配置文件的代码片段. <!-- 定义struts2 ...

  9. Fiddle手机抓包

    Fiddler是一个http调试代理,它能 够记录所有的你电脑和互联网之间的http通讯,Fiddler 可以也可以让你检查所有的http通讯,设置断点,以及Fiddle 所有的“进出”的数据(指co ...

  10. DAY:3 列表

    列表元素提取 mes = ["北京","哈尔滨","长春","沈阳","天津"] print(mes ...