分类
系统安全是“系统的”安全‖
并不总是一无所知的,各安
。比如说,都知道防火墙可
无关人员窃取,数字签名技
只是些并不全面的了解。
全产品厂家的宣传,形形色色的
以用于保护公司内部网络,对数
术能确定收到的信件是不是有人
讲座,已经给人们灌输了不少知识
据进行加密可以保护私人信息免受
伪造等等。可是总的看来,大都还
| 应注意系统的“弱点” |
| 有些系统出于不同目的 已经被人攻破了吗?我可以 算法比1024位RSA算法安全 ,认为加密或是某一方面就 此吗? | 的考虑,过于强调安全的某一个 提供强的128位加密算法”、“1 ”等等。不错,这些说法都是正 是安全的一切,这些问题解决了 | 具体方面。“不是说56位DES算法 28位密钥很安全”、“2048位RSA 确的。可是它可能会给人一个错觉 安全问题也就迎刃而解了,果真如 |
| 事情并不是如此简单, Internet的目的、网上各种 些工作的舞台搬到电子空间 须采取的一种手段而已。攻 本身。 | 加密也好,其它措施也好,都仅 应用系统的目的都是要给人使用 里面来。从这个意义上讲,就是 击者的目标决不只是系统采取的 | 仅只是保证系统安全的一种手段, ,是要把人们日常一直在进行的那 安全也仅仅只是为了人的需要而必 安全机制,而是系统要达到的目的 |
| 莎士比亚有句名言“阳光之下,本无 能对我们有所启迪。 | 新事”,那么,让我们考察一下相类似的系统,应该 |
| 一般说来,密钥长度每提高一位,就 说,如果没有更新的计算技术出现,总是 的密钥是否总是意味着更安全呢?你在门 的密钥空间为10000),或许强盗会试每 大约5000次之内他可以把锁打开。现在假 强盗还会去试5亿次来开一把锁吗? | 可以让攻击者多花费一倍的破解时间,所以从理论上 可以找到在给定时间内不能被破解的密钥的。但更长 上装上了一个4位密码锁(从技术上讲,可以说该锁 一个可能的密钥看行不行(强力攻击),平均说来, 设你装上的是10位的密码锁(密钥空间10亿),你说 |
| 对小偷来说,如果你有 撬锁等手段直接对付你重重 左道的方式,如企业正式文 中的材料⑽淌夷诘奶缸?br>这些例子说明了,看一个系 意的是它最大的弱点在什么 水原理:一个桶能装的水量 | 一扇小门敞开着,或者有一扇窗 武装起来的大门的。而对于技术 档的存放、草稿的处置、对工作 等等,来得到他们想要的目标— 统是否安全,我们不应该只看它 地方,系统的安全性取决于它最 不取决于桶有多高,而取决于组 | 户一捅就破,那他决不会使用撬门 间谍,他们可以通过各种各样旁门 记录的态度,甚至垃圾堆、碎纸机 —信息,而不需太高级的手法的。 采用了多么先进的设施,更应该注 薄弱的部位的安全性。这正是一桶 成该桶的最短的那块木头有多长。 |
| 本世纪70年代之前,密码技术的使用 的高级密码分析。当密码技术的使用大量 不是说在商务系统中最大的威胁是那些能 数学功底的密码分析家呢? | 范围主要在军事方面,当时最大的威胁在于敌方进行 转移到商务系统中之后,这个威胁模型还相同吗?是 够偷听到网络中来来往往的数据,而且还具有良好的 |
| R. Anderson在《密码 统被攻破的案例,对此的回 员,绝大多数都是只需要很 | 系统为什么会失败》一文中,通 答是“不!”。对这类系统最大 普通的技术就能做到的威胁。 | 过考察数百例零售系统中ATM卡系 的威胁不是来自训练有素的技术人 |
| 再考察近几年在Internet上发生的攻击,可以看出这样的威胁模型仍然相同。 |
| 如上所述,更长的密钥 有力的。隐藏在世界各地的 法本身,不需要去试每一个 计中的错误、实现中的错误 下他们只需利用设计者们犯 | 并不总是更安全,一个强的加密 攻击者可以利用一切对你的系统 可能的密钥,甚至不枰パ罢?br>、安装上的错误等等,有时他们 的一次次重复发生的错误。 | 算法只有当得到正确实施时才是强 不利的威胁,他们通常可以越过算 算法本身的漏洞,他们能够利用设 会发明一些小技巧,但大多数情况 |
| 系统安全威胁来自哪里? |
| 进一步的分析,可以粗 系统软件的缺陷、对硬件的 面分别讨论这些问题及相应 | 略地将对系统安全的威胁归结为 攻击、错误的信任模型、拒绝服 的策略。 | 六大类:缺乏教育、变节的员工、 务,这几类之间可能会有交叉。下 |
| 1.缺乏教育 |
| 对安全系统的使用者,可以有两种不同的安全模型。 |
| (1) 火车司机型:这种系统中,使用 别出危险信号,能够自动找寻道路,使用 | 者只需要控制系统的启停就可以了,安全系统能够辨 者在其它时间可以放心大胆地干别的事情。 |
| (2) 航空飞行员型:在这种模型中, 多数情况下实际上系统都已经在自动运行 | 即使系统已经拥有很先进的自动导航设备了,而且大 了,仍然要求使用者必须是训练有素的。 |
| 在这两种模型中,第一 安全系统在经过简单的指导 省力,可也太一厢情愿了。 控制并引导列车前进的机制 办法一劳永逸。 | 种听起来更加“用户友好”。被 安装之后,以后的运行就不再需 现实的网络世界远远没有铁路系 ,可能出现的异常情况太多(包 | 图形用户界面惯坏了的人们都希望 要自己介入了。这种想法确实省心 统那么有序,缺少像铁轨那样严格 括下面要谈到的那些问题),没有 |
| 有些人会认为:“不是 ,它虽然堵住了很多不安全 。虽说受到了限制,这条路 墙是无能为力的。已有很多 不合逻辑地指出:“使用防 | 还有防火墙吗?交给它好了!” 的缺口,但同样小心翼翼地向外 仍然是通的,如果有人利用这条 文献给出了成功地突破防火墙的 火墙,可能会适得其反。” | 这同样错了,防火墙并不是万灵药 界打开了一扇访问内部信息的小门 路径进行数据驱动型的攻击,防火 例子。所以有的安全专家甚至有些 |
| 许多系统被攻破是因为它们严重依赖 会选择保密性很强的口令,当这个口令被 更容易(当然也是更快)被破解。为了便 是一句话,称为“通行短语”。但由于语 比64位(8字节)的随机密钥来得更安全 | 于用户创建的口令,但由于不便于记忆,人们通常不 用作加密系统的密钥时,比起随机生成的密钥,它们 于记忆,有些系统的口令不仅仅是一个单词,还可以 言本身信息的高度冗余性,40个字符的通行短语并不 。 |
| 此外,出于工作上的考 把信用卡放在其它地方了而 装的不安全状态(尤其对Wi | 虑,有些用户可能会把自己的口 不去挂失;不仔细检查收到邮件 ndows NT用户)等都有不小的安 | 令给同事;由于拿不准是不是自己 的电子证书;不去改变软件缺省安 全隐患。 |
| 所以说不管是用户还是 如何选择好的口令、如何管 如何安全升级系统等等。 | 系统管理员,都应该接受所用系 理好口令表、如何保持警惕、如 | 统在安全方面应受到的教育,学会 何处理系统发生问题的紧急情况、 |
| 2.变节的员工 |
| 这一点应该说是属于企业的内部事务 出问题的可能性也就越大。对此,最好的 以及对关键信息的访问。对于银行之类的 机制使得必须有若干个人同时在场时才能 察。 | 。通常负责密钥管理和保密系统维护的人越多,系统 解决办法是建立完整的安全政策,严格控制用户权限 系统,必要时,某些关键数据可以采用某种秘密共享 起用。还要加强审计功能,保证每一件事务都有据可 |
| 安全系统应该能提供解决这一问题的机制,不允许任何人在系统中留有“后门”。 |
| 3.系统软件的缺陷 |
| W. R. Cheswick和S. M 的必要性时,从Murphy定律 含着更多的错误”和“一个 全从简单开始。” | . Bellovin在合著的《防火墙与 出发,先指出了“所有程序都是 同安全相关的程序有安全方面的 | Internet安全》中,当论证防火墙 有错的”,再推出“更大的程序包 错误。”由此可以得出结论:“安 |
| 可是我们考察一下很常见的网络应用 、Web服务器、事务服务器、数据库系统 复杂了,可以说,任何一个部分都可以出 数据失窃、文件被毁或事务被欺骗提交等 当事人却被蒙在鼓里。 | 系统,可以看出其中包含了Web浏览器、Java虚拟机 、CORBA机制等等。当然,也包括防火墙。确实是太 错,而任何一部分的错误都可能导致安全漏洞,导致 。最坏的结果是,“黑客”或破坏者知道这些漏洞而 |
| 进一步细分,这一类问题可能出在以下几个方面: |
| (1) 系统设计中的问题 |
| 安全系统牵涉到各种不 息认证码、安全协议等。攻 密算法和安全协议,仍然可 | 同的密码学原理,如加密算法、 破其中的任何一项,也就攻破了 能设计出安全性很弱的系统出来 | 数字签名算法、单向Hash算法、消 整个系统。即使系统使用了强的加 。 |
| 此外,就如五行中的相 ,得到一个不安全的系统。 条件的限制,不可能对所有 | 生相克一样,两个强安全协议、 这些问题都应该是设计中应该考 东西都了如指掌,即使是大公司 | 密钥的联用也可能会出现安全隐患 虑到的。但由于设计者会受到各种 的产品也会出现设计问题。 |
| (2) 系统实现的问题 |
| 这里面的问题可能出在对设计的理解 出在实现细节上,由于实现时考虑不周, 系统崩溃可能导致密钥被转存到硬盘上; 包重发进行攻击。 | 上,实现的系统并不是设计时所想像的系统。也可能 一些系统不保证当加密之后清除明文;加密过程中, 系统没有考虑请求时间,入侵者可能将截取到的数据 |
| 系统实现中最大的问题 多系统都是在未经充分的测 | 出在程序的错误上,由于时间所 试就投入运行的,肯定会隐藏不 | 限,加之测试工具限制,现有的许 少错误。 |
| (3) 故障恢复中的问题 |
| 设计一个安全的系统要求做到当一个 不至于捅出更大的乱子。泄漏一个文件的 客对智能卡进行逆向工程只能得知他所拿 息。在此,好的系统设计必须考虑到当入 晚,我设计的系统总有一天会被人攻破的 | 系统某一部分被攻破时,其跋旆段вΩ玫玫较拗疲?br>密钥不会使入侵者能看到硬盘上所有的加密文件,黑 到手的卡的秘密而不会有助于获得系统中其它卡的信 侵发生后的对策,设计时应该相信这么一点:或早或 !只有这样,当攻击真的发生时,才不会手足无措。 |
| 对已经广泛投入使用的系统各部分可 知,如地下黑客站点、CERT报告、安全新 | 能出的错误或已经被确诊的错误,有许多渠道可以得 闻组等等,这些渠道通常还会给出解决问题的方法。 |
| 通常当一个系统刚安装 配置的(道理很简单,快才 将系统配置成最安全的模式 | 上时,其缺省配置并不是按照最 能吸引人,而安全是一时半会检 。 | 安全的方式,而是按照最快的方式 查不出来的),这时需要参考手册 |
| 还要使用由防火墙带的 扫描程序,检查目标系统在 | 系统扫描程序(攻击测试),或者 安全方面的潜在缺陷,并参考说 | 由别的免费软件或付费软件提供的 明进行改进。 |
| 不要被自己的系统在错误列表中列出 都是已经得到改正了的,在错误列表中列 大的用户群,试想一个系统如果根本没人 | 的那么多错误所吓倒,事实上,绝大多数列出的错误 出的错误多并不意味着不安全,更多还意味着其更庞 去用,谁还会花功夫去寻找它的缺陷呢? |
| 也不要迷信专用系统的安全性,没有 也不可能有很高的安全性的。事实上,如 素的程序员对其进行逆向工程,也没有办 | 经过大量测试的系统,即使采取了秘而不宣的算法, 果这类算法是用软件实现的,那根本抵挡不住训练有 法保密。 |
| 以上手段虽然不能完全消除系统缺陷,但却能大大提高系统的安全性。 |
| 4.对硬件的攻击 |
| 有些系统(特别是商业 解密、签名等工作都由硬件 入他人手中也不会造成危害 个系统完全依赖于它的防破 件的攻击手段,如检查其运 通道”,可能让拿到卡的人 | 系统),依靠智能卡、电子钱包 完成,用户密钥从不进入计算机 。 专有硬件对系统安全来说可 坏性的话,不能让人相信它是安 算所花费的时间、测量工作中的 能获取其中奥秘。 | 之类防撬装置来保证安全,由于加 内存之中。这些系统假定卡即使落 以是很重要的恢质侄危绻?br>全的。实际上,存在一些对这类硬 能量消耗、射线穿透检查等特殊“ |
| 所以,当设计使用这类硬件的系统时,应该建立其它机制用于防止防撬技术失败。 |
| 5.错误的信任模型 |
| 当使用一个系统时,通 发信者确实是真实的,拿到 过网络取一个共享文件时, | 常都要作出许多假定。比如当你 一个新版的操作系统时,你可能 你会相信你取到的是真正的东西 | 收到一封电子邮件时,你可能假定 会相信厂家在广告中作的宣传,通 。那么,看看下面两个例子: |
| (1)セ髡吖テ屏四?br>的机器,该机器可能中断客 三方的存在,很多敏感数据 认证、数据加密等手段可以 | 个网络目录服务器,由此将对某 户和服务器之间的来往数据,使 就此被窃取。这种方式通常被称 防止这种攻击。 | 些服务器的访问定向到攻击者指定 客户和服务器双方都没有意识到第 为“中间人”攻击,通过引入身份 |
| (2)内部网中,当各 行文件时,一个内部攻击者 的文件块传给工作站,由于 将真正的包当作重复数据丢 一个比较严重的问题,但当 Pack 3注意到了这个问题, | 工作站使用共享文件系统(AFS、 可能监听工作站向文件服务器发 内部网缺少判断数据包发送地址 弃,从而工作站将毫无觉察地使 前许多操作系统还都没做很大的 但同其它系统的互操作性受到了 | NFS、NT/95、Netware等)共享可执 出的文件访问请求,抢先把修改过 的能力,工作站会接收该数据包而 用修改后的程序。这类错误应该算 改进,Windows NT的Service 影响。 |
| 6.拒绝服务 |
| 拒绝服务是指一个未经 而影响合法用户的使用。拒 | 授权的用户不需要任何特权就可 绝服务攻击可能由任何人发起, | 以使服务器无法对外提供服务,从 它可以通过两类问题而实现 |
| (1) 系统程序的错误:特殊的请求数 或升级系统两种方式。 | 据可能导致系统瘫痪,这类问题的解决一般靠打补丁 |
| (2) 协议本身抗干扰能 请求数据挤占合法用户的请 复杂,需要某些“智能”的 | 力差:这是许多基于TCP/IP的协 求空间,使合法用户的请求无法 判断。 | 议所共有的问题,攻击者靠大量的 得到响应。这一类问题的解决比较 |
| 结论 |
| 对于其它类型的系统来 ,如文件压缩软件可以比较 MIS系统可以看指定功能是 述方法。好的加密算法和坏 防住大量攻击,它们的差别 是这样的:设计者读了一本 能工作的,于是他认为这个 没有经过大量实战测试的安 汇,它们用到了安全加密算 | 说,通过比较功能和性能,可以 对相同文件集的压缩比,硬盘可 否已实现。但对安全系统来说, 的加密算法都同样产生不可读数 隐藏在技术细节内部,对其进行 有关安全的书,从中挑出几个算 系统就是安全的了。事实上不是 全系统将永远隐藏着安全漏洞。 法、协议,但它们自身并不安全 | 很容易判断系统的质量和定位问题 以比较其存储容量及访问速度, 由于其自身的特殊性,很难采取上 据,好的防火墙和坏的防火墙都能 分析需要。有许多安全产品的实现 法和协议,经编码之后发现系统是 这样的,能工作并不意味着质量, 不少产品仅仅使用了大量的热门词 。 |
| 网络攻击与反攻击的双方其实是极不 施不法手段,而对反攻击者来说,需要考 安全,是全方位的安全,它需要安全产品 道高一尺,魔高一丈”,攻击与反攻击的 ,但是,我们总可以努力提高系统的安全 一样能够得到增长。 | 平等的,对攻击者来说,只要发现一点漏洞就可以实 虑到系统的方方面面,系统的安全应该是“系统的” 生产者、用户双方都要作出很大的努力才能达到。 " 斗争永远不会停止,百分之百的安全系统是不存在的 性。同时,在与攻击者交手的过程当中,我们的知识 |