Westmont College 网络安全 (访问控制、加密、防火墙) CS 140 Part XVI 网络安全 (访问控制、加密、防火墙) Chapter 37
Web应用的“外患”与“内忧” Based on 《Security models for Web-based application》 Westmont College CS 140 Web应用的“外患”与“内忧” Based on 《Security models for Web-based application》 by James B.D.Joshi,Walid G.Aref,Arif Ghafoor February 2001/Vol.44.No.2 p38-44 《Communication of ACM》 Chapter 37
安全网络:Secure Networks 安全网络 不是一个绝对的概念,网络不能简单划分为安全和不安全的 一个组织为建立安全系统应该采取的第一步是定义安全策略( security policy ) 策略不会指定如何取得这些安全保护,而是清楚列出了需要保护的清单。 网络安全策略与连接到该网络的计算机的安全策略密不可分 必须仔细评估实施一套安全策略的成本和收益。 2019/4/9
网络安全策略 Devising a network security policy can be complex because a rational policy requires an organization to assess the value of information. The policy must apply to information stored in computers as well as to information traversing a network. 设计安全策略是复杂的,因为一个合理的安全策略需要组织去评估信息的价值。安全策略必须应用于存储在计算机中的信息以及在网络上传输的信息。 2019/4/9
Main risks: 信息被非法修改 拒绝服务 信息被非法窃听:未经认可的用户对数据的非法访问 假冒他人发送信息 其它:病毒。。。 2019/4/9
安全涉及的方面 数据完整性(Data integrity):数据是否被篡改? 数据可用性(Data availability):防止服务被破坏,是否数据依然可用? 数据机密性(Data confidentiality):是否被非法存取? 私有性(Privacy):指发送者保存匿名的权利:是否可以判断发送者的身份? 2019/4/9
2019/4/9
责任和控制 Responsibility and Control 可说明性:Accountability 如何保存审计信息,谁对数据记录负责? 授权:Authorization 指每条信息的责任和如何将这些责任分配给其它人 2019/4/9
完整性机制 防止偶然或故意破坏数据完整性的常用方法: 发送者以包的数据为函数计算出一个整数值。 奇偶校验 ( parity bits) 校验和(checksum ) 循环冗余校验( cyclic redundancy checks ,CRC). 发送者以包的数据为函数计算出一个整数值。 接收者从接收到的数据中重新计算出这个整数,并比较二者的结果。 However, a attacker can create a valid checksum or CRC from the altered data. 2019/4/9
完整性机制:措施 Several mechanisms against malicious(恶意) intentional change of intercepted data exist: 用MAC (Message Authentication Code)来编码要发送的数据。 MAC基于无法破译或仿造的密码机制工作。 采用只有收发双方知道的secret key。 发送者用the secret key 来 scramble the data and the checksum or CRC 2019/4/9
存取控制与口令 口令用于控制访问 在网络上,口令容易被 snooping, 象telnet, FTP or HTTP等协议均为纯文本协议。 怎么办? 即使听了也没有用。 2019/4/9
你是谁? How do you know the customer is the customer he/she pretends to be? How do you know the server is the server it purports to be? Is it really the the web page I want to connect to? Is it really the company I want to make a transaction with? Is it really the customer I think I am dealing with? 2019/4/9
认证 The process of making sure the server and the client are indeed the server and client they purport to be is called authentication. 用户认证是计算机安全中最为困难的部分之一。 认证基于数字签名技术进行 要对一条消息签名,发送者必须用一个只有自己知道的key来对该消息加密。 什么是加密? 2019/4/9
什么是加密? 加密是一种即使消息被窃听,也仍可保持其机密性的技术. 发送者在发送前打乱了消息的各个比特,而只有接收者才能将消息恢复原位。 从而攻击者不能从截取的消息中抽取正确的消息? 2019/4/9
早期:对等加密 E= encrypt (Key,M) The receiver and the sender share the same secret key The sender encrypts the message with a key K and the receiver decodes the encrypted message with the same key K. Example: DES E= encrypt (Key,M) M=decrypt (Key,E) Mathematically decrypt is inverse of encrypt decrypt = encrypt-1 2019/4/9
对称加密 缺陷 需要进行私钥交换,一旦私钥泄漏,则失败。 规模复杂 未知实体间通信困难:彼此不信任 2019/4/9
公钥密码机制 由Deffie 和 Hellman发明: 原理 “New Directions in Cryptography”,1976 Publicly revealing an encryption key does not thereby reveal the correspongding decryption decryption. 即使获取了公开的加密钥,也不能反推出解密钥。 2019/4/9
重要结论 不再需要传输KEY. only the intended recipient can decipher the message. 用该人的公钥来加密即可。 消息可用私有的KEY来“签名”. Signatures 无法仿造. 签名者也不能抵赖其签名的有效性. 2019/4/9
如何用这种机制来实现 机密性和隐私性:privacy and confidentiality 数字签名:signature 实体鉴别:authentication 2019/4/9
Privacy and confidenciality Bob向Alice发一个private message的过程: Get the public key Ea from the public file Send her Ea(M) Alice decpher it :Da(Ea(M))=M 特点 No need to establish private transactions(保证了私密性) An intruder listening in on the channel cannot decipher any messages. Since derive decryption keys from encryption keys is impossible.(保证了机密性) 2019/4/9
数字签名Signatures Alice首先用自己的私钥对要发给Bob的消息签名:s=Da(M) 然后用Bob的公钥加密:Eb(S).并把结果发出. Bob先用自己的私钥解密得到S,然后用Alice的公钥解密得到M. 2019/4/9
数字签名Signatures 完整性:Bob或其他人不可修改M,对输入数据的任何修改都会引起输出的变化。 不可否认性:Alice不可否认发给Bob消息,因为除了他没人能得到他的签名s=Da(M)。 机密性:因为只有Bob才有他自己的私钥,别人无法获得。 2019/4/9
Authentication 简单的<id,password>的缺陷: Replay:重放攻击 例子:“阿里巴巴与四十大盗” 基于公钥技术,采用“挑战-响应”协议和信息签名解决实体鉴别问题. Alice challenge to Bob: a number 100 Bob sign the number with his private key. Alice get the signed number and decpher it with Bob’s public key,compare the result. Alice的challenge每次都不一样,因此不可能重放攻击. 2019/4/9
Certificates 上面的讨论基于: Alice认为他获得的Bob的公钥是“真的”。 攻击者常会假冒 Westmont College CS 140 Certificates 上面的讨论基于: Alice认为他获得的Bob的公钥是“真的”。 攻击者常会假冒 因此需要一个方法来保证这一点,保证你得到的证书是可以信赖的。 这个方法就是:证书机制,所有的证书都经过颁发者的私钥签名,因此是可以信赖的。 发放证书的机构就是:PKI-公开密钥基础设施 2019/4/9 Chapter 37
Certificates 证书是一种验证服务器身份的电子手段。 客户端可以通过检查证书确认自己连接到了正确的服务器上。 证书被预先存放在客户端数据库或一个证书权威( certificate authority)处,通过比较可以验证一个收到的证书是否正确。证书一般由第三方颁布。 证书有期限。 你可以颁布自己的证书并分发给允许访问你站点的用户。 2019/4/9
PKI:公开密钥基础设施 证书管理 认证 完整性 机密性 2019/4/9
Internet firewall 加密技术并不能解决所有的安全问题,还需要其他技术的配合. 对内网的每台计算机都施加保护代价太大。 Better create a protective wall 防火墙技术帮助保护内网不被unwanted Internet traffic所骚扰. 防火墙通常放在内网与Internet之间,防止问题从Internet扩散到内部。 2019/4/9
Internet Firewall 所有进入内网的流量必须经过防火墙 所有离开内网的流量必须经过防火墙 防火墙拒绝任何违反内网安全规则的流量 防火墙本身对安全攻击有免疫力 2019/4/9
包过滤:Packet Filtering Packet filtering是防火墙、路由器采用的主要机制 指明哪个包可以通过,哪个包不行 2019/4/9
包过滤防火墙 防火墙中的三个安全机制 Packet filter for incoming packets Packet filter for outgoing packets Secure computer system to run application-layer gateways or proxies 2019/4/9
过滤服务 除了低级的IP地址包过滤,还可检查包的协议或其他高层服务 即实施基于服务的过滤 Example: allow HTTP and SMTP and FTP only 2019/4/9
Virtual Private Networks:VPN 两种保证多个站点的intranet安全性的方法: Private network connections (confidential) Public internet connections (low cost) Virtual Private Network 同时获得机密性和低成本的好处 软件实现 2019/4/9
Virtual Private Network 每个站点的路由器上运行VPN 软件,用于虚拟一个专用网。 2019/4/9
Virtual Private Network的实现 首先,组织为其内部的每个网站获得一个Internet连接 然后,组织在每个网站中选择一台路由器运行VPN软件(通常,该路由器与internet相连) 接着,组织配置每台路由器中的VPN软件,让它们知道任何其它网站中的路由器的VPN软件 VPN 软件实际上是一个包过滤器;流出数据包的next hop 为另一个VPN路由器。 每个外出数据包均加密。问题,整个包都加密吗?是否只有包体加密?--包头不加密会造成信息泄漏。如何保证数据包在从internet的一个网站到另一个网站的过程中完全隐蔽? 2019/4/9
隧道技术 Tunneling 动机:希望完全加密整个数据包,使其完全隐身! 但这样路由器就不能工作了! 解决: VPN 加密整个数据包,然后将加密后的数据包完全放入另外一个数据包进行传输 Called IP-in-IP tunneling (encapsulation) 2019/4/9
Tunneling 网站1的计算机X发送一个数据包给网站2的计算机y 网站1上的路由器 R1 加密该数据包,封装于另一个数据包中传送给站点2的路由器 R2 2019/4/9
安全的“内忧” 对内部后台信息系统的保护 主要安全原则 完成机制: 访问控制(Access Control) 更难防备 Least priviledge principles Separation of Duty Data abstraction 完成机制: 访问控制(Access Control) 2019/4/9
安全策略 最早使用访问控制方法的两种: 军用:MAC(Mandatory Access Controls) 军方应用的安全目标:preventing the unauthorized observation of classified information. 民用:DAC(Discretinary Access Controls) Integrity deals with broader issues of secrity than confidentiality 特别是:funds transfer,clinical medicine,environmental research,air traffic control等行业 每个企业都有自己唯一的安全需求,传统的DAC和MAC难以满足要求。 2019/4/9
安全策略 DAC的定义: a means of restricting access to objects based on the identity of subjects and/or groups to which they belong. The controls are discretinary in the sense that a subject with a certain access permission is capable of passing that permission(perhanps indirectly) on to any other subject(unless restrained by mandatory access control) 一言蔽之,DAC的特点是:用户可不经批准的把自己拥有的权限批准给其他人使用。 2019/4/9
安全策略 MAC的定义: a means of restricting access to objects based on the sensitivity(as represented by a label)of the information contained in the objects and the formal authorization(I.e clearance) of subjects to access inforamtion of such sensitivity. 强调的是:严格限制什么级别的人访问什么级别的信息。 2019/4/9
RBAC Permissons are associated with roles and users are mad members of appropriate rols. 更自然,符合组织管理方式.greatly simplifies management of permissions. 与DAC的主要不同:The user cannot pass access permissions on to other users at their discretion. 更像MAC MAC关心的是who can read what information.信息绝对不可从高级流向低级权限. RBAC更关心保护信息的Integrity,也就是“Who can perform what acts on what information” 符合安全三原则 2019/4/9
summary PKI技术可以有效防止用户的非法访问和修改数据等问题.但在浏览器客户端实施尚不完善 要保护内部后台数据库的安全,可以实施RBAC的策略,如果要进一步提供基于工作流的访问控制,也可在RBAC的基础上完成.. 2019/4/9