代码签名是一种互联网信任机制,它使软件用户在下载和执行互联网上的可执行代码之前先信任它。由于费用及流程的原因,该机制目前尚未向独立开发者直接开放。但是,现在已经有一些 商店开始向独立开发者发售Thawte 代码签名证书,年费为99 美金。
使用数字签名并不能阻止恶意行为——它只能保证代码不被非原作者之外的第三方篡改。Tim Heuer 最近写过一篇博客,总结了开发者获取证书的流程,给出了需记住的几点建议。Thawte 提供5 中不同的证书,分别面向不同的代码签名实现—— Authenticode 、 Office/VBA 、 Java 、 Adobe AIR 和 Mac 。若使用 Authenticode 证书,你甚至可以给在浏览之外运行或本地安装的 Silverlight 应用签名。
代码签名是如何工作的呢?它使用了私钥 - 公钥对和单向 hash 算法。软件发布者使用自己的私钥对可执行代码做签名,而让终端用户使用他(软件发布者)的公钥做验证。CA 机构使用自己的私钥对软件发布者的公钥做签名。因为 CA 机构是被大多数操作系统信任的,所以终端用户就能信任软件发布者的公钥,进而信任其可执行代码。Scott Corley 对该过程有更详细的解释。
除了使用 CA 之外,你还可以将自己的公钥公布出去(对方通过下载或安装获得你的公钥),或者在大型可控的部署环境中使用私有 CA(如大公司的内部用户)。此外,在 Android 或 iOS 等新平台中这些方法已经够用,自签名应用甚至是典型的做法。
评论