上次简单地介绍了IP层的安全,今天来介绍下在传输层提供安全性最主要的2个协议:安全套接字层(SSL)协议和传输

层安全(TLS)协议。TLS实际上就是SSL的IETF版本。

1.SSL服务

设计安全套接字层(secure socket layer,SSL)是为了对来自应用层的数据提供安全的压缩服务,SSL可接受来自应用层
任何协议的数据,一般典型的是HTTP协议,来自应用层的数据被压缩(可选),被签记和被加密,然后将它们传给可靠的传输
层协议如TCP。Netscape在1994年开发了SSL,1995年发布了第2版和第3版,本章讨论SSLv3.

分段

SSL首先将数据划分为等于或者小于2^14个字节的块。

压缩

在客户和服务器之间协商某一无损压缩方法对每个段进行压缩,这个服务是可选的。

报文完整性

要保持数据完整性,SSL使用密钥散列函数创建MAC(
Message Authentication Code)。

保密性

为了提供保密性,原始数据和MAC使用对称密钥加密方法进行加密。

成帧

给被加密的有效载荷增加一个头部,然后将它传给一个可靠的传输层协议。

2.安全参数

在上次讨论IPSec时,提高交换数据双方的任一方对每一个关联(SA)都需要一组参数,SSL具有相似的目的,但是方法是
不同的,没有安全关联,但有密码组和加密的密码一起组成安全关联。

密码组

对每次SSL会话,密钥交换,散列和加密算法一起定义密码组(cipher suite)。每个密码组以SSL开头后跟密钥交换算法并
用WITH将密钥算法与加密算法和散列算法分开。例如:
SSL-DHE-RSA-WITH-DES-CBC-SHA
定义DHE-RSA(临时的DIffie-Hellman RSA数字签名)以DES-CBC作为加密算法进行密钥交换而SHA所谓散列算法。注
意:DH是对应的Diffie-Hellman,DHE是临时的Diffie-Hellman。

加密的密码

安全参数的第二部分是称为加密的密码。为了报文的完整性和保密性。SSL需要6个密码加密的密码,4个密钥和2个初始化向量。
生成密码和加密过程如下图所示:
1.客户和服务器交换2个随机数,一个是客户生成的,另一个是服务器生成的。
2.客户和服务器时前面讨论过的某一种密钥交换算法交换预主密码(premaster secret)
3.对预主密码应用两个散列函数(SHA-1和MD5)生成48为的主密码(master secret)
4.对主密码应用预先规定的常数和同一组散列函数生成可变长的密码。

3.会话与连接

IP和TCP协议的特性是不同的,IP是无连接协议,而TCP是面向连接的协议,IPSec中的关联将无连接IP转换成面向连接的安全协议,
而TCP已是面向连接的。然而SSL设计者采用二级连接性的方法:会话(session)和连接(connection)。两个系统之间的会话是一次
关联,它能持续有很长的一段时间。在一次会话期间,连接可建立和终端若干次。
 在会话建立期间生成一些安全参数,一直有效直到会话终止(例如,加密组和主密钥),有些安全参数对每个连接必须重新生成
(或偶尔是可恢复的)(例如,6个密码)

4.四个协议

下面介绍SSL如何实施,SSL在两层上定义了四个协议:
记录协议(Record protocol)是承载者,它携带来自其他三个协议的报文,也携带来自应用层的数据。对传输层,通常是
TCP来说,来自记录协议的报文是它的有效载荷。
握手协议(Handshake protocol)向记录协议提供安全参数,它建立一个密码组并提供密钥和安全参数。它也实施用户对
服务器的鉴别,以及如需要的话服务器对用户的鉴别。
改变密码规则协议(change cipher spec protocol)用于发出加密密码准备就绪的通知。
警告协议(alert protocol)用户报告不正常的情况。

《数据通信与网络》笔记--SSL/TLS的更多相关文章

  1. 《HTTPS权威指南》读书笔记——SSL/TLS协议

    记录协议(record protocol) 负责在传输连接上交换所有底层信息 每一条记录以短标头开始,标头包含记录内容的类型.协议版本和长度 握手协议(handshake protocol) 整个过程 ...

  2. Android网络编程系列 一 JavaSecurity之JSSE(SSL/TLS)

    摘要:     Java Security在Java存在已久了而且它是一个非常重要且独立的版块,包含了很多的知识点,常见的有MD5,DigitalSignature等,而Android在Java Se ...

  3. (转) HTTP & HTTPS网络协议重点总结(基于SSL/TLS的握手、TCP/IP协议基础、加密学)

    HTTP & HTTPS网络协议重点总结(基于SSL/TLS的握手.TCP/IP协议基础.加密学) 原文:http://blog.csdn.net/itermeng/article/detai ...

  4. 聊聊HTTPS和SSL/TLS协议

    要说清楚 HTTPS 协议的实现原理,至少需要如下几个背景知识.1. 大致了解几个基本术语(HTTPS.SSL.TLS)的含义2. 大致了解 HTTP 和 TCP 的关系(尤其是“短连接”VS“长连接 ...

  5. 浅谈HTTPS和SSL/TLS协议的背景和基础

    相关背景知识要说清楚HTTPS协议的实现原理,至少要需要如下几个背景知识.大致了解几个基础术语(HTTPS.SSL.TLS)的含义大致了解HTTP和TCP的关系(尤其是"短连接"和 ...

  6. SSL/TLS协议运行机制的概述

    互联网的通信安全,建立在SSL/TLS协议之上. 本文简要介绍SSL/TLS协议的运行机制.文章的重点是设计思想和运行过程,不涉及具体的实现细节.如果想了解这方面的内容,请参阅RFC文档. 一.作用 ...

  7. 浅谈 HTTPS 和 SSL/TLS 协议的背景与基础

    来自:编程随想   >> 相关背景知识 要说清楚 HTTPS 协议的实现原理,至少需要如下几个背景知识. 大致了解几个基本术语(HTTPS.SSL.TLS)的含义 大致了解 HTTP 和 ...

  8. SSL/TLS协议运行机制

      转载自http://www.ruanyifeng.com/blog/2014/02/ssl_tls.html 互联网的通信安全,建立在SSL/TLS协议之上. 本文简要介绍SSL/TLS协议的运行 ...

  9. 【转】SSL/TLS协议运行机制的概述

    互联网的通信安全,建立在SSL/TLS协议之上. 本文简要介绍SSL/TLS协议的运行机制.文章的重点是设计思想和运行过程,不涉及具体的实现细节.如果想了解这方面的内容,请参阅RFC文档. 一.作用 ...

随机推荐

  1. CH Round #53 -GCD Path

    描述 给定一张N个点的有向图,点i到点j有一条长度为 i/(gcd(i,j))的边.有Q个询问,每个询问包含两个数x和y,求x到y的最短距离. 输入格式 第一行包含两个用空格隔开的整数,N和Q. 接下 ...

  2. ext3中xtype属性汇总

    基本组件: xtype Class 描述 button Ext.Button 按钮 splitbutton Ext.SplitButton 带下拉菜单的按钮 cycle Ext.CycleButton ...

  3. c语言验证哥德巴赫猜想(从4开始 一个偶数由两个质数之和)

    #include <stdio.h> #include <stdlib.h> #include <math.h> int isit(int num) { int i ...

  4. 自定义checkbox样式

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

  5. 搭建Android环境

    1.相关文件下载: 1.1.Java jdk下载: JDK下载地址 http://www.oracle.com/technetwork/java/javase/downloads/jre7-downl ...

  6. C#隐式执行CMD命令

    本文实现C#隐式执行CMD功能命令.下图是示例程序的主界面. 在命令文本框输入DOS命令,点击"Run"button.在以下的文本框中输出执行结果. 以下是程序的完整代码. 本程序 ...

  7. Apache与Tomcat区别联系

    监控服务(师傅让我监控Tomcat,我知道Apache,所以以为他两是一个东东.结果半天就没有找到Tomcat的服务进程,还理直气壮的说:找不到Apache......希望这篇简单的,白话分析,能让还 ...

  8. WebDAV被启用(转)

    WebDAV (Web-based Distributed Authoring and Versioning) 一种基于 HTTP 1.1协议的通信协议.它扩展了HTTP 1.1,在GET.POST. ...

  9. Controller返回值类型ActionResult

    在mvc中所有的controller类都必须使用"Controller"后缀来命名 并且对Action也有一定的要求: 必须是一个public方法 必须是实例方法 没有标志NonA ...

  10. CAS单点登录原理以及debug跟踪登录流程

    CAS 原理和协议 基础模式 基础模式 SSO 访问流程主要有以下步骤: 1. 访问服务: SSO 客户端发送请求访问应用系统提供的服务资源. 2. 定向认证: SSO 客户端会重定向用户请求到 SS ...