什么是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. Word中使用宏处理表格内容 小记

    不解释,直接上代码... Sub 删除表格列WT0818() '此符号是注释 ' 删除表格列WT0818 宏 ' For Each tb In ActiveDocument.Tables  //wor ...

  2. 一个简单的windows勒索软件分析

    根据分析,此病毒是一个勒索软件,通过修改登录用户密码,留下勒索QQ号码向用户索要金钱. 它调用了Kernel32.dll里的WinExec来执行更改用户密码的cmd命令,密码为107289,更改完密码 ...

  3. lnamp环境搭建博客、论坛

    实验环境:Centos6.5 源码安装Nginx yum安装Apache.php.Mysql Mysql: yum -y install mysql-server  安装Mysql数据库 /etc/i ...

  4. Ubuntu 中文拼音输入法键入异常

    如果确定系统装的OK,可以修复ubuntu Ctrl+Alt+t切出终端,输入命令:  " ibus-daemon -drx",然后再输入拼音试一试就会OK .

  5. bash循环

    bash脚本-循环02   bash脚本编程:循环 执行流程: 1.顺序执行 2.选择执行:if 3.循环执行:for,while,until 1.循环执行的条件 进入条件: for:列表元素非空 w ...

  6. C语言作业(心理魔术)

    #include "stdafx.h" #include "stdio.h" #include "stdlib.h" #include &q ...

  7. C++二维数组、指针、对象数组、对象指针

    项目中用到,随手记一下: 1.二维数组.与指针 创建二维数组指针的方式: a.已知一维的大小 1 int **array=new int *[rows]; 2 (for int i=0;i<ro ...

  8. 初识Hibernate框架,进行简单的增删改查操作

    Hibernate的优势 优秀的Java 持久化层解决方案  (DAO) 主流的对象—关系映射工具产品 简化了JDBC 繁琐的编码 将数据库的连接信息都存放在配置文件 自己的ORM框架 一定要手动实现 ...

  9. VFS 上传文件到sftp 报错 包含中文路径 或者中文文件名称

    之前用Apache commons-vfs工具进行ftp操作(FTP服务器是 FileZilla Server) 上传本地文件 到 ftp服务器上,如果文件名称 包含 中文 报错 org.apache ...

  10. UML与软件建模:第二次作业(类图中类的表示)

    一.类图 (1)类图定义 类图,是UML(统一建模语言)中用于描述"类"以及"类与类"之间的示意图.它形象的描述出了系统的结构,帮助人们理解系统. 类图是在&q ...