CN105191208B - 用于激活用户装置上的应用程序的方法 - Google Patents

用于激活用户装置上的应用程序的方法 Download PDF

Info

Publication number
CN105191208B
CN105191208B CN201480019083.7A CN201480019083A CN105191208B CN 105191208 B CN105191208 B CN 105191208B CN 201480019083 A CN201480019083 A CN 201480019083A CN 105191208 B CN105191208 B CN 105191208B
Authority
CN
China
Prior art keywords
application program
activation
remote
control device
response
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.)
Active
Application number
CN201480019083.7A
Other languages
English (en)
Other versions
CN105191208A (zh
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.)
BlackBerry Ltd
Original Assignee
BlackBerry 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 BlackBerry Ltd filed Critical BlackBerry Ltd
Publication of CN105191208A publication Critical patent/CN105191208A/zh
Application granted granted Critical
Publication of CN105191208B publication Critical patent/CN105191208B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • 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/105Arrangements for software license management or administration, e.g. for managing licenses at corporate level
    • 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/106Enforcing content protection by specific content processing
    • G06F21/1063Personalisation
    • 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
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/31User authentication
    • G06F21/41User authentication where a single sign-on provides access to a plurality of computers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • H04L67/025Protocols based on web technology, e.g. hypertext transfer protocol [HTTP] for remote control or remote monitoring of applications
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2115Third party
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M15/00Arrangements for metering, time-control or time indication ; Metering, charging or billing arrangements for voice wireline or wireless communications, e.g. VoIP
    • H04M15/43Billing software details

Abstract

描述了用于使用已经在用户装置上安装并被激活的第一应用程序来激活该用户装置上的第二应用程序的方法。在一个实施方式中,该第二应用程序从该第一应用程序请求激活。然后,在该第一应用程序提供激活响应之前,该第一应用程序对用户进行认证。可以由该第一应用程序代表该第二应用程序从远程服务器请求激活响应。该方法提高了激活用户装置上的新软件的便利性。

Description

用于激活用户装置上的应用程序的方法
相关申请的交叉引用
本申请要求于2013年1月29日提交的美国临时专利申请第61/758,010号的权益,通过引用将其全部内容结合于本文中。
技术领域
本发明涉及用于使用远程装置激活用户装置上的应用程序的方法和设备。
背景技术
被安装在用户装置上的应用程序要求激活以使它们能够访问数据、允许应用程序的远程配置和管理并且实施许可要求。例如,应用程序会具有有限的功能或没有功能直到被完成激活。
一种激活用户装置上的应用程序的方法要求用户将激活码(activation number)从电子邮件复制到应用程序中。然后,将激活码传送给远程服务器,以使用远程服务器激活应用程序。在几个应用程序需要使用远程服务器进行激活的情况下,各个应用程序需要一个单独的电子邮件,使得这个过程对于用户来说耗时并且复杂。
提出了一种所谓的单点登录(Single Sign On)(SSO)系统。这些系统允许利用单独的身份提供商使用户登录至资源。该资源委托(trust)身份提供商来验证用户的证书以访问资源。几个不同的资源可以使用相同的身份提供商,这避免了每个资源需要单独的用户名和密码。在美国专利公开第2012/0072979号中论述了SSO系统的实例。
发明内容
根据第一示例性实施方式,提供了一种使用远程装置和用户装置上的第一应用程序激活该用户装置上的第二应用程序的方法。已使用该远程装置激活了该第一应用程序。该方法包括:响应于通过该第二应用程序对激活响应的请求,该第一应用程序将包括激活数据的激活响应提供给该第二应用程序,已基于与该远程装置相关联的数据生成了该激活响应;并且通过该第二应用程序请求通过该远程装置使用该激活数据来激活该第二应用程序。
根据另一个示例性实施方式,提供了一种使用远程装置激活用户装置上的第二应用程序的方法。该方法包括:响应于通过该远程装置从该用户装置上的第一应用程序接收用于该第二应用程序的激活请求,其中,已使用该远程装置激活了该第一应用程序:通过该远程装置将用于该第二应用程序的包括激活数据的激活响应传输给该用户装置上的第一应用程序。
根据另外的示例性实施方式,一种提供用户装置上的可以被用于使用远程装置来激活用户装置上的其他应用程序的一个或多个应用程序的细节的方法,该方法包括:响应于通过远程装置接收对用户装置上的可以被用于激活软件装置上的其他应用程序的应用程序的细节的请求:通过远程装置识别用户装置上的已使用远程服务器激活的并且可以向远程服务器提供用于其他应用程序的激活服务的应用程序;以及通过远程装置将所识别的应用程序的细节传输至用户装置。
根据又一另外的示例性实施方式,提供了一种设备,包括:至少一个处理器以及包括计算机程序指令的非瞬时性存储器。该非瞬时性存储器和该计算机程序指令被配置为利用所述至少一个处理器使所述设备至少使用所述设备上的第一应用程序激活所述设备上的第二应用程序,其中,已通过一种方法使用所述远程装置激活了该第一应用程序,该方法包括:响应于通过该第二应用程序对激活响应的请求,通过该第一应用程序将包括激活数据的激活响应提供给该第二应用程序,已基于与该远程装置相关联的数据生成了激活响应;并且通过第二应用程序请求通过远程装置使用激活数据激活第二应用程序。
从参照附图进行的仅通过实例给出的本发明的优选实施方式的以下描述中,本发明的进一步的特征和优点将变得显而易见。
附图说明
图1是其中可以使用实施方式的系统的图示。
图2是实施方式中的用于激活第一应用程序和第二应用程序的信号流的图示。
图3是在另一个实施方式中用于激活第一应用程序和第二应用程序的信号流的图示。
具体实施方式
实施方式提供了提高了使用远程装置激活用户装置上的应用程序的便利性的方法和设备。在一个实施方式中,响应于通过第二应用程序对激活响应的请求,用户装置上的第一应用程序将激活响应提供给用户装置上的第二应用程序。该激活响应包含激活数据,然后,该激活数据被第二应用程序使用以利用远程装置进行激活。这允许通过第一应用程序获得激活数据,而非从另一个来源(诸如发送给用户的电子邮件)获得激活数据。
该方法可以进一步包括:通过第一应用程序从远程装置请求激活响应;并且通过第一应用程序接收来自远程装置的用于提供给第二应用程序的激活响应。在这个实施方式中,第一应用程序被用作第二应用程序的代理,以从远程装置请求激活数据。因为已经使用远程装置激活了第一应用程序,故该远程装置可以委托第一应用程序向其提供激活数据。因为不需要额外的激活信息源,例如,电子邮件,故为用户简化了应用程序激活。
第一应用程序还可以获得第二应用程序的应用程序数据,然后,在请求来自远程装置的激活响应时提供应用程序数据。这可以提供进一步的安全性,例如,在提供激活响应之前,允许远程装置检查应用程序数据。可以通过任何合适的方式来获得应用程序数据,例如,可以从被包含在从第二应用程序到第一应用程序的请求内的元数据提取该应用程序数据,并且涉及关于应用程序的任何信息,例如,标识符或名称。
该方法可以进一步包括:通过第二应用程序从用户装置上的可以提供激活响应的一个或多个其他应用程序的组选择第一应用程序。用户装置上的一个以上的应用程序可以提供激活响应。在这种情况下,第二应用程序选择从其请求激活响应的特定应用程序。在一个实施方式中,从远程装置请求用户装置上的可以提供激活响应的一个或多个其他应用程序的组的细节。在另一个实施方式中,从与利用其请求激活的远程装置不同的第二远程装置请求用户装置上的可以提供激活响应的一个或多个其他应用程序的组的细节。
第一应用程序可以认证用于第一应用程序的用户证书。然后,仅仅响应于通过第一应用程序对用户证书的成功认证来提供激活响应。这通过在提供激活响应之前认证或重新认证用户证书而提高了激活系统的安全性。
用户可以将现有证书用于第一应用程序。这具有进一步的优点:用户已经知道证书并且不需要记住或从别处复制代码,例如,电子邮件。在一些实施方式中,第一应用程序始终提示用户在给第二应用程序提供激活响应之前认证证书。在其他实施方式中,第一应用程序可以在使用期间已经在用户装置上,并且预先请求用户认证,用于激活另一个应用程序或另一个目的,并且在这种情况下,如果从另一个应用程序接收激活请求,而不提示进一步进入证书,那么可以使用早先的认证。这不如始终提示用户证书安全,但是可以更方便。例如,如果用户在激活请求的预定时间内(例如,在5分钟、10分钟或15分钟内)向第一应用程序提供认证,那么可以使用第一应用程序的早先的认证。认证可以包括请求用户装置上的第一应用程序进入用户证书。可以在触摸屏上请求任何合适的认证,包括用户名和密码、生物识别ID(例如,指纹)以及预先定义的姿势。
该方法可以进一步包括:通过第一应用程序从远程装置请求用于第二应用程序的显示名称;由该第一应用程序接收该第二应用程序的显示名称;并且请求用户确认应激活具有显示名称的应用程序。响应于用户的合适的确认发送激活请求,否则不发送。这提高了该方法的安全性,这是因为第二应用程序的身份由远程装置独立验证,故可以允许识别恶意应用程序。远程装置可以是用于激活的相同的装置或者单独的远程装置。显示名称可以由远程装置以任何合适的方式进行确定。例如,第二应用程序可以具有唯一标识符,将该唯一标识符传送给远程装置并且用于查找与唯一标识符相对应的所存储的显示名称。
该第一应用程序可以具有与提供激活响应不同的主要功能。例如,第一应用程序可以将激活响应作为额外特征提供给其主要功能。
至少在下一次在该用户装置上启动该第二应用程序时,可以不重复该第二应用程序的激活。在一些实施方式中,第二应用程序的激活仅仅执行一次。例如,激活可以是一次性处理,以能够使用用户装置上的应用程序。
由第二应用程序对激活响应的请求可以包括相关代码(associated code)。然后,该相关代码可以与激活数据一起被第二应用程序用于请求激活中。相关代码可以是临时或其他单个或限制使用的代码,并且可以具有任何机器可读格式。例如,相关代码可以是随机生成的数。
在另一个实施方式中,远程装置响应于来自第一应用程序的请求,将用于该第二应用程序的包括激活数据的激活响应传输至该用户装置上的该第一应用程序。已使用该远程装置激活了第一应用程序,因此,可以通过远程装置委托第一应用程序。
在另一个实施方式中,响应于通过远程装置接收用户装置上的可用于激活软件装置上的其他应用程序的应用程序的细节的请求,该远程装置:识别该用户装置上的使用该远程服务器激活的并且可以向远程服务器提供用于其他应用程序的激活服务的应用程序;以及将所识别的应用程序的细节传输至该用户装置。这允许用户装置上的应用程序请求用户装置上的可以被用于激活的其他应用程序的细节。
在图1中示出了其中实施方式可以起作用的系统的实例。系统包括用户装置2、储存库(repository)4以及控制服务器6。用户装置2、储存库4以及控制服务器6中的每一个包含至少一个处理器、非瞬时性存储器以及网络接口。网络8连接所有的用户装置2、储存库4以及控制服务器6。
虽然为了清晰起见描述了单个网络8,但是本发明不限于单个网络8。其他实施方式可以包括单独的互连网络和额外的网络元件,包括但不限于在从一个网络到另一个网络的转变点(transition point)处(例如,在控制服务器6与网络8之间)的防火墙和网关。例如,网络8可以是无线网络,例如,符合由3GPP所设定的标准的网络,包括但不限于通用移动电信系统(UMTS)、长期演进(LTE)以及先进的长期演进。网络8还可以符合其他无线网络标准,例如,IEEE 802.11 Wi-Fi标准和IEEE802.16 WiMAX标准。还可以使用有线和无线网络的混合。例如,在一些实施方式中,可以在储存库4与控制服务器6之间设置有线网络。
用户装置2可以是能够存储和运行应用程序的任何装置。例如,用户装置2可以是移动装置,例如,移动电话(包括所谓的“智能电话”)、平板电脑、个人数字助理、寻呼机、膝上型电脑、内容消费和/或生成装置或者包括可以被配置为运行用户安装的应用程序的处理器的任何其他便携式装置。用户装置2的处理器被配置为运行存储在非瞬时性存储器内的应用程序,然后,这些应用程序可以通过网络8访问数据。在一些实施方式中,已通过储存库4激活的存储在非瞬时性存储器内的至少一个应用程序要求通过储存库4激活其至少一些功能,并且可用于利用储存库4来代表用户装置上的其他应用程序接收激活请求。
储存库4负责至少部分激活并且可选地配置用户装置2上的至少一个应用程序。它具有处理器,该处理器被配置为与用户装置上的应用程序通信并且提供应用程序的激活和/或配置。
控制服务器6为企业提供一种用于控制用户装置2上的应用程序的配置和激活的设备。它具有处理器,该处理器被配置为允许管理员远程地配置和激活位于用户装置2上的应用程序。可以通过与用户装置2的直接或间接通信来进行配置和激活。例如,可以通过与用户装置2的直接通信或者通过经由储存库4的间接通信来进行激活。
用户装置2可以被配置为运行两个或两个以上的应用程序。为了确保安全地并且根据特定用户的许可来配置两个或两个以上的应用程序,在它们能够被使用之前,需要通过远离用户装置的储存库4和/或控制服务器6激活应用程序。网络管理员可以与控制服务器6交互以改变用于用户装置和/或用户的应用程序许可和配置。
图2描述了根据实施方式的在激活用户装置上的第一应用程序10和第二应用程序12的处理中的信号流。在这个实施方式中,第二应用程序12可以将第一应用程序10用于至少一部分激活处理,这简化了用于用户的激活处理。
首先,在步骤14中,用户装置的用户安装并第一次启动第一应用程序10。例如,用户可以从远程应用程序商店(未示出)下载安装文件或包。在第一次运行第一应用程序10时,在步骤16中,第一应用程序10提示用户电子邮件地址和激活码。通过发送给电子邮件地址的电子邮件将激活码告知给用户。例如,在管理员使用控制服务器6增加第一应用程序10的授权用户时,为用户生成用作激活码的字母数字访问密钥,并且将其通过电子邮件发送给用户。在步骤16中,用户响应于提示而输入激活码。
然后,第一应用程序10使用激活码以利用储存库4和控制服务器6两者进行激活。可以利用储存库4和控制服务器6两者激活同一个代码。可替换地,为了提高安全性,激活码的散列可以供储存库4使用,并且原始激活码可以供控制服务器6使用。在这种情况下,在控制服务器向用户发送激活邮件的同时,通过控制服务器6预先通知储存库4访问码的散列。
在步骤18中,第一应用程序10将激活码(例如,通过用户输入的激活码的散列)发送给储存库4。储存库4检查激活码的有效性并且在步骤20中通过供应数据而做出响应。例如,这可以包括密钥和服务器数据,以能够允许第一应用程序10与控制服务器6通信。
接下来,在步骤22中,第一应用程序将激活数据(例如,通过用户输入的激活码)发送给控制服务器6。控制服务器6检查应用程序的有效性,并且在步骤24中通过应用程序所需要使用的数据(例如,应用程序的配置数据和服务器数据)而做出响应。在一些实施方式中,可以包括另外的激活步骤,在这些步骤中,在第一应用程序10与控制服务器6之间交换数据。例如,额外步骤可以涉及交换随机数据以进一步确保连接。
然后,在步骤26中,第一应用程序10提示用户设置密码或其他形式的证书,例如,登记的生物识别ID。然后,这个密码或其他形式的证书用于向第一应用程序认证用户,并且这还可以用于保护加密密钥和其他数据。
第一应用程序向用户提供主要的应用程序服务,例如,电子邮件或文档访问服务。另外,第一应用程序10可以为用户装置2上的其他应用程序提供激活服务。这些激活服务可以对用户完全透明。在开发期间,可以将所提供的激活服务加入到第一应用程序10,例如,这些激活服务可以构成用于开发第一应用程序10的标准框架的一部分。在步骤28中,控制服务器6利用储存库4将第一应用程序10登记作为用户装置2上的应用程序,该应用程序可以利用控制服务器6为其他应用程序提供激活服务。
如上所述,使用通过一些其他手段(例如,电子邮件)提供的激活码,通过储存库4和控制服务器6来激活第一应用程序10。第一应用程序10可以在用户装置2上使用,而不需要进一步使用在步骤26中设置的密码或其他证书来激活。现在将描述通过储存库4和控制服务器6激活第二应用程序12。这利用了由第一应用程序10所提供的激活服务,使得用户不需要输入通过其他方式所接收的激活码。
在步骤30中,用户安装并且运行用户装置上的第二应用程序12。例如,将安装文件预先下载到用户装置中。开发第二应用程序12以允许使用用户装置上的提供激活服务的另一个应用程序进行激活。在无需激活而运行第二应用程序12时,该第二应用程序寻找用户装置上的提供激活服务的其他应用程序的细节。在步骤32中,第二应用程序12向储存库4发送用户装置上的提供激活服务的应用程序的细节的请求。例如,可以发送装置ID。在这个阶段,由于还未使用储存库4激活第二应用程序12,所以该请求是匿名的。在步骤34中,储存库4做出响应。
在这个实例中,在步骤34中发送的细节仅包括第一应用程序10,这是因为该应用程序是被安装以提供激活服务的唯一的应用程序。然而,如果用户装置包含提供应用程序服务的一个以上的应用程序,则在步骤34中可以返回一个以上的应用程序的细节。在已经被安装在用户装置上的一个以上的应用程序可以提供激活服务时,那些应用程序中的一个可以被标记为用于向其他应用程序提供服务的一个应用程序。因为已经被安装在装置上的各个应用程序会需要不同的证书,故这避免了使用户混乱。选择一个应用程序以提供激活服务意味着所需要的证书对于激活的各个额外的应用程序来说是一致的。
在步骤36中,第二应用程序12测试用户装置上的第一应用程序10的存在,以确保该第一应用程序被安装并且可用于使用。如果这个测试失败,那么第二应用程序12不尝试使用第一应用程序10进行激活。在这种情况下,可以测试在步骤34中通知提供应用程序服务的其他应用程序,或者可以使用通过其他手段所告知的代码,例如,用于激活第一应用程序10并且在上面所描述的电子邮件激活码来激活第二应用程序。
假设在步骤36中针对存在第一应用程序10的测试时成功的,那么在步骤38中,第二应用程序12将激活请求发送给第一应用程序10。例如,这个请求可以使用进程间通信(Inter-Process Communication)(IPC)。激活请求可以包含第二应用程序12的细节,第一应用程序10可以使用该第二应用程序的细节以识别第二应用程序,例如,唯一标识符、用于验证应用程序的来源的数字签名信息、应用程序名称等。关于第二应用程序12的信息还可以由第一应用程序10通过激活请求而从由操作系统提供的元数据进行聚集。在一些实施方式中,第一应用程序10可以利用远程数据源检查第二应用程序12的细节。例如,第一应用程序10可以使用唯一标识符从储存库4或控制服务器6检索第二应用程序12的名称。
基于用户装置的基础操作系统而可以通过不同方式来实现IPC。在一个实例中,如果用户装置正在运行iOS操作系统,那么第二应用程序12可以通过第一应用程序10登记处理的自定义方案(custom scheme),使用URL来进行初始的“openURL”调用。关于第一应用程序10特有的自定义方案的信息可以提供给第二应用程序12,作为由用户装置上的可以提供激活响应的一个或多个其他应用程序构成的组的细节的一部分。在这种情况下,openURL调用传送第二应用程序12的由操作系统提供的“捆绑ID(bundle ID)”。“捆绑ID”可以被用作第二应用程序12的唯一标识符。同样,第一应用程序10可以通过第二应用程序12登记处理的自定义方案,使用URL进行openURL调用来将信息返回第二应用程序12。可以将关于第二应用程序12特有的自定义方案的信息提供给第一应用程序10,作为由第二应用程序12进行的初始openURL调用的URL的一部分。一系列这种openURL调用可以用于在这两个应用程序之间交换嵌入URL内的信息。另外,openURL调用可以用于交换TCP端口信息,该TCP端口信息允许这两个应用程序在第一应用程序10与第二应用程序12之间建立本地TCP通信信道,可以通过该信道交换另外的信息。
在另一个实例中,如果用户装置运行Android操作系统,那么第二应用程序12可以将“Intent”发送给第一应用程序10。可以将对Intent寻址(尤其是对第一应用程序10寻址)所需的信息(例如,类别名称、包装名称、活动、URI等)提供给第二应用程序12,作为由用户装置上的可以提供激活响应的一个或多个其他应用程序构成的组的细节的一部分。在这种情况下,Intent传送第二应用程序12的由操作系统提供的“包装名称”。包装名称可以被用作第二应用程序12的唯一标识符。同样,第一应用程序10可以通过给第二应用程序12发送Intent来使信息返回至第二应用程序12。可以将对Intent寻址(尤其解决第二应用程序12的寻址)所需的信息提供给第一应用程序10,作为由第二应用程序12发送的初始Intent的一部分。一系列这种Intent可以用于在这两个应用程序之间交换信息。此外,Intents可以用于交换TCP端口信息,该TCP端口信息允许这两个应用程序在第一应用程序10与第二应用程序12之间建立本地TCP通信信道,可以通过该信道交换另外的信息。其他实例可以使用适合于用户装置的特定操作系统的其他机构。
一旦接收到激活请求,在步骤40中,第一应用程序10提示用户证书。例如,可以请求在上面描述的步骤26中设置的密码。如果该请求成功,那么处理继续进行至步骤42,否则,第一应用程序10停止处理激活请求。
接下来,在步骤42中,第一应用程序10提示用户确认需要安装第二应用程序12。这可以防止在不通知用户的情况下在用户装置上安装应用程序。如果第一应用程序10从远程数据源检索到应用程序名称,那么可以显示该应用程序名称并且确认请求,作为正在安装的应用程序的身份的进一步检查。如果确认接收,那么第一应用程序10继续进行至步骤44。如果确认不接收,或者在没有用户响应的情况下的预定时间到期之后,第一应用程序10停止处理激活请求。
在该处理中的这个阶段,在步骤40中,第一应用程序10通过请求证书来对用户进行认证,并且在步骤42中,用户确认需要安装第二应用程序12。在一些实施方式中,这些步骤例如可以通过请求用户证书进行组合来确认安装第二应用程序12,使得用户证书的成功输入被解释为确认安装第二应用程序12。
现在,在步骤44中,第一应用程序10对控制服务器6做出对激活数据的请求,第二应用程序12可以使用该激活数据进行激活。一旦接收到激活数据的请求,控制服务器6委托第一应用程序10对用户进行认证,并且在步骤46中,在生成发送给第一应用程序10的激活码或检索先前生成的激活码之前,检查授权用户或用户装置所使用的第二应用程序12。在一些实施方式中,控制服务器6可以具有额外的检查,在发送激活码之前,在储存库4内登记第二应用程序12。例如,这个额外检查可以使用由第一应用程序10收集的关于第二应用程序12的数据。然后,通过防止向不在储存库4内的应用程序提供激活码来提高安全性。
例如,使用SSL协议将第一应用程序10与控制服务器6之间的通信加密,以确保激活码的安全性。激活码可以是用于第一应用程序10的上述的字母数字代码。在其他实施方式中,激活码可以具有其他形式。例如,因为不需要将激活码显示给用户或者由用户输入该激活码,所以激活码可以具有任何机器可读格式。因此,激活码还可以作为比特流(例如,二进制数)来发送。
在步骤48中,第一应用程序10在激活响应中将激活码转发给第二应用程序12。因此,基于与控制服务器6相关联的数据生成激活响应。可以在激活响应中包括其他用于激活的激活数据,例如,用户标识符或电子邮件地址。然后,在步骤50中通过储存库4并且在步骤52中通过控制服务器6激活第二应用程序12。在图2中未描述另外的步骤,这是因为第二应用程序12的激活可以遵循与上面对步骤18到24所描述的处理相同的处理。一旦激活,则第二应用程序12还可以提示用户设置密码或其他证书,这与上述步骤26相似。
在这个实施方式中,第二应用程序12可以使用第一应用程序10以获得激活数据。而不是用户输入来自外部源(例如,电子邮件)的激活数据,用户输入先前针对第一应用程序10设置的证书。这给用户提供了更高的便利性。在一些实施方式中,在安装了第一应用程序10之后,控制服务器6可以继续向用户发送具有激活代码的电子邮件。在其他实施方式中,控制服务器6可以仅发送电子邮件,并且激活码电子邮件用于第一应用程序10,这是因为可以使用第一应用程序10的激活服务来激活应用程序。在用户安装了一些应用程序以避免混淆接收几个相似的具有激活码的电子邮件时,这会是有利的。
图3描述了根据另一个实施方式的在激活用户装置上的第一应用程序10和第二应用程序12的处理中的信号流。除了以下情况以外,在图3中的信号流与在图2中的信号流相同:在步骤29中,第一应用程序10通过储存库4对自身进行登记,作为用户装置上的可以为用于其他应用程序的控制服务器6提供激活服务的应用程序。这代替了图2的步骤28。这对于第一应用程序10来说是有利的,通过这种方式登记自身以减少关于第一应用程序10的可用性的对控制服务器6的状态报告,从而为其他应用程序提供激活服务。
一些实施方式在步骤38中发送的激活请求中包括临时、或单个、或限制使用的代码。例如,该临时代码可以是由第二应用程序12生成的并且由第二应用程序12保持在存储器内的随机数,以供稍后使用。在步骤38中,该临时代码(nonce)通过激活请求而被传输给第一应用程序10。然后,在步骤44中,第一应用程序10将临时代码转发给控制服务器6。参照步骤46,如上所述,由控制服务器6将激活码提供给第一应用程序10。控制服务器6将临时代码存储在存储器内以供稍后使用,并且使其与所提供的激活码相关联,但不通过该激活码传输该临时代码。在步骤52中,第二应用程序12从其存储器中检索临时代码,并且通过发送给控制服务器6的激活请求而包括该临时代码。一旦接收到请求,控制服务器6验证通过激活请求所发送的临时代码与和激活码相关联的存储在其存储器内的临时代码的匹配。只要验证临时代码,通过控制服务器6激活第二应用程序12。临时代码的使用将由控制服务器6提供的激活码限制为授权的激活请求的山下文,并且提高安全性,这是因为在没有相关联的临时代码的情况下,不能使用激活码,没有利用激活码传输该相关联的临时代码。
在另一个实施方式中,例如,通过引发提供应用程序的激活服务可以回应的事件,第二应用程序12可以通过本地请求来确定常驻在用户装置上的提供激活服务的其他应用程序。在这些实施方式中,可以省略上述步骤32和34。
在一些实施方式中,用户装置可以具有所安装的与控制服务器6上的不同用户账户相关联的应用程序。在这种情况下,可以提供发送给第二应用程序12的激活服务的每个应用程序的细节可以包括用户账户标识符。这个用户账户标识符可以用于确定哪些应用程序向给定的用户账户提供激活服务,从而能够允许选择正确的用户账户。如果不止一个应用程序可以向给定的用户账户提供激活服务,那么算法可以选择其中的一个。这种算法可以选择单个应用程序同任何合适的方式提供激活授权服务。实例包括选择单个应用程序以至少部分基于:应用程序供应商、应用程序作者和/或应用程序标识符中的一个或多个,来提供激活委托服务。
在另一个实施方式中,可以具有不止一个控制服务器6和/或储存库4。例如,如果单个用户装置供不止一个企业使用,则会发生这种情况。在这种情况下,可以针对特定的控制服务器6提供用户装置上的激活服务的应用程序的细节的请求。
在另外的实施方式中,可以向用户显示是使用用户装置上的另一个应用程序的激活服务来激活第二应用程序12还是使用由其他装置(例如,电子邮件)通知的代码来激活的选项。
在又一另外的实施方式中,第一应用程序10可以通过控制服务器6建立某个预先共享的密钥,该密钥允许其生成激活数据而不与控制服务器6接触。在这个实施方式中,可以省略上面描述的并且与控制服务器6的激活数据的请求和接收相关的步骤44和46。由于预先共享的密码,所以仍基于与控制服务器6相关联的数据生成激活响应。
在另一个实施方式中,可以仅通过储存库4或者仅通过控制服务器6来激活应用程序。在通过控制服务器6激活应用程序的实施方式中可以省略储存库。在另外的实施方式中,储存库4和控制服务器6的功能可以被组合在单个装置中。
将理解的是,实际上可以由可选地作为芯片组、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、数字信号处理器(DSP)等提供的单个芯片或集成电路或多个芯片或集成电路来提供本文中所提及的处理器或处理系统或电路。这个或这些芯片可以包括电路(以及可能固件),用于实例化一个或多个处理器、一个或多个数字信号处理器、基带电路以及射频电路中的至少一个或多个,其可被配置为根据示例性实施方式进行操作。在这方面,示例性实施方式可以至少部分由存储在(非瞬时性)存储器内并且由处理器、由硬件或者由有形存储的软件和硬件(以及有形存储的固件)的组合可执行的计算机软件来实现。
虽然参照附图在本文中描述的实施方式的至少一些方面包括在处理系统或处理器中执行的处理,本发明还扩展为计算机程序,尤其是在载波上或内的计算机程序,其适合于实践本发明。程序可以具有非瞬时性源代码、目标代码、中间代码源和目标代码的形式,例如,在部分编译的形式中,或者在任何其他非瞬时性形式,其适合用于根据本发明的处理的实现方式中。载波可以是能够携带程序的任何实体或装置。例如,载波可以包括储存介质,例如,固态驱动器(SSD)或其它基于半导体的RAM;ROM,例如,CD ROM或半导体ROM;磁记录介质,例如,软盘或硬盘;通常是光学存储器装置等。
以上实施方式将被理解为本发明的说明性实例。设想本发明的另外的实施方式。要理解的是,参照任何一个实施方式描述的任何特征可以单独地或者与所描述的特征相结合地使用,并且还可以与任何其他实施方式或任何其他实施方式的组合中的一个或多个特征相结合地使用。而且,在不背离所附权利要求中限定的本发明的范围的情况下,还可以使用上面未描述的等同物和修改。

Claims (13)

1.一种使用远程装置和用户装置上运行的第一应用程序激活所述用户装置上运行的第二应用程序的方法,其中,已使用所述远程装置激活了所述第一应用程序,所述方法包括:
通过所述第一应用程序从所述第二应用程序接收对激活响应的请求;
响应于所述请求,通过所述第一应用程序向所述第二应用程序提供包括激活数据的激活响应,已基于与所述远程装置相关联的数据生成了所述激活响应;并且
响应于所述第一应用程序提供所述激活数据,由所述第二应用程序向所述远程装置请求激活所述第二应用程序,其中所述第二应用程序的激活包括由所述远程装置使用所述激活数据来激活所述第二应用程序。
2.根据权利要求1所述的方法,进一步包括:
通过所述第一应用程序请求来自所述远程装置的所述激活响应;并且
通过所述第一应用程序接收来自所述远程装置的所述激活响应以提供给所述第二应用程序。
3.根据权利要求1所述的方法,进一步包括:
通过所述第二应用程序从所述用户装置上的能够提供激活响应的一个或多个其他应用程序的组选择所述第一应用程序。
4.根据权利要求3所述的方法,其中,从所述远程装置请求与所述用户装置上的能够提供激活响应的一个或多个其他应用程序的所述组有关的信息。
5.根据权利要求3所述的方法,其中,从与利用所述远程装置请求激活的所述远程装置不同的第二远程装置请求与所述用户装置上的能够提供激活响应的一个或多个其他应用程序的所述组有关的信息。
6.根据权利要求1所述的方法,进一步包括:
通过所述第一应用程序认证用于所述第一应用程序的用户的证书;
其中,响应于通过所述第一应用程序对所述用户的证书的成功认证来提供所述激活响应,否则不提供。
7.根据权利要求6所述的方法,其中,所述认证包括请求输入用于所述用户装置上的所述第一应用程序的所述用户的证书。
8.根据权利要求1所述的方法,进一步包括:
通过所述第一应用程序从所述远程装置或另一个远程装置请求所述第二应用程序的名称;
通过所述第一应用程序接收所述第二应用程序的名称;并且
通过所述第一应用程序请求用户确认具有所接收的名称的应用程序应当被激活;
其中,响应于来自所述用户的确认发送所述激活响应,否则不发送。
9.根据权利要求1所述的方法,其中,所述第一应用程序具有与提供激活响应不同的主要功能。
10.根据权利要求1所述的方法,其中,至少下一次在所述用户装置上启动所述第二应用程序时不重复所述第二应用程序的激活。
11.一种使用远程装置激活用户装置上的第二应用程序的方法,所述方法包括:
通过所述远程装置从所述用户装置上运行的第一应用程序接收用于所述第二应用程序的激活请求,其中,已使用所述远程装置激活了所述第一应用程序;以及
响应于接收到所述激活请求,通过所述远程装置向所述第一应用程序传输包括用于所述第二应用程序的激活数据的激活响应。
12.一种提供与用户装置上的能够被用于使用远程装置激活用户装置上的其他应用程序的一个或多个应用程序有关的信息的方法,所述方法包括:
通过所述远程装置接收对与所述用户装置上的能够被用于激活软件装置上的其他应用程序的应用程序有关的信息的请求;
响应于接收到所述请求,通过所述远程装置识别所述用户装置上的已使用所述远程装置激活的并且能够向所述远程装置提供用于其他应用程序的激活服务的应用程序;以及
通过所述远程装置将与所识别的应用程序有关的信息传输至所述用户装置。
13.一种用于激活用户装置上的应用程序的设备,包括:
至少一个处理器;以及
非瞬时性存储器,包括计算机程序指令;
其中,所述非瞬时性存储器和所述计算机程序指令被配置为利用所述至少一个处理器使所述设备至少使用所述设备上的第一应用程序激活所述设备上的第二应用程序,其中,已通过一种方法使用远程装置激活了所述第一应用程序,所述方法包括:
通过所述第一应用程序从所述第二应用程序接收对激活响应的请求;
响应于所述请求,通过所述第一应用程序将包括激活数据的激活响应提供给所述第二应用程序,已基于与所述远程装置相关联的数据生成了所述激活响应;并且
响应于所述第一应用程序提供所述激活数据,通过所述第二应用程序向所述远程装置请求激活所述第二应用程序,其中所述第二应用程序的激活包括由所述远程装置使用所述激活数据激活所述第二应用程序。
CN201480019083.7A 2013-01-29 2014-01-28 用于激活用户装置上的应用程序的方法 Active CN105191208B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201361758010P 2013-01-29 2013-01-29
US61/758,010 2013-01-29
PCT/US2014/013457 WO2014120691A1 (en) 2013-01-29 2014-01-28 Methods for activation of an application on a user device

Publications (2)

Publication Number Publication Date
CN105191208A CN105191208A (zh) 2015-12-23
CN105191208B true CN105191208B (zh) 2018-12-07

Family

ID=51262883

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201480019083.7A Active CN105191208B (zh) 2013-01-29 2014-01-28 用于激活用户装置上的应用程序的方法

Country Status (5)

Country Link
US (1) US9807075B2 (zh)
EP (1) EP2951950B1 (zh)
CN (1) CN105191208B (zh)
HK (1) HK1215815A1 (zh)
WO (1) WO2014120691A1 (zh)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8997187B2 (en) 2013-03-15 2015-03-31 Airwatch Llc Delegating authorization to applications on a client device in a networked environment
JP6465719B2 (ja) * 2015-04-02 2019-02-06 キヤノン株式会社 情報処理装置、情報処理装置の制御方法、及びプログラム
TWI637280B (zh) * 2017-05-16 2018-10-01 緯創資通股份有限公司 基於物聯網架構的監控方法、霧運算終端以及物聯網系統
US10657239B2 (en) * 2017-05-25 2020-05-19 Oracle International Corporation Limiting access to application features in cloud applications
US10931673B2 (en) * 2017-09-19 2021-02-23 Amazon Technologies, Inc. Policy activation for client applications
US11416586B2 (en) * 2019-09-30 2022-08-16 Saudi Arabian Oil Company Secure communication application registration process
US11063979B1 (en) * 2020-05-18 2021-07-13 Capital One Services, Llc Enabling communications between applications in a mobile operating system
CN116975794A (zh) * 2023-06-27 2023-10-31 深圳市青葡萄科技有限公司 一种软件激活方法、设备及存储介质

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102414664A (zh) * 2009-04-27 2012-04-11 高通股份有限公司 用于以sms消息接发来激活计算机应用程序的方法和系统

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5103476A (en) * 1990-11-07 1992-04-07 Waite David P Secure system for activating personal computer software at remote locations
US8620286B2 (en) 2004-02-27 2013-12-31 Synchronoss Technologies, Inc. Method and system for promoting and transferring licensed content and applications
US20030159072A1 (en) * 2002-02-04 2003-08-21 Atreus Systems Corp. Single sign-on for multiple network -based services
US8539497B2 (en) 2006-03-30 2013-09-17 Microsoft Corporation Method for organizing software so the set of extensions for an extendable application can be run securely
US20090204544A1 (en) 2008-02-08 2009-08-13 Microsoft Corporation Activation by trust delegation
US8418171B2 (en) * 2008-04-15 2013-04-09 Hurco Companies, Inc. Software option selection and validation system
US8533803B2 (en) 2010-02-09 2013-09-10 Interdigital Patent Holdings, Inc. Method and apparatus for trusted federated identity
US9130935B2 (en) * 2011-05-05 2015-09-08 Good Technology Corporation System and method for providing access credentials
US9063776B2 (en) * 2011-05-27 2015-06-23 Microsoft Technology Licensing, Llc Application activation framework
US20150193267A1 (en) * 2012-02-15 2015-07-09 Quickoffice, Inc. Systems and methods for a save back feature

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102414664A (zh) * 2009-04-27 2012-04-11 高通股份有限公司 用于以sms消息接发来激活计算机应用程序的方法和系统

Also Published As

Publication number Publication date
EP2951950A1 (en) 2015-12-09
HK1215815A1 (zh) 2016-09-15
WO2014120691A1 (en) 2014-08-07
CN105191208A (zh) 2015-12-23
EP2951950B1 (en) 2019-03-13
US9807075B2 (en) 2017-10-31
EP2951950A4 (en) 2016-10-05
US20150334105A1 (en) 2015-11-19

Similar Documents

Publication Publication Date Title
CN105191208B (zh) 用于激活用户装置上的应用程序的方法
CN108200050B (zh) 单点登录服务器、方法及计算机可读存储介质
CN111177686B (zh) 一种身份认证方法、装置及相关设备
CN104021333B (zh) 移动安全表袋
KR101270323B1 (ko) 단일 서비스 사인 온을 제공하는 방법, 장치 및 컴퓨터 판독가능 저장 매체
CN102414690B (zh) 用特权签字创建安全网页浏览环境的方法和设备
EP2879421B1 (en) Terminal identity verification and service authentication method, system, and terminal
CN102457509B (zh) 云计算资源安全访问方法、装置及系统
US20140189799A1 (en) Multi-factor authorization for authorizing a third-party application to use a resource
CN102457507A (zh) 云计算资源安全共享方法、装置及系统
CN102687481A (zh) 用于执行可靠的网络、能力和服务发现的系统、方法和装置
CN105025041A (zh) 文件上传的方法、装置和系统
CN109716724A (zh) 与服务器通信的通信设备的双网认证的方法和系统
CN112632521B (zh) 一种请求响应方法、装置、电子设备和存储介质
CN102811211A (zh) 支持登录验证的设备和进行登录验证的方法
CN106845986A (zh) 一种数字证书的签章方法及系统
CN113726774B (zh) 客户端登录认证方法、系统和计算机设备
CN105095729B (zh) 一种二维码登录方法、服务器及系统
CN103559430B (zh) 基于安卓系统的应用账号管理方法和装置
CN113569210A (zh) 分布式身份认证方法、设备访问方法及装置
US11595215B1 (en) Transparently using macaroons with caveats to delegate authorization for access
US11856398B2 (en) Method and apparatus for managing event for smart secure platform
US10491590B2 (en) System and method for verifying and redirecting mobile applications
US11595389B1 (en) Secure deployment confirmation of IOT devices via bearer tokens with caveats
CN114861144A (zh) 基于区块链的数据权限处理方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C41 Transfer of patent application or patent right or utility model
TA01 Transfer of patent application right

Effective date of registration: 20170116

Address after: Voight, Canada

Applicant after: Good Technology Holdings Limited

Address before: Delaware

Applicant before: Visto Corp.

TA01 Transfer of patent application right
TA01 Transfer of patent application right

Effective date of registration: 20180118

Address after: Voight, Ontario, Canada

Applicant after: Blackberry Ltd.

Address before: Voight, Canada

Applicant before: Good Technology Holdings Limited

GR01 Patent grant
GR01 Patent grant