Http协议(6)—安全HTTP

一、保护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://www.mzph.cn/news/273363.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Apache JMeter--网站自动测试与性能测评

Apache JMeter--网站自动测试与性能测评2013-02-28 15:48:05标签:JmeterFrom:http://bdql.iteye.com/blog/291987 出于学习热情,翻译总结Emily H. Halili的《Apache JMeter》一书的部分内容。 JMeter的简介 可以肯定的是,JMeter至少符合以下几…

hdu3081 Marriage Match II(最大流)

转载请注明出处: http://www.cnblogs.com/fraud/ ——by fraud Marriage Match II Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 2410 Accepted Submission(s): 820 Problem Descriptio…

log4net 日志框架的配置

log4net 日志框架的简单配置 添加对log4net程序集的引用 选择程序集文件添加引用即可,需要注意的是需要添加相应程序版本的程序集,如果你的应用是基于.netFramework2.0,则应选择net 2.0版本的程序集 修改配置文件,配置log4net相…

CSS 设计指南(第3版) 初读笔记

第1章 HTML标记与文档结构 关于<title>标签&#xff1a;搜索引擎会给<title>标签中的文字内容赋予很高的权重。而且这些文字也会作为网页标题出现在搜索结果列表中。 无论你想了解哪个HTML元素&#xff0c;第一个要问的问题都应该是&#xff1a;它是块元素&#xf…

Objective-C中的@property和@synthesize用法

代表“Objective-C”的标志&#xff0c;证明您正在使用Objective-C语言 Objective-C语言关键词&#xff0c;property与synthesize配对使用。 功能&#xff1a;让编译好器自动编写一个与数据成员同名的方法声明来省去读写方法的声明。 如&#xff1a; 1、在头文件中&#xff1a;…

Android用户界面程序设计示例

[例1]按钮和Toast弹出对话框 1 [例2] TextView文本框 &#xff08;1&#xff09; 3 [例3]TextView文本框 &#xff08;2&#xff09; 4 [例4]编辑框EditText 4 [例5]单选RadioButton 6 [例6]Toast的用法简介 8 [例7]多选checkbox 12 [例8]菜单Menu 14 …

Spring Thread Pool 线程池的应用

Spring and Java Thread example 扫扫关注“茶爸爸”微信公众号坚持最初的执着&#xff0c;从不曾有半点懈怠&#xff0c;为优秀而努力&#xff0c;为证明自己而活。Download it – Spring-Thread-Example.zip (22 KB)转自&#xff1a;http://www.mkyong.com/spring/spring-and…

Emule使用Upnp,解决Lowid和port not reachable的问题

路由器上钩选开启Upnp Emule->选择->扩展选项->Upnp&#xff0c; 服务器&#xff1a;【从URL更新】http://upd.emule-security.org/server.met转载于:https://www.cnblogs.com/zhyong/p/4422139.html

Android动画及滑动事件冲突解决(转载)

原文链接&#xff1a;http://blog.csdn.net/singwhatiwanna/article/details/38168103 Android开发中动画和事件处理是程序员迈向高手的必经之路&#xff0c;也是重点和难点。 此篇转载文章思路清晰&#xff0c;结构合理&#xff0c;用图文混合的方式完美的讲解了动画和事件冲突…

使用临时表解决union和order by不能同时使用的问题

最近遇见了这样一个问题&#xff0c;有4张表&#xff0c;A&#xff08;单据&#xff09;表&#xff0c;B&#xff08;产品&#xff09;表&#xff0c;C&#xff08;产品类型&#xff09;&#xff0c;D&#xff08;单据产品关联表&#xff09;。 B表有唯一对应的类型C&#xff…

2.3线性表的链式存储和运算—双向链表

以上讨论的单链表的结点中只有一个指向其后继结点的指针域next&#xff0c;因此若已知某结点的指针为p&#xff0c;其后继结点的指针则为p->next &#xff0c;而找其前驱则只能从该链表的头指针开始&#xff0c;顺着各结点的next 域进行&#xff0c;也就是说找后继的时间性能…

通过栈(Stack)实现对树的遍历

说到数的遍历树&#xff0c;长期以来的第一印象都是通过递归去实现。然而今天看了某位前辈的代码&#xff0c;才发现使用栈去实现遍历是那么简单。理论上通过数组也是可以实现同等功能的&#xff0c;毕竟Stack也是通过数据去实现的。 package com.sysway.ui.widget;import jav…

StroyBoard中UICollectionView中添加Header和footer

到Storyboard中&#xff0c;选择collection view controller中的"Collection View"。在Attributes inspector中&#xff0c;选择"Section Header"和"Section Footer",一旦选中你就会在屏幕中看到下面的的显示&#xff1a; 最重要的是&#xff0c…

树形结构数据汇总查询解决方案+优化求助

最近遇到一个地区数据汇总的问题&#xff0c;地区下的地址呈树形结构&#xff0c;&#xff08;简化结构&#xff09;如A市下有B、C区&#xff0c;B区下有D、E街道。先要查询所有地区的人数&#xff08;包括子区域&#xff09;&#xff0c;如A的人数直属A的人数B的人数C的人数D的…

Dom4j 学习笔记

dom4j 是一种解析 XML 文档的开放源代码 XML 框架。dom4j下载地址 本文主要记载了一些简单的使用方法。 一、xml文件的解析 dom4j既可以解析普通的xml文件&#xff0c;也可以解析一个InputStream&#xff0c;先看看xml文件长什么样子&#xff1a; <books><book>&l…

交叉连接(CROSS JOIN)的实际应用

一次偶然的机会&#xff0c;使用到了万年不用的交叉连接&#xff08;CROSS JOIN&#xff09; 业务场景如下&#xff1a; 1、存在多个运营商&#xff0c;每个运营商下面都有各种类型的设备&#xff0c;不同运营商的设备不完全相同&#xff1b; 2、任何设备有且仅有两种用途‘…

C# xml文件读取与修改

c#读写xml文件已知有一个XML文件&#xff08;bookstore.xml&#xff09;如下&#xff1a; Code<?xml version"1.0" encoding"gb2312"?><bookstore> <book genre"fantasy" ISBN"2-3631-4"> <title>Obero…

外连接从表过滤

1、使用left join时从表的过滤 WITH a AS( SELECT A aid FROM dual UNION ALL SELECT B FROM dual UNION ALL SELECT C FROM dual UNION ALL SELECT D FROM dual UNION ALL SELECT E FROM dual ), b AS( SELECT A aid,10 num,1 type FROM dual UNION ALL SELECT B,20,2 FROM d…

ORACLE将查询字段指定为某种类型

SELECT CAST(张三 AS VARCHAR2(20)) name FROM dual; 一般来说在查询时很少有用到这种语句&#xff0c;但是使用CREATE TABLE ... AS SELECT ...语句的时候这个就很好用了 --建表 CREATE TABLE test01 AS SELECT 张三 name FROM dual; --正常插入数据 INSERT INTO test01 SEL…

分组查询最晚一条数据(ORACLE)

现有客户表&#xff0c;交费表&#xff0c;需查询每个存在交费记录客户的最后一笔交费信息 这里提供两种方式 注&#xff1a;客户不会在同一时间有两条交费&#xff0c;SQL可直接执行 --查询客户名称&#xff0c;最后一笔交费时间&#xff0c;以及最后一笔交费金额 WITH --客…