主题:【原创】IT八股:闲聊信息安全 (之一.基本概念) -- 昔杨今雨
事先声明一, 这属于无责任点评. 事先声明二, 安全产品种类繁多, 我只是挑选一些常见的, 或者特别有用的, 或者比较新奇的说说, 如果各位对其它产品也有兴趣, 我可以再逐步地补充进去.
在<>四大火坑(下)>里面提了一下单点登录(SSO), 留下的尾巴先收拾干净. 微软的Passport技术, 在我看来就是一种SSO, 一次认证, 到处通行. SSO这个一半是海水, 一半是火焰的水火坑, 大公司是很有动力往下跳的, 因为这些企业往往产品众多, 应用广泛, 拿出来的解决方案基本上本公司的产品就可以全包. SSO是很好的黏合剂, 可以有效地提升产品之间的融合度, 便于产品打包销售.
但是对异构环境, SSO就力不从心了, Application的种类太多了, 从架构到具体实现差别很大, 因此SSO一到具体实现, 除非有足够的投资(资金, 时间和决心), 否则往往只能延伸到一小部分的应用, 完成一个半吊子工程. 此外SSO缺乏一个公共的标准, (微软, IBM等等自己都有一套), 只有等到几位大佬打累了, 坐下来定分赃的规则, 在这之前, 对其他人来说还是要在痛苦中继续煎熬.
Firewall目前基本上属于标配, 相当于小区保安, 没有是万万不可的, 有个院子还得扎个篱笆墙呢, 不然谁家的小狗没看住, 都可以来撒泡尿. 但是Firewall的问题是, 它总是要有出入口的, 就好比在保险箱周围建了一圈墙, 在墙上开个门. 如果这个门是在自家房子里面还好说(限定可以访问的IP等等), 但是如果本来就是要提供公共服务的, 这个门谁都可以进来, 那么安全不安全就全看保险箱的了.
保险箱是安全的最后一道防线, 而保险箱的最后一道防线就是数据安全. 在保护数据安全方面, 我觉得最有效的工具是数据完整性保护工具了, Tripwire就是其中的典型代表(而且有Open Source的版本). 数据完整性保护工具的原理大致如下: 先对全部或指定的数据做一次快照, 然后定期把当前数据和快照进行比对, 如果发现当前数据被修改了, 可以根据预先设置的预案, 报警或者自动把改动的数据回滚回去(Rollback). 这种方式对防止数据篡改或者系统被安装rootkit方面非常有效.
数据保护的另一个有效的方法是加密. 都说密码技术是信息安全最核心的技术, 就是因为数据是信息安全最核心, 想象一个黑客辛辛苦苦, 劈关斩隘, 冲破重重艰难险阻, 最后到达密室的最里层, 拿到<九阴真经>的最后一章, 痛苦地发现完全看不懂, 信息安全专家们在梦里都会笑醒.
数据加密的产品包括PGP(这个最有名), TrueCrypt(Open Source的后起之秀)等等(在linux之下, 数据加密工具可供选择的更多, 例如dm-crypt). 这些产品都可以实现加密磁盘, 在硬盘上先以文件的形式划分一整块的空间, 然后可以把这部分空间mount成一个逻辑分区, 在这块虚拟的逻辑分区硬盘上所有读写操作都会被自动加解密, unmount之后, 对没有开锁钥匙的人来说, 就是一个由一大坨乱码组成的文件. 这样做带来的一个附加好处就是数据备份更简单了, 要备份你的重要数据吗? 只需b把重要数据都放在这个虚拟分区里面, 然后直接备份这个虚拟分区文件就行了. Safenet公司的商业产品ProtectDrive做得更进一步, 它可以把整个物理硬盘整体加密, 在系统boot时, 先向使用者要开锁密码, 然后再进入操作系统.
我所有需要保护的数据, 包括Email, 源代码, 文档, 个人小秘密等等, 都放在我的虚拟加密磁盘里面, 即使我的笔记本丢失了, 或者硬盘被别人拿走了, 或者硬盘损坏, 需要送出去修理, 都不用担心秘密会泄漏. 如果各位的硬盘上藏着前任的情书照片, Playboy的美女乃至AV的, 也强烈推荐使用, 但是一定要低调, 以防他人起疑心:-)
在日常生活中, 很烦人的一点是需要记很多口令, 都一样就太危险, 不一样又容易搞混淆. 例如Keepas(Open Source)这样的口令管理工具就可以派用场了.
防水墙是这样一种东东, 它安装在客户端的系统里面, 根据集中配置的策略, 限制文件的读写拷贝删除等操作, 例如, 指定某些文件不允许copy到移动介质上. 此外, 还可以随时把客户端目前的使用情况, 例如屏幕, 进程等等上传到中心管理端. 看着眼熟是不? 对, 这不就是木马嘛. 虽说对个人隐私是一大威胁, 但是在某些特殊的场合确实需要这样的工具来帮助实施管理要求. 这方面的产品我了解不多(俺的座右铭也是DO NO EVIL:-), 也就是觉得有趣, 大家知道有这么一种东西就是了.
接下来专门讲UTM, 因为我目前的职业作品就是一个类似UTM但是方向和UTM又有区别的东东. 还是分两篇吧, 也好细细地讲.
强力推荐,书名叫做 别闹了费曼先生。非常非常的有趣,这家伙很有才
用户自己设置的密码很少有复杂的,记得遇见有密码的机器经常用什么a,aa,aaa,111,试几次就出来了,这设置和不设置有什么区别。
事先声明一, 由于我目前的职业作品就是一个采用了UTM概念的东东, 因此本文难免有做广告的嫌疑. 事先声明二, 因为我一直答应一些朋友在有时间的时候, 写一篇短文, 向他们介绍一下我的产品, 我打算把内容合并在一起, 因此本文绝对有做广告的嫌疑. (不喜欢的朋友看到广告部分直接无视就可以了)
Unified threat management (UTM)的Wikipedia解释很简单, 而且存在不少错误(我曾经以为是我在2003年底最早想到并着手开发这样一个集成化的安全产品, 后来发现, UTM这个概念Fortinet在2002年就已经提出来了). 可见虽然概念提出已经有不少时间, 但是目前尚未普及.
具有UTM概念的产品, 在Open Source领域里面有IPCop, SmoothWall, M0n0Wall, 其中M0n0Wall是基于FreeBSD的, 其它两个都是基于Linux. 在商业产品领域里面, 包括Fortinet的Fortigate, WatchGuard, 还有我的NetONE等:-).
集成化的安全产品的优点可以用\"多快好省\"四个字来描述(这四个字印在了俺们的名片上), 反过来, 你也可以用这四个字去衡量某个具体的产品.
多: 集成化的安全产品集成了多种安全功能模块, 但是集成哪些功能, 在这里就出现了分化. 第一类是完全以UTM概念为指导的产品, 例如Fortinet, WatchGuard等, 其中都包括防火墙/NAT, IPsec VPN, 垃圾邮件过滤(Spam Filter), 防病毒网关(一个火坑), IDS/IPS(又一个火坑), Web内容过滤等功能; 第二类则扩展了大量的网络服务和网络通信类的功能在里面, 例如, 流量整型(Traffic Shaping), DNS代理等等, IPCop, SmoothWall可以归入此类; 第三类是在第二类的基础上, 去掉了火坑部分, (例如M0n0Wall), 同时也追加了很多与国内主流需求相关的功能, 例如SSL, PKI服务, 负载均衡(Load Director), 802.1X等等在里面, (例如NetONE);
快: 主要体现在部署方便, 实施速度快. 集成化的产品都具备这样的优点, 部署和配置一台集成化设备, 显然比独立部署和配置多台独立设备方便快速 (带着iPhone总比既带手机, 又带MP3, PDA来的方便). 而且由于集成在一台设备里面, 无论在网络地址划分, 还是功能相互之间的整合上, 都可以得到很大程度上的简化. 在NetONE上, 我们在体现另一个\"快\"上也下了不少功夫, 统一的操作界面, 智能化的规则冲突检测, 全面的自动化系统配置审核, 这么做的目的, 在于缩短用户的学习时间, 可以快速上手, 迅速发挥产品的能力. 一方面可以最大限度地体现产品的价值, 另一方面也可以有效地降低技术支持和维护的工作量.
好: 我一般是用\"好用\"来解释这个好. 集成化产品的大忌是把产品做成简单的功能叠加, 看似一体, 其实互不相关. 一个简单的例子就是, 如果需要新建一条VPN隧道, 那么防火墙的规则应该自动发生变化, 确保这条隧道的通畅. 前面说过\"傻瓜化是信息安全产品的终极目标, 而傻瓜化的背后就是高度的智能化和自动化. 在达到同样的安全需求的前提下, 越简单, 越傻瓜的产品是越好的产品\". 这也是NetONE在设计和开发过程中的一个指导原则.
省: 首先是可以节约设备投资, 分立设备的价格累加总是会高于集成设备, 更何况集成设备可以通过升级等方式追加新增模块. 其次是可以节约运行成本, 傻瓜化的配置和管理方式可以大幅度节约人力成本, 另外, 至少省电省空间吧;-)
集成化的安全产品也有缺点.
首先, 与独立产品中的一流产品相比, 集成化产品中相应的模块的功能往往仅仅是一个子集. 这个也是很容易理解的, 毕竟产品的重点, 技术的专长和相应的投入有很大的差别. 但是从另外一个角度来说, 即使是功能子集, 如果对80%的用户来说已经足够, 其市场前景和发展空间也已经足够了, 这也是UTM产品目前主要应用于中小网络环境的原因.
其次, 集成的功能越多, 性能就越成为用户担心的方面,. 这样的担心并非没有道理, 但是我的经验是如果避开了那些火坑, 更多的情况是用户高估了自己的负载. 也正因为如此, 在NetONE里面, 我们提供了很多性能监测的工具, 例如实时的CPU, 内存负载情况, 网络实时流量, VPN通道实时流量, SSL目前的连接并发数等等. 我们更倾向于让数据告诉我们实际的情况是什么样.
在计算机和通信的发展历史上, 集成一直是主要的潮流. 在我看来, 其根本原因在于, 我们总是希望得到更多的功能和更少的麻烦, 而集成是满足这样的渴望最快捷也最有效的方法. 对于UTM或者类似的集成化的安全产品来说, 现在的实现方式也许是对的, 也许是错的, 也许不久会出现新的思路和方法, 但是无论如何, 这个方向总是值得去努力的.
这个系列到此就告一段落了, 感谢你的耐心, 一直读到这里, 希望本文不至于让你觉得浪费了时间. 至于我, 一天一篇的系列文章实在有点吃不消, 在各位朋友的鼓励下却又欲罢不能, 真是一段辛苦而又快乐的过程.
(仔细算了一下, 我们是从2003年底而不是2004年底开始的, 在文章中已经改正)
因为和我自己目前工作的联系实在是太紧密了, 而且我自认在开发这个产品的过程中, 对UTM有了许多新的认识, 如果不表达出来, 感觉对产品的阐述不够完整; 表达出来, 又会有做广告的嫌疑.
因此, 在文章开头做了一些声明. 同时我觉得大家都是有主见的人, 我只管去写我觉得重要的东西, 而读者自己会去忽略那些他们觉得不重要的东西.
PGP的open source equivalent是GPG(GNU Privacy Guard,www.gnupg.org),但是不支持硬盘加密。
在Linux下加密硬盘的首选应该是dm-crypt。dm-crypt工作在Linux内核里,直接对块设备(如硬盘分区、整个硬盘、甚至是磁盘阵列或外接硬盘)进行加密,这要比使用loop-back设备更高效。
顺带宣传你自己的产品,一举两得。我想,能够帮助宣传国人在信息技术领域的成就,也是符合西西河一贯宗旨的。
河里这样的好帖越多越好!
恭喜:你意外获得【西西河通宝】一枚
谢谢:作者意外获得【西西河通宝】一枚
鲜花已经成功送出。
此次送花为【有效送花赞扬,涨乐善、声望】
为什么呢? 如果几K就够了话, 咱们扫描硬盘上的病毒也不需要这么长的时间了.