CN103052958A - 应用分发系统、应用分发方法、终端和程序 - Google Patents

应用分发系统、应用分发方法、终端和程序 Download PDF

Info

Publication number
CN103052958A
CN103052958A CN2011800394775A CN201180039477A CN103052958A CN 103052958 A CN103052958 A CN 103052958A CN 2011800394775 A CN2011800394775 A CN 2011800394775A CN 201180039477 A CN201180039477 A CN 201180039477A CN 103052958 A CN103052958 A CN 103052958A
Authority
CN
China
Prior art keywords
memory block
file
execute file
application
stored
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN2011800394775A
Other languages
English (en)
Inventor
榎本敦之
芳贺康平
田冈洋平
广嶋隆宪
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Biglobe Inc
Original Assignee
NEC Biglobe Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NEC Biglobe Ltd filed Critical NEC Biglobe Ltd
Publication of CN103052958A publication Critical patent/CN103052958A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/12Protecting executable software
    • G06F21/121Restricting unauthorised execution of programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Multimedia (AREA)
  • Technology Law (AREA)
  • Stored Programmes (AREA)
  • Storage Device Security (AREA)

Abstract

在本发明中,执行文件中的证书数据被作为证书文件存储在访问受限的保护数据存储区(14)中。此后,如果证书数据未嵌入其中的执行文件被作为用于更新的执行文件而从应用分发服务器(40)分发,则当通过执行该用于更新的执行文件来使用应用时,使用存储在该保护数据存储区(14)中的证书文件。

Description

应用分发系统、应用分发方法、终端和程序
技术领域
本发明涉及分发用于与服务器通信的应用的应用分发系统、应用分发方法、终端和程序,以及具体地涉及针对在使用应用时所需的证书的保护技术。
背景技术
近年来,已针对智能电话、因特网终端、板式终端等发布了基于包含开源操作系统、中间件和主要应用的软件栈包的平台(例如,参考非专利文献1)。
前述平台提供有这样的机制,即,不向终端的用户授予根权限,而是向已安装在终端上的每个包指派唯一的Linux用户ID,每个应用基于该Linux用户ID来执行,并且由应用的执行所创建的文件存储在保护数据存储区中,使得终端的用户和其他应用不能对该保护数据存储区进行读取和写入(例如,参考非专利文献2)。
前述平台还提供有这样的机制,其保护应用以免被拷贝。已经指定为处于保护状态的应用被安装在保护应用存储区中,未授权的用户不能向其写入和从其读取数据(例如,参考非专利文献3)。
如果安装了已被指定为处于保护状态的应用,则除了包含在包(.apk)中的应用执行文件(.dex)之外的文件不会安装至未授权用户不能从其读取数据以及向其写入数据的保护区,而是安装至未授权用户可以从其读取数据以及向其写入数据的非保护区。由此,如果安装了包含应用执行文件和客户端证书文件的包文件,则客户端证书文件不会安装在保护区中。结果,用户可能从该包文件移除应用使用的客户端证书(例如,参考非专利文献4)。
已经设想了可以解决这种问题的技术。即,应用程序的执行文件包含证书,以便容易地安装执行文件和证书(例如,参考专利文献1)。利用此技术,由于证书与执行文件一起安装在保护区中,可以防止用户从包中移除应用使用的客户端证书。
在前述平台中,优选的是已经安装的应用被更新。为此,提供了一种分发新安装应用及更新该应用所需的包的机制,作为称作因特网上市场的服务器。在更新应用时,包含应用执行文件、客户端证书文件和证书数据的包文件被上载至称为市场的服务器,以便更新应用(例如,参考非专利文献5)。
相关现有技术文献
专利文献
专利文献1:JP2007-272610A,公开
非专利文献
非专利文献1:Android-Wikipediahttp://ja.wikipedia.org/wiki/Android
非专利文献2:Android Developers Security and Permissions(Android开发者安全和权限)http://developer.android.com/guide/topics/security/security.html#userid
非专利文献3:Forward-Locked Applications(前向锁定应用)http://developer.android.com/guide/appendix/market-filters.html#other-f  ilters
非专利文献4:App Install Location(应用安装位置)http://developer.android.com/guide/appendix/install-location.html
非专利文献5:Publishing Your Applications(公布你的应用)http://developer.android.com/guide/publishing/publishing.html
发明内容
本发明要解决的问题
然而,当应用以前述方式进行更新时,由于包含应用执行文件、客户端证书文件和证书数据的包文件被上载至服务器,如果分发该应用的服务器的管理员是恶意的,他或她可能从包文件移除客户端证书文件和证书数据。由于分发应用的服务器可能不是由向其分发应用的终端制造方安装的,所以恶意的管理员可以掌控服务器。
本发明是从前述技术中存在的问题角度出发的。本发明的目的在于提供应用分发系统、应用分发方法、终端和程序,其允许在这样的状态中更新应用,即,分发更新应用的服务器的管理员不能访问客户端证书。
解决问题的手段
为了实现上述目的,本发明是一种应用分发系统,包括:
终端,其执行应用的已安装执行文件以及继而使用该应用;以及
应用分发服务器,其向所述终端分发所述应用的更新执行文件,
其中安装在该终端中的所述执行文件被更新为从所述应用分发服务器向所述终端分发的所述更新执行文件,
其中安装在该终端中的所述执行文件包含使用所述应用所需的证书数据,以及
其中所述终端将包含在所述执行文件中的所述证书数据作为证书文件存储在已被限制访问的第一存储区中,并且在不包含所述证书数据的执行文件被作为所述更新执行文件而从所述应用分发服务器分发时,所述终端基于存储在所述第一存储区中的所述证书文件来执行所述更新执行文件,以便使用所述应用。
另外,本发明是一种用于应用分发系统的应用分发方法,该应用分发系统包括终端,其执行应用的已安装执行文件以及继而使用该应用;以及应用分发服务器,其向所述终端分发所述应用的更新执行文件,安装在所述终端中的所述执行文件被更新为从所述应用分发服务器向所述终端分发的所述更新执行文件,安装在所述终端中的所述执行文件包含使用所述应用所需的证书数据,所述应用分发方法包括下述过程:
使所述终端将包含在所述执行文件中的所述证书数据作为证书文件存储在已被限制访问的第一存储区中;
使所述应用分发服务器向所述终端分发不包含所述证书数据的执行文件以作为所述更新执行文件;以及
使所述终端基于存储在所述第一存储区中的所述证书文件来执行从所述应用分发服务器分发的所述更新执行文件,以便使用所述应用。
另外,本发明是一种终端,其执行应用的已安装执行文件以及继而使用该应用,以及将所述已安装执行文件更新为从所述应用分发服务器分发的更新执行文件,
其中安装在所述终端中的所述执行文件包含使用所述应用所需的证书数据,以及
其中包含在所述执行文件中的所述证书数据被作为证书文件存储在已被限制访问的第一存储区中,并且在不包含所述证书数据的执行文件被作为所述更新执行文件而从所述应用分发服务器分发时,基于存储在所述第一存储区中的所述证书文件来执行所述更新执行文件,以便使用所述应用。
此外,本发明是一种程序,其使终端执行步骤,其中终端执行应用的已安装执行文件以及继而使用该应用,以及将所述已安装执行文件更新为从所述应用分发服务器分发的更新执行文件,所述步骤包括:
将包含在提供的执行文件中的并且是使用所述应用所需的证书数据作为证书文件存储在已被限制访问的第一存储区中;以及
在不包含所述证书数据的执行文件被作为所述更新执行文件从而所述应用分发服务器分发时,基于存储在所述第一存储区中的所述证书文件执行所述更新执行文件,以便使用所述应用。
本发明的效果
根据本发明,包含在执行文件中的证书数据被作为证书文件存储在已被限制访问的第一存储区中。此后,如果将不包含证书数据的执行文件作为更新执行文件进行分发,则基于存储在第一存储区中的证书文件来执行更新执行文件,以便使用该应用。由此,可以在这样的状态中更新应用,即,分发更新应用的服务器的管理员不能访问该客户端证书。
附图说明
图1是示出根据本发明一个实施方式的应用分发系统的框图。
图2是描述用于图1所示应用的基本操作的流程图。
图3是示出存储在图1所示的保护应用存储区中的安装包文件的结构的示意图。
图4是描述在图1所示应用分发系统中、用于图3所示安装包文件的预安装操作的时序图。
图5是描述在图1所示应用分发系统中、用于应用的常规激活操作的时序图。
图6是描述在图1所示应用分发系统中、用户针对用户终端执行的完全重置操作的时序图。
图7是描述在图1所示应用分发系统中、用于应用的更新操作的时序图。
图8是示出了在图1所示开发者终端的递送产品存储区中所存储的更新版本安装包文件的结构的示意图。
具体实施方式
接着,将参考附图来描述本发明的实施方式。
图1是示出根据本发明一个实施方式的应用分发系统的框图。
如图1所示,根据此实施方式的应用分发系统包括用户终端10、开发者终端20、服务器30和应用分发服务器40。
当用户终端10使用应用时,用户终端10执行已安装的执行文件并访问服务器30。用户终端10包括临时保护存储区11、应用存储区12、保护应用存储区13、保护数据存储区14、调试桥(debugbridge)15、安装器16、应用17和下载器18。用户终端10例如可以是便携式信息终端(PDA:便携式数据助理)或者便携式电话终端,每个提供有诸如Android的OS(操作系统)。用户终端10的根权限未被授予其用户。安装在用户终端10中的每个包被指派以唯一的Linux用户ID。每个应用基于该Linux用户ID来执行。根权限仅授予用户终端10的制造方的授权人员。
开发者终端20是诸如个人计算机的终端,在该终端上开发安装至用户终端10的应用。用户终端10的制造方的工程师使用开发者终端20。开发者终端20包括数据写入工具21、递送产品存储区22和浏览器23。
服务器30是需要基于SSL的双向认证的WEB服务器。
应用分发服务器40是位于因特网上向用户终端10分发应用的服务器。应用分发服务器40包括内容存储区41和WEB服务器42。应用分发服务器40是通常称为市场的服务器。
首先,将描述用户终端10的组成元件。
临时保护存储区11对应于本发明的第二存储区。临时保护存储器11存储通过调试桥15从开发者终端20接收的文件。当安装器16按照调试桥15的命令或用户终端11的启动脚本的命令进行操作时,存储在临时保护存储区11中的文件被传递至在用户终端10的存储器(未示出)上操作的安装器16。仅作为预先指定用户的根权限用户可以在临时保护存储区11中存储文件以及从其读取文件。换言之,仅用户终端10的制造方的授权人员可以在临时保护存储区11中存储文件以及从其读取文件。由此,包括购买者在内的用户终端10的用户不能从临时保护存储区11读取文件。临时保护存储区11中存储的文件不会被清除,即使用户终端10被完全重置(恢复至工厂默认状态)也是如此。
应用存储区12存储从安装器16接收的应用执行文件和辅助文件。在执行应用17时或者在由应用17请求时,存储在用户终端10的存储器中的文件被传递至应用17。即使未经根授权的用户也可以在应用存储区12中存储文件以及从其读取文件。当用户终端10被完全重置时,存储在应用存储区12中的文件被清除。应用存储区12对应于Android的“/data/app”。
保护应用存储区13对应于本发明的第三存储区。保护应用存储区13存储从安装器16接收的应用执行文件。在执行应用时,存储在保护应用存储区13中的文件被传递至用户终端10的存储器。仅根权限用户可以在保护应用存储区13中存储文件以及从其读取文件。换言之,仅用户终端10的制造方的授权人员可以在保护应用存储区13中存储文件以及从其读取文件。结果,包括购买者在内的用户终端10的用户不能从保护应用存储区13读取文件。当用户终端10被完全重置时,存储在保护应用存储区13中的文件被清除。保护应用存储区13对应于Android的“/data/app-private”。
保护数据存储区14对应于本发明的第一存储区。保护数据存储区14存储从应用17接收的文件。在由应用17请求时,存储在保护数据存储区14中的文件被传递至应用17。仅根权限用户、已创建文件的应用、或者利用与已创建文件的应用相同的码签名证书进行签署的应用访问保护数据存储区14,以便在保护数据存储区14中存储文件以及从其读取文件。由此,当用户终端10是提供有Android OS的终端时,仅应用17或用户终端10的制造方的授权人员可以在保护数据存储区14中存储文件以及从其读取文件。包括购买者在内的用户终端10的用户不能从保护数据存储区14读取文件。当用户终端10被完全重置时,存储在保护数据存储区14中的文件被清除。保护数据存储区14对应于Android的“/data/data/application name”(例如,jp.ne.biglobe.applicationname)。
在由开发者终端20的数据写入工具21命令时,调试桥15执行安装应用、激活应用和操作文件的命令。另外,调试桥15将从数据写入工具23接收的文件传递至临时保护存储区11,使得其存储接收的文件。数据写入工具21和调试桥15利用USB线缆等连接。调试桥15对应于Android的“adb”。
安装器16对应于本发明的第一处理装置。在由调试桥15或启动脚本命令时,安装器16从临时保护存储区11读取安装包文件,执行所安装应用的必要设置(例如,将应用注册至菜单),以及继而将安装包文件存储至应用存储区12或保护应用存储区13。另一方面,在由下载器18命令时,安装器16从下载器18读取安装包文件,执行所安装应用的必要设置(将应用注册至菜单),以及将安装包文件存储至应用存储区12或保护应用存储区13。在安装器16安装已被指定处于保护状态(通常称为前向锁定)的应用时,仅执行文件存储在保护应用存储区13中。除了执行文件之外的文件存储在应用存储区12中。如果应用未被指定为处于保护状态,则所有文件存储在应用存储区12中。根据此实施方式,假设所有应用已被指定为处于保护状态。
应用17对应于本发明的第二处理装置。在由调试桥15、启动脚本或者在菜单上命令时,应用17被激活。在将存储在保护应用存储区13中的安装包文件所包含的应用执行文件加载至用户终端10的存储器中时,应用17被激活。在应用被初次激活时,包含在应用执行文件中的证书数据被解压缩为证书文件,并存储在保护数据存储区14中。应用17与服务器30通信。此刻,如果保护数据存储区14中存在证书文件92,则应用17从保护数据存储区14读取该文件,并且将该文件作为客户端证书呈现给服务器30,以代表该终端可以访问服务器30。
下载器18周期性地与应用分发服务器40的WEB服务器42通信,以及查询应用分发服务器40是否具有针对已安装在用户终端10中的应用的更新执行文件。如果应用分发服务器40具有针对应用的更新执行文件,则下载器18通过因特网从应用分发服务器40的WEB服务器42接收包含更新执行文件的安装包文件,以及向安装器16传递接收的更新执行文件。
接着,将描述开发者终端20的组成元件。
在由开发者终端20的操作者命令时,数据写入工具21作为根权限用户登录到用户终端10并且通过调试桥15将存储在递送产品存储区22中的文件传送至临时保护存储区11。另外,数据写入工具21通过调试桥15将安装应用,激活该应用,以及操作文件的命令传输至用户终端10。数据写入工具21和调试桥15利用USB线缆等连接。
递送产品存储区22是存储通过数据写入工具21而被传递至用户终端10的临时保护存储区11的文件的区域。
浏览器23访问应用分发服务器40的WEB服务器42,以及将存储在递送产品存储区22中的文件上载至应用分发服务器40。浏览器23和WEB服务器42通过因特网连接。
接着,将详细描述服务器30。
当服务器30从应用17接收到连接请求时,服务器30向应用17呈现其自己的应用证书,并请求应用17向服务器30呈现其自己的客户端证书。仅在应用17向服务器30呈现了正确的客户端证书时,来自应用17的连接请求才被接受。用户终端10的应用17和服务器30通过因特网连接。
接着,将描述应用分发服务器40的组成元件。
内容存储区41存储从WEB服务器42接收的文件。另外,在由WEB服务器42请求时,内容存储区41向WEB服务器42传递文件。
WEB服务器42通过因特网接受从浏览器23上载的文件,并且将该文件存储在内容存储区41中。另外,在由下载器18请求时,WEB服务器42从内容存储区41读取文件,并通过因特网将其传输至下载器18。
接着,将描述用于前述应用分发系统的应用分发方法。
首先,将描述用于图1中示出的应用17的基本操作。
图2是描述用于图1所示应用17的基本操作的流程图。
在由调试桥15、启动脚本或者在菜单上命令时,应用17被激活。在将存储在保护应用存储区13中的安装包文件所包含的应用执行文件加载至用户终端10的存储器中时,应用17被激活(在步骤1)。
图3是示出存储在图1所示的保护应用存储区13中的安装包文件的结构的示意图。
安装器16存储已从如图1所示的临时保护存储区11读取至保护应用存储区13的安装包文件90。安装包文件90是当在用户终端10中预安装应用时使用的安装包。由此,如图3所示,安装包文件90包含应用执行文件91。在安装应用执行文件91时,安装器16在保护应用存储区13中存储安装包文件90。安装包文件90是安装应用所需的文件等的归档。在Android系统中,安装包文件90通常具有扩展名“apk”。应用执行文件91是在用户终端10上操作的应用17的执行文件。应用执行文件91包含作为客户端证书使用的证书数据92。在Android系统中,应用执行文件91通常具有扩展名“dex”。证书数据92是存储在应用执行文件91中的客户端证书数据。
当应用17被初次激活并且应用执行文件91包含证书数据92时(即,在加载了应用执行文件91之后,执行应用17时)(在步骤2),应用17将存储在保护应用存储区13中的安装包文件90所包含的证书数据92解压缩为证书文件并且将证书数据92存储在保护数据存储区14中(在步骤3)。证书文件是包括在应用17与服务器30通信时所需客户端证书数据的文件。当在开发者终端20上创建应用执行文件91时,证书文件被作为证书数据92包含在应用执行文件91中。
此后,应用17从保护数据存储区14读取证书文件(在步骤4)。
此后,应用17将从保护数据存储区14读取的证书文件用作客户端证书,以便与服务器30执行基于SSL的双向认证和通信(在步骤5)。
在应用17完成了与服务器30的通信之后,用于应用17的基本操作即完成(在步骤6)。
接着,将描述在图1所示应用分发系统中针对图3所示安装包文件90的预安装操作。
图4是描述在图1所示应用分发系统中、用于图3所示安装包文件的预安装操作的时序图。
假设用户终端10例如定位在其制造方工厂处并且用户终端10的调试桥15和开发者终端20的数据写入工具21利用USB电缆连接。另外,假设开发者终端20作为根权限用户登录至用户终端10。
用户终端10的制造方的工程师将安装包文件90放置在开发者终端20的递送产品存储区22中。如图3所示,安装包文件90包含应用执行文件91,而应用执行文件91包含证书数据92。
此后,工程师使用数据写入工具21、通过调试桥15将存储在递送产品存储区22中的安装包文件90写入临时保护存储区11。此刻,安装包文件90被建立,使得当用户初次激活用户终端10时,安装器16被激活以安装已被指定为处于保护状态的安装包文件90(在步骤11)。
在完成了前述操作后,用户终端10从工厂递送至用户。
用户从工厂接收用户终端10并激活用户终端10。
由于已经建立了安装包文件90以使得在初次激活用户终端10时,安装器16被激活以将已被指定为保护状态的安装包文件16安装至用户终端10,因此安装器16被激活以从临时保护存储区11读取安装包文件90,执行所安装应用的必要设置(例如,注册至菜单),从安装包文件90提取应用执行文件91,以及向保护应用存储区13写入应用执行文件91(在步骤12)。应用执行文件91包括证书数据92。
结果,安装包文件90已被安装在用户终端10中。
当用户在用户终端10的菜单上命令要激活应用17时,存储在保护应用存储区13中的应用执行文件91与证书数据92一起被加载至用户终端10的存储器中并且继而作为应用17被激活(在步骤13)。
由于应用17初次被激活并且应用执行文件91包含证书数据92,所以它们被解压缩为证书文件并且存储在保护数据存储区14中(在步骤14)。
此后,应用17从保护数据存储区14读取证书文件(在步骤15)。继而,应用17执行存储在保护应用存储区13中的应用执行文件91,以及将从保护数据存储区14读取的证书文件的数据作为客户端证书呈现给服务器30,以便与服务器30执行基于SSL的双向认证和通信(在步骤16)。
在应用17已完成与服务器30的通信后,针对应用17的操作即完成。
结果,证书文件已被写入保护数据存储区14,并且与服务器30的通信完成。
接着,将描述用于图1中所示应用分发系统中的应用17的常规激活操作(非初次激活操作)。
图5是描述在图1所示应用分发系统中、用于应用17的常规激活操作的时序图。
当用户在用户终端10的菜单上命令要激活应用17时,存储在保护应用存储区13中的应用执行文件91与证书数据92一起被加载至存储器中,以及继而作为应用17被激活(在步骤21)。
由于应用17不是初次激活,所以应用17从保护数据存储区14读取证书文件(在步骤22)。此后,应用17执行存储在保护应用存储区13中的应用执行文件91,以及将从保护数据存储区14读取的证书文件数据作为客户端证书呈现给服务器30,以与服务器30执行基于SSL的双向认证和通信(在步骤23)。
在应用17已完成与服务器30的通信后,针对应用17的操作即完成。
结果,应用17已与服务器30正常通信。
接着,将描述在图1所示应用分发系统中、用户针对用户终端10执行的完全重置操作。
图6是描述在图1所示应用分发系统中、用户针对用户终端10执行的完全重置操作的时序图。
假设,用户已经初次激活了用户终端10和应用17。换言之,假设图4的步骤11-16已经完成。
在用户针对用户终端10执行完全重置操作时,存储在应用存储区12、保护应用存储区13和保护数据存储区14中的所有文件被清除。尽管存储在保护应用存储区13中的应用执行文件91和存储在保护数据存储区14中的证书文件被清除,但是存储在临时保护存储区11中的安装包文件90未被清除。
在用户已执行完全重置操作之后,当他或她初次激活用户终端10时,由于用户终端10已被建立使得安装已被指定为处于保护状态的安装包文件90,所以安装器16被激活以从临时保护存储区11读取安装包文件90,执行所安装应用的必要设置(例如,将其注册至菜单),从安装包文件90提取应用执行文件91,以及将其存储至保护应用存储区(在步骤31)。应用执行文件91包含证书数据92。
结果,安装包文件90已被安装在用户终端10中。
此后,当用户在用户终端10的菜单上命令要激活应用17时,存储在保护应用存储区13中的应用执行文件91与证书数据92一起被加载至存储器,以及继而作为应用17被激活(在步骤32)。
由于应用17是初次被激活并且应用执行文件91包含证书数据92,所以应用17将证书数据92解压缩为证书文件,并将证书文件存储在保护数据存储区14中(在步骤33)。
此后,应用17从保护数据存储区14读取证书文件(在步骤34)。继而,应用17执行存储在保护应用存储区13中的应用执行文件91,并将从保护数据存储区14读取的证书文件的数据作为客户端证书呈现给服务器30,以与服务器30执行基于SSL的双向认证和通信(在步骤35)。
在应用17已完成与服务器30的通信之后,针对应用17的操作即完成。
结果,证书数据92已被解压缩为证书文件,并且存储在保护数据存储区14中,继而与服务器30的通信完成。
接着,将描述用于图1所示应用分发系统中的应用17的更新操作。
图7是描述用于图1所示应用分发系统中的应用17的更新操作的时序图。
假设用户已获得用户终端10,他或她已初次激活用户终端10,并且他或她已初次激活应用17。换言之,假设已完成步骤11-16。另外,假设用户终端10的调试桥15和开发者终端20的数据写入工具21未通过USB线缆连接,以及替代地,开发者终端20的浏览器23和应用分发服务器40的WEB服务器42,或应用分发服务器40的WEB服务器42和用户终端10的下载器18通过因特网连接。
用户终端10的制造方的工程师将安装包文件90的更新版本放置在开发者终端20的递送产品存储区22中。此刻,工程师建立安装包文件90的更新版本,使得其被指定为处于保护状态并进行安装。
图8是示出了图1所示开发者终端20的递送产品存储区22中所放置的安装包文件更新版本的结构的示意图。
放置在开发者终端20的递送产品存储区22中的更新版本安装包文件90A是在已安装在用户终端10中的应用被更新时使用的安装包。由此,如图8所示,安装包文件90A包含更新应用执行文件91A。安装包文件90A是安装应用所需的文件等的归档。在Android系统中,安装包文件90A通常具有扩展名“apk”。应用执行文件91A是在用户终端10上操作的应用17的执行文件。与图3所示的应用执行文件91不同,应用执行文件91A不包含用作客户端证书的证书数据92。
工程师通过浏览器23将存储在递送产品存储区22中的安装包文件90A写入内容存储区41(在步骤41)。
下载器18周期性地与应用分发服务器40的WEB服务器42通信,以及查询WEB服务器42其是否包含已经安装在用户终端10中的应用17的更新版本。此刻,下载器18知道作为应用17的更新版本安装包文件的安装包文件90A位于内容存储区41中,通过因特网从WEB服务器42接收更新版本安装包文件90A,以及将已被指定为处于保护状态的该文件传递至安装器16。
在安装器16从下载器18接收安装包文件90A时,安装器16执行所安装应用的必要设置(例如,将其注册至菜单),从安装包文件90A提取应用执行文件91A,以及将其存储在保护应用存储区13中。此刻,安装器16从保护应用存储区13清除应用执行文件91,以便将存储在保护应用存储区13中的应用执行文件91替换为应用执行文件91A(在步骤42)。
结果,存储在保护应用存储区13中的应用执行文件91已被更新至应用执行文件91A。
接着,将描述用于已经以前述方式更新的应用17的常规激活操作。
当用户在用户终端10的菜单上命令要激活应用17时,存储在保护应用存储区13中的应用执行文件91A被加载至存储器并继而作为应用17被激活(在步骤43)。
由于应用执行文件91A不包含证书数据,所以应用17从保护数据存储区14读取证书文件(在步骤44)。此后,应用17执行存储在保护应用存储区13中的应用执行文件91,以及将从保护数据存储区14读取的证书文件的数据作为客户端证书呈现给服务器30,以与服务器30执行基于SSL的双向认证和通信(在步骤45)。
在应用17已完成与服务器30的通信后,针对应用17的操作即完成。
结果,更新应用17已与服务器30进行正常通信。
接着,将描述本实施方式的效果。
在此实施方式中,由于开发者终端20向用户终端10提供的安装包文件90的应用执行文件91包含证书数据92,所以应用和客户端证书可以被安装至用户终端10,并且应用可以在用户不能访问应用使用的客户端证书的状态中得以更新。
另外,用户终端10在包含证书数据92的应用执行文件91已被存储在临时保护存储区11中的状态下进行递送。当用户终端10被初次激活时,应用执行文件91被安装至保护应用存储区13。在应用被初次激活时,应用执行文件91中包含的证书数据92被解压缩为证书文件,并且存储在保护数据存储区14中。在分发更新版本安装包文件时,分发已从其移除证书数据的更新应用执行文件91A。在执行应用执行文件91A时,使用存储在保护数据存储区14中的证书文件。由此,可以在应用分发服务器的管理员不能访问应用使用的客户端证书的状态中对更新版本应用进行分发和更新。
根据本发明,用户终端10内部执行的过程不仅通过前述专用硬件完成,还通过以下述方式完成这种功能的程序实现,即,程序记录在用户终端10可以从其读取程序的记录介质上,并且继而用户终端10从该记录介质读取程序以及执行这些程序。用户终端10可以从其读取程序的记录介质不仅包括可移动记录介质,诸如IC卡、存储卡、软盘(注册商标)、磁光盘、DVD和CD,而且还包括构建在用户终端10中的HDD。记录在记录介质上的程序在控制块的控制下进行读取。前述过程在控制块的控制下执行。
尽管已经参考本发明的示例性实施方式显示并描述了本发明,但是本发明并不限于这些实施方式。本领域技术人员将会理解,可以在此处对形式和细节作出各种改变,而不会脱离权利要求定义的本发明精神和范围。
本发明可以适用于便携式信息终端(PDA:便携式数据助理)、便携式电话终端(智能电话)和具有可以管理个体用户访问权限的OS的其他终端。
本申请要求基于2010年8月10日提交的日本专利申请JP2010-179404的优先权,通过参考将其全部内容在此并入。

Claims (10)

1.一种应用分发系统,包括:
终端,其执行应用的已安装执行文件并且继而使用所述应用;以及
应用分发服务器,其向所述终端分发所述应用的更新执行文件,
其中安装在所述终端中的所述执行文件被更新为从所述应用分发服务器向所述终端分发的所述更新执行文件,
其中安装在所述终端中的所述执行文件包含使用所述应用所需的证书数据,以及
其中所述终端将包含在所述执行文件中的所述证书数据作为证书文件存储在已被限制访问的第一存储区中,并且当不包含所述证书数据的执行文件作为所述更新执行文件而从所述应用分发服务器被分发时,所述终端基于存储在所述第一存储区中的所述证书文件来执行所述更新执行文件,以便使用所述应用。
2.根据权利要求1所述的应用分发系统,
其中所述终端包括:
第二存储区,其中存储有被提供的所述执行文件;
第一处理装置,当存储在所述第二存储区中的所述执行文件被安装时,所述第一处理装置向第三存储区传输存储在所述第二存储区中的所述执行文件;以及
第二处理装置,其在所述执行文件被安装之后、所述应用被初次激活时,将包含在存储于所述第三存储区中的所述执行文件中的所述证书数据作为所述证书文件传输至所述第一存储区,并且继而基于存储在所述第一存储区中的所述证书文件来使用所述应用,
其中当所述更新执行文件从所述应用分发服务器被分发时,所述第一处理装置用所述更新执行文件替换存储在所述第三存储区中的所述执行文件,以及
其中所述第二处理装置基于存储在所述第一存储区中的所述证书文件来执行存储在所述第三存储区中的所述更新执行文件,以便使用所述应用。
3.根据权利要求2所述的应用分发系统,
其中所述执行文件的所述应用能够访问所述第一存储区,以便将所述证书文件存储在所述第一存储区中以及从所述第一存储区读取所述证书文件,以及
其中只有预先指定的用户能够访问所述第二存储区和所述第三存储区,以便将所述执行文件存储在所述第二存储区和所述第三存储区中以及从所述第二存储区和所述第三存储区读取所述执行文件。
4.一种用于应用分发系统的应用分发方法,所述应用分发系统包括终端,其执行应用的已安装执行文件并且继而使用所述应用;以及应用分发服务器,其向所述终端分发所述应用的更新执行文件,安装在所述终端中的所述执行文件被更新为从所述应用分发服务器向所述终端分发的所述更新执行文件,被安装到所述终端的所述执行文件包含使用所述应用所需的证书数据,所述应用分发方法包括过程:
使所述终端将包含在所述执行文件中的所述证书数据作为证书文件存储在已被限制访问的第一存储区中;
使所述应用分发服务器向所述终端分发不包含所述证书数据的执行文件以作为所述更新执行文件;以及
使所述终端基于存储在所述第一存储区中的所述证书文件来执行从所述应用分发服务器分发的所述更新执行文件,以便使用所述应用。
5.根据权利要求4所述的应用分发方法,进一步包括过程:
使所述终端将被提供的执行文件存储在第二存储区中;
使所述终端在存储在所述第二存储区中的所述执行文件被安装时,向第三存储区传输存储在所述第二存储区中的所述执行文件;
使所述终端在所述执行文件被安装之后、所述应用被初次激活时,将包含在存储于所述第三存储区中的所述执行文件中的证书数据作为所述证书文件传输至所述第一存储区;
使所述终端在所述更新执行文件从所述应用分发服务器被分发时,用所述更新执行文件替换存储在所述第三存储区中的所述执行文件;以及
使所述终端基于存储在所述第一存储区中的所述证书文件来执行存储在所述第三存储区中的所述更新执行文件,以便使用所述应用。
6.一种终端,其执行应用的已安装执行文件并且继而使用所述应用,并且将所述已安装执行文件更新为从应用分发服务器分发的更新执行文件,
其中安装在所述终端中的所述执行文件包含使用所述应用所需的证书数据,以及
其中包含在所述执行文件中的证书数据作为证书文件被存储在已被限制访问的第一存储区中,并且在不包含所述证书数据的执行文件作为所述更新执行文件而从所述应用分发服务器被分发时,所述更新执行文件基于存储在所述第一存储区中的所述证书文件而被执行以便使用所述应用。
7.根据权利要求6所述的终端,进一步包括:
第二存储区,其中存储有被提供的所述执行文件;
第一处理装置,当存储在所述第二存储区中的所述执行文件被安装时,所述第一处理装置向第三存储区传输存储在所述第二存储区中的所述执行文件;以及
第二处理装置,其在所述执行文件被安装之后、所述应用被初次激活时,将包含在存储于所述第三存储区中的所述执行文件中的所述证书数据作为所述证书文件传输至所述第一存储区,并且继而基于存储在所述第一存储区中的所述证书文件来使用所述应用,
其中当所述更新执行文件从所述应用分发服务器被分发时,所述第一处理装置用所述更新执行文件替换存储在所述第三存储区中的所述执行文件,以及
其中所述第二处理装置基于存储在所述第一存储区中的所述证书文件来执行存储在所述第三存储区中的所述更新执行文件,以便使用所述应用。
8.根据权利要求7所述的终端,
其中所述执行文件的所述应用能够访问所述第一存储区,以便将所述证书文件存储在所述第一存储区中以及从所述第一存储区读取所述证书文件,以及
其中只有预先指定的用户能够访问所述第二存储区和所述第三存储区,以便将所述执行文件存储在所述第二存储区和所述第三存储区中以及从所述第二存储区和所述第三存储区读取所述执行文件。
9.一种程序,其使终端执行步骤,所述终端执行应用的已安装执行文件并且继而使用所述应用,并且将所述已安装执行文件更新为从应用分发服务器被分发的更新执行文件,所述步骤包括:
将包含在被提供的执行文件中并且是使用所述应用所需的证书数据作为证书文件存储在已被限制访问的第一存储区中;以及
当不包含所述证书数据的执行文件作为所述更新执行文件而从所述应用分发服务器被分发时,基于存储在所述第一存储区中的所述证书文件来执行所述更新执行文件,以便使用所述应用。
10.根据权利要求9所述的程序,进一步包括:
使所述终端将被提供的执行文件存储在第二存储区中;
使所述终端在存储于所述第二存储区中的所述执行文件被安装时,向第三存储区传输存储在所述第二存储区中的执行文件;以及
使所述终端在所述执行文件被安装之后、所述应用被初次激活时,将包含在存储于所述第三存储区中的所述执行文件中的所述证书数据作为所述证书文件传输至所述第一存储区;
使所述终端在所述更新执行程序从所述应用分发服务器被分发时,用所述更新执行文件来替换存储在所述第三存储区中的所述执行文件,以及
使所述终端基于存储在所述第一存储区中的所述证书文件来执行存储在所述第三存储区中的所述更新执行文件,以便使用所述应用。
CN2011800394775A 2010-08-10 2011-07-01 应用分发系统、应用分发方法、终端和程序 Pending CN103052958A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2010-179404 2010-08-10
JP2010179404A JP5429880B2 (ja) 2010-08-10 2010-08-10 アプリケーション配布システム、アプリケーション配布方法、端末及びプログラム
PCT/JP2011/065198 WO2012020612A1 (ja) 2010-08-10 2011-07-01 アプリケーション配布システム、アプリケーション配布方法、端末及びプログラム

Publications (1)

Publication Number Publication Date
CN103052958A true CN103052958A (zh) 2013-04-17

Family

ID=45567582

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2011800394775A Pending CN103052958A (zh) 2010-08-10 2011-07-01 应用分发系统、应用分发方法、终端和程序

Country Status (6)

Country Link
US (1) US20130132528A1 (zh)
JP (1) JP5429880B2 (zh)
KR (1) KR101453225B1 (zh)
CN (1) CN103052958A (zh)
TW (1) TWI494786B (zh)
WO (1) WO2012020612A1 (zh)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014091728A1 (ja) 2012-12-13 2014-06-19 パナソニック株式会社 コンテンツ共有システム、コンテンツ共有方法及び情報通信装置
US20140331209A1 (en) * 2013-05-02 2014-11-06 Amazon Technologies, Inc. Program Testing Service
JP5805144B2 (ja) * 2013-06-19 2015-11-04 ビッグローブ株式会社 携帯端末、ファイル配信システム、ファイル配信方法、およびファイル配信プログラム
CN103412708B (zh) * 2013-07-31 2016-12-28 华为技术有限公司 终端设备上的任务管理方法和终端设备
KR102125923B1 (ko) * 2013-10-24 2020-06-24 삼성전자 주식회사 전자 장치의 운영체제 업그레이드 방법 및 장치
JP6424441B2 (ja) * 2014-03-14 2018-11-21 株式会社リコー 複合機、情報処理方法、情報処理プログラム、および情報処理システム
JP5899384B1 (ja) 2014-06-13 2016-04-06 アーティス株式会社 アプリケーションプログラム
CN104537022B (zh) * 2014-12-18 2018-09-04 北京奇虎科技有限公司 浏览器信息分享的方法、浏览器客户端和装置
CN106547578B (zh) 2015-09-21 2020-09-15 阿里巴巴集团控股有限公司 终端应用app的加载方法及装置
JP6780316B2 (ja) * 2016-06-23 2020-11-04 株式会社リコー 情報処理装置、プログラム、Webアプリケーション管理方法及び情報処理システム
TWI705373B (zh) * 2017-01-19 2020-09-21 香港商阿里巴巴集團服務有限公司 終端應用程式(app)的加載方法及裝置
KR102563897B1 (ko) * 2017-02-21 2023-08-07 삼성전자주식회사 식별 정보 관리 방법 및 이를 지원하는 전자 장치
KR102122968B1 (ko) * 2019-01-28 2020-06-15 숭실대학교산학협력단 애플리케이션 설치 정보 분석 시스템 및 방법

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1083310A (ja) * 1996-06-11 1998-03-31 Internatl Business Mach Corp <Ibm> プログラム・コードの配布方法及びシステム
JP2004234591A (ja) * 2003-02-03 2004-08-19 Nec Corp アップデートシステム、公開サーバ、端末、ライセンス発行サーバ及びプログラム
CN100407129C (zh) * 2001-12-25 2008-07-30 株式会社Ntt都科摩 通信设备和限制内容访问与存储的方法
US20090271875A1 (en) * 2005-03-31 2009-10-29 Pioneer Corporation Upgrade Module, Application Program, Server, and Upgrade Module Distribution System

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0880840A4 (en) * 1996-01-11 2002-10-23 Mrj Inc DEVICE FOR CONTROLLING ACCESS AND DISTRIBUTION OF DIGITAL PROPERTY
DE69941142D1 (de) * 1998-05-06 2009-09-03 Sun Microsystems Inc Verarbeitungsmaschine und verarbeitungsverfahren
US6345347B1 (en) * 1999-09-27 2002-02-05 International Business Machines Corporation Address protection using a hardware-defined application key
JP2001243079A (ja) * 2000-03-02 2001-09-07 Omron Corp 情報処理システム
TW495675B (en) * 2000-09-14 2002-07-21 Acer Ipull Inc System for updating program executable being running and the method thereof
JP4194772B2 (ja) * 2001-07-05 2008-12-10 ヤフー株式会社 ソフトウェア使用認証方法、ソフトウェア使用認証プログラム、ソフトウェア使用認証プログラムを記録した記録媒体、ソフトウェア使用認証方法で用いられるデータ、このデータを記録した記録媒体
CA2479619C (en) * 2002-03-20 2008-05-20 Research In Motion Limited Certificate information storage system and method
KR20050000445A (ko) * 2003-06-24 2005-01-05 (주)엠타이드 터미널 서비스 기반 컴퓨팅 환경에서의 어플리케이션 배포시스템 및 방법
JP2005044201A (ja) 2003-07-24 2005-02-17 Nippon Telegr & Teleph Corp <Ntt> ネットワーク接続機器の自動設定方法、アプリケーション端末の自動設定方法、ネットワーク接続機器の自動設定システム、アプリケーション端末の自動設定システム、自動設定プログラム
US20050076198A1 (en) * 2003-10-02 2005-04-07 Apacheta Corporation Authentication system
JP4463815B2 (ja) * 2004-05-05 2010-05-19 リサーチ イン モーション リミテッド 安全なメッセージを送信するシステムおよび方法
US7886144B2 (en) * 2004-10-29 2011-02-08 Research In Motion Limited System and method for retrieving certificates associated with senders of digitally signed messages
US8356295B2 (en) * 2005-02-17 2013-01-15 Symantec Corporation Post-signing modification of software
JP2007164377A (ja) * 2005-12-12 2007-06-28 Toshiba Corp データ処理装置およびデータ処理方法
US7818395B2 (en) * 2006-10-13 2010-10-19 Ceelox, Inc. Method and apparatus for interfacing with a restricted access computer system
EP2074544A2 (en) * 2006-10-09 2009-07-01 SanDisk IL Ltd. Application dependent storage control
US20080147530A1 (en) * 2006-12-19 2008-06-19 Kwan Shu-Leung Programmatically transferring applications between handsets based on license information
US10069924B2 (en) * 2007-07-25 2018-09-04 Oath Inc. Application programming interfaces for communication systems
US8560864B2 (en) * 2008-03-26 2013-10-15 Fego Precision Industrial Co., Ltd. Firewall for removable mass storage devices
JP2009290508A (ja) 2008-05-29 2009-12-10 Panasonic Corp 電子化情報配布システム、クライアント装置、サーバ装置および電子化情報配布方法
US7877461B1 (en) * 2008-06-30 2011-01-25 Google Inc. System and method for adding dynamic information to digitally signed mobile applications
US8555089B2 (en) * 2009-01-08 2013-10-08 Panasonic Corporation Program execution apparatus, control method, control program, and integrated circuit
US8103847B2 (en) * 2009-04-08 2012-01-24 Microsoft Corporation Storage virtual containers

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1083310A (ja) * 1996-06-11 1998-03-31 Internatl Business Mach Corp <Ibm> プログラム・コードの配布方法及びシステム
US5825877A (en) * 1996-06-11 1998-10-20 International Business Machines Corporation Support for portable trusted software
CN100407129C (zh) * 2001-12-25 2008-07-30 株式会社Ntt都科摩 通信设备和限制内容访问与存储的方法
JP2004234591A (ja) * 2003-02-03 2004-08-19 Nec Corp アップデートシステム、公開サーバ、端末、ライセンス発行サーバ及びプログラム
US20090271875A1 (en) * 2005-03-31 2009-10-29 Pioneer Corporation Upgrade Module, Application Program, Server, and Upgrade Module Distribution System

Also Published As

Publication number Publication date
TWI494786B (zh) 2015-08-01
WO2012020612A1 (ja) 2012-02-16
JP2012038193A (ja) 2012-02-23
TW201224837A (en) 2012-06-16
JP5429880B2 (ja) 2014-02-26
KR101453225B1 (ko) 2014-10-22
KR20130027056A (ko) 2013-03-14
US20130132528A1 (en) 2013-05-23

Similar Documents

Publication Publication Date Title
CN103052958A (zh) 应用分发系统、应用分发方法、终端和程序
US6754828B1 (en) Algorithm for non-volatile memory updates
US20080300887A1 (en) Usage Model of Online/Offline License for Asset Control
GB2507596A (en) A method for updating software in a device that makes payment transactions
KR102358470B1 (ko) 부트 로더 업데이트 펌웨어, 및 부트 로더 업데이트 방법
US20060086785A1 (en) Portable electronic apparatus and method of updating application in portable electronic apparatus
WO2007005082B1 (en) Universal peer-to-peer game download
CN103119560A (zh) 用于服务处理器复合体中的数据存储的基于需求的usb代理
CN101501642A (zh) 具有虚拟机启动的便携式大容量存储装置
CN104641376A (zh) 存储和访问在操作系统无关的存储装置中的许可信息
JP6707586B2 (ja) スクリプトエンジンを用いたデータスクレイピングシステム、方法、及びコンピュータプログラム
CN102265283A (zh) 用于安全软件平台访问的方法和设备
KR102277238B1 (ko) 업데이트가능한 집적 회로 무선장치
KR20120123885A (ko) 저장 장치의 인증 장치 및 인증 장치 연결 수단을 구비한 저장 장치
CN107567629A (zh) 在可信执行环境容器中的动态固件模块加载器
CN108762797A (zh) 一种ssd固件在线更新方法、系统及ssd
JP2010146542A (ja) 携帯用メモリデバイスをアンロックする方法
US10025575B2 (en) Method for installing security-relevant applications in a security element of a terminal
US20080244167A1 (en) Electronic device and method for installing software
EP2360581A1 (en) Method, system and device for execution of a software application
CN101382898B (zh) Pre-os应用程序升级和许可控制
KR20120069400A (ko) 모바일 플랫폼에서의 어플리케이션 보관 방법
CN102129537A (zh) 用于执行软件应用的方法和用于存储软件应用的存储设备
US20090187898A1 (en) Method for securely updating an autorun program and portable electronic entity executing it
WO2014158743A2 (en) Feature license-related repair/replacement processes and credit handling

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
ASS Succession or assignment of patent right

Owner name: BIGLOBE CO., LTD.

Free format text: FORMER OWNER: NEC BIGLOBE LTD.

Effective date: 20150114

C41 Transfer of patent application or patent right or utility model
TA01 Transfer of patent application right

Effective date of registration: 20150114

Address after: Tokyo, Japan, Japan

Applicant after: Biglobe Co., Ltd.

Address before: Tokyo, Japan, Japan

Applicant before: NEC Biglobe Ltd.

C02 Deemed withdrawal of patent application after publication (patent law 2001)
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20130417