第8讲 网络安全 基本概念: 实用安全技术: 什么是安全性? 密码术 报文鉴别 信息安全性 密钥发放和确认 应用层: 安全邮件 第8讲 网络安全 基本概念: 什么是安全性? 密码术 报文鉴别 信息安全性 密钥发放和确认 实用安全技术: 应用层: 安全邮件 传输层: 电子商务, SSL, SET 防火墙技术 第8讲 网络安全
敌友之间: Alice, Bob, Trudy Figure 7.1 goes here 三位网络安全领域里的“知名人士” Bob, Alice (恋人!) 需要进行“私密”的通信 Trudy, 则是“侵入者”有可能对他人的通信进行截获、删改活动 第8讲 网络安全
什么是网络安全? 安全性: 只有发送方,意欲中的接收方能够 “理解” 报文内容 报文鉴别: 收发双方需要证实对方的身份 发送方加密报文 接收方解密报文 报文鉴别: 收发双方需要证实对方的身份 报文完整性: 收发双方需要保证报文不被篡改 (在传输过程中,或传输完毕以后) ,不被探测 第8讲 网络安全
网络上的主动攻击和被动攻击 截获--被动攻击(主要的对应策略为加密传输) 中断--主动攻击(主要的对应策略为信道冗余,防火墙的等) 篡改--主动攻击(主要的对应策略为报文鉴别) 伪造--主动攻击(主要的对应策略为报文鉴别) 第8讲 网络安全
因特网的安全隐患举例 分组泄漏(Packet sniffing): 广播介质 间谍 NIC 可以读出所有传输的分组 即可以读出所有未加密的数据 (e.g. passwords) e.g.: C 在“嗅“B的分组 A C src:B dest:A payload B 第8讲 网络安全
因特网安全隐患 IP 欺骗(Spoofing): 可以应用程序中产生“原始”的IP分组, 将任意的值植入IP信源字段 接受方往往分辨不出信源地址的真假 e.g.: C 假装成 B A C src:B dest:A payload B 第8讲 网络安全
因特网安全隐患 拒绝服务(Denial of service ,DOS) : A C B 发送“洪水”分组将接受方“淹死” 分布式 DOS (DDOS): 多个协调的信源向接受端发起攻击 e.g., C 和远程主机同步攻击 A A C SYN SYN SYN SYN SYN B SYN SYN 第8讲 网络安全
密码术的术语 注:密码术是被动攻击主要防护策略 K K Figure 7.3 goes here 对称密钥加密: 收发双方密钥完全相同 B plaintext K A plaintext ciphertext Figure 7.3 goes here 对称密钥加密: 收发双方密钥完全相同 公共密钥加密: 加密密钥是公开的, 解密密钥是保密的 注:密码术是被动攻击主要防护策略 第8讲 网络安全
常规密钥密码体制--对称密钥加密术 替代密码: 使用一种符号来替代另一种 明文: abcdefghijklmnopqrstuvwxyz 单字符密码: 用一个字母来替换另一个 明文: abcdefghijklmnopqrstuvwxyz 密文: mnbvcxzasdfghjklpoiuytrewq E.g.: Plaintext: bob. i love you. alice ciphertext: nkn. s gktc wky. mgsbc Q: 这样的简单密码的解码难度如何?: brute force (how hard?) other? 第8讲 网络安全
解码难度分析 惟秘文攻击:入侵者只有密文,不知道内容的背景。统计分析对分析加密方案有用。 已知明文攻击:入侵者已知某些明文和密文 选择明文攻击:入侵者选择明文信息并且得到相应的秘文 第8讲 网络安全
常规密钥密码体制--对称密钥密码术: DES DES: Data Encryption Standard 美国加密标准 [NIST 1993] 56-bit 对称密钥, 64 bit 明文输入 DES安全性如何? DES 挑战赛: 对使用56-bit密钥的短语 (“Strong cryptography makes the world a safer place”) 进行的解码 (brute force)花费了 4个月 尚未找到 “后门” 解码方法 让DES更安全 对每个数据块顺序使用三层DES(3-DES) 使用块状密码链(use cipher-block chaining) 第8讲 网络安全
对称密钥密码术: DES DES 运算 初始置换 16轮相同的运算,每次使用不同的48 bits 密钥 最终置换 第8讲 网络安全
公开密钥密码术 对称 密码密码术 公开密钥密码术 要求收发双方约定共享的密钥 Q: 如何进行密钥的约定 (特别是在从未“谋面”的情况下)? 公开密钥密码术 完全不同于对称密钥的加密方法 [Diffie-Hellman76, RSA78] 收发双方不共享密钥 加密的密钥匙 公开的(公诸于世) 解码密钥是保密的 (只有接收方知道) 第8讲 网络安全
公共密钥密码术 Figure 7.7 goes here 第8讲 网络安全
RSA: Rivest, Shamir, Adelson 算法 公共密钥加密算法 两个相关的要求: m 1 需要加密d ( ) 和解密 e ( ) m B B d (e (m)) = m B 2 为 d ( )和 e ( ) 选取公开密钥和秘密密钥 m m B B RSA: Rivest, Shamir, Adelson 算法 第8讲 网络安全
RSA: 选择密钥 1. 选取两个大质数 p, q. (e.g., 每个1024 bit) 2. 计算 n = pq, z = (p-1)(q-1) 3. 选择一个 e (e<n) 并且与z没有公约数. (e, z 互质). 4. 找到一个数 d 并且ed-1可以为 z整除. (换言之: ed mod z = 1 ). 5. 则公钥 数对为(n,e).密钥 数对为(n,d). 第8讲 网络安全
RSA: 加密, 解密 0. 假设 (n,e) 和(n,d) 如前述方法计算 1. 则加密过程为,设加密的位流为 m, 则可计算出 c = m mod n e e (i.e., 也就是m 为n除后所得余数) 2. 若对接收到的位流 c进行解密, 则可计算出 m = c mod n d d (i.e., 也就是c 为n除后所得余数) m = (m mod n) e mod n d Magic happens! 第8讲 网络安全
RSA 举例: Bob 选择 p=5, q=7. Then n=35, z=24. e=5 (e, z 互质). d=29 (且 ed-1 可为 z整除) e c = m mod n e 字母 m m 加密: l 12 1524832 17 c d m = c mod n d c 字母 解密: 17 12 481968572106750915091411825223072000 l 第8讲 网络安全
(由于我们 选择 ed 可为(p-1)(q-1)所除 RSA: 原理: m = (m mod n) e mod n d 数论结果: 如果 p,q 互质, n = pq, 那么 x mod n = x mod n y y mod (p-1)(q-1) (m mod n) e mod n = m mod n d ed = m mod n ed mod (p-1)(q-1) (使用上述数论结果) = m mod n 1 (由于我们 选择 ed 可为(p-1)(q-1)所除 且余数为 1 ) = m 第8讲 网络安全
Protocol ap1.0: Alice 说: “I am Alice” 报文鉴别 目的: Bob 要求 Alice “证明”其身份 Protocol ap1.0: Alice 说: “I am Alice” 为什么会失败?? 第8讲 网络安全
认证: 再试一次 Protocol ap2.0: Alice 说 “I am Alice” 并 发送其IP地址进行证明 为什么会失败?? 第8讲 网络安全
认证: 又试一次 Protocol ap3.0: Alice说“I am Alice” 并发送口令证明. 为什么会失败? 第8讲 网络安全
认证: 再试 Protocol ap3.1: Alice 说 “I am Alice” 并发送 其加密的口令进行证明. 为什么会失败? encrypt(password) 为什么会失败? 第8讲 网络安全
认证: 再试 目的: 避免回放攻击 杜撰字(nonce): number (R) 的结果只用一次 ap4.0: 为证明 Alice是否处于“激活”状态, Bob 给 Alice发送 nonce, R. Alice 必须回送 R, 同时使用共享密钥对R进行加密 Figure 7.11 goes here 失败, 缺点? 第8讲 网络安全
认证: ap5.0 ap4.0 要求共享对称密钥 ap5.0: 使用 nonce, 公开密钥加密技术 问题: Bob, Alice 如何才能在共享秘钥上达成一致 我们能否使用公开密钥机进行身份验证? ap5.0: 使用 nonce, 公开密钥加密技术 Figure 7.12 goes here 第8讲 网络安全
ap5.0: 安全漏洞 中间人攻击: Trudy 对 Alice假扮 Bob而对 Bob假扮 Alice Figure 7.14 goes here 结论:需要 “资质认证的” 公钥 第8讲 网络安全
数字签名 模拟手签的加密技术. 对报文进行简单的数字签名 : Bob 使用其私钥dB 对 m 加密, 创建了签过名的报文, dB(m). Bob 将原始报文m 和数字签名 dB(m) 发给 Alice. 模拟手签的加密技术. 发送方(Bob) 对文件进行数字签名, 确定他是文件的拥有者和创建者. 可供鉴定, 不可否认证据:接受方 (Alice) 可以确认这是 Bob发送的文件. 第8讲 网络安全
数字签名 (续) 假设 Alice收到了原始报文m, 和数字签名 dB(m) Alice 即可确认: Bob 签署了原始报文m. Alice核对m报文的签名过程是使用 Bob的公钥 eB 对数字签名档 dB(m) 进行解密,然后确认是否eB(dB(m) ) = m. 如果 eB(dB(m) ) = m, 那么无论是谁签署了原始报文m ,必定使用了 Bob的私钥。 Alice 即可确认: Bob 签署了原始报文m. 不会是他人签署的 m. Bob签署的就是m 而不是 m’. 不可否认: Alice 可以将原始报文 m, 和数字签名dB(m) 提交法庭作为Bob签署了报文m的证据. 第8讲 网络安全
报文摘要 对长报文进行公钥加密计算成本非常昂贵 目的: 固定长度, 产生容易计算的数字签名, “指纹” 应用散列函数 H() 可以对报文m进行处理, 得到固定长度的报文摘要, H(m). 理想散列函数的特点: 多对一(Many-to-1) 产生固定长度的报文摘要 (指纹) 假设有一个报文摘要x, 但是如果想通过计算得到报文 m 的摘要并使 x = H(m)是不可能的 使用计算方法想找出两个报文m 和 m’ 并使得 H(m) = H(m’)也是不可能的 第8讲 网络安全
数字签名 = 签过的报文摘要 Bob 发送数字签名报文: Alice 对数字签名报文的签名和报文完整性进行核对 第8讲 网络安全
哈希函数算法 MD5散列函数得到了广泛的使用. 因特网校验和可以看成性能很差的报文摘要. 通过4个步骤计算 128位报文摘要. 任意的128位串 x, 如果要构造一个报文m使得其MD5 散列结果等于x至少是十分困难的. SHA-1 也有应用. US 标准 160-bit 报文摘要 因特网校验和可以看成性能很差的报文摘要. 要找到两个相同的校验和十分容易. 第8讲 网络安全
具有公信力的中介(Trusted Intermediaries) 问题: 如何解决两个实体通过网络实现对称密钥的共享? 解决办法: 具有公信力的密钥分发中心(key distribution center (KDC) )来作为诸多实体间的中介 问题: 当Alice获取Bob的公钥时 (可以从网站、 e-mail, 甚至软盘), 如何能够使她相信这就是 Bob的公钥, 而不是 Trudy的? 解决办法: 具有公信力的认证机构(certification authority (CA)) 第8讲 网络安全
( Key Distribution Center ,KDC)工作原理 Alice,Bob 需要共享对称密钥. KDC: 为每个注册的用户提供不同的密钥服务. Alice, Bob 在KDC注册后,获取了自己的对称密钥, KA-KDC KB-KDC . Alice 与 KDC联系, 取得了会话密钥 R1, and KB-KDC(A,R1) Alice 给Bob发送 KB-KDC(A,R1), Bob 取出 R1 Alice, Bob 现在共享 R1. 第8讲 网络安全
认证机构(Certification Authorities)工作原理 实体(个人, 路由器, etc.) 可以在CA注册公开密钥. 实体提供 “身份证明” 给 CA. CA 创建信任状将实体与公开密钥进行绑定. 由CA对信任状进行数字签名. 当 Alice需要Bob的公开密钥时: 获取Bob信任状 (从Bob 或其他什么地方). 把 CA提供的公开密钥对Bob的信任状进行认证和解码,从而得到 Bob的公开密钥 第8讲 网络安全
Secure e-mail(保密邮件) 产生一个随机的对称密钥, KS. 使用 KS 对报文进行加密 Alice 要发送保密邮件报文, m, 给 Bob. 产生一个随机的对称密钥, KS. 使用 KS 对报文进行加密 同时使用 Bob的公钥对KS 进行加密. 同时将 KS(m) 和eB(KS) 两项内容发给 Bob. 第8讲 网络安全
Secure e-mail (保密邮件 )(续) 如果Alice需要提供发送方身份认证和报文完整性. Alice 对报文进行数字签名. 并同时发送两个报文 (明文和数字签名). 第8讲 网络安全
Secure e-mail (保密邮件 )(续) 如果Alice要提供保密、发送方认证和报文完整性. 注意: Alice即使用了她自己的私钥,也使用了 Bob的公钥,还有一个对称密钥 第8讲 网络安全
Pretty good privacy (PGP) 因特网 e-mail的加密机制,一项既成事实的标准( a de-facto standard). 使用了前述的对称密钥加密术 , 公开密钥加密术, 哈希函数, 和数字签名技术 提供了保密、发送方认证和报文完整性 Inventor, Phil Zimmerman, was target of 3-year federal investigation. 具备 PGP 签署的报文: ---BEGIN PGP SIGNED MESSAGE--- Hash: SHA1 Bob:My husband is out of town tonight.Passionately yours, Alice ---BEGIN PGP SIGNATURE--- Version: PGP 5.0 Charset: noconv yhHJRHhGJGhgg/12EpJ+lo8gE4vB3mqJhFEvZP9t6n7G6m5Gw2 ---END PGP SIGNATURE--- 第8讲 网络安全
安全插口层(Secure sockets layer,SSL) 服务器认证: SSL使得浏览器可以使用来自CA的公钥. 浏览器可以请求由CA发布的服务器信用状. 浏览器通过CA的公钥来获取信用状上服务器的公钥. 查看你的浏览器,有关CA的内容 PGP 为特定的网络应用项目提供安全性保证. SSL则工作在传输层. 为任何使用TCP传输服务的应用程序或协议提供安全保障. SSL: 可以用在WWW 浏览器, 服务器之间为电子商务服务 (shttp/https). SSL 安全服务包括: 服务器认证 数据加密 客户端认证 (可选) 第8讲 网络安全
安全插口层(Secure sockets layer,SSL)(续) 浏览器产生对称的会话密钥, 再使用服务器的公钥加密后, 将会话密钥发给服务器. 服务器使用它保存的私钥将会话密钥进行解密. 浏览器,服务器由此将下一步的报文交流的加密密钥取得一致. 所有送入 TCP插口的数据 (无论是客户端还是服务器) 全部使用对称密钥进行加密. SSL:成为 IETF 的传输层安全性(TLS) 的基石. SSL 可以用在非Web 应用程序, e.g., IMAP. 客户端认证可以通过客户端信用状( client certificates)解决. 第8讲 网络安全
SSL在电子商务应用中的局限性 SSL比较简单而且发展较早 ,应用广泛 SSL为付帐卡交易提供了一个通用平台 第8讲 网络安全
SSL在电子商务应用中的局限性 再次考虑Bob通过SSL从Alice 公司购物的过程 Bob从Alice接收到的签名证书可以证明确实在与Alice Co.进行交易 一般证书不能够表明Alice Co.是否被授权接受支付卡交易以及公司是否是可靠(可能产生欺骗) 客户端身份认证也有类似问题。即使启用SSL客户端身份认证,也不能够将Bob和特定授权的支付卡联系在一起 (可能产生信用卡盗用) 第8讲 网络安全
安全电子事务( Secure electronic transactions ,SET)协议 为在因特网上使用信用卡业务专门设计. 在交易的三方间提供安全服务: 客户 商家 商家的结算银行 三方都必须具备证书. SET 定义了各类证书的法律含义. 划清各方的责任界限 客户的卡号直接送到商家的结算银行,而商家看不到客户的卡号(明文). 防止了商家的滥用或泄露客户的卡号. 三个软件/部件: 浏览器钱包 商家服务器 收单银行的支付网关 (Acquirer gateway) 第8讲 网络安全
SET交易过程 假设Bob想通过因特网和SET从Alice Co购物 Bob向Alice表明他需要进行信用卡购物 Alice向Bob发送发货清单和惟一的交易标识符 Alice向Bob发送商业证书和商家公钥。Alice还要发她的银行证书和银行的公钥。两个证书都用CA的私钥加密 Bob用CA的公钥对两个证书解密。Bob现在有了Alice Co.和银行的公钥 第8讲 网络安全
SET交易过程(续) Bob产生两个信息包:订单信息(0I) 和购买指令(PI) ,发送给Alice Co. OI是给Alice Co.的,其中包含交易标识符和使用的卡的种类。但并不包括Bob的卡号。 PI是给Alice的银行的,包含交易标识符、卡号和Bob的购物价值。 OI和PI的加密是不同的;OI是用Alice 的公钥加密,而PI是用Alice银行的公钥加密 (确切地说,OI和PI是用客户—商商家的会话密钥和客户-银行的会话密钥加密) 第8讲 网络安全
SET交易过程(续) Alice为支付卡支付请求生成授权请求,其中包含交易标识符 Alice将用银行的公钥加密的报文发送给银行(实际上使用会话密钥)。这个报文包括授权请求、来自Bob的PI包和Alice Co.的证书 Alice的银行接收到报文并且拆解。银行检查其完整性。它也确定在授权请求中的交易标识符和Bob的PI包中的相同 Alice的银行通过传统的银行卡通道向Bob的支付卡银行发送支付授权请求 第8讲 网络安全
SET交易过程(续) 一旦Bob的银行授权了这笔支付,Alice的银行向Alice发送响应,这个响应包含交易标识符。 如果这笔交易通过了,Alice向Bob发送她的响应报文。这个报文是一个收据,通知 Bob支付被接受了,商品将要交付。 第8讲 网络安全
防火墙 两种类型的防火墙: 分组过滤器 应用网关 为防止“拒绝服务”类攻击: SYN flooding: 攻击者启动许多虚假的TCP连接,占据了主机上的TCP缓存资源,从而阻止了主机有效的服务. 为防止非法修改内部数据. e.g., 攻击者使用其他网页来替换网站原有的主页 为防止入侵者获取主机上的机密数据. firewall 将某个组织的内部网络与外部因特网隔离,允许某些分组通过,而阻止另外一部分. 两种类型的防火墙: 分组过滤器 应用网关 第8讲 网络安全
分组过滤 内部网络通过路由器连接到因特网. 路由器厂商提供了分组过滤的选项,其依据是 : 源 IP 地址 宿 IP 地址 TCP/UDP 源和宿端口号 ICMP 报文类型 TCP SYN 和ACK 位 例 1: block incoming and outgoing datagrams with IP protocol field = 17 and with either source or dest port = 23. 所有进出的 UDP数据流和 telnet 连接都被禁止掉了. 例 2: Block inbound TCP segments with ACK=0. 防止外部的客户端直接与内部的客户端进行TCP连接,允许内部的客户端与外部的进行连接. 第8讲 网络安全
应用网关 根据应用数据和IP/TCP/UDP 的字段过滤分组. 例如: 允许选择内部用户使用 telnet访问外部. host-to-gateway telnet session gateway-to-remote host telnet session application gateway router and filter 根据应用数据和IP/TCP/UDP 的字段过滤分组. 例如: 允许选择内部用户使用 telnet访问外部. 1. 要求所有的 telnet 用户通过网关进行 telnet 连接. 2. 对通过认证的用户, 网关为其建立通往目的主机的telnet 连接. 网关在两个连接之间中转数据 3. 路由器将阻止所有未经中转的 telnet连接. 第8讲 网络安全
防火墙和网关的局限性 IP 欺骗: 路由器不能辨别数据是否真的来自其自称的信源 过滤器经常采用对UDP的all or nothing 策略. 如果多种应用需要特别处理,则每一种都需要各自的应用网关. 客户端软件必须能够同应用网关交互. e.g., 在浏览器中设置代理服务器的地址 过滤器经常采用对UDP的all or nothing 策略. 折衷方案: 与外部网络通信应用的程度,设置安全等级 许多高度机密的站点仍然遭受到攻击. 第8讲 网络安全
网络安全 (小结) 基本技术…... 加密术 (对称和公开的) 认证 报文完整性 …. 使用在许多安全性的场合 保密邮件 安全传输层 (SSL) 安全电子事务协议 防火墙 第8讲 网络安全