独立开发者的代码签名

  • Roopesh Shenoy
  • 马国耀

2011 年 12 月 19 日

话题:安全语言 & 开发

代码签名是一种互联网信任机制,它使软件用户在下载和执行互联网上的可执行代码之前先信任它。由于费用及流程的原因,该机制目前尚未向独立开发者直接开放。但是,现在已经有一些 商店开始向独立开发者发售 Thawte 代码签名证书,年费为 99 美金。

使用数字签名并不能阻止恶意行为——它只能保证代码不被非原作者之外的第三方篡改。Tim Heuer 最近写过一篇博客,总结了开发者获取证书的流程,给出了需记住的几点建议。Thawte 提供 5 中不同的证书,分别面向不同的代码签名实现——AuthenticodeOffice/VBAJavaAdobe AIRMac。若使用 Authenticode 证书,你甚至可以给在浏览之外运行或本地安装的Silverlight 应用签名

代码签名是如何工作的呢?它使用了私钥 - 公钥对和单向 hash 算法。软件发布者使用自己的私钥对可执行代码做签名,而让终端用户使用他(软件发布者)的公钥做验证。CA 机构使用自己的私钥对软件发布者的公钥做签名。因为 CA 机构是被大多数操作系统信任的,所以终端用户就能信任软件发布者的公钥,进而信任其可执行代码。Scott Corley 对该过程有更详细的解释

除了使用CA之外,你还可以将自己的公钥公布出去(对方通过下载或安装获得你的公钥),或者在大型可控的部署环境中使用私有 CA(如大公司的内部用户)。此外,在AndroidiOS等新平台中这些方法已经够用,自签名应用甚至是典型的做法。


查看英文原文:Code Signing For Individual Developers

安全语言 & 开发