在第三方提供的SSL证书出现问题后,我们会不解为什么自己对这些供应商如此信任。我们允许他们为我们的网站处理和生成受信任证书,但最后即便是谷歌,微软这样的巨头都不幸沦为受害者。
我们通常都被告知SSL证书只有在受信任机构发布和签署的情况下才是安全的,而且我们不应该使用自签署证书,除非是有限制的内部使用或是用于测试。我们会对在产品环境中部署自签署证书而疯狂。
这是这个逐利行业所酷爱的事情吗?考虑一下:如果你了解发布安全密钥的个人或实体,你会更相信他们吗?通常答案是肯定的,或至少是比较有可能的。现在,如果你是发布证书的人,你会信任一个不熟悉的人吗?如果是你一点都不了解的人呢?
既然如此,如果证书的部署恰当且安全,那为什么还要怀疑自签署证书呢?如果部署不当,自签署证书就会带来更大威胁,但是,如果部署得当,就会带来更多安全性。
受信任证书机构(CA)发布的证书之所以被认为是受信任是从几个标准来衡量的。首先,他们为了浏览器供应商来验证所签署证书的机会。这意味着如果你的证书是由这些受信任CA签署,那么你的浏览器就不会在使用它的网页上停止,只要包含在证书中的信息是准确且与所访问站点是匹配的,这个证书的安装就是起保护作用。
通常个人和企业利用SSL证书来保护网页或Web应用中的信息。这些应用都指向内部和外部用户,主要取决于证书所在网站的属性。如果你打算遵循自签署证书的使用之道,那么第一件必须做的事情就是确保架构本身是安全的。如果你不能保护内部CA服务器的安全,那就比别人强不了多少。这就像是建造一座地基不牢的房子一样。如果你的地基不稳,那么房子可能随时会倒。
下一步,不要用其他任何功能重新定位你的证书服务器。还必须对要签发SSL证书的服务器进行保护,这样你才不会沦为统计员。对要在环境中签署所有SSL证书的CA根证书进行合适部署也至关重要,因为这样可以确保SSL部署的安全性。如果有人想盗取你的CA根证书,那么你的部署就形同虚设。
所以要确保你的服务器处于最安全的位置。推荐你讲服务器放在有视频监控的地方,而且要锁在服务器箱子里。对服务器所在地的要进行最严格的准入制度。而且不使用的时候,也建议关闭服务器电源。
现在,来看看最难的部分:客户端的合理部署。你需要为所有要连接到你网站的用户部署公共根证书,这样他们才不会接收到证书不被信任的信息。可以在大多数浏览器中手动完成此操作,某些浏览器中还可以自动完成。
为了让你发布的证书受信任,你需要把根服务器的公共证书部署到要对你的安全站点进行访问的工作基站浏览器中。这样一来,当用户试图访问使用根CA签署的SSL证书的站点时,浏览器会信任它们。
有知名度的SSL供应商可能希望你将这些操作看做是很难的。虽然这一进程是乏味而单调的,但它并非像脑科手术那样复杂。它是完全可以实现的,例如,在IE中通过Active Directory中的群策略对象,Firefox和Safari系统需要更多工作,但是仍然是可以完成的。你只需要计划好每三到五年进行一次更新。与安全相比这种代价其实不大。
在终端保留CA服务器和SSL证书的管理间接费用要高一些,但是换种思维方式:这种模式可以让你完全控制自己的环境。你可以提前撤销可疑证书。你可以随时重新发布新证书。在较大的环境中,其优势明显大于劣势。
最后,你要规划出企业或个人需求,而且要了解你需要从SSL部署中获得什么。列出正式SSL的安全需求以及架构的加密计划。确保所有的操作都与目标一致,确保你能承担所选项带来的风险。毕竟,作为个人或公司,我们不能只是抗议和抱怨,因为我们选择了让陌生人持有CA,最后只会将自己暴露给不法之徒。