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,一经查实,立即删除!

相关文章

restful处理

重写/覆盖 HTTP 方法 一些HTTP客户端仅能处理简单的的GET和POST请求,为照顾这些功能有限的客户端,API需要一种方式来重写HTTP方法. 尽管没有一些硬性标准来做这事,但流行的惯例是接受一种叫 X-HTTP的请求头,重写是用一个字符串值…

Http协议(7)—Http缓存

一、冗余的数据传输有些客户端访问服务器页面时,服务器会多次响应同一个页面的副本给客户端,这会产生冗余数据,故使用缓存就可以保留第一条相应的副本,以后就响应缓存的数据二、带宽瓶颈在需要下载大型文件时,如果在局域网中放入该文件的一个…

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

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

Linux 重命名文件

inux下重命名文件或文件夹的命令mv既可以重命名,又可以移动文件或文件夹. 例子:将目录A重命名为B mv A B 例子:将/a目录移动到/b下,并重命名为c mv /a /b/c 其实在文本模式中要重命名文件或目录的话也是很简单的,我们只…

苦逼的.net程序员, 转行高富帅iOS移动开发

先知先觉,后知后觉 **- 在做了两三年.net开发后, 还是感觉.net不是那么牛逼, 许多给我一起搞.net的同学, 不是去做了android, 就是去做了iOS, 或者java; 这让我对.net的前景有了一些动摇, 在三思考之后,还是决定放弃.net ,理由很简单,就是工资有点低; 由于蓝鸥iOS培训机构,一…

C# DataTable的詳細使用方法

在项目中经经常使用到DataTable,假设DataTable使用得当,不仅能使程序简洁有用,并且可以提高性能,达到事半功倍的效果,现对DataTable的使用技巧进行一下总结。 一、DataTable简单介绍 (1)构造函数 DataTable() 不…

mysql设置环境变量

-- 设置或修改系统日志有效期SET GLOBAL expire_logs_days8;SHOW VARIABLES LIKE %expire_logs_days%;-- 设置或修改系统最大连接数SET GLOBAL max_connections 2648;SHOW VARIABLES LIKE %max_connections%;-- 修改MYSQL自动编号步长SHOW VARIABLES LIKE %auto_increment%;SE…

CentOS7 编译安装LVS 互为主备 (实测 笔记 Centos 7.0 + ipvsadm 1.27 + keepalived 1.2.15 )

环境: 系统硬件:vmware vsphere (CPU:2*4核,内存2G,双网卡) LVS服务器(两台): 系统:Centos7.0 64位(LVSkeepalived) LvsMaster:192.168.1.21 (主…

shell 执行mysql语句

<pre name"code" class"plain">#变量定义 sqlname"test.sql" dir"/sdb2/backup/mysql_db_backup/backup/databases" host"127.0.0.1" user"root" passwd"root" dbname"test" #导…

hdu3081 Marriage Match II(最大流)

转载请注明出处&#xff1a; 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…

CentOS6安装tomcat6

首先我们要下载一个tomcat的安装包 http://ftp.riken.jp/net/apache/ wget http://ftp.riken.jp/net/apache/tomcat/tomcat-6/v6.0.41/src/apache-tomcat-6.0.41.tar.gz 下载好后解压到一个以目录&#xff0c;我的是放在了/usr/apache-tomcat-6.0.41 tar –zxvf apache-t…

修复 XE7 , XE8 Frame 内 PopupMenu 快捷键失效问题

问题&#xff1a;将 Frame 含 PopupMenu 放置 Form 后&#xff0c;在 Frame 里的 PopupMenu 失效&#xff0c;无法按快捷键。 适用&#xff1a;(XE7 update 1 / XE8) for Windows 平台 修正方法&#xff1a; 请将源码 FMX.Forms.pas 复制到自己的工程目录里&#xff0c;再进行修…

Vmware Centos中安装vmtools工具

在Vmware安装虚拟机是很好玩的&#xff0c;可是有时候在虚拟机与本地主机之间相互传递文件时却是一件比较麻烦的事情&#xff0c;这时候我们安装一个vmtools的工具这样我们就可以随意的在虚拟机与主机之间相互拖拽文件&#xff0c;下面我们就来说说如何安装vmtools 点击虚拟机会…

关于Dapper - 能否不创建定义表对应类使用

1.是可以的&#xff0c;而且支持的很棒 1 /*2 lcg3 * 1.看看能不能用4 * 2.怎么用 - 引哪个文件即可&#xff1f;5 */6 7 //数据库连接参数8 private const string strConn "Data SourceAlen;Initial Catal…

动态规划 背包九讲的实现。

最近在学习动态规划&#xff0c;会了不少基础的之后就开始挑战比较困难的背包问题了&#xff0c;我这里自己写了每一讲的问题&#xff0c;解析&#xff0c;代码&#xff0c;注释。如果dp还没入门的孩纸就去看看我的另一篇文章http://www.cnblogs.com/luyi14/p/4344946.html …

Linux中查看负载

行车过桥 一只单核的处理器可以形象得比喻成一条单车道。设想下&#xff0c;你现在需要收取这条道路的过桥 费 — 忙于处理那些将要过桥的车辆。你首先当然需要了解些信息&#xff0c;例如车辆的载重、以及 还有多少车辆正在等待过桥。如果前面没有车辆在等待&#xff0c;那么你…

flask小demo-数据查询

mysqlconn-flask.py 1 # -*- coding: utf-8 -*-2 #codingutf-83 4 import os5 import mysql.connector6 from flask import Flask, request, render_template7 8 app Flask(__name__)9 10 def db(): 11 # 注意把password设为你的root口令: 12 conn mysql.connect…

js实现的文件下载

/** * Javascript 多文件下载 * author Barret Lee * email barret.chinagmail.com */var Downer (function(files) { var h5Down !/Trident|MSIE/.test(navigator.userAgent); // try{ // h5Down document.createElement("a").hasOwnProperty("download&quo…

Jersey注解详解

REST 在 2000 年由 Roy Fielding 在博士论文中提出&#xff0c;他是 HTTP 规范 1.0 和 1.1 版的首席作者之一。 REST 中最重要的概念是资源&#xff08;resources&#xff09;&#xff0c;使用全球 ID&#xff08;通常使用 URI&#xff09;标识。客户端应用程序使用 HTTP 方法&…

Struts2配置文件详解

解决在断网环境下,配置文件无提示的问题我们可以看到Struts.xml在断网的情况下,前面有一个叹号,这时,我们按alt/ 没有提示,这是因为” http://struts.apache.org/dtds/struts-2.0.dtd”是一个网络地址,如果上网的话,IDE会自动帮我们下载此文件,如果断网就没有办法了,但是我们还…