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