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