在现代IT环境中,有大量不同的方式可以用来确保应用程序的安全性。其中一个就是从源头开始,让应用程序开发者能够对他们的代码进行数字签名,从而确保给定应用程序的完整性和真实性。
一直以来,认证机构安理会(CASC)就在积极宣传代码签名证书,从而提高互联网从业人员对代码签名的认识。CASC是一个包括全球各大领先证书机构(CA)的行业组织,它成立于2013年2月。
证书机构是一个颁发和管理安全证书的组织,而安全证书主要用于安全套接层(SSL)加密和应用程序代码签名。CASC还与CAB论坛进行了合作,后者是一个包括CA和web浏览器供应商的组织。
代码签名背后的基本理念是,软件开发者可以利用来自CA的有效的证书来对应用程序进行签名。CA的作用是验证一个证书已经被授予给了真实的应用程序。如果应用程序在之后遭到了攻击并被认为是恶意的,那么CA应该能够撤销该证书。一旦CA撤销了该证书,恶意应用程序就不能再正常运行,如果系统按照它本身应该的那样运行的话。
代码签名之前没有得到广泛采用的原因之一是,CA没有一个最小的基线标准来规范代码签名基础设施和流程的工作过程。DigiCert首席顾问Jeremy Rowley告诉eWEEK ,CAB论坛之前就在计划起草一个有关代码签名证书基准要求的公共草案。
Rowley说到:“代码签名能够帮助阻止不法分子把病毒添加到现有软件中,然后再重新分发它,就像它是合法的软件一样。”
当下,攻击者可以对他们自己的应用程序进行自签名,这是CA想要避免的另一个风险。有了自签名证书,个人签署的证书就可以证明代码的有效性和真实性,而不用第三方机构再进行审核或验证。在CA模型中,CA是完整性和真实性的控制点。
Entrust证书服务主管Bruce Morton向eWEEK解释到,有了CA所签发的证书,对代码进行签名的个人的身份就可以得到确认,当代码被认为是恶意的时,这可能是十分有帮助的。
Morton说:“如果在由CA所签发的证书中,确实有遭到滥用的,你就可以撤销它们。”
在现有的安全证书浏览器模型中,web浏览器和CA维护着证书撤销列表(CRL),并会使用包括在线证书状态协议(OCSP)在内的协议来检查证书的有效性。
Rowley解释说,证书撤销是CA基线标准的一部分,它与浏览器证书模型相似。
Rowley说:“该标准之后正式确定并得到了应用,之后它们就会对所有证书机构都有约束力。”