前天晚上去听了宫敏老师的讲座:《安全操作系统》。宫敏何许人也?当年背着几十卷磁带把芬兰自由软件库全部拷贝回中国的人,被《程序员》杂志评为影响中国软件开发的二十人之一的自由软件界元老。

宫敏现在凝思科技的董事长,公司的产品主要是磐石安全服务器。由于安全服务器这种东西国际上对中国要么禁运,要么限制出口,所以国内只能自产自销。在中国,有资格讲“安全操作系统”这个题目的,恐怕非宫敏莫属(就像龙芯总设计 师胡伟武在研究生院开课“高性能处理器”一样)。
今年51岁的宫老师可以用“可爱”来形容,一个非常平易近人的“大虾”。讲座结束后竟然还去要听讲座的同学的名片,并说:“你们有空就来找我玩!”
在讲座中了解了一些安全操作系统的知识。一般将操作系统的安全等级分为4档7级,从高到低分别为:A,B2,B1,C3,C2,C1,D。Windows XP和Linux都处于C2级。有SELinux的Linux安全等级上升为B1级。
我问了几个自己比较关心的问题。第一个是有关麒麟操作系统的,想听听专家怎么解释这个曾经吵得沸沸扬扬的事情。巧合的是,宫敏就是麒麟操作系统验收专家组的技术组长,主管源代码方面。所以,据他讲,“这个问题是问对人了”。
麒麟安全操作系统主要分为三层:最底层是自己加的“既不像内核,也不像虚拟机”的东西,上面是BSD的内核,最上面是Linux兼容库。开放给公众使用的系统不包括最底层的东西。整个系统“技术上还是做了很多活的。”
有意思的是,宫敏在检查麒麟源代码的时候,突然看到一些代码很面熟:“咦,这些代码不是我们磐石系统的吗?”,麒麟的开发者连忙承认,并解释其来源和途径。当然,由于麒麟和磐石都是基于*nux的,源协议分别是BSD和GPL,二者共享代码并无法律和伦理上的不妥。
第二个问题是到底为什么说Linux比Windows更安全?毕竟两个系统都是C2级的。我的观点是,因为Linux没有大众化,所以不像Windows那样成为众矢之的。
宫敏的解释分为两点:第一,有太多人关心Linux了。他举了一个例子,teardrop攻击出现时所有系统无一幸免,Linux的补丁发布之用了两小时,而windows用了两周。我的理解是:从某种意义上说,一种系统比另一种系统更安全,要看它应对病毒攻击的反应速度和有效程度。没有系统能做得天衣无缝滴水不漏,当受到攻击时,补丁推出越早,系统便越安全。
第二,Linux的TCB小很多。TCB是Trusted Computing Base。系统的TCB越小越安全。而Windows的整个系统架构不太好,"It's nothing else of a bunch of DLLs."
讲座上宫敏还讲了一些当年从芬兰背着Linux回中国的趣闻。最后我们在电梯里,还聊到了一些写代码的问题。每出一个GCC版本,宫敏便写一段小程序,输出汇编代码.S文件,然后阅读一下,以此了解GCC特性(是不是有点恐怖?)。虽然50多岁了,但他还在写代码,他说主要是C和...我问是不是机器码啊...他笑了笑说是Verilog。