马昌社 华南师范大学计算机学院 Changshema@gmail.com 网络安全—Web安全 马昌社 华南师范大学计算机学院 Changshema@gmail.com.

Slides:



Advertisements
Similar presentations
1 Chapter 6 網際網路安全協定 Internet Security Protocols.
Advertisements

第四章 内容提要: 电子商务的安全技术 本章从电子商务的安全要求入手,介绍电子商务的几种安全技术,从而说明电子商务安全问题有哪些,其根源何在、带来哪些风险、如何应用安全技术等。
第5章 电子商务安全 学习目标: 1)了解电子商务对安全的基本需求。 2)理解防火墙的功能与技术。 3)掌握数据加密原理与技术。
密码学应用 培训机构名称 讲师名字.
電子商務安全防護 線上交易安全機制.
第八讲信息安全技术基础 教学目的与要求: 1.了解计算机病毒的概念及特征 2.掌握计算机病毒的防治 教学重点: 1. 计算机病毒的概念及特征
第3章 电子商务的技术基础 3.1 电子商务与计算机网络技术 3.2 电子商务与Web技术 3.3 电子数据交换(EDI)技术
電子商務:數位時代商機‧梁定澎總編輯‧前程文化 出版
电子商务基础(第二版).
计算机文化基础教学课件 计算机网络基础.
2.4 计算机网络基础 什么是计算机网络? 计算机网络有哪些功能? 计算机网络的发展历史? 计算机网络体系结构的内容? 计算机网络如何分类?
第三章 網際網路和全球資訊網 : 電子商務基礎建設
第十章 电子支付.
電子商務 Chapter 電子商務的意義 13-2 電子商務的模式 13-3 行動商務 13-4 電子付款系統
了 解 从 Internet IP 开 始.
第8章 移动电子商务安全 制作:申丽平 湖南理工学院计算机科学教研室.
汇报大纲 一、报送系统总体介绍 二、自查及检查评分报送流程 三、自查及检查方法及关键点 四、建议及注意事项.
电子商务网络技术 主讲:苑毅 电子商务教研室.
《计算机网络技术》 课程整体设计介绍.
企業如何建置安全的作業系統 Windows XP 網路安全
網路安全教育 東莞台商子弟學校.
第2章 计算机网络的协议与体系结构 2.1 计算机网络体系结构的形成 2.2 协议与划分层次 2.3 计算机网络的原理体系结构
第1章 概述.
第五章电子商务安全管理.
Security and Encryption
Fortinet负载均衡技术 Jan, 2009.
电子金融 第七章 网上金融安全 与网上支付机制 第七章 网上金融安全与网上支付机制 第七章 网上金融安全与网上支付机制.
大專院校校園e 化 PKI、智慧卡應用與整合.
了 解 Internet 从 ip 开 始.
学习目标 掌握电子商务网站体系结构 掌握企业电子商务网站体系结构 掌握PWS的安装与设置
中国科学技术大学 肖 明 军 《网络信息安全》 中国科学技术大学 肖 明 军
海信FW3010PF防火墙介绍 北京海信数码科技有限公司
第十一章 網路安全 (Network Security)
TCP Session Hijack 郭军权
本章导语 第六章 计算机网络基础 本章目录 本章重点  开始学习 思考问题.
第二期实验室工作人员培训讲座(三) 加强规范化建设 提高仪器设备管理水平 设备处 黄久龙 2017年9月13日 徐州师范大学设备处 黄久龙.
学习目标: 1)理解包和包过滤 2)理解包过滤的方法 3)设置特殊的包过滤规则
資訊安全-資料加解密 主講:陳建民.
第 19 章 遠端管理.
IIS網站的安全性管理 羅英嘉 2007年4月.
通訊協定 OSI分層模式 與 TCP/IP協定
第3讲 网络安全协议基础 此为封面页,需列出课程编码、课程名称和课程开发室名称。
電子商務 E-Commerce 梁榮亮 B
Windows 2000 Server Certificate Authority架設
恶补Web知识训练营 (2) 2017/4/14 – Payne
高级计算机网络 2018/11/20 史忠植 高级计算器网络.
網路服務 家庭和小型企業網路 – 第六章.
電子商務付費系統 講師:王忍忠.
TCP/IP Protocol Suite TCP/IP協定 第二組 投影片製作by簡嘉宏 綦凱宏 林睿敏 滕孟哲.
计算系统与网络安全 Computer System and Network Security
《电子商务概论》高等教育出版社 2003版 市场营销系
考试题型 填空题(30) 选择题(20) 名词解释(10) 问答题(24) 计算题(16) 附加题(30) 成绩核算:
第4章 OSI傳輸層.
第四章 電子商務付費系統 電子商務與網路行銷 (第2版).
主講人:黃鎮榮 東方設計學院觀光與休閒事業管理系
Windows Server 2008证书服务的安装
網路安全期末報告─SSL/TLS 指導教授:梁明章 報告學生:A 徐英智.
Web前端开发 第23章:网站发布 阮晓龙 / 河南中医药大学管理科学与工程学科
ISA Server 2004.
财政部上海证券交易所 国债发行招投标系统功能介绍
Breaking and Fixing Authentication over TLS
Network Application Programming(3rd Edition)
第9章 信息安全.
電子商務 Electronic Commerce
密碼學 Chapter 4 基於電腦的非對稱性金鑰密碼學演算法
網際網路與電腦應用 林偉川 2001/12/13.
大学计算机基础 5-2 计算机网络模型与协议.
王小桃 認識電子商務.
深圳信息职业技术学院《电子商务基础》课程组版权所有
Presentation transcript:

马昌社 华南师范大学计算机学院 Changshema@gmail.com 网络安全—Web安全 马昌社 华南师范大学计算机学院 Changshema@gmail.com

学习目标 掌握SSL的基本体系结构 掌握SET的基本体系结构

第一部分 SSL/TLS协议 SSL (Secure Socket Layer)是一种在两个端实体(End Entity)之间提供安全通道的协议。 它具有保护传输数据以及识别通信实体的功能 安全通道是透明的 IETF 制定的TLS(Transport Layer Security)版本是对Nescape公司的SSL和Microsoft公司的PCT(Private Communication Technology)两个协议的综合和兼容。 这里重点讨论SSL协议

SSL/TLS协议设计目标 SSL V2 设计目标 SSL V3设计目标 为满足WEB安全通信而设计 提供客户和服务器之间传输数据的保密性 服务器认证(客户端认证可选) SSL V3设计目标 修正SSL V2中存在的多处安全问题 设计一种安全磋商多种加密算法的机制

SSL提供了什么? SSL提供了通道级别的安全: 连接的两端知道所传输的数据是保密的,而且没有被篡改 几乎总是要对服务器进行认证 可选的客户端认证 针对异常情况的安全通知 错误警示 关闭连接 所有这些依赖于某些对系统的假定 假定已经正确产生了密钥数据并且 该密钥已被安全地保管

SSL与TCP/IP SSL连接非常类似于“保密的”的TCP连接 位于TCP之上,应用层之下 几乎只能在TCP上运行,而不能在UDP或IP上运行,因而它依赖于可靠的传输协议 微软的STLP和无线应用论坛的WTLS均为意图在数据报传输层(如UDP)上正确工作的变种。

SSL变种谱系树 SSL V1(1994) 未发布 SSL V2(1994) 第一版 SSL V3(1995) PCT(1995) STLP(1996) TLS(1997-1999) WTLS(1998)

用于WEB的SSL 保护使用HTTP的WEB通信 新的URL https:// 在浏览器中的表现 NETSCAPE:工具条上会显示一把钥匙 IE: 右下角显示 一把锁 几乎所有的商业WEB服务器和浏览器都实现了内置的SSL协议,通过配置即可使用

在SSL上构建一切 除了HTTP 和NNTP(SNEWS)外,还可以用于SMTP、Telnet、FTP等,也可用于保护专有协议。 协议端口标准化 协议实现 OPENSSL (C语言实现) pureTLS (java 实现) ApacheSSL (针对Apache服务器的实现) Mod_ssl

一次真实的SSL连接 客户 服务器 握手:ClientHello 握手:ServerHello 握手:Certificate 握手:ServerHelloDone 握手:ClientKeyExchange ChangeCipherSpec 握手:Finished ChangeCipherSpec 握手:Finished 应用数据交换 警示:warning,close_notify

两个主要的协议 SSL握手协议 SSL记录协议 客户和服务器之间相互鉴别 协商加密算法和密钥 它提供连接安全性,有三个特点 身份鉴别,至少对一方实现鉴别,也可以是双向鉴别 协商得到的共享密钥是安全的,中间人不能够知道 协商过程是可靠的 SSL记录协议 建立在可靠的传输协议(如TCP)之上 它提供连接安全性,有两个特点 保密性,使用了对称加密算法 完整性,使用HMAC算法 用来封装高层的协议

SSL的两个重要概念 SSL连接(connection) SSL会话(session) 一个连接是一个提供一种合适类型服务的传输(OSI分层的定义)。 SSL的连接是点对点的关系。 连接是暂时的,每一个连接和一个会话关联。 SSL会话(session) 一个SSL会话是在客户与服务器之间的一个关联。会话由Handshake Protocol创建。会话定义了一组可供多个连接共享的密码安全参数。 会话用以避免为每一个连接提供新的安全参数所需昂贵的协商代价。

SSL基础-针对RSA服务器认证的SSL 单向认证 和 双向认证 认证+加密 和 认证 加密算法: RSA DSS DH FORTEZZA …… 连接分为两个节段: 握手阶段 完成对服务器认证并建立加密密钥 数据传输阶段 加密数据传输

握手协议 握手阶段的目的 client server 客户和服务器协商保护数据的算法(及其具体参数) 确立在协商好的算法上使用的加密密钥 可选择对客户端进行认证 client server -----------------------------------------------------------------  所支持的加密算法,随机数  选中的加密算法,随机数,服务器证书  加密后的pre_master_secret 计算相关演化密钥 计算相关演化密钥  握手消息的MAC值  握手消息的MAC值 注: 1. pre_master_secret 可以由KDF(key derivation function)演化出master_secret ,最后再通过master_secret 演化出系列加密密钥。 2. 最后两步防止握手本身遭受篡改(如低强度密码算法替换等). 3. 客户端和服务器端随机数的传输,防止重放攻击。

握手消息 client server ------------------------------------------------------------- 握手: ClientHello  握手: ServerHello Certificate …… ServerHelloDone  ClientKeyExchange ……(ChangeCipherSpec)  Finished  ……(ChangeCipherSpec) Finished

完整SSL会话握手协议 交换Hello消息,对于算法、交换随机值等协商一致 交换必要的密码参数,以便双方得到统一的premaster secret 交换证书和相应的密码信息,以便进行身份认证 产生master secret 把安全参数提供给SSL记录层 检验双方是否已经获得同样的安全参数

第一阶段:建立起安全协商 客户发送一个client_hello消息,包括以下参数:版本、随机数(32位时间戳+28字节随机序列)、会话ID、客户支持的密码算法列表(CipherSuite)、客户支持的压缩方法列表.然后,客户等待服务器的server_hello消息 服务器发送server_hello消息,参数:客户建议的低版本以及服务器支持的最高版本、服务器产生的随机数、会话ID、服务器从客户建议的密码算法和压缩方法中确定一套本次连接使用的确定方法.

CipherSuite 指定了密钥交换的方法,SSL支持以下一些方法: 然后,指定以下信息 RSA,要求服务器提供一个RSA证书 DH(Diffie-Hellman),要求服务器的证书中包含了由CA签名的DH公开参数。客户或者在证书中提供DH公开参数,或者在密钥交换消息中提供此参数 EDH(Ephemeral Diffie-Hellman),产生临时的密钥,DH公开参数由发送者的私钥进行签名,接收者用对应的公钥进行验证 匿名的DH,不加鉴别。会受到中间人攻击 然后,指定以下信息 加密算法和类型(流还是分组密码算法) HMAC、MD5还是SHA-1 是否可出口 HashSize Key Material IV Size

第二阶段:服务器鉴别和密钥交换 服务器发送certificate消息,消息包含一个X.509证书,或者一条证书链 除了匿名DH之外的密钥交换方法都需要 服务器发送server_key_exchange消息 可选的,有些情况下可以不需要。只有当certificate消息没有包含必需的数据的时候才发送此消息 消息包含签名,被签名的内容包括两个随机数以及服务器参数 服务器发送certificate_request消息(可选) 非匿名server可以向客户请求一个证书 包含证书类型和CAs 服务器发送server_hello_done, 然后等待应答

第三阶段:客户鉴别和密钥交换 客户收到server_done消息后,它根据需要检查服务器提供的证书,并判断server_hello的参数是否可以接受,如果都没有问题的话,发送一个或多个消息给服务器。 如果服务器请求证书的话,则客户首先发送一个certificate消息,若客户没有证书,则发送一个no_certificate警告。 然后客户发送client_key_exchange消息,消息的内容取决于密钥交换的类型(如果是RSA,则含加密的PreMasterSecret)。 最后,客户发送一个certificate_verify消息(可选),其中包含一个签名,对从第一条消息以来的所有握手消息的HMAC值(用master_secret)进行签名

第四阶段:结束 第四阶段建立起一个安全的连接 客户发送一个change_cipher_spec消息,并且把协商得到的CipherSuite拷贝到当前连接的状态之中 然后,客户用本次连接协商的算法、密钥参数发送一个finished消息,这条消息可以检查密钥交换和鉴别过程是否已经成功。其中包括一个校验值,对所有以来的消息进行校验。 服务器同样发送change_cipher_spec消息和finished消息。 握手过程完成,客户和服务器可以交换应用层数据。

密钥交换算法 SSL记录协议需要:CipherSuite, master secret, the client & server random values 在hello消息中,交换随机数以及各种算法 两类密钥交换算法: RSA,客户产生一个48字节的pre_master_secret,然后通过服务器的公钥传递给服务器 Diffie-Hellman,双方协商得到的密钥被用作pre_master_secret 对于各种密钥交换算法,从pre_master_secret计算得到Master_secret,然后从内存中删除 Master_secret总是48字节长,而pre_master_secret长度不定,取决于密钥交换算法

密钥导出

最终需要的密钥导出

SSL 记录协议 实际的数据传输是使用SSL记录协议实现的 数据流分割成一系列片段并加以传输,每个片断单独保护和传输 为实现完整性保护,对片段进行MAC保护 为实现机密性保护,对片段进行加密保护 传输的是安全记录

记录头(Head) ContentType; —— 8位,上层协议类型 Major version; Minnor version—— 16位,主次版本 Compressed Length:16位— 加密后数据的长度,不超过214+2048字节(SSL 几乎不用压缩,虽然支持) EncryptedData fragment; —— 密文数据

记录负荷(Payload) 支持4种协议消息: application_data、alert、handshake、change_cipher_spec . Alert协议消息: 报警等级(warning/fatal)+ 具体报警编码 2字节 change_cipher_spec协议消息: 1字节,将挂起状态变成当前状态,指示在此之后的所有消息都将使用刚刚商定的密码进行加密。 handshake协议消息:类型( 1字节 )+长度( 3字节 )+消息,类型共10种

报警(Alert)协议 unexpected_message bad_record_mac decryption_failed 用来一方向另一方报告例外情况,两个级别:warning/fatal 如果是Fatal级别的报警,则应终止连接. 报警种类: unexpected_message bad_record_mac decryption_failed record_overflow decompression_failure handshake_failure no_certificate bad_certificate unsupported_certificate certificate_revoked certificate_expired certificate_unknown illegal_parameter unknown_ca access_denied decode_error decrypt_error export_restriction protocol_version insufficient_security internal_error user_cancelled no_renegotiation

会话恢复 整个握手协议开销巨大,如果集成会话恢复机制,则可以在客户和服务器通信过一次的情况下,可以跳过握手阶段而直接进行数据传输. 通过使用上一次握手中确立的pre_master_secret,则可以避免许多计算开销。 恢复允许根据共同的master_secret,来产生新的密钥。 通过客户使用ClientHello中的Session_id,申请会话恢复,服务器通过使用ServerHello中相同的Session_id,来同意会话恢复,接下来就会跳过其余步骤而使用保存的master_secret来产生新的所有的加密密钥(由于新的随机数不同,而使得新产生的加密密钥与以前不同)。

客户端认证 实现服务器对客户端的认证 服务器通过向客户端发送CertificateRequest消息,客户端通过Certificate和CertificateVerify消息予以应答 CertificateVerify消息是一个使用与其传输的证书关联的私钥签名的消息。

临时RSA 因受出口限制,为配合客户端,服务器会产生一个临时的低强度密钥,并用高强度密钥签名,客户端将验证临时密钥上的服务器签名,并使用它来打包pre_master_Secret. 服务器向客户端发送消息 ServerKeyExchange

再握手 是在当前受保护的连接上进行的一次新的SSL握手,因而传输过程中的握手消息是经过加密的 一旦新的握手完成,将使用新的会话状态来保护数据 客户端可以简单的通过发送一条ClientHello消息来初始化一次新的握手 服务器端可以通过HelloRequest消息来初始化一次新的握手

SSL的安全性 保护master_secret 保护服务器的私钥 使用良好的随机数 证书链检查 算法选择(强度)

SSL实现 OpenSSL, 最新0.9.8, 实现了SSLv2,SSLv3, TLSv1.0 SSLeay Openssl ——a command line tool. ssl(3) —— the OpenSSL SSL/TLS library. crypto(3)—— the OpenSSL Crypto library. URL: http://www.openssl.org SSLeay http://www2.psy.uq.edu.au/~ftp/Crypto/ Internet号码分配当局已经为具备SSL功能的应用分配了固定的端口号 例如带SSL的HTTP(https)被分配以端口号443 带SSL的SMTP(ssmtp)被分配以端口号465 带SSL的NNTP(snntp)被分配以端口号563

SET