一、保护HTTP的安全

1.功能:
.服务器认证:
客户端知道它是在与真正的服务器进行通信
.客户端认证:
服务器知道它是在与真正的客户端进行通信
.完整性:
                        服务器与客户端的数据不会被修改
.加密:
客户端与服务器的对话是私密的,不会被窃听
.效率:
运行足够快的算法
.普适性:
所有客户端和服务器都支持这些协议
.管理的可扩展性
在任何地方的任何人都可以进行安全通信
.适应性
能够支持当前最知名的安全方法
2.HTTPS
HTTPS在HTTP下面提供了一个传输级的安全密码层                 
用SSL的输入/输出取代TCP的调用
二、数字加密
1.密码
加密之前的原始报文称为明文
使用密码之后的编码报文成为密文    
2.使用密钥的密码
通过使用密钥来产生不同的加密密文
3.数字密码
C= E(p,e)
P = D(c, d)
            C:经过编码的密文
E:编码函数
P:明文报文
e:编码密钥
D:解码函数
d:解码密钥
三、对称密钥加密技术
编码使用的密钥值和解码使用的密钥值相同(e = d),统称为k
1.密钥长度与枚举攻击
枚举攻击:
用暴力法去尝试所有的密钥值
2.建立共享密钥
发送者和接收者在互相对话之前要有一个共享的保密密钥,如果有N个节点,每个
节点都要与其他N-1个节
3.公开密钥加密技术
不为每个节点对话使用单独的密钥,而是使用非对称密钥:一个用来对主机报文进行
编码,一个用来对主机报文进行解码;编码密钥是公开的,但只有主机知道解码密钥
四、数字签名
说明是谁编写的报文并且该报文并没有篡改过
1.签名是加了密的校验和
数字签名是附加在报文上的特殊加密检验码
a.节点A将变长报文提取为定长的摘要
b.节点A对摘要应用了一个签名函数,该函数将用户的私有密钥作为参数
c.节点A将签名附加到报文的末尾发给节点B
d.节点B需要确定报文确实是节点A写的,对前面进行检测
五、数字证书
1.内容
.对象的名称
.过期时间
.证书发布者
.来自证书发布者的数字签名
2.用证书对服务器进行验证
通过HTTPS安全连接上服务器后,浏览器会自动获取所连服务器的数字证书
服务器证书:
.Web站点的名称和主机名
.Web站点的公开密钥
.签名颁发机构名称
.签名颁发机构的签名
六、HTTPS
1.概述
将HTTP报文发送给TCP之前发送给了一个安全层.,对其进行加密
2.方案
HTTPS
3.建立安全传输
a.对于http,客户端发送一条到Web服务器端口80的tcp连接,接受服务器响应,然后关闭连接
b.对于https,客户端打开到web服务器端口443的tcp连接,然后初始化SSL,对加密
参数进行沟通,交换密钥等,然后将请求报文加密并发送给ssl层
4.SSL握手
.交换协议版本号
.选择一个两端都了解的密码
.对两端密码的身份进行认证
.生成临时的会话密钥,以便加密信道         
SSL支持双向认证,将服务器证书承载回客户端,客户端证书承载会服务端
5.站点证书有效性
验证步骤:
a.日期检测
检测是否过期
b.签名颁发者可信度检测
c.签名检测
对签名使用颁发机构的公开密钥,并将其与检验码进行比较
d.站点身份检测
浏览器会验证证书中的域名是否和将要访问服务器的域名是否一致
七、通过代理以隧道形式传输安全流量
客户端使用服务器的公开密钥对发往服务器的数据进行加密时,代理不能读取http首部,
故无法知道将请求转发到何处
解决办法:
a.https ssl 隧道协议:客户端在开始加密之前以明文方式告知代理连接的host和port,
通过CONNECT扩展方法

Http协议(6)—安全HTTP相关推荐

  1. 常用开源协议介绍以及开源软件规范列表

    1. 开源协议介绍 GPL: General Public License,开源项目最常用的许可证,衍生代码的分发需开源并且也要遵守此协议.该协议也有很多变种,不同变种要求会略微不同. MPL: MP ...

  2. Redis 笔记(11)— 文本协议 RESP(单行、多行字符串、整数、错误、数组、空值、空串格式、telnet 登录 redis)

    RESP 是 Redis 序列化协议Redis Serialization Protocol 的简写.它是一种直观的文本协议,优势在于实现异常简单,解析性能极好. ​ Redis 协议将传输的结构数据 ...

  3. HTTP 协议入门 — (TCP/IP协议族、通信传输流、URI 与 URL 的区别、Cookie 状态管理、HTTP 支持的方法、状态码类别、HTTP 首部字段)

    TCP/IP协议族 在介绍 HTTP 协议之前,我们先对 TCP/IP 协议族有个大概的了解,TCP/IP 协议从上到下主要分为应用层.传输层.网络层和数据链路层,各层的主要功能如下表所示: 协议层 ...

  4. 【JavaWeb】servlet与http请求协议

    Servlet: 概念: server applet (服务端小程序)运行在服务器端的小程序 Servlet就是一个接口,定义了Java类被浏览器访问到(Tomcat识别)的规则. 将我我们自定义一个 ...

  5. synopsys PCIE IP协议解析

    synopsys PCIE IP协议解析 1.Overview Core支持单个Pcie内核的Loopback功能,该功能主要为了做芯片验证,以及在没有远程接收器件的情况下完成自己的回环.同时,Cor ...

  6. 用户自定义协议client/server代码示例

    用户自定义协议client/server代码示例 代码参考链接:https://github.com/sogou/workflow message.h message.cc server.cc cli ...

  7. Thrift协议与传输选择

    1 协议 Thrift 可以让用户选择客户端与服务端之间传输通信的消息协议类别,如我们前面所讲总体划分为文本 (text) 和二进制 (binary) ,为节约带宽,提高传输效率,一般情况下使用二进制 ...

  8. TCP/UDP协议基本概念

    TCP和UDP协议是TCP/IP协议的核心. TCP 传输协议:TCP 协议是一TCP (Transmission Control Protocol)和UDP(User Datagram Protoc ...

  9. 【网站汇总】单片机常用通讯协议

    1.UART UART协议快速扫盲(图文并茂+超详细)_GREYWALL-CSDN博客 UART串口协议详解 - 知乎 基于STM32之UART串口通信协议(一)详解 - LLLIN000 - 博客园 ...

  10. RPC(远程过程调用协议)介绍

    RPC框架解释 谁能用通俗的语言解释一下什么是RPC框架? -远程过程调用协议RPC(Remote Procedure Call Protocol) 首先了解什么叫RPC,为什么要RPC,RPC是指远 ...

最新文章

  1. byte转文件流 下载到本地
  2. java phantomjs_Java爬虫:Jsoup + Phantomjs
  3. matlab treeview,treeview控件
  4. Vue 响应式原理(双向数据绑定) 怎样实现 响应式原理?
  5. mybatis获取oracle xmltype_Mybatis【入门】
  6. new string(abc)创建了几个对象_面试题系列第2篇:new String()创建几个对象?有你不知道的...
  7. 16年毕业,刚入行软件测试,就拿到这么多薪资......因为稳定的时刻学习
  8. java中如何查看代码运行时间?
  9. 基于SSM的酒店客房管理系统的设计(包含数据库、完美运行、可远程调试)
  10. 世嘉MD游戏开发【十四】:SRAM存档和读档
  11. php圆周长怎么求,圆的周长怎么求 公式是什么
  12. 陶博士-选股思路-如何应用月线反转
  13. 实现IE6、IE7、IE8多版本浏览器共存
  14. 帧中继和路由协议详解-在帧中继点到点子接口上运行EIGRP
  15. 分支语句和循环语句(分支语句)
  16. Centos7 源码编译安装linux longterm 内核4.19.47
  17. 宏观经济学第13版多恩布什笔记和答案
  18. 你有什么样的职业规划?
  19. net 服务端接口 存储,发送 app短信验证码
  20. ×××游戏入门:×××的基本部件

热门文章

  1. VS中lib和dll
  2. Jupyter notebook 导出PDF的3种方法
  3. python爬虫豆瓣250_python爬虫二 爬取豆瓣Top250上
  4. intellij idea搭建springboot
  5. Laravel笔记记录
  6. UOJ.117.欧拉回路
  7. 012.Adding a New Field --【添加一个新字段】
  8. VMwareWorkstation设置U盘启动(或U盘使用)
  9. Brad Wilson写的 ASP.NET MVC 3 Service Location 系列文章索引
  10. LeetCode—209. 长度最小的子数组