HTTPS相关 - RFC2246[译]

本文为纯机翻,读来并不通顺

请求征求意见:2246 Certicom
类别:Standards Track C. Allen
Certicom
1999年1月TLS协议版本1.0
本备忘录的状态
本文档指定了
Internet社区的Internet标准跟踪协议,并要求讨论和提出建议。
改进。请参阅最新版本的“ Internet
官方协议标准”(STD 1)了解标准化状态



协议的状态。该备忘录的分发是无限的。

版权声明

版权所有(C)互联网协会(1999)。版权所有。

摘要

本文档指定了传输层安全性
(TLS)协议的1.0版。TLS协议提供了
Internet上的通信隐私。该协议允许客户端/服务器应用程序以
旨在防止窃听,
篡改或消息伪造的方式进行通信。

目录

1.简介3
2.目标4
3.本文件的目标5
4.介绍语言5
4.1。基本块大小6
4.2。杂项6
4.3。矢量6
4.4。民数记7
4.5。列举7
4.6。构造类型8
4.6.1。变形9
4.7。密码属性10
4.8。常数11
5. HMAC和伪随机函数11
6. TLS记录协议13
6.1。连接状态14 Dierks&Allen标准轨道[第1页]



RFC 2246               TLS协议版本1.0 1999年1月


6.2。记录层16
6.2.1。碎片16
6.2.2。记录压缩和解压缩17
6.2.3。记录有效载荷保护18
6.2.3.1。空或标准流密码19
6.2.3.2。CBC分组密码19
6.3。密钥计算21
6.3.1。导出密钥生成示例22
7. TLS握手协议23
7.1。更改密码规范协议24
7.2。警报协议24
7.2.1。关闭警报25
7.2.2。错误警报26
7.3。握手协议概述29
7.4。握手协议32
7.4.1。你好消息33
7.4.1.1。您好请求33
7.4.1.2。客户问好34
7.4.1.3。服务器问候36
7.4.2。服务器证书37
7.4.3。服务器密钥交换消息39
7.4.4。证书申请41
7.4.5。服务器问好完成42
7.4.6。客户端证书43
7.4.7。客户端密钥交换消息43
7.4.7.1。RSA加密的
Premaster 机密消息44 7.4.7.2。客户Diffie-Hellman公共价值45
7.4.8。证书验证45
7.4.9。已完成46
8.密码计算47
8.1。计算主密钥47
8.1.1。RSA 48
8.1.2。Diffie-Hellman 48
9.强制密码套件48
10.应用程序数据协议48
A.协议常数值49
A.1。记录层49
A.2。更改密码规格消息50
A.3。警报消息50
A.4。握手协议51
A.4.1。你好消息51
A.4.2。服务器认证和密钥交换消息52
A.4.3。客户端认证和密钥交换消息53
A.4.4。握手完成消息54
A.5。CipherSuite 54
A.6。安全参数56
B.术语表57
C.CipherSuite定义61

Dierks&Allen标准路线[第2页]



RFC 2246               TLS协议版本1.0 1999年1月


D.实施说明64
D.1 临时RSA密钥64
D.2。随机数的产生和播种64
D.3。证书和认证65
D.4。CipherSuites 65
E.与SSL 66
E.1的向后兼容性 版本2客户端问候67
E.2。避免中间人版本回滚68
F.安全分析69
F.1。握手协议69
F.1.1。身份验证和密钥交换69
F.1.1.1。匿名密钥交换69
F.1.1.2。RSA密钥交换和认证70
F.1.1.3。Diffie-Hellman密钥交换与身份验证71
F.1.2。版本回滚攻击71
F.1.3。检测针对握手协议的攻击72
F.1.4。继续会议72
F.1.5。MD5和SHA 72
F.2。保护应用程序数据72
F.3。最后说明73
G.专利声明74
安全考虑75
参考文献75
积分77
评论78
完整的版权声明80 1简介
TLS协议的主要目标是提供隐私和数据



两个通信应用程序之间的完整性。该协议
由两层组成:TLS记录协议和TLS握手
协议。在最低级别上,
TLS记录协议位于某些可靠的传输协议(例如TCP [TCP])之上。该
TLS记录协议规定,有两个基本的连接安全
性:

-连接专用。对称加密用于
数据加密(例如DES [ DES ],RC4 [ RC4 ]等)。
此对称加密的密钥针对每个
连接唯一生成,并且基于另一连接协商的秘密
协议(例如TLS握手协议)。记录
协议也可以不加密使用。

-连接可靠。消息传输包括
使用键控MAC 的消息完整性检查。安全哈希函数(例如
SHA,MD5等)用于MAC计算。记录
协议可以在没有MAC的情况下运行,但通常仅在Dierks&Allen Standards Track [Page 3]中使用



RFC 2246               TLS协议版本1.0(1999年1月)采用


这种方式,而另一种协议使用记录协议作为
协商安全性参数的传输方式。

TLS记录协议用于封装各种更高
级别的协议。一种这样的封装协议TLS握手
协议,允许服务器和客户端进行身份验证,

在应用协议发送或接收其第一字节
数据之前协商加密算法和加密密钥。TLS握手协议提供
具有三个基本属性的连接安全性:

-可以使用非对称或
公共密钥密码术(例如RSA [ RSA ],DSS [ DSS ]等)来验证对等方的身份。该
身份验证可以设置为可选,但通常
至少对等方是必需的。

-共享密钥的协商是安全的:
窃听者无法使用协商后的密钥,对于任何经过身份验证的
连接,即使是
可以将自己置于连接中间的攻击者也无法获取该密钥。

-协商可靠:攻击者
未经双方检测就无法修改协商通信
沟通。

TLS的优点之一是它与应用程序协议无关。
更高级别的协议可以
透明地在TLS协议之上分层。但是,TLS标准未指定
协议如何通过TLS添加安全性;有关如何启动TLS
握手以及如何解释
交换的认证证书的决定,
取决于运行在TLS之上的协议的设计者和实现者的判断。2目标
TLS协议的目标按照其优先级顺序为:
1.密码安全性:应该使用TLS
在两方之间建立安全连接。





2.互操作性:独立的程序员应该能够
使用TLS开发应用程序,从而能够在
不了解
彼此代码的情况下成功地交换密码参数。

3.可扩展性:TLS寻求提供一个框架,

必要时可以将新的公共密钥和批量加密方法并入其中。这还将完成两个子目标:防止Dierks&Allen Standards跟踪[第4页]



RFC 2246               TLS协议版本1.0(1999年1月)


需要创建一个新协议(并冒可能引入
新弱点的风险),并避免实现一个
全新的安全库。

4.相对效率:加密操作倾向于占用大量
CPU,特别是公钥操作。出于这个
原因,TLS协议已经将可选的会话
高速缓存方案,以减少需要连接的数量
必须从头开始建立。此外,已采取措施
减少网络活动。3本文件目标



本文档和TLS协议本身基于
Netscape发布的SSL 3.0 协议规范。该
协议与SSL 3.0之间的差异并不明显,但它们之间的
差异非常大,以至于TLS 1.0和SSL 3.0不能互操作
(尽管TLS 1.0确实包含了一种机制,TLS
实施可以通过该机制降级到SSL 3.0)。本文档
主要面向将要实施该协议的读者以及对其
进行密码分析的读者。
编写此规范时已考虑到这一点,并且旨在反映
这两个群体的需求。因此,许多依赖于算法的
数据结构和规则包含在文本正文中(与
附录相对),提供了对它们的更轻松访问。
尽管涵盖了某些
策略区域(因为它们需要维护可靠的
安全性),但

本文档无意提供服务定义或接口定义的任何详细信息。4表示语言
本文档以外部
表示形式处理数据的格式。将使用以下非常基本且有些随意
定义的表示语法。该语法
从其结构的多个来源中提取。尽管它的
语法和XDR 类似于编程语言“ C” [


XDR ]在它的两个
语法和意图,这将是危险的吸引太多的相似之处。该
表示语言的目的仅是记录TLS,而不是
超出特定目标的一般应用。Dierks&Allen标准路线[第5页]



RFC 2246               TLS协议版本1.0,1999年1月

4.1。基本块大小

明确指定所有数据项的表示形式。的
基本数据块的大小是一个字节(即,8个比特)。多个字节数据
项是从左到右,从上到下的字节串联
。从字节流中,通过以下方式形成一个多字节项(
示例中为数字)(使用C表示法):

value =(byte [0] << 8 *(n-1))| (字节[1] << 8 *(n-2))|
… | 字节[n-1];

多字节值的这种字节顺序是普通网络
字节顺序或大端格式。4.2



注释以“ / *”开头,以“ * /”结尾。

可选组件通过将其
括在“ [[]]”双括号中来表示。

包含未解释数据的单字节实体为
不透明类型。4.3向量
向量(单维数组)是同类数据
元素的流。向量的大小可以在文档编制
时指定,也可以在运行时不指定。无论哪种情况,长度都
声明
向量中的字节数,而不是元素数。用于指定作为类型T的固定
长度向量的新类型T’的语法为
T T’[n];





在此,T’在数据流中占据n个字节,其中n是
T的大小的倍数。向量的长度不包括在
编码流中。

在以下示例中,数据被定义为
协议不解释的三个连续字节,而数据被定义为三个
连续的数据,总共消耗9个字节。

不透明的基准面[3];/ 三个未解释的字节 /
基准数据[9];/ * 3个连续的3字节向量* / Dierks&Allen Standards Track [Page 6]



RFC 2246               TLS协议版本1.0(1999年1月)


通过
使用<floor…ceiling>标记(包括所有内容)指定合法长度的子范围来定义可变长度向量。当
编码时,实际长度字节中先于矢量的内容
流。长度将采用数字形式,该数字消耗
保持向量指定的最大(上限)
长度所需的字节数。实际长度字段为零的可变长度向量
称为空向量。

T T’<floor…ceiling>;

在下面的示例中,manual是必须包含以下内容的向量
在300到400个字节之间的不透明类型。它永远不能为空。的
实际长度字段占用两个字节,一个UINT16,足以
表示值400(参见第4.4节)。另一方面,更长的时间
可以表示最多800个字节的数据或400个uint16元素,并且它
可能为空。它的编码将包括
在向量之前的两个字节的实际长度字段。编码向量的长度必须
是单个元素长度的偶数倍(例如,
uint16 的17字节向量将是非法的)。

不透明的强制性<300…400>;
/ 长度字段是2个字节,不能为空 ​​/
uint16 long <0…800>;
/ 零到400个16位无符号整数 / 4.4数字
基本数字数据类型是无符号字节(uint8)。所有较大的
数值数据类型均由固定长度的一系列字节构成
,如第4.1节所述,这些字节串联在一起,并且也没有符号。在
下列数字类型是预定义的。
uint8 uint16 [2];
uint8 uint24 [3];
uint8 uint32 [4];
uint8 uint64 [8];
此处以及规范中其他位置的所有值均以
“网络”或“大端”顺序存储;由十六进制表示的UINT32
字节01 02 03 04等同于十进制值16909060. 4.5




。枚举

另一种稀疏数据类型称为枚举。
enum类型的字段只能采用定义中声明的值。
每个定义都是不同的类型。只能
分配或比较相同类型的枚举。枚举的每个元素都必须Dierks&Allen Standards Track [Page 7]



RFC 2246为               TLS协议版本1.0(1999年1月)
包含了1-3093的rfc中文翻。 组织:中国互动出版网(http://www.china-pub.com/) RFC文档中文翻计划(http://www.china-pub.com/compters/emook/aboutemook.htm) E-mail:ouyang@china-pub.com 者: 李超(licc_li licc_li@sina.com) 文发布时间:2001-5-23 版权:本中文翻文档版权归中国互动出版网所有。可以用于非商业用途自由转载,但必须 保留本文档的翻及版权信息。 Network Working Group S. Casner Request for Comments: 2508 Cisco Systems Category: Standards Track V. Jacobson Cisco Systems February 1999 低速串行链路下IP/UDP/RTP数据包头的压缩 (RFC 2508 Compressing IP/UDP/RTP Headers for Low-Speed Serial Links) 本备忘录的状态 本文档讲述了一种Internet社区的Internet标准跟踪协议,它需要进一步进行讨论和建议以 得到改进。请参考最新版的“Internet正式协议标准” (STD1)来获得本协议的标准化程度 和状态。本备忘录的发布不受任何限制。 版权声明 Copyright (C) The Internet Society (1999). All Rights Reserved. 摘要 本文描述了一种对IP/UDP/RTP数据报头进行压缩的方法,它可以降低在低速串行链路上 的网络开销。多数情况下,三个头可压缩到2-4字节。 请赐教并将您的建议发送到工作组邮件列表rem-conf@es.net或直接给作者。 本文中的关键字“必须”,“必须不”,“要求的”,“应该”,“不应该”,“会”,“不会”, “建议”,“或许”,“可选的”在 RFC 2119 中解释。 目录 本备忘录的状态 1 版权声明 1 摘要 1 1. 介绍 2 2. 设想和折中 2 2.1. 单工与全双工 3 2.2. 分片与分层 3 3.压缩算法 3 3.1.基本概念 3 3.2 RTP数据包头压缩 4 3.3协议 5 3.4. RTCP控制包压缩 12 3.5.非RTP UDP包压缩 13 4.与分片的交互 13 5.压缩协商 13 6.致谢 14 7.参考文献 14 8. 安全性考虑 14 9.作者地址 15 10.版权声明 15 1. 介绍 随着实时传输协议(RTP)成为正式的RFC[1]发行,人们对于利用RTP实现不同的网络音视 频应用程序间互操作的兴趣也日益增长。然而,我们也注意到,当使用低速链路如14.4Kb/s 或28.8Kb/s拨号时,12字节的RTP头对于仅有20字节的负载而言开销实在太大。(为了减少 头占用的字节,一些已经在类似环境下存在的应用通常使用自定义的协议,而这样做的代价 就是削减了RTP相关的功能。) 事实上,正如在TCP中已经取得巨大成功,也可通过压缩技术来令IP/UDP/RTP包头变小。 这时,压缩可以针对于RTP头(在端到端应用中),或者IP,UDP,RTP的组合头(在Link-by-Link 应用中)。将40字节的组合头一起进行压缩比仅压缩12字节的RTP头更具实际效果,因为两 种情况下的结果大小均为约2-4字节。同时,由于延迟和丢失率都很低,对Link-by-Link应 用进行压缩性能上也更好。因此我们在这里定义的方法就是针对Link-by-link应用下 IP/UDP/RTP头进行组合压缩。 本文定义的压缩方案可应用于IPv4包、IPv6包或封装了多个IP头的包。为了能同时在IPv6 和IPv4下使用,这里定义的IP/UDP/RTP压缩符合[3]中规定的通用压缩框架。该框架把TCP 和非TCP定义为IP之上的两个传输类。本规范将IP/UDP/TCP从非TCP类中抽取出来创建为第三 类。 2. 设想和折中 本压缩方案的目标是,在不发送UDP校验和的情况下,将大多数包的IP/UDP/RTP头压缩到 2个字节,在带校验和时则压缩到4个字节。这一方案的提出主要是受使用14.4kb/s和 28.8kb/s拨号调制解调器发送音视频时遇到的相关问题所引起。这些链路提供全双工通信, 所以协议利用了这点,尽管协议在用于单工链路时可能性能会有所下降。该方案在本地链路 上往返时间(RTT)很低,从而实现性能最高。 为了降低低速链路下的延迟,除了在第四节中确定了分片和压缩中可能使用的一些交互 外,本规范并未提出大型数据包的分片和占先策略。分片方案可能会单独定义并与本压缩方 案配合使用。 应该注意到,实现的简单性是评价压缩方案的一个重要因素。通信服务器可能要用一个 处理器支持多达100个拨号调制解调器的数据压缩。因此,如下的考虑都是比较恰当的,即 在设计阶段为了实现简单而牺牲一些通用性,或者在设计上灵活通用但为了简单性可对设计 进行子集化。通过在压缩和解压器之间用更复杂的模型通信改变头字段还可以达成更好的压 缩效果,但其复杂性却是没必要的。下一节将讨论这里列出的一些折中方案。 2.1. 单工与全双工 在没有其它限制的情况下,单工链路上的压缩方案应成为首选。但为防止错误发生,单 工链路上的操作需要用一个含有压缩状态信息的未压缩包头进行周期性的刷新。如果明显的 错误信号可以返回,则恢复延迟也可以实质性地缩短,无错误情况的开销也会降低。为了实 现这些性能的优化,本规范包括了一个可逆向发送的明显错误指示。 在单工链路中,可以使用周期性刷新来取代。解压器一旦侦测到错误存在于某个特定的 流中,它可以简单地放弃该流中所有的包直到接收到一个未压缩的头为止,然后继续解压。 其致命弱点在于可能要在恢复解压前要放弃大量的包。周期性刷新的方法在[3]的3.3节中进 行描述,它应用于单工链路的IP/UDP/RTP压缩,或者应用于其它非TCP包流的高延迟链路。 2.2. 分片与分层 在低速链路上发送大型数据包所需时间而导致的延迟对于单向音频应用不算什么大问 题,因为接收方可以适应延迟变动。但对于交互式的交谈,最小端到端延迟是非常关键的。 对大的,非实时数据包进行分片以允许小的实时包在分片间隙进行传送可以降低这种延迟。 本规范只处理压缩,并且假定,如果包括分片,也将被处理为一个单独层。将分片和压 缩按这种方式进行集成并不可取,因为一旦如此,在没有必要或不可能进行分片的情况下, 连压缩都不能使用。类似地,应该避免预留协议的任何需求。除了要求链路层提供一些包类 型码,一个包长度指示和良好的错误检测外,该压缩方案可独立于任何其它机制而应用在本 地链路的两端。 相反,单独对IP/UDP和RTP层进行压缩丢失了太多的压缩效率,这些效率可以通过将它们 一起对待而得到。由于相同的函数可以应用于所有层,实现跨越这些协议层边界的方案是恰 当的。 3.压缩算法 本文定义的压缩算法主要利用了RFC 1144[2]描述的TCP/IP头压缩的设计。读者可以参考 该RFC获取更多的关于对包头进行压缩的基本动机和通用原理。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值