安全的证书与证书体系的安全
(2010年6月)主持人/江海客
马勇:网名 znsoft,驱动开发网创始人,铠信安全实验室高级合伙人。专注于数字防泄密,公钥基础设施PKI体系以及Windows 文件系统驱动在安全系统中的应用的研究与开发。
汪易:高级开发经理,资深C/C++程序员,毕业于哈尔滨工业大学,曾在多个著名安全公司就职,目前就职于美国某软件公司。
江海客: 2010年5月,一条没有见诸报道的传闻引发了业内关注——某证书发放机构遭到入侵,但目前对此没有任何公开和可信的信息。此传闻让我们必须关注证书体系乃至整个PKI体系架构的安全。但受到话题所限,我们只能把视野聚焦为证书体系安全对于程序安全的影响。
汪易:目前来看美国应用软件公司已经普遍采用了数字签名机制,以微软为例在XP和之前的版本,微软也没有普遍的把添加签名作为一个标准的流程,但可以看到从vista开始,微软已经很规范的为所有程序添加了数字签名。这也为其他厂商做出了良好的示范。
马勇:从Vista开始,64位版本强制要求内核模块必须签名,即所有的驱动程序必须进行数字签名才可以被加载运行。当你的应用程序需要管理员权限时,操作系统的UAC机制也会弹出警告窗口,提示你软件的发布者。这一切都基于PKI数字签名技术进行保障。当你的软件没有签名时,弹出的是黄色的警告框;如果你的软件进行了数字签名,将会弹出白色的信息提示框。这在一定程度上提示用户即将进行的是高特权的可能危险的操作,可以提高系统的安全性。如果合法软件公司开发的非法程序危险系统安全,借用乔布斯在苹果开发者大会上的一句话:可以找到你姥姥家。
汪易:数字签名真实的提供了一种保护价值,病毒感染、Crack等都会破坏签名的数字验证,在基础PKI体系安全情况下,这是无法绕过的。如果没有数字签名机制,木马制造者可以随意通过Version信息来伪造合法厂商的程序。但数字签名的无可仿冒性这就大大提升了仿冒成本。同时,对于软件避免反病毒软件误报、误杀也有很大的益处。
江海客:程序是否有数字签名是反病毒软件未知评价体制的重要组成部分,同时数字签名也无疑增加了用户对获得的软件程序的信任力。因此数字签名是反病毒对抗免杀的诸多焦点之一,从目前来看,采用一些废止和流失的证书等方式是比较典型手法。但基本上无法通过在线验证。但反病毒涉及到检测速度,以及节点是否联网等问题。因此往往需要采用了一些本地化的替代方法,这是当前一些免杀机制大行其道的原因。这种对抗,也说明当前整个证书体系是有效的。但在实际上,由于需要实际的验签与发放,根私钥的存放节点可能需要与实际网络连通,这就使其自身的安全受到威胁。
汪易:如果根证书体系遭到入侵,导致根私钥的流失,那么后果就不堪设想了。如果传言属实的话,这甚至被MD5的安全问题更令人忧虑,在确保根私钥安全的情况下,证书所用的hash算法可以替换,目前来看多数已经更换为了SHA-1。可以想象,假如灰色经济链条也中出现证书签发体系。木马作者需要谁的证书可以待价而沽。这个多年被证明行之有效的体系就会遇到致命威胁。
马勇:微软在这个问题上是留了后手的,微软公司对64位操作系统的驱动签名采用双重认证,即可信第三方根认证以及微软根认证,从而杜绝了证书的伪造。这种情况下,即使你将自己的根证书安装于操作系统中,并对驱动进行签名,也无法加载。因为微软公司要求在这种情况下加载的驱动所用的签名证书必须是双重认证的,即你的签名所用证书的根证书需要被微软信任。
最新漏洞:
国家信息安全漏洞共享平台(CNVD)公布了最新的漏洞防范信息,其中提醒重点防范的漏洞包括:
暴风影音播放器m3u文件处理远程溢出漏洞
Microsoft Windows的SMTP服务存在两个安全漏洞
http://www.microsoft.com/technet/security/bulletin/MS10-024.mspx?pf=true
Microsoft Visio VISIODWG.DLL库缓冲区溢出漏洞
http://www.microsoft.com/technet/security/bulletin/MS10-028.mspx?pf=true
IBM Websphere应用服务器存在两个高危安全漏洞
http://www.ibm.com/support/docview.wss?rs=180&uid=swg27004980