AIR1.5.3 中最主要的一个功能变化是关于文件publisherid。在以往的版本中,该文件位于<APPDIR>/META‐INF/AIR 目录下。在1.5.3 中,出于安全考虑以及更加方便的适应不断变化的数字签名机制,该文件被移除了。
为了弄清楚为什么要移除该文件,我们来介绍一些必要的背景知识。
这里,我们用一些通俗易懂的语言来帮助你快速理解。publisherid 是什么?简单讲,AIR publisherid 是一个字符串,是使用SHA1 安全哈希算法(Secure Hash Algorithm),根据一些必要的信息,例如ApplicationID,认证信息等等生成的一个字符串来唯一标识该应用。
publisherid 有什么用?在1.5.3 以前的版本中,当某应用发布新版本后,对于已安装的老版本,它会验证两个版本的publisherid 是否相同。如果相同的话,则允许升级安装,即弹出
升级安装窗口, 否则会弹出全新安装窗口。另外, 在Encrypted Local Store(ELS) ,
LocalConnection,Local Storage,In‐Browser API 中都会用到publisherid 来识别该应用。
为什么要移除它?在功能设计的初期,考虑到一个根认证一般的有效期是20 年,所以一般的假设是在这个期间内认证信息不会变化。但是随着安全机制的不断提高,考虑到未来的发展变化,各个认证机构一定会使用更长的密钥来进行认证信息的验证,也就是说,不久的将来用户的认证信息一定会相应的发生变化。在这种情况下,继续使用这种显式的字符串匹配的方式一定会给安全性以及兼容性带来问题。移除以后是不是就不验证了?当然不是了。只不过由publisher ID 换成了application ID 作为唯一标识。同时<publisherID>是一个可选项。当<publisherID>被显式的声明后,其依然是首选认证及识别标识。这个新功能对新老用户的影响是什么?对于新用户,既1.5.3 之后的新应用,开发者无需考虑<publisherID>相关的事项。保留该项作为可选项是为了兼容老用户,既1.5.3 以前的版本。
下面,我们来看几个例子,可以帮助大家更好的理解。
示例<1> <publisherID>是1.5.3 新添加的项,使用以前的namespace 会报错。
<application xmlns="http://ns.adobe.com/air/application/1.5.2">
…
<publisherID>4875E02D9FB21EE389F73B8D1702B320485DF8CE.1</publisherID>
…
C:\release153\bin\adt ‐package ‐storetype pkcs12 ‐keystore c:\air.pfx ‐storepass none test.air
app_152.xml adt_test.swf
C: ……\app_152.xml(10): error 103: application.publisherID is an unexpected element/attribute
将1.5.2 改成1.5.3 就没有问题了,可成功生成test.air,并安装运行。
<application xmlns="http://ns.adobe.com/air/application/1.5.3">
示例<2>应用升级
先使用1.5.2 做出一个air 包, 其PublisherID:
A24AE7371968A99C8CAB9AD66023B8A93F9A9313.1
使用1.5.3 namespace,并且显式定义<publisherID>
<application xmlns="http://ns.adobe.com/air/application/1.5.3">
…
<publisherID>A24AE7371968A99C8CAB9AD66023B8A93F9A9313.1</publisherID>
可以看到一个升级安装的窗口
如果不显示定义<publisherID>,会是什么样子?
这个窗口的出现代表AIR 认为这是一个新的应用。
示例<3>认证更新
当一个认证即将过期,续订了同一厂家的证书之后,会出现什么情况呢?
AIR APP v1 | AIR APP v2 | 结果 |
NameSpace < 1.5.3 | NameSpace < 1.5.3 | 出现替换窗口 |
NameSpace = 1.5.3 | NameSpace = 1.5.3 | 出现替换窗口 |
NameSpace < 1.5.3 | NameSpace = 1.5.3并且定义<PublisherID>与前一版本相同 | 出现替换窗口 |
NameSpace < 1.5.3 | NameSpace = 1.5.3 未定义<PublisherID> | 出现安装窗口 |
示例<4>认证迁移
已经安装了旧版本的AIR 应用,现在准备发布该应用的升级版本,并且使用新的(不同厂家
的)证书。
如果只是使用新的证书打包AIR 程序,将出现无法安装的结果。
这种情况下,当使用新的证书打包后,需要使用旧的证书进行迁移,例如:
旧版本安装包,namespace=1.5.2,使用air.pfx 证书。
C:\adt ‐package ‐storetype pkcs12 ‐keystore c:\air.pfx ‐storepass none test.air
publisherID\app_152.xml adt_test.swf
新版本安装包,namespace=1.5.3,使用eboda_crl_http_good.pfx 证书
C:\adt ‐package ‐storetype pkcs12 ‐keystore c:\eboda_crl_http_good.pfx ‐storepass no
ne test1531.air publisherID\app_153.xml adt_test.swf(直接安装test1531.air 将看到上面的结果)再使用旧证书迁移C:\adt ‐migrate ‐storetype pkcs12 ‐keystore c:\air.pfx ‐storepass none
test1531.air test1532.air
安装test1532.air 即可看到更新窗口
还有一件重要的事情。为了使用户平稳安全的过渡到1.5.3 及更高版本,在旧证书过期6 个
月之内,ADOBE 允许继续使用旧证书进行迁移。超过6 个月,则打包AIR 程序无法成功安装。
--胖哥
- 大小: 16.3 KB
- 大小: 29.2 KB
- 大小: 13.6 KB
- 大小: 12.9 KB
- 大小: 16.3 KB
分享到:
相关推荐
unity Amplify Shader 1.5.3 最新版本
java 3d 1.5.3最新版本+doc+src+范例 嘿嘿,你决对找不到的。最新版本jar。 加我qq交流啊。315039973
最新shiro1.5.3全依赖jar包,里面包含shiro-core shiro-spring shiro-web 等等一系列
Air_Display安卓版本 使用手机或安卓平板电脑作为Mac OS或windows的第二显示器 里面有安装教程,要再下载一个在PC客户端
sbt-1.5.3.zip
evasi0n 1.5.3 完美越狱工具
TortoiseSVN-1.5.3中文包
asm-1.5.3 hibernate 必须包
jsPDF 是一个基于 HTML5 的客户端解决方案,用于生成各种用途的 PDF 文档,该文件包含jspdf.debug.js和jspdf.min.js,版本为1.5.3,需要的朋友可以下载使用。
赠送jar包:swagger-models-1.5.3.jar; 赠送原API文档:swagger-models-1.5.3-javadoc.jar; 赠送源代码:swagger-models-1.5.3-sources.jar; 赠送Maven依赖信息文件:swagger-models-1.5.3.pom; 包含翻译后的API...
用VS2019编译的librdkafka-1.5.3动态库,32位,包括debug和release版本
"【WordPress插件】2022年最新版完整功能demo+插件v1.5.3 WP Sheet Editor - User Profile Pro WP表编辑器 - 用户配置文件Pro" ---------- 泰森云每天更新发布最新WordPress主题、HTML主题、WordPress插件、shopify...
firebug 1.5.3很好用的firefox调试js、html、css的 插件。
axis2-1.5.3-bin.zip axis2-1.5.3-bin.zip axis2-1.5.3-bin.zip axis2-1.5.3-bin.zip
angular-1.5.3
PHPMyAccess 是基于 PHPMyEdit 进行改进,包含一个完整的用户系统和菜单系统,主要特点是安装简单,提供...phpMyAccess 1.5.3 更新内容: 通过点击编辑,修改,点击关闭细胞。 使用Ajax所以没有页面重载是必要的。
heapster-amd64-v1.5.3镜像,镜像使用方法: docker load -i heapster-amd64-v1.5.3.tar.gz
jquery-easyui-1.5.3前端开发框架 jquery-easyui-1.5.3前端开发框架
实现了对MongoVUE1.5.3完全破解 Help-->About-->Type:Licensed