Air数字证书

http://help.adobe.com/zh_CN/AIR/1.5/devappshtml/WS5b3ccc516d4fbf351e63e3d118666ade46-7ff0.html

如果用公认的认证机构 (CA) 颁发的证书对 AIR 安装文件进行数字签名,则可以为您的用户提供他们所安装的应用程序未经无意或恶意修改的重要保证,并能证明您的签名者(发行商)身份。用可信的证书或链 至安装计算机上可信证书的证书对 AIR 应用程序进行签名后,AIR 会在安装期间显示发行商名称。否则,发行商名称将显示为"未知"

重要说明: 如果恶意实体以某种方式获取您的签名 keystore 文件或发现您的私钥,则可以以您的身份伪造 AIR 文件。

有关代码签名证书的信息

证书实行声明 (CPS) 和由颁发证书的认证机构发布的订户协议中拟定了涉及代码签名证书使用的安全保证、限制和法律义务。有关当前颁发 AIR 代码签名证书的证书颁发机构的协议的详细信息,请参阅:

ChosenSecurity (http://www.chosensecurity.com/products/tc_publisher_id_adobe_air.htm)

ChosenSecurity CPS (http://www.chosensecurity.com/resource_center/repository.htm)

GlobalSign (http://www.globalsign.com/developer/code-signing-certificate/index.htm)

GlobalSign CPS (http://www.globalsign.com/repository/index.htm)

Thawte CPS (http://www.thawte.com/cps/index.html)

Thawte Code Signing Developer's Agreement (http://www.thawte.com/ssl-digital-certificates/free-guides-whitepapers/pdf/develcertsign.pdf)

VeriSign CPS (http://www.verisign.com/repository/CPS/)

VeriSign Subscriber's Agreement (https://www.verisign.com/repository/subscriber/SUBAGR.html)

关于 AIR 代码签名

AIR 文件进行签名后,安装文件中将包含一个数字签名。此签名包括程序包的摘要,用于证实 AIR 文件自签名以来未经修改;此签名还包括有关签名证书的信息,用于证实发行商身份。

AIR 使用通过操作系统的证书存储区支持的公钥基础结构 (PKI) 来确定证书是否可信。安装 AIR 应用程序的计算机必须直接信任用于对此 AIR 应用程序进行签名的证书,或者必须信任将该证书链接到受信认证机构的证书链,才能核实发行商信息。

如果 AIR 文件用未链至其中一个受信根证书(通常,这些证书包括所有自签名证书)的证书进行签名,则无法核实发行商信息。虽然 AIR 可以确定 AIR 程序包自签名以来未经修改,但无法知道文件的实际创建者和签名者。

注: 用户可以选择信任自签名证书,这样,用该证书签名的任何 AIR 应用程序就会显示该证书中的公共名称字段的值作为发行商名称。AIR 不为用户提供任何将证书指定为可信证书的方法。必须单独为用户提供证书(不包括私钥),且用户必须使用操作系统提供的某种机制或适当的工具将证书导入系统证书存储区中的正确位置。

关于 AIR 发行商标识符

在安装 AIR 文件的过程中,AIR 应用程序安装程序会生成一个发行商 ID。这是用于生成 AIR 文件的证书的唯一标识符。如果对多个 AIR 应用程序重复使用同一个证书,它们将具有相同的发行商 ID。发行商 ID 和应用程序 ID 合起来唯一地标识一个 AIR 应用程序。

应用程序需要了解另一个 AIR 应用程序的发行商 ID,才能使用 LocalConnection 类与其通信(请参阅应用程序间的通信)。您可以通过读取NativeApplication.nativeApplication.publisherID 属性来确定已安装的应用程序的发行商 ID

下列字段用于计算发行商 IDNameCommonNameSurnameGivenNameInitialsGenerationQualifierDNQualifierCountryNamelocalityNameStateOrProvinceNameOrganizationNameOrganizationalUnitNameTitleEmailSerialNumberDomainComponentPseudonymBusinessCategoryStreetAddressPostalCodePostalAddressDateOfBirthPlaceOfBirthGenderCountryOfCitizenshipCountryOfResidence NameAtBirth。如果您续订认证机构颁发的证书,或者重新生成自签名证书,则这些字段必须保持不变才能使发行商 ID 保持不变。另外,CA 颁发的证书的根证书以及自签名证书的公钥也必须保持不变。

关于证书格式

AIR 签名工具接受任何可通过 Java 加密体系结构 (JCA) 访问的 Keystore。这包括基于文件的 Keystore(例如 PKCS12 格式的文件,通常使用 .pfx .p12 文件扩展名)、Java .keystore 文件、PKCS11 硬件 Keystore 和系统 KeystoreADT 可以访问的 Keystore 格式取决于用于运行 ADT Java 运行时的版本和配置。访问某些类型的 Keystore(例如 PKCS11 硬件令牌)可能需要安装和配置附加的软件驱动程序和 JCA 插件。

若要对 AIR 文件进行签名,可以使用大部分现有的代码签名证书,也可以获取一个专门为对 AIR 应用程序进行签名而颁发的新证书。例如,可以使用 VeriSignThawteGlobalSign ChosenSecurity 所颁发的以下任何类型的证书:

    • 用于 Adobe AIR TC Publisher ID
    • ObjectSign 代码签名证书
  • Thawte
    • AIR 开发人员证书 (AIR Developer Certificate)
    • Apple 开发人员证书 (Apple Developer Certificate)
    • JavaSoft 开发人员证书 (JavaSoft Developer Certificate)
    • Microsoft 验证码证书 (Microsoft Authenticode Certificate)
  • VeriSign
    • Adobe AIR 数字 ID
    • Microsoft 验证码数字 ID (Microsoft Authenticode Digital ID)
    • Sun Java 签名数字 ID (Sun Java Signing Digital ID)

注: 必须创建证书才能进行代码签名。不能使用 SSL 或其它证书类型对 AIR 文件进行签名。

时间戳

AIR 文件进行签名时,打包工具会查询时间戳机构的服务器,以获取可独立验证的签名日期和时间。获取的时间戳嵌入在 AIR 文件中。只要签名时签名证书有效,即使在证书过期后也可以安装 AIR 文件。另一方面,如果未获取时间戳,则在证书过期或被吊销之后,AIR 文件将变得不可安装。

默认情况下,AIR 打包工具会获取时间戳。然而,若要允许在时间戳服务不可用时打包应用程序,您可以禁用时间戳。Adobe 建议使所有公开分发的 AIR 文件都包含一个时间戳。

AIR 打包工具所采用的默认时间戳机构是 Geotrust

获取证书

若要获取证书,您通常需要访问认证机构的网站,完成该公司的购买流程。使用何种工具生成 AIR 工具所需的 Keystore 文件,取决于所购买的证书的类型、证书在接收计算机上的存储方式,在某些情况下,还取决于用于获取证书的浏览器。例如,若要从 Thawte 获得和导出 Adobe Developer 证书,必须使用 Mozilla Firefox。然后可以直接从 Firefox 用户界面中以 .p12 .pfx 文件的形式导出证书。

可以使用用于打包 Air 安装文件的 Air 开发工具 (ADT) 生成自签名证书。也可以使用某些第三方工具。

有关如何生成自签名证书的说明以及有关对 AIR 文件进行签名的说明,请参阅使用 AIR Developer Tool (ADT) 打包 AIR 安装文件。也可以使用 Flex BuilderDreamweaver 和为 Flash 提供的 AIR 更新来导出 AIR 文件以及对其进行签名。

下面的示例说明如何从 Thawte 认证机构获取 AIR 开发人员证书并准备好将它与 ADT 搭配使用。

示例:从 Thawte 获取 AIR 开发人员证书

注: 有众多方法可用来获取和准备代码签名证书以供使用,此示例仅说明了其中的一种。每个证书颁发机构都有其自己的策略和程序。

若要购买 AIR 开发人员证书,Thawte 网站要求您使用 Mozilla Firefox 浏览器。此证书的私钥存储在浏览器的 Keystore 内。请确保 Firefox Keystore 受主密码保护并且计算机本身在物理上是安全的。(完成购买流程后,您就可以从浏览器 Keystore 中导出和删除证书及私钥。)

在证书注册过程中,将生成一个私钥/公钥对。私钥自动存储在 Firefox Keystore 内。从 Thawte 的网站请求和取回证书时,必须使用相同的计算机和浏览器。

  1. 访问 Thawte 网站,并浏览至 Product page for Code Signing Certificates
  2. "Code Signing Certificates"列表中,选择"Adobe AIR Developer Certificate"
  3. 完成三步注册过程。您需要提供您所在单位的信息和联系信息。Thawte 随后将执行其身份验证过程,并且可能要求提供其他信息。验证完成后,Thawte 将向您发送电子邮件,邮件中包含有关如何取回此证书的说明。

    注: 可以在此处找到有关所需文档类型的其他信息:https://www.thawte.com/ssl-digital-certificates/free-guides-whitepapers/pdf/enroll_codesign_eng.pdf

  4. Thawte 网站取回颁发的证书。证书会自动保存到 Firefox Keystore
  5. 按照以下步骤从 Firefox Keystore 导出包含私钥和证书的 Keystore 文件:

    注:  Firefox 导出私钥/证书时,它将以 ADTFlexFlash Dreamweaver 可以使用的 .p12 (pfx) 格式导出。

    1. 打开 Firefox "证书管理器"(Certificate Manager) 对话框:
    2. Windows 中:打开"工具"(Tools) ->"选项"(Options) ->"高级"(Advanced) ->"加密"(Encryption) ->"查看证书"(View Certificates)
    3. Mac OS 中:打开"Firefox"->"首选参数"(Preferences) ->"高级"(Advanced) ->"加密"(Encryption) ->"查看证书"(View Certificates)
    4. Linux 中:打开"编辑"(Edit) ->"首选参数"(Preferences) ->"高级"(Advanced) ->"加密"(Encryption) ->"查看证书"(View Certificates)
    5. 从证书列表中选择"Adobe AIR 代码签名证书"(Adobe AIR Code Signing Certificate),然后单击"备份"(Backup) 按钮。
    6. 输入文件名和 Keystore 文件的导出位置,然后单击"保存"(Save)
    7. 如果您使用的是 Firefox 主密码,系统将提示您输入软件安全设备的密码才能导出文件。(此密码仅由 Firefox 使用。)
    8. "选择证书备份密码"(Choose a Certificate Backup Password) 对话框中,为 Keystore 文件创建一个密码。

      重要说明: 此密码用于保护 Keystore 文件,当使用该文件对 AIR 应用程序进行签名时需要提供此密码。应该选择一个安全密码。

    9. 单击"确定"。您应该会收到一条关于备份密码设置成功的消息。包含私钥和证书的 Keystore 文件以 .p12 文件扩展名保存(采用 PKCS12 格式)。
  6. 通过 ADTFlex BuilderFlash Dreamweaver 使用导出的 Keystore 文件。只要对 AIR 应用程序进行签名,就需要提供为该文件创建的密码。

重要说明: 私钥和证书仍存储在 Firefox Keystore 内。虽然这样使您可以导出证书文件的其他副本,但它同时也提供了另一个访问点,必须对此访问点加以保护才能维护证书和私钥的安全。

更改证书

在某些情况下,您可能需要更改用于对 AIR 应用程序进行签名的证书。此类情况包括:

  • 从自签名证书升级到认证机构颁发的证书
  • 从即将到期的自签名证书更改为另一个自签名证书
  • 从一个商用证书更改为另一个商用证书,例如,当您的企业标识发生变化时

由于签名证书是确定 AIR 应用程序标识的元素之一,因此并非只改用其他证书就可以对应用程序更新进行签名。若要使 AIR AIR 文件识别为更新,必须使用同一证书对原始 AIR 文件及任何更新的 AIR 文件都进行签名。否则,AIR 会将新的 AIR 文件作为独立的应用程序安装,而不是更新现有的安装。

AIR 1.1 起,可以使用迁移签名更改应用程序的签名证书。迁移签名是一种应用于 AIR 更新文件的辅助签名。迁移签名使用原始证书,此证书可证明签名者是应用程序的原始发行商。

重要说明: 证书的更改必须在原始证书过期或被吊销前进行。如果不在证书过期前创建使用迁移签名进行签名的更新,则用户在安装任何更新前,必须卸载其应用程序的现有版本。商业上颁发的证书通常都是可续订的,以免过期。自签名证书不可续订。

更改证书:

  1. 创建应用程序更新
  2. AIR 更新文件打包并使用证书对它进行签名
  3. 通过 ADT -migrate 命令,再次用原始证书对 AIR 文件签名

AIR 文件签名以更改应用程序证书中介绍了迁移签名的应用过程。

安装经过更新的 AIR 文件后,应用程序的标识就会发生变化。这种标识变化会产生以下影响:

  • 应用程序的发行商 ID 会发生变化以便与新证书匹配。
  • 新应用程序版本无法访问现有的加密本地存储区中的数据。
  • 应用程序存储目录的位置会发生变化。旧位置中的数据不会复制到新目录。(但新应用程序可以根据旧发行商 ID 找到原始目录)。
  • 应用程序无法再使用旧发行商 ID 打开本地连接。
  • 如果用户重新安装迁移前的 AIR 文件,AIR 会使用原始发行商 ID 将其作为独立应用程序安装。

由应用程序负责在应用程序的原始版本与新版本之间迁移所有数据。若要迁移加密的本地存储区 (ELS) 中的数据,必须在证书发生变化前导出这些数据。应用程序的新版本无法读取旧版本的 ELS。(直接重新创建数据通常要比迁移数据更容易。)

应继续对尽可能多的后续更新应用迁移签名。否则,尚未从原始版本升级的用户必须先安装一个中间迁移版本或卸载其当前版本,然后才能安装最新更新。当然,最终原始证书将过期,您将无法再应用迁移签名。(不过,除非您禁用时间戳,否则以前用迁移签名进行签名的 AIR 文件将仍然有效。为迁移签名添加了时间戳,以便在证书过期后也允许 AIR 接受签名。)

具有迁移签名的 AIR 文件在其他方面与普通 AIR 文件无异。如果应用程序安装在没有原始版本的系统中,则 AIR 会按照平常的安装方式安装新版本。

注: 续订以商业形式颁发的证书时,通常无需迁移证书。除非识别名称发生更改,否则续订后的证书将保留与原始证书相同的发行商身份。有关用于确定识别名称的证书属性的完整列表,请参阅关于 AIR 发行商标识符

术语

本节提供了一个术语表,阐释在决定如何对要公开发布的应用程序进行签名时应了解的部分关键术语。

术语

说明

认证机构 (CA)

公钥基础结构网络中的一个实体,担当受信的第三方,并最终对公钥所有者的身份进行证实。CA 通常会颁发由它自己的私钥进行签名的数字证书,以证明它已经核实了证书持有者的身份。

证书实行声明 (CPS)

规定认证机构在颁发和核实证书方面的做法和政策。CPS CA 及其订户与信任方达成的合约的一部分。它还拟定了身份核实方面的政策及它们所提供的证书具备的保证程度。

证书吊销列表 (CRL)

已被吊销而不应再受到信任的已颁发证书列表。AIR 在对 AIR 应用程序进行签名时检查 CRL,如果不存在时间戳,它会在安装该应用程序时再次进行检查。

证书链

证书链是一个证书序列,链中的每个证书已由下一个证书进行签名。

数字证书

一种数字文档,包含所有者的身份、所有者的公钥以及证书本身的标识的有关信息。由认证机构颁发的证书本身由属于颁发证书的 CA 的证书进行签名。

数字签名

经过加密的消息或摘要,只能用公钥-私钥对的公钥部分解密。在 PKI 中,数字签名包含一个或多个最终来源于认证机构的数字证书。数字签名可用来证实消息(或计算机文件)自签名以来未经修改(在所用的加密算法提供的保证限制范围内);此外,假如使用者信任颁发证书的认证机构,也可以用数字签名来证实签名者的身份。

Keystore

包含数字证书、在某些情况下也包含相关私钥的数据库。

Java 加密体系结构 (JCA)

一种用于管理和访问 Keystore 的可扩展体系结构。有关详细信息,请参阅 Java Cryptography Architecture Reference Guide

PKCS #11

RSA Laboratories 提出的加密令牌接口标准。也是一种基于硬件令牌的 Keystore

PKCS #12

RSA Laboratories 提出的个人信息交换语法标准。也是一种基于文件的 Keystore,通常包含私钥及其关联的数字证书。

私钥

由两部分组成的公钥-私钥非对称加密体系的私有部分。私钥必须保密,绝不应该通过网络传送。进行数字签名的消息由签名者通过私钥进行加密。

公钥

由两部分组成的公钥-私钥非对称加密体系的公开部分。公钥是公开提供的,用于解密用私钥加密的消息。

公钥基础结构 (PKI)

认证机构用来证明公钥所有者身份的一种信任体系。网络客户端依靠受信的 CA 颁发的数字证书来核实数字消息(或文件)签名者的身份。

时间戳

包含事件发生日期和时间的经过数字签名的数据。ADT 可以将符合 RFC 3161 的时间服务器中的时间戳包含在 AIR 包中。如果存在时间戳,AIR 便在签名时使用时间戳确定证书的有效性。这样,AIR 应用程序便可在其签名证书过期后安装。

时间戳机构

颁发时间戳的机构。为了使 AIR 能够识别,时间戳必须符合 RFC 3161,并且时间戳签名必须链至安装计算机上的可信根证书。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值