关于AIR代码签名及发布者标识符的相关介绍
使用由公认的证书颁发机构 (CA) 颁发的代码签名证书对您的AIR安装文件进行数字签名可以向您的用户提供重要保证,即他们正在安装的应用程序没有被意外或恶意更改,并将您标识为签名者(发布者)。下面就来介绍一下AIR代码签名及发布者标识符。
一、关于 AIR 代码签名
对AIR文件进行签名时,安装文件中会包含一个数字签名。签名包括包的摘要,用于验证AIR文件自签名后是否未被更改,它包括有关签名证书的信息,用于验证发布者身份。
AIR使用通过操作系统的证书存储支持的公钥基础结构 (PKI) 来确定证书是否可信。安装AIR应用程序的计算机必须直接信任用于签署AIR应用程序的证书,或者必须信任将证书链接到受信任的证书颁发机构的证书链,以便验证发布者信息。
如果AIR文件使用的证书未链接到受信任的根证书之一(通常这包括所有自签名证书),则无法验证发布者信息。虽然AIR可以确定AIR包自签名以来没有被更改,但无法知道谁实际创建并签署了文件。
所以一定要选择可信的代码签名证书品牌,如Comodo、DigiCert等。
二、关于 AIR 发布者标识符
重要提示: 从AIR1.5.3开始,发布者ID已弃用,不再根据代码签名证书计算。新应用程序不需要也不应该使用发布者ID。更新现有应用程序时,您必须在应用程序描述符文件中指定原始发布者ID。
在AIR1.5.3之前,AIR应用程序安装程序会在安装AIR文件期间生成发布者ID。这是用于签署AIR文件的证书的唯一标识符。如果您为多个AIR应用程序重复使用相同的证书,它们会收到相同的发布者ID。使用不同的证书签署应用程序更新,有时甚至更新原始证书实例会更改发布者ID。
在AIR 1.5.3及更高版本中,发布者ID不是由AIR分配的。使用AIR 1.5.3发布的应用程序可以在应用程序描述符中指定发布者 ID 字符串。您应该只在为最初为1.5.3之前的AIR版本发布的应用程序发布更新时指定发布者ID。如果您未在应用程序描述符中指定原始ID,则新的AIR包不会被视为现有应用程序的更新。
要确定原始发布者ID,请找到出版商编号安装原始应用程序的META-INF/AIR 子目录中的文件。此文件中的字符串是发布者ID。您的应用程序描述符必须在应用程序描述符文件的命名空间声明中指定AIR 1.5.3运行时(或更高版本),以便手动指定发布者ID。
发布者ID(如果存在)用于以下目的:
作为加密本地存储的加密密钥的一部分
作为应用程序存储目录路径的一部分
作为本地连接的连接字符串的一部分
作为身份字符串的一部分,用于通过 AIR 浏览器内API调用应用程序
作为OSID的一部分(在创建自定义安装/卸载程序时使用)
当发布者ID更改时,依赖ID的任何AIR功能的行为也会更改。例如,无法再访问现有加密本地存储中的数据,并且任何与应用程序创建本地连接的Flash或AIR实例都必须使用连接字符串中的新ID。已安装应用程序的发布者ID在AIR1.5.3 或更高版本中无法更改。如果在发布AIR包时使用不同的发布者ID,安装程序会将新包视为不同的应用程序而不是更新。