版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、2006 Internet安全协议安全协议-SSL 1 第五章 Internet 2006 Internet安全协议安全协议-SSL 2 网络各层的安全协议及其应用技术: (1)L2: IEEE802.10; PPTP(Point to Point Tunneling Protocol) L2TP(Layer Two Tunneling Protocol) (2) L3: IPSec (3)L4: 面向TCP的SSL(Secure Socket Layer) (4)应用层协议: S-HTTP协议;面向MIME的S/MIME协议;用于加 密电子邮件的PGP(Pretty Good Privacy
2、)协议等。 2006 Internet安全协议安全协议-SSL 3 物理层 SSL或TLS UDP IPsec SSH SHTTP DNSSEC 安全TCP/IP协议体系结构 2006 Internet安全协议安全协议-SSL 4 u1994年Netscape开发了SSL(Secure Socket Layer)协议, Web安全机制,提供鉴别与保密服务 u版本和历史 v1.0,不成熟 v2.0,基本上解决了Web通讯的安全问题 Microsoft公司发布了PCT(Private Communication Technology),并 在IE中支持 v3.0,1996年发布,增加了一些算法,修
3、改了一些缺陷 vTLS 1.0(Transport Layer Security, 也被称为SSL 3.1),1997 年IETF发布了Draft,同时,Microsoft宣布放弃PCT,与 Netscape一起支持TLS 1.0 v1999年,发布RFC 2246(The TLS Protocol v1.0) 2006 Internet安全协议安全协议-SSL 5 u协议的设计目标 v为两个通讯个体之间提供保密性、完整性、身份认证 v互操作性、可扩展性、相对效率 u协议的使用 2006 Internet安全协议安全协议-SSL 6 u介于应用层和传输层之间 u为上层提供安全性 IP SSL
4、Change Cipher Spec Protocol SSL Alert Protocol Application Protocol TCP SSL Record Protocol SSL Handshake Protocol HTTPLDAPIMAP 2006 Internet安全协议安全协议-SSL 7 u协议分为两层 v 上层:TLS握手协议、TLS密码变化协议、TLS警告协议 v 底层:TLS记录协议 v 上层协议是用于管理SSL密钥信息的交换,下层提供基本的安全服 务 uTLS握手协议 v 客户和服务器之间相互认证 v 协商加密算法和密钥 v 它提供连接安全性,有三个特点 身份认证
5、,至少对一方实现认证,也可以是双向认证 协商得到的共享密钥是安全的,中间人不能够知道 协商过程是可靠的 uTLS记录协议 v 建立在可靠的传输协议(如TCP)之上 v 它提供连接安全性,有两个特点 保密性,使用了对称加密算法 完整性,使用HMAC算法 v 用来封装高层的协议 2006 Internet安全协议安全协议-SSL 8 u(TLS Session)定义: 指客户和服务器之间的一个关联关系。通过 TLS握手协议创建session,它确定了一组密码算法 的参数。Session可以被多个连接共享,从而可以 避免为每个连接协商新的安全参数而带来 昂贵的 开销。 vTLS Session都有一
6、个当前状态 uTLS connection v与底层协议的点对点连接相关联 v每个connection都与一个session相关联 v连接是短暂的 2006 Internet安全协议安全协议-SSL 9 u实际上是一组参数,包括 vSession identifier(会话号),字节序列,由服务 器产生,用来标识一个会话状态 vPeer certificate(可以为NULL),对方的X.509 v3证 书 vCompression method,压缩数据的算法 vCipher spec,指定数据加密算法和用于HMAC的 散列算法,以及算法的有关参数 vMaster secret, 客户和服务
7、器之间共享的48字节的 数据(主秘密) vIs resumable,标记是否这个会话可以被用来初始 化一个新的连接 2006 Internet安全协议安全协议-SSL 10 u连接状态也包含一组参数 vServer and client random,客户和服务器为每个连接选 择的字节序列 vServer write MAC secret,服务器在发送数据的时候, 用于MAC运算的key vClient write MAC secret ,客户在发送数据的时候,用 于MAC运算的key vServer write key,服务器加密数据的密钥,以及客户解 密数据的密钥 vClient writ
8、e key,客户加密数据的密钥,以及服务器解 密数据的密钥 vInitialization vectors,在CBC模式中用到的IV,最初由 握手协议初始化,以后,每一个记录的最后一个密文 块被用作下一个记录的IV vSequence numbers,每一个连接都需要维护一个序 列号, 当密码参数变化时,重置为0 2006 Internet安全协议安全协议-SSL 11 u位于TLS记录协议之上 v也用到了TLS记录协议的处理过程 vContentType = 22 v协议格式 v用途: 当TLS客户和服务器开始通讯的时候,它们要通过 协商,在以下信息方面获得一致: 协议版本、密码算法、是否认
9、证对方、 用什么技术来产生共享秘密数据,等等 2006 Internet安全协议安全协议-SSL 12 u交换Hello消息,对于算 法、交换随机值等协商 一致 u交换必要的密码参数, 以便双方得到统一的 premaster secret u交换证书和相应的密 码 信息,以便进行身份认 证 u产生master secret u把安全参数提供给TLS 记录层 u检验双方是否已经获得 同样的安全参数 2006 Internet安全协议安全协议-SSL 13 消息参数 hello_requestNull client_hello版本,随机数,会话id,密码参 数,压缩方法 server_hello
10、certificateX.509 v3证书链 server_key_exchange参数,签名 certificate_request类型,CAs server_doneNull certificate_verify签名 client_key_exchange参数,签名 finishedHash值 2006 Internet安全协议安全协议-SSL 14 u客户发送一个client_hello消息,包括以下参数: .版本、 2.随机数(32位时间戳+28字节随机序列)、 3.会话ID、 4.客户支持的密码算法列表(CipherSuite)、 5.客户支持的压缩方法列表 u然后,客户等待服务器的
11、server_hello消息 u服务器发送server_hello消息,参数: .客户机和服务器支持的最高SSL版本中的较低版 本、 .服务器产生的随机数、 .会话ID、 .服 务器从客户建议的密码算法中挑出一套、 .服务 器从客户建议的压缩方法中挑出一个 2006 Internet安全协议安全协议-SSL 15 u客户方 v客户指定的会话ID如果不等于0,则表示它希 望基于这个会话来更新现有连接的安全参数, 或者创建本次会话的一个新的连接 v如果会话ID等于0,则表示客户希望创建新会 话的一个新的连接 u服务器 v或者同意客户指定的会话ID,需要检查cache中 的会话状态 v或者返回一个新
12、的会话ID 2006 Internet安全协议安全协议-SSL 16 u第一个元素指定了密钥交换的方法,TLS支持以下一些方 法: v RSA,要求服务器提供一个RSA证书 v DH(Diffie-Hellman),要求服务器的证书中包含了由CA签名的DH 公开参数。客户或者在证书中提供DH公开参数,或者在密钥 交换 消息中提供此参数 v EDH(Ephemeral Diffie-Hellman),产生临时的密钥,DH公开参数 由发送者的私钥进行签名,接收者用对应的公钥进行验证 v 匿名的DH,不加认证。会受到中间人攻击 u然后,指定以下信息 v 加密算法,和类型(流还是分组密码算法) v H
13、MAC算法,MD5还是SHA-1 v 是否可出口 v HashSize v Key Material v IV Size 2006 Internet安全协议安全协议-SSL 17 u服务器发送自己的证书,消息包含一个X.509证书,或者 一条证书链 v 除了匿名DH之外的密钥交换方法都需要 u服务器发送server_key_exchange消息 v 可选的,有些情况下可以不需要。只有当服务器没有向客户发送 证书时,才发送此消息 v 向客户发送公钥(因为没有数字证书) u服务器发送certificate_request消息 v 可选的,非匿名server可以向客户请求一个证书 v 包含证书类型和
14、CAs u服务器发送server_hello_done, 然后等待应答 2006 Internet安全协议安全协议-SSL 18 u 客户收到server_done消息后,它根据需要检查服务器提供 的证 书,并判断server_hello的参数是否可以接受,如果都没有问题的 话,发送一个或多个消息给服务器 u 可选的,如果服务器请求证书的话,则客户首先发送一个 certificate消息,若客户没有证书,则发送一个no_certificate警告 u 然后,客户机密钥交换,使客户机可以从相反的方向发送信息给 服务器,客户机生成48位的premaster secret,用服务器公钥加密, 发送给
15、服务器 u 最后,客户发送一个certificate_verify消息,其中包含一个签名, 对从第一条消息以来的所有握手消息的HMAC值(用master_secret) 进行签名 2006 Internet安全协议安全协议-SSL 19 u第四阶段建立起一个安全的连接 u客户发送一个change_cipher_spec消息,并且把协商得到的 CipherSuite拷贝到当前连接的状态之中 u然后,客户用新的算法、密钥参数发送一个finished消息,这 条消息可以检查密钥交换和认证过程是否已经成功。其中包 括一个校验值,对所有以来的消息进行校验。 u服务器同样发送change_cipher_s
16、pec消息和finished消息。 u握手过程完成,客户和服务器可以交换应用层数据。 2006 Internet安全协议安全协议-SSL 20 u TLS记录协议需要:CipherSuite, master secret, and the client and server random values u 在hello消息中,交换随机数以及各种算法 u 对于各种密钥交换算法,从pre_master_secret计算得到master_secret, 然后从内存中删除,公式: master_secret = PRF(pre_master_secret, “master secret”, Clien
17、tHello.random + ServerHello.random)0.47 * PRF(secret, label, seed)为伪随机函数 u Master_secret总是48字节长,而pre_master_secret长度不定,取决于密 钥交换算法 u 两类密钥交换算法: v RSA,客户产生一个48字节的pre_master_secret,然后通过服务器 的公钥传递给服务器 v Diffie-Hellman,双方协商得到的密钥被用作pre_master_secret 2006 Internet安全协议安全协议-SSL 21 u客户和服务器在交换 hello消息中,客户要求 重用已有
18、的TLS会话, 服务器同意使用cache中 的会话 * session id u跳过第二第三阶段,直 接把TLS会话中的参数 传递给TLS记录层 2006 Internet安全协议安全协议-SSL 22 u操作过程示意图 2006 Internet安全协议安全协议-SSL 23 u第一步,fragmentation v上层消息的数据被分片成214字节大小的块,或者更小 u第二步,compression(可选) v必须是无损压缩,如果数据增加的话,则增加部分的 长度不超过1024字节 u第三步,计算消息认证码(MAC) v计算公式: HMAC_hash(MAC_write_secret, seq
19、_num | TLSCompressed.type | TLSCompressed.version | TLSCompressed.length | TLSCompressed.fragment) 2006 Internet安全协议安全协议-SSL 24 u第四步,encryption v采用CBC,算法由cipher spec指定 v数据长度不超过214+2048字节,包括 加密之后的数据内容 HMAC padding, 共padding_length,每个字节的值也是padding_length padding_length vIV,初始协商指定,以后,前后记录连接起来 v说明:如果是流密
20、码算法,则不需要padding 2006 Internet安全协议安全协议-SSL 25 u结果如下: struct ContentType type; 8位,上层协议类型 ProtocolVersion version; 16位,主次版本 u i n t 1 6 l e n g t h ; 加 密 后 数 据 的 长 度 , 不超过214+2048字节 EncryptedData fragment; 密文数据 TLSCiphertext; 2006 Internet安全协议安全协议-SSL 26 u它位于TLS记录协议之上 v所以,它用到了TLS记录协议的处理过程 vContentType
21、= 20 v协议只包含一条消息,一个字节 1 v用途:切换状态 把密码参数设置为当前状态 在握手协议中,当安全参数 协商一致后,发送此消息 v这条消息使得接收方改变当 前状态读参数,使得发送方 改变当前状态写参数 2006 Internet安全协议安全协议-SSL 27 u位于TLS记录协议之上 v所以,也用到了TLS记录协议的处理过程 vContentType = 21 v协议数据包含两个字节 第一个字节为level: 分别为warning(1)和 fatal(2)两种情况 第二个字节为情况说明 vFatal类型的alert消息导致 连接立即终止,此时,对应 该会话的其他连接可以继续, 但是
22、会话标识符无效,以免 利用此失败的连接来建立新 的连接 2006 Internet安全协议安全协议-SSL 28 close_notify(0), unexpected_message(10), bad_record_mac(20),* decryption_failed(21),* record_overflow(22), * decompression_failure(30),* handshake_failure(40),* bad_certificate(42), unsupported_certificate(43), certificate_revoked(44), certifi
23、cate_expired(45), certificate_unknown(46), illegal_parameter(47),* unknown_ca(48), * access_denied(49),access_denied(49), decode_error(50),decode_error(50),* * decrypt_error(51),decrypt_error(51), export_restriction(60), export_restriction(60), * * protocol_version(70), protocol_version(70), * * ins
24、ufficient_security(71), insufficient_security(71), * * internal_error(80), internal_error(80), * * user_canceled(90), #user_canceled(90), # no_renegotiation(100), #no_renegotiation(100), # 说明:说明: 1 1 * * 表示该消息往往是表示该消息往往是fatalfatal级别级别 2 # 2 # 表示该消息往往是表示该消息往往是warningwarning级别级别 3 3 对于其他的错误情况,发送方可以对于其
25、他的错误情况,发送方可以 根据情况决定是根据情况决定是warningwarning还是还是fatal,fatal, 对于对于warningwarning消息,接收方可以自行消息,接收方可以自行 决定如何处理,如果是决定如何处理,如果是fatalfatal消息,消息, 则一定要当作则一定要当作fatalfatal消息来对待消息来对待 2006 Internet安全协议安全协议-SSL 29 u P_hash(secret, seed) = +HMAC_hash(secret, A(1) + seed) +HMAC_hash(secret, A(2) + seed) +HMAC_hash(secr
26、et, A(3) + seed) + . u这里A()定义如下: A(0) = seed A(i) = HMAC_hash(secret, A(i-1) u伪随机函数 PRF(secret, label, seed) = P_MD5(S1, label + seed) XOR P_SHA-1(S2, label + seed); 这里,S1和S2为secret的各一半,如果secret为奇 数个字节,则S1和S2共享一个字节 2006 Internet安全协议安全协议-SSL 30 u针对一些常见的攻击手法 v针对密钥算法的破解 取决于算法的强度,协商过程 v利用明文模式的攻击 上层协议中常常
27、有一些固定的模式可以参考,比如http协议中get 字节串 构造字典(密文-密钥对),查字典 TLS办法:用长密钥,使得不可能构造这样的字典 v重放攻击 TLS中的nonce有32字节(包含时间戳),可用于避免重放攻击 会话ID标识了一个完整的会话,要重放部分会话需要知道私钥 v中间人攻击 通过证书来认证对方 对于双方都是匿名的模式,中间人攻击也是成立的 2006 Internet安全协议安全协议-SSL 31 uPRNG uMillion-message attack u其它 2006 Internet安全协议安全协议-SSL 32 uNetscape v1.1版本中存在,利用随机数发生器的
28、弱 点 uPRNG并不是SSL协议本身的缺陷,而是实 现上导致的缺陷 v随机数对于安全协议或者安全系统的重要性 u源码开放的另一层含义 v关键的代码接受公众的审视 Reference: Ian Goldberg and David Wagner, “Randomness and the Netscape Browser”, January 1996 Dr. Dobbs Journal 2006 Internet安全协议安全协议-SSL 33 u在RSA算法作加密运算的时候,首先对明文消息 进行编码,其格式为 0 2 random bytes 0 message u假设密文假设密文C,攻击者可以
29、产生一系列整数攻击者可以产生一系列整数S并计算并计算C = C*(Se) mod n,在解密的时候,每一个在解密的时候,每一个C对应于一个对应于一个M。 大多数的大多数的M不会满足上面的格式,但是有不会满足上面的格式,但是有2-16的概率会产生这样的概率会产生这样 的结果的结果(因为前两个字节是确定的因为前两个字节是确定的)。攻击者可以找到一系列满足。攻击者可以找到一系列满足 条件的条件的S,然后推断出密文然后推断出密文C对应的明文对应的明文M。这个过程大约需要这个过程大约需要 220个消息和应答。个消息和应答。 u攻击实施依赖于攻击实施依赖于 u需要一个可以提供解密准确性判断的服务器需要一个
30、可以提供解密准确性判断的服务器称为称为oracle uSSL实现是否能够精确地告知明文格式不正确?实现是否能够精确地告知明文格式不正确? u只能得到一个消息的明文,无法得到私钥只能得到一个消息的明文,无法得到私钥 2006 Internet安全协议安全协议-SSL 34 u实现SSL的时候 v对待错误消息如何响应? Contiune? 会不会招致DOS? 返回精确的错误 v充分利用明文模式 v随机数填充 References 1 RFC 3218 2 Bleichenbacher D. , Chosen Ciphertext Attacks against Protocols Based on
31、 RSA Encryption Standard PKCS #1 in Advances in Cryptology - CRYPTO98, LNCS vol. 1462, pages: 1- -12, 1998. 2006 Internet安全协议安全协议-SSL 35 uExport ciphers and distributed cracking v举例: 40位RC4, udowngrade attacks v往SSL的低版本退化 v密码算法的退化 2006 Internet安全协议安全协议-SSL 36 uOpenSSL, 最新0.9.6c, 实现了SSL(2,3), TLS(1.0
32、) v Openssl a command line tool. v ssl(3) the OpenSSL SSL/TLS library. v crypto(3) the OpenSSL Crypto library. v URL: http:/ uSSLeay uMicrosoft Win2k SSL implementation 2006 Internet安全协议安全协议-SSL 37 u几乎所有操作平台上的几乎所有操作平台上的WEB浏览器(浏览器(IE、 Netscatp)以及流行的以及流行的Web服务器(服务器(IIS、 Netscape Enterprise Server等)都支持
33、等)都支持SSL协议协议 u使用该协议便宜且开发成本小使用该协议便宜且开发成本小 u应用应用SSL协议存在着不容忽视的缺点:协议存在着不容忽视的缺点: v系统不符合国务院最新颁布的商用密码管理条例系统不符合国务院最新颁布的商用密码管理条例 中对商用密码产品不得使用国外密码算法的规定中对商用密码产品不得使用国外密码算法的规定 v系统安全性差系统安全性差 SSL协议的数据安全性其实就是建立在协议的数据安全性其实就是建立在RSA等算法的安全性等算法的安全性 上上 美国政府的出口限制,使得进入我国的实现了美国政府的出口限制,使得进入我国的实现了SSL的产品的产品 (Web浏览器和服务器)均只能提供浏览
34、器和服务器)均只能提供512比特比特RSA公钥、公钥、40 比特对称密钥的加密。比特对称密钥的加密。 2006 Internet安全协议安全协议-SSL 38 u一个安全协议除了基于其所采用的加密算法一个安全协议除了基于其所采用的加密算法 安全性以外,更为关键的是其逻辑严密性、安全性以外,更为关键的是其逻辑严密性、 完整性、正确性,从目前来看,完整性、正确性,从目前来看,SSL比较好地比较好地 解决了这一问题解决了这一问题 u另外,另外,SSLSSL协议在协议在“重传攻击重传攻击”上,有它独到上,有它独到 的解决办法。的解决办法。SSLSSL协议为每一次安全连接产生协议为每一次安全连接产生 了一个了一个128128位长的随机数位长的随机数“连接序号连接序号”。 理论上,攻击者提前无法预测此连接序号,理论上,攻击者提前无法预测此连接序号, 因此不能对服务器的请求做出正确的应答因此不能对服务器的请求做出正确
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年四川文轩职业学院单招职业适应性测试题库及答案详解(名校卷)
- 贵州省住培医师工作压力、心理健康和工作投入现状与相互关系研究-以某三甲医院为例
- 2026年四川机电职业技术学院单招职业倾向性测试题库含答案详解(典型题)
- 2026年四川机电职业技术学院单招职业倾向性考试题库带答案详解(突破训练)
- 2026年四川机电职业技术学院单招职业技能考试题库含答案详解(预热题)
- 2026年四川机电职业技术学院单招职业适应性考试题库附参考答案详解(a卷)
- 2026年四川水利职业技术学院单招职业倾向性考试题库及答案详解(典优)
- 2026年四川水利职业技术学院单招职业适应性考试题库附答案详解(达标题)
- 2026年四川汽车职业技术学院单招职业倾向性考试题库及一套参考答案详解
- 城乡居保养老金对农村老年人心理健康的影响研究
- 艾滋病培训考试试题
- 2026届文海-黄冈八模高三数学第一学期期末学业水平测试模拟试题含解析
- 2026年高考地理二轮复习策略
- LNG储罐定期检验监管细则
- 起重吊索具安全管理培训课件
- AQ 4232-2025橡胶和塑料制品加工系统粉尘防爆安全规范
- 义务教育道德与法治课程标准日常修订版(2022年版2025年修订)
- 抑郁发作的课件
- 2026年辽宁轻工职业学院单招职业倾向性测试题库及答案详解一套
- 2026年计算机二级(WPS Office高级应用)考试题及答案
- 2025年江苏经贸职测题库及答案
评论
0/150
提交评论