CN106663174A - 使用受保护存储限制系统调用 - Google Patents

使用受保护存储限制系统调用 Download PDF

Info

Publication number
CN106663174A
CN106663174A CN201580034717.0A CN201580034717A CN106663174A CN 106663174 A CN106663174 A CN 106663174A CN 201580034717 A CN201580034717 A CN 201580034717A CN 106663174 A CN106663174 A CN 106663174A
Authority
CN
China
Prior art keywords
application
public
protected storage
signature
computing device
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
CN201580034717.0A
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.)
Google LLC
Original Assignee
Google LLC
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 Google LLC filed Critical Google LLC
Publication of CN106663174A publication Critical patent/CN106663174A/zh
Pending legal-status Critical Current

Links

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/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • G06F21/6281Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database at program execution time, where the protection is within the operating system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/629Protecting access to data via a platform, e.g. using keys or access control rules to features or functions of an application
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • H04W4/60Subscription-based services using application servers or record carriers, e.g. SIM application toolkits
    • 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/03Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
    • G06F2221/033Test or assess software
    • 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/2141Access rights, e.g. capability lists, access control lists, access tables, access matrices
    • 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/2149Restricted operating environment
    • 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/2153Using hardware token as a secondary aspect

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • Databases & Information Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Telephone Function (AREA)
  • Telephonic Communication Services (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Storage Device Security (AREA)

Abstract

提供用于使用受保护存储限制系统调用的系统和技术。可以从应用接收对受限系统组件的系统调用。可以确定应用具有对受限系统组件进行系统调用的许可。可以使用来自受保护存储的公开密钥验证与应用相关联的签名。公开密钥可以由被授权修改受保护存储中的数据的一方的计算设备发送到受保护存储中。当公开密钥成功地验证与应用相关联的签名时,可以许可受限系统组件执行由系统调用指示的功能。

Description

使用受保护存储限制系统调用
背景技术
诸如智能电话或平板电脑的移动计算设备的操作系统,可以允许第三方通过应用编程接口(API)与操作系统和应用的各个方面相互作用,应用可以是操作系统构建的一部分。在移动计算设备上使用的许多API可以被认为是安全的,并且在移动计算设备上安装的第三方应用可以能够在没有请求许可的情况下使用这些API。某些API可能更为敏感,例如允许访问操作系统的组件或负责在移动计算设备上接收SMS消息的应用的API。例如在安装过程中,第三方应用可能需要请求移动计算设备的用户的许可以访问这些API。用户可以决定是否向第三方应用授权许可,允许用户阻止某些应用访问移动计算设备的某些功能。例如,第三方SMS消息传递应用可能需要使用API,以便访问传入的SMS消息以及发送传出的SMS消息。用户可以决定是否允许第三方SMS消息传递在应用的安装过程中使用这些API。
一些API可能被认为过于危险而不能允许移动计算设备的用户控制哪些第三方应用可以访问它们。这些受限API可能只对安装在移动计算设备的系统分区的特权区段中的应用是可访问的。在特权区段中的应用可能需要在移动计算设备上的操作系统的初始安装过程中安装。例如,智能电话的制造商可以创建包括操作系统、平台组件、和应用的系统构建,所述操作系统、平台组件、和应用可以作为制造过程的一部分或者稍后在操作系统被更新时都被安装在智能电话上。作为系统构建的一部分安装的应用可以是系统应用,并且可以能够访问第三方应用不被允许访问的受限API。可能难以允许在构建已经被安装之后才安装的第三方应用访问这些受限API。只有负责系统构建的一方,例如智能电话的制造商,可以能够安装系统应用,因为它们可能只被安装为系统的一部分。
发明内容
根据所公开的主题的一个实施例,可以从应用接收对受限系统组件的系统调用。该应用可以被确定为具有对受限系统组件进行系统调用的许可。可以使用来自受保护存储的公开密钥验证与应用相关联的签名。公开密钥可以由被授权修改受保护存储中的数据的一方的计算设备发送到受保护存储中。当公开密钥成功地验证与应用相关联的签名时,可以许可受限系统组件执行由系统调用指示的功能。
受限系统组件可以是受限API。SIM卡可以包括受保护存储。可以从被授权修改受保护存储中的数据的一方的计算设备中接收公开密钥。可以经由带外空中下载接收公开密钥。与应用相关联的签名可以使用来自公开/私有密钥对的私有密钥创建。公开密钥可以是公开/私有密钥对的一部分。被授权修改受保护存储中的数据的一方的计算设备可用于使用私有密钥创建与应用相关联的签名。被授权修改受保护存储中的数据的一方可以是蜂窝服务提供者。由系统调用指示的功能可以是SMS过滤、拨打紧急号码、擦除存储和改变网络访问设置中的一种。
可以从第二应用接收对受限系统组件的第二系统调用。第二应用可以被确定为具有对受限系统组件进行系统调用的许可。可以使用来自受保护存储的公开密钥验证与应用相关联的第二签名。公开密钥可以已经由被授权修改受保护存储中的数据的一方的计算设备发送到受保护存储中。当公开密钥验证与第二应用相关联的第二签名失败时,可能阻止受限系统组件执行由第二系统调用指示的功能。可以使用不是与来自受保护存储的公开密钥相同的公开/私有密钥对的一部分的私有密钥创建第二签名。
在公开密钥成功地验证与应用相关联的签名时允许受限系统组件执行由系统调用指示的功能之前,应用的名称可以被验证为在受保护存储中的独特软件包名称的列表上。如果验证失败则可以阻止受限系统组件执行该功能,如果验证成功则可以许可受限系统组件执行该功能。
根据所公开的主题的一个实施方式,包括用于从应用接收对受限系统组件的系统调用的装置,用于确定应用具有对受限系统组件进行系统调用的许可的装置,用于使用来自受保护存储的公开密钥验证与应用相关联的签名的装置,其中公开密钥由被授权修改受保护存储中的数据的一方的计算设备发送到受保护存储中,用于在公开密钥成功地验证与应用相关联的签名时许可受限系统组件执行由系统调用指示的功能的装置,用于从被授权修改受保护存储中的数据的一方的计算设备中接收公开密钥的装置,用于从第二应用接收对受限系统组件的第二系统调用的装置,用于确定第二应用具有对受限系统组件进行系统调用的许可的装置,用于使用来自受保护存储的公开密钥验证与应用相关联的第二签名的装置,其中公开密钥由被授权修改受保护存储中的数据的一方的计算设备发送到受保护存储中,用于在公开密钥验证与第二应用相关联的第二签名失败时阻止受限系统组件执行由第二系统调用指示的功能的装置,用于在公开密钥成功地验证与应用相关联的签名时许可受限系统组件执行由系统调用指示的功能之前,验证应用的名称在受保护存储中的独特软件包名称的列表上的装置,以及用于如果验证失败则阻止受限系统组件执行该功能以及如果验证成功则许可受限系统组件执行该功能的装置。
还包括用于生成包括公开和私有密钥的公开/私有密钥对的装置,其中公开密钥验证使用私有密钥创建的签名,用于生成包括使用私有密钥创建的签名的证书的装置,用于对为应用签署证书的装置,用于发送应用以安装在移动计算设备上的装置,用于发送公开密钥的副本以存储在移动计算设备的受保护存储中的装置,用于生成包括第二公开和第二私有密钥的第二公开/私有密钥对的装置,其中第二公开密钥验证使用第二私有密钥创建的第二签名,用于将公开密钥从移动计算设备的受保护存储中删除的装置,用于从应用中移除证书的装置,用于生成包括第二签名的第二证书的装置,用于为应用签署第二证书以生成更新的应用的装置,用于将更新的应用发送到移动计算设备以替换应用的装置,以及用于将第二公开密钥的副本发送到移动计算设备的受保护存储中的装置。
这里公开的系统和技术可以允许使用受保护存储限制系统调用。所公开的主题的附加特征、优点和实施方式可从下面的详细描述、附图和权利要求中阐明或显而易见。此外,应该理解,上述发明内容和下面的具体实施方式都是示例,旨在在不限制权利要求的范围的前提下提供进一步的解释。
附图说明
被包括在这里以提供对所公开主题的进一步理解的附图被纳入并构成本说明书的一部分。附图还图示了所公开主题的实施例,并且与具体实施方式一起用于解释所公开主题的实施例的原理。除了对于所公开主题的基本理解和可以实践的各种方式所必需的以外,不尝试示出更详细的结构细节。
图1示出了根据所公开主题的实施方式的适合于使用受保护存储限制系统调用的示例性系统。
图2示出了根据所公开主题的实施方式的用于使用受保护存储限制系统调用的示例性设置。
图3示出了根据所公开主题的实施方式的用于使用受保护存储限制系统调用的过程的示例。
图4示出了根据所公开主题的实施方式的用于使用受保护存储限制系统调用的过程的示例。
图5示出了根据所公开主题的实施方式的用于使用受保护存储限制系统调用的过程的示例。
图6示出了根据所公开主题的实施例的计算机。
图7示出了根据所公开主题的实施例的网络配置。
具体实施方式
使用用户身份模块(SIM)限制移动系统调用可以允许安装在移动计算设备上且不是系统构建的一部分的应用访问应用编程接口(API),并且进行可能以其他方式被禁止的系统调用。移动计算设备可以包括操作系统,该操作系统可以包括允许访问操作系统和操作系统平台的相关组件的各种敏感功能的许多受限API。受限API可以对例如由移动计算设备的制造商安装为系统构建的一部分的应用而言是可访问的。为了允许来自例如蜂窝服务提供者的第三方的应用访问受限API,可以由该第三方使用来自公开/私有密钥对的私有密钥来对该应用签署证书。应用可以被安装在移动计算设备上,并且可以在安装过程中请求访问受限API的许可。用户可以选择授予该许可。第三方可以将来自公开/私有密钥对的公开密钥转移到该第三方被授权并且可以具有独占能力来进行修改的移动计算设备上的受保护存储。例如,蜂窝服务提供者可以将公开密钥证书转移到移动计算设备上的用户身份模块(SIM)卡上的安全证书存储。当该应用在移动计算设备上运行并针对受限API进行系统调用时,该移动计算设备的操作系统可以使用来自受保护存储的公开密钥验证应用证书中的私有密钥签名。如果验证成功,则应用可以被许可调用受限API。然后受限API可以执行由来自该应用的系统调用所请求的任何功能。
诸如例如智能电话或平板电脑的移动计算设备可以运行作为移动平台的一部分的操作系统。该操作系统可以包括API和用于允许移动计算设备上的其他应用访问由操作系统控制的功能和数据的其他系统组件。一些系统组件可以是受限系统组件,诸如受限API。操作系统中的受限API可以是相关的敏感数据和功能。允许安装在移动计算设备上的任何第三方应用对受限API进行系统调用可能是一个安全风险。例如,受限API可以包括当激活时可以擦除移动计算设备的存储的功能。另一个受限API可以控制访问各种电话相关的功能和数据,例如SMS消息过滤、呼叫紧急电话号码、以及查看和改变用于访问蜂窝服务提供者的网络的网络访问设置。不具有针对受限API进行系统调用的适当许可的应用可能会被拒绝访问该受限API。例如,安装在移动计算设备上但不属于系统构建的一部分的第三方应用可以尝试调用受限API以擦除移动计算设备的存储,清除存储在该移动计算设备上的所有数据。操作系统可以响应于接收到来自第三方应用的系统调用而抛出安全异常,阻止第三方应用使用受限API的存储擦除功能。
第三方可能想要使能够访问受限API并且能够在已经安装了系统构建之后被安装在移动计算设备上的应用可用。例如,智能电话可以具有由智能手机的制造商安装的其系统构建,包括能够访问受限API的应用。稍后,智能电话可以被激活,用于与蜂窝服务提供者一起使用。蜂窝服务提供者可能希望允许其用户在智能电话上安装能够访问某些受限API的应用。由于蜂窝服务提供者没有生成系统构建,并且可能不负责智能电话的未来系统构建,蜂窝服务提供者可能无法将其应用安装为系统构建的一部分。蜂窝服务提供者也可能不希望等待未来系统构建,以允许具有对受限API的访问而不属于当前系统构建的一部分的应用的安装。
第三方可以创建第三方希望能够访问移动计算设备上的受限API的应用,并且使用来自公开/私有密钥对的私有密钥为应用签署证书。公开/私有密钥对可以以任何适当的方式、使用任何适当的加密技术、系统和算法来生成。私有密钥可能仅被第三方知道,并且可能会被保密,以阻止任何其他一方获得密钥以签署应用。当应用被下载并安装到移动计算设备时,可请求移动计算设备的用户授予该应用访问受限API的许可。该应用只有在用户授予所请求的许可的情况下才被安装。例如,蜂窝服务提供者可以创建使用智能电话操作系统的受限电话API的应用,以读取和写入由智能电话控制网络访问的设置。用户可以以任何适当的方式将应用下载并安装到他们的智能电话,诸如例如通过应用生态系统商店、通过由电话服务提供者提供的商店、或者通过下载和侧面加载(sideload)在线商店以外的应用。侧面加载的例子包括在两个本地设备之间转移应用和/或数据,诸如在计算机和诸如移动电话、智能电话、PDA、平板电脑、便携式媒体播放器或电子书阅读器的移动设备之间,或者在两个移动设备之间。
在安装过程中,应用可能会向智能电话的操作系统指示应用需要访问受限电话API的许可。操作系统可以向用户呈现一个对话,允许用户授予该应用访问许可,并且对受限电话API进行系统调用。如应用所请求的,由用户授予的许可可以仅应用于针对受限API所选择的系统调用。例如,应用可以仅请求并被授予使用来自受限API的系统调用子集的许可,并且可能不具有访问来自该受限API的除了被请求和被授予许可的子集以外的系统调用的许可。
负责创建由私有密钥签署的应用的第三方可以被授权,并且还可以能够排他地修改移动计算设备上的受保护存储。受保护存储可以是任何适当的存储,诸如例如在SIM卡上的证书存储。例如,智能电话的蜂窝服务提供者可以是有能力存储和修改智能电话中的SIM卡上的证书存储中的数据的唯一一方。第三方可以发送来自公开/私有密钥对的公开密钥以存储在移动计算设备的受保护存储中。例如,蜂窝服务提供者可以执行将至智能电话的SIM卡的证书存储的公开密钥的空中下载(OTA)传输、来自正常OTA系统更新的带外传输。第三方可在任何适当的时间将公开密钥发送到移动计算设备的受保护存储。例如,当预期到智能电话用户在未来的安装而由第三方创建应用时、在应用被安装在智能电话上时、当应用在智能电话上第一次运行时、或者当应用尝试使其对智能电话操作系统的受限API进行第一次调用时,蜂窝服务提供者可以将公开密钥存储在智能电话SIM卡的证书存储中。公开密钥可以包括公开密钥可以用来验证的应用的指示,。
来自第三方的应用可以在移动计算设备上运行,并且可以对受限API进行系统调用。在操作系统执行该功能或允许应用访问数据之前,操作系统可以与对受限API的系统调用相关联地尝试验证该应用的许可和签名。操作系统可以例如由用户在安装过程中检查以确保应用已经被授予适当的许可,从而对受限API进行系统调用。如果应用具有适当的许可,操作系统可以从受保护存储中检索公开密钥,并且使用公开密钥检查应用的证书中的签名,相反地,如果应用不具有适当的许可,则该应用对受限API的访问被拒绝。验证可以使用任何适当的加密技术,例如任何与生成公开/私有密钥的方式相关联的验证技术。如果使用公开密钥验证了签名,指示该应用是由与来自受保护存储的公开密钥相匹配的私有密钥签名的,则操作系统可以执行对受限API的系统调用所请求的功能。如果签名未被验证,或者对于受保护存储中的应用不存在公开密钥,则应用可能会被拒绝访问受限API。缺乏公开密钥可能指示适当的公开密钥尚未被第三方发送到受保护存储,或者应用是由不具有修改受保护存储的能力的一方创建的。
例如,调整网络访问设置的应用可以安装在智能电话上,并且用户可以授权该应用对智能电话的操作系统的受限电话API进行系统调用的许可。该应用可能已经由智能电话的蜂窝服务提供者创建,并且可能使用由蜂窝服务提供者保密的私有密钥而被签署证书。然后蜂窝服务提供者可以将对应的公开密钥发送到智能电话SIM卡的证书存储中。该应用可以运行,并且可以对受限电话API进行系统调用,以改变网络访问设置中的一个。操作系统可以首先检查应用被授予对受限API进行系统调用的许可,该受限API激活对网络访问设置写入改变的功能。如果许可被授权,则操作系统可以从受保护存储中检索公开密钥,并且使用该公开密钥来验证该应用的证书中的签名。由于公开密钥对应于用于签署应用的私有密钥,公开密钥可以验证应用的签名。然后操作系统可以允许受限API执行系统调用所请求的功能,将指定的改变写入到网络访问设置中。
由于第三方可以秘密地保存私有密钥,并且可能是可以修改受保护存储的唯一一方,由第三方创建和签署的应用可以访问移动计算设备上的受限API。由任何其他方创建的应用可能会被拒绝访问受限API。可能没有使用任何私有密钥为第四方应用签署证书,在这种情况下,响应于对受限API的系统调用而由操作系统验证应用上的签名的任何尝试都将会失败,从而导致拒绝访问受限API。可以使用私有密钥来为第四方应用签署证书,然而,因为由第三方使用的私有密钥是保密的,由第四方使用的私有密钥可能不与由第三方使用的私有密钥相同。由于用于签署第四方应用的私有密钥可能不是来自第三方公开/私有密钥对,由第三方发送到受保护存储的任何公开密钥可能无法验证来自第四方的应用上的签名。由于第四方可能不能修改受保护存储,第四方可能无法将其自己的公开密钥发送到受保护存储中,以用于验证第四方应用。这可能允许被授权修改移动计算设备的受保护存储的一方创建对受限API进行系统调用的应用,并且将这些应用安装在系统构建的外部。
例如,与智能电话的蜂窝服务提供者不相关的应用开发人员可能会创建一个应用,其调用受限API并包括擦除智能电话的存储的功能。可以使用来自由应用开发人员生成的公开/私有密钥对的私有密钥为应用签署证书。用户可以安装应用,并且可以授予该应用访问受限API的许可。当应用运行时,应用对受限API进行系统调用,以激活将会擦除智能电话的存储的功能。操作系统可以确定该应用具有适当的许可以进行系统调用,然后可以尝试验证该应用的证书中的签名。智能电话的SIM卡可以具有存储在证书存储中的公开密钥。公开密钥可以已成为由蜂窝服务提供者生成的公开/私有密钥对的一部分,并且可以已经被蜂窝服务提供者发送到SIM卡的证书存储中。应用开发人员可能不具有由蜂窝服务提供者生成的私有密钥。操作系统可以使用来自SIM卡的公开密钥来尝试验证应用开发人员的应用的证书的签名。由于应用是由来自与存储在SIM卡上的公开密钥不同的公开/私有密钥对的私有密钥签署的,验证尝试可能会失败,并且可能会阻止应用使用受限API的功能擦除智能电话的存储。应用开发人员可能没有能力在SIM卡上存储他自己的公开密钥。由于只有蜂窝服务提供者可以在SIM卡上存储公开密钥,这可能使应用开发人员不能使操作系统验证其应用,并且在没有蜂窝服务提供者的合作的情况下不允许对受限API进行系统调用。通过这种方式,对于由系统创建者安装的应用,以及由SIM卡在智能电话中的蜂窝服务提供者批准的应用,对智能电话操作系统的受限API的访问是受限制的。
相同的公开/私有密钥对可用于同一应用的多个安装,并且用于来自同一第三方的多个不同的应用。例如,蜂窝服务提供者可以创建应用,并且使用相同的私有密钥对应用的所有副本进行签署,并将同一公开密钥的副本发送给安装有应用的每一个移动计算设备。不同的公开/私有密钥对也可以用于同一应用的多个安装,或用于来自同一第三方的多个不同的应用。例如,蜂窝服务提供者可以创建三个公开/私有密钥对,并且将每个公开/私有密钥对用于不同的应用,或者用于同一应用的多个安装中的一些。
如果必要的话,由第三方使用的公开私有密钥对可能会被替换。例如,第三方可能会使用密钥轮换,或者私有密钥可能会被泄露或被盗并成为公众可获得的。第三方可以生成新的公开/私有密钥对,并且可以从任何移动计算设备的受保护存储中移除旧的公开密钥,使用新的公开密钥来取代它。新建立的应用可以由新的私有密钥签署,并且用户可能会被要求更新安装在他们的移动计算设备上的应用的版本。应用可能无法访问受限API直到它被更新,这是因为在验证使用旧的私有密钥签署的应用时,新的公开密钥可能会导致失败。此外,由于新的公开密钥不验证使用旧的私有密钥做出的签名,任何尝试使用泄漏的或被盗的私有密钥的应用也可能被阻止访问受限API。
除了公开密钥之外,独特软件包名称列表也可以被存储在受保护存储中。独特软件包名称列表可以识别哪个第三方应用可能被允许访问受限API。第三方可以以与公开密钥相同的方式将独特软件包名称列表发送到受保护存储。当应用调用受限API时,除了利用公开密钥验证应用的签名以外,操作系统会检查独特软件包名称列表以确定应用是否被识别,例如具有在独特软件包名称列表上的名称。这可能允许进一步限制可以对受限API进行系统调用的应用,由于第三方可以将应用的名称添加至独特软件包名称列表或从独特软件包名称列表撤销。例如,第三方可以将应用的名称从独特软件包名称列表撤销,即使在使用作为具有受保护存储中的公开密钥的公开/私有密钥对的一部分的私有密钥签署应用时,也能够阻止应用对受限API进行系统调用。
可由应用使用的受限API的功能可能是有限的。例如,负责创建、分发或维护移动计算设备的操作系统和平台的一方可以指定哪些受限API和哪些功能可以或不可以由第三方创建的应用访问。这可能使得没有被安装为系统构建的一部分的任何应用仍然无法访问某些受限API和某些功能。
图1示出了根据所公开主题的实施方式的适合于使用受保护存储限制系统调用的示例性系统。移动计算设备100可以包括应用110、系统130、存储140和受保护存储150。移动计算设备100可以是任何适当的设备,例如用于实现应用110、系统130、存储140和受保护存储150的如图6所述的计算机20。该移动计算设备100可以是单个的计算设备,或者可以包括多个连接的计算设备,并且例如可以是如平板电脑或智能电话的移动计算设备,运行可能是移动平台的一部分的移动操作系统。系统130可以包括移动计算设备100的操作系统,包括如受限API 105的受限API,和操作系统的平台的其他组件,如被安装作为系统构建的一部分的应用。应用110可以是能够在移动计算设备100上安装和运行的任何适当的应用,并且可以是不作为系统构建的一部分的应用。应用110可以包括证书112,该证书112可以包括签名113。存储140可以以任何适当的方式存储设置145。受保护存储150可以以任何适当的方式存储公开密钥155。
系统130可以包括移动计算设备100的操作系统,以及与操作系统相关联并且一起安装的任何其他组件。例如,系统130可以安装在移动计算设备100上以作为系统构建,并且可以包括操作系统、对操作系统的增强或修改、作为操作系统平台的一部分的组件,以及可以被安装在移动计算设备100的存储140的系统特权分区上的应用。系统130可以包括各种不同的API,其中的一些可以是如受限API 135的受限API。受限API 135可以是负责系统130的操作系统的一方已经选择限制访问的API。系统130的其他组件、包括操作系统和系统特权分区上的应用,可以能够访问和使用受限API 135的功能,但是移动计算设备100的其他组件在没有适当证书的情况下可能会被拒绝访问受限API 135。例如,应用120可能无法访问受限API 135。
应用110可以是能够在移动计算设备上安装和运行的任何适当的应用,并且可以包括证书112。应用110可以是由第三方创建和分发的应用。在安装过程中,应用110可以使用系统130的任何适当的机制请求移动计算设备100的用户授予应用110进行利用受限API135的某些功能进行系统调用的许可。例如,应用110可以请求许可以调用受限API 135的拨打紧急电话的功能。负责创建和分发应用110的第三方也可以被授权,并且可以具有独占能力,以写入受保护存储150。应用110可以包括证书112,该证书112可以包括签名113。签名113可以使用公开/私有密钥对的私有密钥创建,该公开/私有密钥对例如可以由创建应用110的一方生成。私有密钥可以被秘密地保持。证书112和签名113可以用来允许应用110对受限API 135进行系统调用。应用110例如可以是由蜂窝服务提供者创建的、由来自蜂窝服务提供者使用任何适当的加密系统产生的公开/私有密钥对的私有密钥签署的应用。
受保护存储150可以是用于在移动计算设备100上实现存储的硬件和软件的任何适当的组合。例如,受保护存储150可以是智能电话或平板电脑的SIM卡。受保护存储150可以是只有负责创建应用110的第三方能够更改的。例如,只有蜂窝服务提供者可以能够修改存储在受保护存储150中的数据。公开密钥155可以由具有修改受保护存储150的独占能力的第三方存储在受保护存储150中。例如,蜂窝服务提供者可以将公开密钥155从公开/私有密钥对发送至存储在受保护存储150中,受保护存储150可以是蜂窝服务提供者发布的SIM卡。公开密钥155可以使用例如空中下载数据转移而被存储到受保护存储150中。公开密钥155可以来自与用于为应用110创建签名113的私有密钥相同的公开/私有密钥对,。
系统130能够从受保护存储150读取公开密钥155。例如,当应用110对受限API 135进行系统调用时,系统130可以从受保护存储150读取公开密钥155。系统130可以使用公开密钥155尝试验证应用110的证书112中的签名113,以确定应用110是否被许可对受限API135进行系统调用。公开密钥155可用于以任何适当的方式来验证签名113,例如,使用基于用于生成公开密钥155和用于创建签名113的私有密钥的公开/私有密钥对的加密技术的加密技术。当使用公开密钥155成功地验证签名113时,由于这可以指示应用110是由还被授权以修改受保护存储150的第三方创建的,来自应用110的系统调用可以被许可,并且受限API 135的被调用功能可以被执行。
设置145可以包括移动计算装置100的任何适当的设置,在不使用受限API的情况下可能不能被修改。例如,设置145可以是蜂窝服务提供者的网络的网络访问设置。设置145可以被创建为系统构建的一部分,并且在包括系统130的系统构建被安装在移动计算设备100上时被存储在存储140中。设置145可能仅能够通过受限API、如受限API 135的使用而被修改,并且也可能是只读的。当应用110向受限API 135发送系统调用时,应用110可以能够基于由系统130使用公开密钥155对签名113的验证,而使用受限API 135修改设置145。
例如,设置145可以是蜂窝服务提供者的网络的网络访问设置。蜂窝服务提供者可以创建应用110,使其能够修改设置145。可以使用证书112为应用110签署签名113,可以使用公开/私有密钥对的私有密钥创建签名113。当被安装在例如智能电话的移动计算设备100上时,应用110可以请求用户的许可以访问受限API 135,该受限API 135可以是包括用于修改设置145中的网络访问设置的功能的受限API。用户可以授予所请求的许可。蜂窝服务提供者可以将公开密钥155发送到受保护存储150,公开密钥155可以是来自与用于创建签名113的私有密钥相同的公开/私有密钥对,受保护存储150可以是移动计算设备100的SIM卡。应用110可以运行并对受限API135进行系统调用,要求执行修改设置145中的网络访问设置的功能。系统130可以使用公开密钥155来验证应用110的签名113。由于公开密钥155可以来自与用于创建签名113的私有密钥相同的公开/私有密钥对,应用110可以被验证,并且对受限API 135的系统调用可以被允许。然后受限API 135可以根据应用110的请求,实现对设置145中的网络访问设置的修改。因为只有移动服务提供者可以在例如智能电话的SIM卡的受保护存储器150中存储任何私有密钥,只有蜂窝服务提供者可以创建能够被安装在系统构建之外但仍然可以使用受限API 135修改设置145的应用。
图2示出了根据本公开主题的实施方式的用于使用受保护存储限制系统调用的示例性设置。应用110可以由例如蜂窝服务提供者的第三方创建,并且被存储在提供者服务器200上。提供者服务器200可以是由例如蜂窝服务提供者的第三方用于创建和分发应用的任何适当的服务器系统。应用110可以是被创建为使用系统130的受限API 135的功能的应用。
包括公开密钥155和私有密钥215的公开/私有密钥对210可以由提供者服务器200生成。提供者服务器200可以使用任何适当的加密技术来生成公开/私有密钥对210,并且私有密钥215可以被保密,例如被安全地存储在提供者服务器200上而不暴露于公开访问。私有密钥215可以用于以任何适当的方式创建签名113,并且签名113可以被存储为证书112的一部分。具有签名113的证书112可以用于签署应用110。公开密钥155可以从提供者服务器200被发送到移动计算设备100的受保护存储150。
应用110可以以任何适当的方式被下载并安装到移动计算设备100。例如,应用110可以从提供者服务器200、从例如也可以与负责创建系统130的操作系统的一方相关联的应用生态系统的店面被直接下载,或者可以由例如运行提供者服务器200的一方安装在移动计算设备100上。例如,蜂窝服务提供者可以将应用110安装在由蜂窝服务提供者直接出售或者被激活以用于在蜂窝服务提供者的网络上使用的所有智能电话上。在安装过程中,应用110可以请求移动计算设备100的用户授予应用110使用受限API 135的功能的许可。用户可以对应用110授予所请求的许可。
应用110可以运行在移动计算设备100上。例如,用户可以启动应用110,或者应用110可以在移动计算设备100启动时或响应于例如从蜂窝服务提供者外部接收的指令而启动。应用110可以对受限API135进行系统调用。例如,应用110可以尝试使用受限API 135的改变存储在设置145中的网络访问设置的功能。
系统130可以从应用110接收对受限API135的系统调用。系统130可以确定应用110被授予进行系统调用的许可,例如因为在应用110的安装过程中用户授权许可。然后系统130可以从受保护存储150中检索公开密钥155,公开密钥155在从提供者服务器200接收后被存储在受保护存储150中。公开密钥155可用于尝试验证应用110的证书112中的签名113。由于公开密钥155与用于创建签名113的私有密钥215一起,都是公开/私有密钥对210的一部分,应用110可以由系统130验证。
系统130可以允许在验证应用110之后进行对受限API 135的系统调用,授予应用110对受限API 135的访问。受限API 135可以执行在系统调用中由应用110请求的任何功能。例如,受限API 135可用于对设置145进行所请求的修改,设置145可以是运行提供者服务器200的蜂窝服务提供者的网络访问设置。
由应用110对受限API 135进行的随后系统调用可能需要系统130基于公开密钥155和签名113再次验证应用110。系统130也可以记忆应用110已被验证,并且可以许可应用110对系统调用进行相似的系统调用,导致在再次验证应用110之前的一些指定的时间段内的原始变化。
应用220可以是在移动计算设备100上的、不是系统构建的一部分并且不由运行提供者服务器200的一方创建的应用。例如,应用220可以是来自与运行提供者服务器200的蜂窝服务提供者不相关的应用开发人员的应用。可以使用证书222为应用220签署签名223。签名223可能已经使用不是来自公开/私有密钥对210的私有密钥215的私有密钥创建。
应用220可以对受限API 135进行系统调用。系统130可以尝试使用公开密钥155基于证书222中的签名223验证应用220。由于签名223是使用不是私有密钥215的私有密钥创建的,所以使用公开密钥155对签名223的验证可能会失败。系统130可能拒绝应用220访问受限API 135,例如,抛出系统错误,并且阻止受限API 135接收系统调用或执行由系统调用请求的功能。由于运行提供者服务器200的一方可能是被授权的一方,这可以确保只有源于提供者服务器200并且由私有密钥215签署的应用能够对受限API 135进行系统调用,并且可以具有独占能力以修改受保护存储150,以便将例如公开密钥155的公开密钥存储在受保护存储150中。
图3示出了根据所公开主题的实施方式的用于使用受保护存储限制系统调用的布置的示例。在300,可以生成公开/私有密钥对。例如,如蜂窝服务提供者的第三方可以使用任何适当的加密技术来生成包括公开密钥155和私有密钥215的公开/私有密钥对210。公开/私有密钥对210可以例如被存储在提供者服务器200上。私有密钥215可以被安全地存储,并且可以被秘密地保存,以阻止由运行提供程序服务器200的第三方以外的一方使用它。公开/私有密钥对210也可以以任何其他适当的方式获得。例如,负责系统130中的操作系统的一方可以生成公开/私有密钥对210并将其安全地保管到提供者服务器200。
在302,应用可以由私有密钥签署。例如,应用110可以由运行提供者服务器200的第三方创建。应用110可以被签署有证书112,证书112可以包括使用来自公开/私有密钥对210的私有密钥215创建的签名113。应用110可以以任何适当的方式被签署,例如在应用110创建过程中或之后的任何适当的点上。应用110可以包括对受限API 135进行系统调用的功能。
在304,应用可以被发送以用于安装。例如,应用110可以从提供者服务器200被直接发送到移动计算设备100从而被安装。移动计算设备100的用户可以启动应用110的下载和安装,或者应用110可以由例如蜂窝服务提供者的第三方安装,同时第三方例如在移动计算装置100已售出之前拥有对移动计算设备100的控制。应用110也可以被发送到用于分发的应用生态系统的店面。例如,负责系统130的操作系统的一方可以包括作为操作系统平台的一部分的具有店面的应用生态系统。应用110可以从店面被下载并安装在移动计算设备100上。应用110也可以被侧面加载(side-load)到移动计算设备100上。
在306,公开密钥可以被发送到受保护存储中。例如,提供者服务器200可以直接将公开密钥155的副本传输给移动计算设备100,以将其存储在受保护存储150中。运行提供者服务器200的一方、例如蜂窝服务提供者可以是具有修改和存储受保护存储150中的数据的唯一一方,受保护存储150例如可以是由蜂窝服务提供者发行的SIM卡。公开密钥155可以由移动计算设备100存储在受保护存储150中。没有其他一方能够在受保护存储150中存储任何其他公开密钥,或者将公开密钥155从受保护存储150中移除。公开密钥155可以在任何合适的时间被发送到移动计算设备100。例如,在应用110被安装在移动计算设备100上之后,或者在应用110对受限API 135进行系统调用之后,公开密钥155在被生成之后可以被发送。
图4示出了根据所公开主题的实施方式的用于使用受保护存储限制系统调用的过程的示例。在400,应用可以被接收。例如,移动计算设备100可以从任何适当的源接收应用110,例如,直接从提供者服务器200、从与系统130的操作系统相关的应用生态系统的店面、从不同应用生态系统的店面,或者通过短距离传输、例如经由与具有能够被侧面加载到移动计算装置100上的应用110的副本的计算设备的USB或WiFi连接。
在402,可以接收选择以授予应用对受限API的访问。例如,应用110可以被安装在移动计算设备100上。在安装过程中,应用110可以通过系统130请求对访问受限API 135的许可。移动计算设备100的用户可以选择授予许可,允许应用110向受限API 135发送系统调用。许可可以从多个受限API被请求和授予,也可以被限于不同API的某些功能。例如,受限API 135可以执行六个功能,而应用110可能仅被授予使用这六个功能中的三个特定功能的许可。
在404,可以安装应用。例如,应用110可以在被授予访问受限API 135的许可之后,完成在移动计算设备135上的安装。如果未被授予许可,则应用110可以不安装,因为应用110在不具有访问受限API135的许可的情况下可能不能适当地的起作用。
在406,可以接收公开密钥。例如,可以在移动计算设备100上接收公开密钥155。公开密钥155可以通过由例如提供者服务器200发送的带外、空中下载的更新而被接收。在应用110的安装过程中或之后,或者在任何其他适当的时间,公开密钥155可以在接收应用110的同时被接收。
在408,公开密钥可以被存储在受保护存储中。例如,公开密钥155可以被存储在移动计算设备100的受保护存储150中。可以按照指令接收公开密钥以将公开密钥存储在受保护存储150中,受保护存储150例如是SIM卡。由于运行提供者服务器200的一方可以能够直接对系统130以外的受保护存储150寻址,公开密钥155也可以被直接写入受保护存储150。运行例如蜂窝服务提供者的提供者服务器200的一方可以是能够对移动计算设备100上的受保护存储150写入或修改的唯一一方。
图5示出了根据所公开主题的实施方式的用于使用受保护存储限制系统调用的过程的示例。在500,可以从应用接收对受限API的系统调用。例如,系统130可以从应用110中接收对受限API 135的系统调用。在移动计算设备100上运行的应用110可以尝试使用受限API 135的一些功能,例如擦除存储140、拨打紧急号码、执行SMS过滤或者对设置145中的网络访问设置写入。
在502,可以对受限API访问检查许可。例如,系统130可以检查以确保应用110具有对受限API 135进行系统调用以及应用正在进行的特定系统调用的许可。在应用110的安装过程中,例如基于用户作出的选择,可以已经授予了许可。
在504,可以使用公开密钥验证应用的签名。例如,用于签署应用110的证书112中的签名113可以由公开密钥155验证。签名113可能已经使用私有密钥215被创建,私有密钥215与在提供者服务器200上产生的公开密钥155一起都是公开/私有密钥对210的一部分。应用110在分发给移动计算设备100之前可能已经由私有密钥215签署。公开密钥155可以由系统130从受保护存储150中检索到,然后系统130可以使用公开密钥155来验证签名113。因为签名113是使用私有密钥215创建的,所以签名113可以被验证。这可以确保只有被授权写入和修改受保护存储150的一方能够分发可以被验证以访问受限API 135的应用。没有其他一方可将他们的公开密钥放置在受保护存储150中,因为公开密钥155将仅验证使用私有密钥215创建的签名,所以使用私有密钥215以外的私有密钥签署的应用将不被验证。例如,蜂窝服务提供者可以是能够在智能电话的SIM卡上存储公开密钥的唯一一方。蜂窝服务提供者可以创建和分发可以使用受限API、由蜂窝服务提供者的私有密钥签署并且使用由蜂窝服务提供者存储在智能电话的SIM卡上的匹配公开密钥验证的应用。
在506,可以执行由系统调用请求的API功能。例如,应用110可能已经对受限API进行系统调用,以改变设置145中的网络访问设置。因为应用110具有使用受限API 135的许可,并其使用来自受保护存储150的公开密钥155进行了验证,所以系统130可以使用受限API135来实现变化。
本公开的主题的实施方式可以实现为各种组件和网络架构并与它们一起使用。图6是适合于实现本公开主题的实施方式的示例计算机系统20。计算机20包括将计算机20的主要组件互连的总线21,所述主要组件诸如一个或多个处理器24、存储器27(如RAM、ROM、闪存等等)、输入/输出控制器28、以及固定存储23(如硬盘驱动器、闪存、SAN设备等等)。应该理解,也可以包括或不包括其他组件,例如用户显示器(诸如如经由显示器适配器的显示屏幕)、用户输入接口(诸如控制器及相关的如键盘、鼠标、触摸屏等的用户输入设备)、以及现有技术中已知的、用在通用计算机系统中或与其结合使用的其它组件。
总线21允许中央处理器24和存储器27之间的数据通信。RAM一般是将操作系统和应用加载在其中的主要存储器。ROM或闪存在其他代码中可以包含基本输入输出系统(BIOS),其控制诸如与外围组件的交互的基本硬件操作。常驻计算机20的应用通常存储在计算机可读介质上并经由该计算机可读介质被访问,计算机可读介质诸如是固定存储23和/或存储器27、光驱动器、外部存储机构等等。
所示的每个组件都可以与计算机20集成,或者可以是分离的并通过其他接口访问。如网络接口29的其他接口可以经由电话链路、有线或无线局域网或广域网连接、专有网络连接等等提供至远程系统和设备的连接。例如,网络接口29可以允许计算机经由一个或多个局域、广域或其他网络与其他计算机进行通信,如图7所示。
许多其他的设备或组件(未示出)可以以类似的方式连接,如文档扫描仪、数码相机、辅助、补充或备份系统等等。相反,为了实践本公开,不是如图6所示的所有组件都是必须存在的。组件可以以与所示出的不同的方式相互连接。本领域技术人员很容易知道如图6所示的计算机的操作,并且在本申请中不详细讨论。实现本公开的代码可以存储在计算机可读存储介质中,诸如一个或多个存储器27、固定存储23、远程存储位置或现有技术中已知的任何其他存储机构中。
图7示出了根据本公开主题的实施方式的示例布置。一个或多个客户端10,11,诸如本地计算机、智能电话、平板计算设备、远程服务等,可以经由一个或多个网络7连接到其他设备。该网络可以是一个本地网、广域网、互联网或任何其他适当的通信网络,并且可以实现在任何适当的平台上,包括有线和/或无线的网络。客户端10,11可以与一个或多个计算机系统进行通信,如处理单元14、数据库15和用户接口系统13。在一些情况下,客户端10,11可以与用户接口系统13进行通信,这可以提供对如数据库15、处理单元14等等的一个或多个其他系统的访问。例如,用户接口13可以是用户可访问的网页,其提供来自一个或多个其他计算机系统的数据。用户接口13可以为不同客户提供不同接口,如为Web浏览器客户端10提供人类可读网页,以及为远程服务客户端11提供计算机可读API或其他接口。用户接口13、数据库15和处理单元14可以是整体系统的一部分,或者可以包括经由私有网络、互联网、或任何其他适当的网络通信的多个计算机系统。处理单元14例如可以是如基于云的计算系统、搜索引擎、内容传送系统等的分布式系统的一部分,该分布式系统还可以包括数据库15和/或用户接口13,或者与它们进行通信。在一些布置中,分析系统5可以提供后端处理,诸如存储或获取的数据在被交付给处理单元14、数据库15和/或用户接口13之前,被分析系统5预处理。例如,机器学习系统5可以向一个或多个其他系统13、14、15提供各种预测模型、数据分析等等。
在所公开的主题的实施方式收集用户个人信息或者可以使用个人信息的情况下,用户可以拥有机会以控制程序或特征是否收集用户信息(例如用户的效能评分、用户的工作产品、用户提供的输入、用户的地理位置、和与用户相关的任何其他类似数据),或者控制是否和/或如何从可能与用户更相关的教学课程提供者接收教学课程内容。此外,某些数据可以在被存储或使用之前以一个或多个方式被处理,以便将个人可识别信息移除。例如,用户的身份可以被处理,从而使得不能对用户确定个人身份信息,或者与教学课程相关的用户地理位置可以被一般化为获取位置信息的位置(诸如到城市、邮政编码或州级别),从而使得不能确定用户的具体位置。因此,用户可以具有怎样对于用户收集信息以及由教学课程提供者使用信息的控制。
上述为了解释目的的说明已经参照具体实施方式被描述。然而,上述说明性的讨论不旨在详尽的或将本公开主题的实施方式限制为所公开的精确形式。鉴于以上教导,可以进行许多修改和变更。实施例被选择和描述以说明本公开主题的实施例及其实践应用的原理,从而使本领域技术人员能够利用适合于特定用途的这些实施例以及具有各种变型的各种实施例。

Claims (27)

1.一种由数据处理装置执行的计算机实现的方法,所述方法包括:
从应用接收对受限系统组件的系统调用;
确定所述应用具有对所述受限系统组件进行所述系统调用的许可;
使用来自受保护存储的公开密钥验证与所述应用相关联的签名,其中所述公开密钥由被授权修改所述受保护存储中的数据的一方的计算设备发送到所述受保护存储;以及
当所述公开密钥成功地验证与所述应用相关联的所述签名时,许可所述受限系统组件执行由所述系统调用指示的功能。
2.根据权利要求1所述的计算机实现的方法,其中,所述受限系统组件是受限API。
3.根据权利要求1所述的计算机实现的方法,其中SIM卡包括所述受保护存储。
4.根据权利要求1所述的计算机实现的方法,还包括从被授权修改所述受保护存储中的数据的所述一方的所述计算设备接收所述公开密钥。
5.根据权利要求4所述的计算机实现的方法,其中,经由带外空中下载更新来接收所述公开密钥。
6.根据权利要求1所述的计算机实现的方法,其中,与所述应用相关联的所述签名是使用来自公开/私有密钥对的私有密钥创建的,并且其中,所述公开密钥是所述公开/私有密钥对的一部分。
7.根据权利要求6所述的计算机实现的方法,其中,被授权修改所述受保护存储中的数据的所述一方的所述计算设备用于使用所述私有密钥创建与所述应用相关联的所述签名。
8.根据权利要求1所述的计算机实现的方法,其中,被授权修改所述受保护存储中的数据的所述一方是蜂窝服务提供者。
9.根据权利要求1所述的计算机实现的方法,其中,由所述系统调用指示的所述功能是SMS过滤、拨打紧急号码、擦除存储、和改变网络访问设置中的一个。
10.根据权利要求1所述的计算机实现的方法,还包括:
从第二应用接收对所述受限系统组件的第二系统调用;
确定所述第二应用具有对所述受限系统组件进行所述系统调用的许可;
使用来自受保护存储的公开密钥验证与所述应用相关联的第二签名,其中所述公开密钥由被授权修改所述受保护存储中的数据的一方的计算设备发送到所述受保护存储;以及
当所述公开密钥验证与所述第二应用相关联的所述第二签名失败时,阻止所述受限系统组件执行由所述第二系统调用指示的功能。
11.根据权利要求10所述的计算机实现的方法,其中,所述第二签名是使用私有密钥创建的,所述私有密钥不是与来自所述受保护存储的所述公开密钥相同的公开/私有密钥对的一部分。
12.根据权利要求1所述的计算机实现的方法,还包括:
在当所述公开密钥成功地验证与所述应用相关联的所述签名时许可所述受限系统组件执行由所述系统调用指示的功能之前,验证所述应用的名称在所述受保护存储中的独特软件包名称的列表上;
并且如果验证失败则阻止所述受限系统组件执行所述功能,或者如果验证成功则许可所述受限系统组件执行所述功能。
13.一种由数据处理装置执行的计算机实现的方法,所述方法包括:
生成包括公开和私有密钥的公开/私有密钥对,其中所述公开密钥验证使用所述私有密钥创建的签名;
生成包括使用所述私有密钥创建的所述签名的证书;
使用所述证书签署应用;
发送所述应用以安装在移动计算设备上;以及
发送所述公开密钥的副本以存储在所述移动计算设备的受保护存储中。
14.根据权利要求13所述的计算机实现的方法,其中,只有使用所述证书签署所述应用的一方具有修改所述移动计算设备的所述受保护存储的能力。
15.根据权利要求13所述的计算机实现的方法,还包括:
生成包括第二公开密钥和第二私有密钥的第二公开/私有密钥对,其中,所述第二公开密钥验证使用所述第二私有密钥创建的第二签名;
从所述移动计算设备的所述受保护存储中删除所述公开密钥;
从所述应用中移除所述证书;
生成包括所述第二签名的第二证书;
使用所述第二证书签署所述应用以生成更新的应用;
将所述更新的应用发送到所述移动计算设备以替换所述应用;以及
将所述第二公开密钥的副本发送到所述移动计算设备的所述受保护存储。
16.根据权利要求13所述的计算机实现的方法,其中,所述应用包括要求对所述移动计算设备的所述系统的受限系统组件的系统调用的至少一个功能。
17.根据权利要求13所述的计算机实现的方法,其中,所述应用不被发送到所述移动计算设备作为系统构建的一部分。
18.根据权利要求13所述的计算机实现的方法,其中,公开密钥被使用带外空中下载更新来发送到所述移动计算设备。
19.一种用于限制移动系统调用的计算机实现的系统,包括:
存储;
受保护存储,所述受保护存储包括公开密钥并且适配于从被授权修改所述受保护存储中的数据的一方的远程计算设备接收所述公开密钥;
应用,所述应用包括证书,所述证书包括签名,所述应用适配于对受限系统组件进行系统调用;以及
系统,所述系统包括至少一个受限系统组件,所述系统适配于从所述应用接收对所述至少一个受限系统组件的系统调用、使用所述公开密钥验证所述应用的所述证书的所述签名、并在所述签名被成功地验证时许可所述至少一个受限系统组件执行由所述系统调用指示的功能。
20.根据权利要求19所述的计算机实现的系统,其中,所述系统进一步适配于在所述签名的验证失败时阻止所述至少一个受限系统组件执行由所述系统调用指示的功能。
21.根据权利要求19所述的计算机实现的系统,其中,所述至少一个受限系统组件是受限API。
22.根据权利要求19所述的计算机实现的系统,其中,所述应用是从被授权修改所述受保护存储中的数据的所述一方的远程计算设备接收的。
23.根据权利要求19所述的计算机实现的系统,其中,所述应用的所述证书的所述签名是使用来自公开/私有密钥对的私有密钥创建的,并且其中,所述公开密钥来自相同的公开/私有密钥对。
24.根据权利要求19所述的计算机实现的系统,其中,所述受保护存储进一步适配于接收所述公开密钥作为来自所述远程计算设备的带外空中下载更新的一部分。
25.根据权利要求19所述的计算机实现的系统,其中,所述系统进一步适配于确定所述应用已被授予许可,以对所述至少一个受限系统组件进行所述系统调用。
26.根据权利要求19所述的计算机实现的系统,其中,所述系统调用指示修改所述存储中的设置、擦除所述存储、拨打紧急号码、或过滤SMS消息中的一个的功能。
27.一种系统,包括:一个或多个计算机和存储指令的一个或多个存储设备,所述指令在由所述一个或多个计算机执行时能够操作为使得所述一个或多个计算机执行操作,所述操作包括:
从应用接收对受限系统组件的系统调用;
确定所述应用具有对所述受限系统组件进行所述系统调用的许可;
使用来自受保护存储的公开密钥来验证与所述应用相关联的签名,其中,所述公开密钥由被授权修改所述受保护存储中的数据的一方的计算设备发送到所述受保护存储;以及
当所述公开密钥成功地验证与所述应用相关联的所述签名时,许可所述受限系统组件执行由所述系统调用所指示的功能。
CN201580034717.0A 2014-08-14 2015-08-07 使用受保护存储限制系统调用 Pending CN106663174A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/459,417 2014-08-14
US14/459,417 US20160048688A1 (en) 2014-08-14 2014-08-14 Restricting System Calls using Protected Storage
PCT/US2015/044221 WO2016025318A2 (en) 2014-08-14 2015-08-07 Restricting system calls using protected storage

Publications (1)

Publication Number Publication Date
CN106663174A true CN106663174A (zh) 2017-05-10

Family

ID=54007966

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201580034717.0A Pending CN106663174A (zh) 2014-08-14 2015-08-07 使用受保护存储限制系统调用

Country Status (4)

Country Link
US (1) US20160048688A1 (zh)
CN (1) CN106663174A (zh)
DE (1) DE112015003751T5 (zh)
WO (1) WO2016025318A2 (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107358089A (zh) * 2017-06-30 2017-11-17 北京小米移动软件有限公司 调用终端功能的方法及装置
CN111819537A (zh) * 2018-01-15 2020-10-23 西门子股份公司 在云计算平台上的工件的安全部署
TWI779437B (zh) * 2020-11-19 2022-10-01 瑞昱半導體股份有限公司 檔案讀取方法以及非暫態電腦可讀取紀錄媒體

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2831787B1 (en) * 2012-03-30 2020-07-08 Irdeto B.V. Method and system for preventing and detecting security threats
JP6696126B2 (ja) * 2015-08-05 2020-05-20 ソニー株式会社 制御装置、認証装置、制御システム、および制御方法
CN107203715B (zh) * 2016-03-18 2021-03-19 斑马智行网络(香港)有限公司 执行系统调用的方法及装置
EP3295350B1 (en) 2016-05-13 2018-07-11 Nchain Holdings Limited A method and system for verifying ownership of a digital asset using a distributed hash table and a peer-to-peer distributed ledger
US10650621B1 (en) 2016-09-13 2020-05-12 Iocurrents, Inc. Interfacing with a vehicular controller area network
US10498536B2 (en) * 2017-04-20 2019-12-03 Servicenow, Inc. System for permitting access to scoped applications
US10496555B2 (en) * 2017-05-11 2019-12-03 Red Hat, Inc. Implementing per-thread memory access permissions
WO2020004495A1 (ja) * 2018-06-26 2020-01-02 日本通信株式会社 オンラインサービス提供システム、アプリケーションプログラム
WO2020004486A1 (ja) * 2018-06-26 2020-01-02 日本通信株式会社 オンラインサービス提供システム、アプリケーションプログラム
US11503062B2 (en) * 2020-05-08 2022-11-15 Ebay Inc. Third-party application risk assessment in an authorization service
US11882526B2 (en) * 2020-05-18 2024-01-23 T-Mobile Usa, Inc. Adaptive mobile network operation
US11687675B1 (en) * 2022-09-08 2023-06-27 Pezo Tech Llc Method and system for improving coupling and cohesion of at least one educational program

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070074034A1 (en) * 2005-09-29 2007-03-29 Research In Motion Limited System and method for registering entities for code signing services
US20070113079A1 (en) * 2003-11-28 2007-05-17 Takayuki Ito Data processing apparatus
US20100088518A1 (en) * 2008-09-19 2010-04-08 Oberthur Technologies Method of exchanging data such as cryptographic keys between a data processing system and an electronic entity such as a microcircuit card

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1995016238A1 (en) * 1993-12-06 1995-06-15 Telequip Corporation Secure computer memory card
GB9523922D0 (en) * 1995-11-23 1996-01-24 At & T Global Inf Solution Method of authenticating an application program and a system therefor
US7350204B2 (en) * 2000-07-24 2008-03-25 Microsoft Corporation Policies for secure software execution
EP2306260B1 (en) * 2000-09-21 2014-02-26 BlackBerry Limited Software code signing system and method
WO2003058451A1 (en) * 2002-01-04 2003-07-17 Internet Security Systems, Inc. System and method for the managed security control of processes on a computer system
WO2006001524A1 (ja) * 2004-06-25 2006-01-05 Nec Corporation 移動端末、移動端末のリソースアクセス制御システムおよび移動端末におけるリソースアクセス制御方法
EP1950681A4 (en) * 2005-10-13 2012-04-04 Ntt Docomo Inc MOBILE DEVICE, ACCESS CONTROL MANAGEMENT AND ACCESS CONTROL MANAGEMENT PROCEDURES
US8045958B2 (en) * 2005-11-21 2011-10-25 Research In Motion Limited System and method for application program operation on a wireless device
WO2008014800A1 (en) * 2006-07-31 2008-02-07 Telecom Italia S.P.A. A system for implementing security on telecommunications terminals
US8775618B2 (en) * 2010-08-02 2014-07-08 Ebay Inc. Application platform with flexible permissioning
EP2787725A4 (en) * 2011-11-30 2015-07-01 Japan Broadcasting Corp RECEIVING DEVICE, PROGRAM AND RECEPTION PROCEDURES
US9313203B2 (en) * 2013-03-15 2016-04-12 Symantec Corporation Systems and methods for identifying a secure application when connecting to a network
US9280679B2 (en) * 2013-12-31 2016-03-08 Google Inc. Tiered application permissions
US9380054B2 (en) * 2014-04-18 2016-06-28 Cellco Partnership Application signing
US9462011B2 (en) * 2014-05-30 2016-10-04 Ca, Inc. Determining trustworthiness of API requests based on source computer applications' responses to attack messages

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070113079A1 (en) * 2003-11-28 2007-05-17 Takayuki Ito Data processing apparatus
US20070074034A1 (en) * 2005-09-29 2007-03-29 Research In Motion Limited System and method for registering entities for code signing services
US20100088518A1 (en) * 2008-09-19 2010-04-08 Oberthur Technologies Method of exchanging data such as cryptographic keys between a data processing system and an electronic entity such as a microcircuit card

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107358089A (zh) * 2017-06-30 2017-11-17 北京小米移动软件有限公司 调用终端功能的方法及装置
CN111819537A (zh) * 2018-01-15 2020-10-23 西门子股份公司 在云计算平台上的工件的安全部署
TWI779437B (zh) * 2020-11-19 2022-10-01 瑞昱半導體股份有限公司 檔案讀取方法以及非暫態電腦可讀取紀錄媒體

Also Published As

Publication number Publication date
DE112015003751T5 (de) 2017-05-11
US20160048688A1 (en) 2016-02-18
WO2016025318A3 (en) 2016-04-14
WO2016025318A2 (en) 2016-02-18

Similar Documents

Publication Publication Date Title
CN106663174A (zh) 使用受保护存储限制系统调用
US10447839B2 (en) Device locator disable authentication
CN103597494B (zh) 用于管理文档的数字使用权限的方法和设备
EP2765750B1 (en) Controlling application access to mobile device functions
US8984592B1 (en) Enablement of a trusted security zone authentication for remote mobile device management systems and methods
JP2020005310A (ja) 対象のコンピューティング装置で実施される動作を認証する方法
CN107077546B (zh) 用于更新持有因素凭据的系统和方法
EP2736214B1 (en) Controlling application access to mobile device functions
US20140007215A1 (en) Mobile applications platform
US11601415B2 (en) Apparatus and method for a managed open source medical device
CN107292176A (zh) 用于访问计算设备的可信平台模块的方法和系统
CN105279423A (zh) 一种密码管理方法及装置
CN115022091A (zh) 一种基于数字证书的自主授权方法和系统
CN105812370B (zh) 智能卡处理方法、装置及系统
CN106537873A (zh) 建立针对虚拟化和管理的安全计算设备
CN102130907B (zh) 开发者电话注册
CN109359450A (zh) Linux系统的安全访问方法、装置、设备和存储介质
CN106295267A (zh) 一种访问电子设备的物理内存中私密数据的方法和装置
CN103052060A (zh) 一种提高移动终端信息安全的方法及一种移动终端
KR20210015757A (ko) 보안 데이터 처리
WO2018017019A1 (en) Personal security device and method
US10021565B2 (en) Integrated full and partial shutdown application programming interface
WO2022024431A1 (ja) Sim、通信装置、及びアプリケーション書き込み方法
KR102498688B1 (ko) 인증 서비스 제공 방법 및 시스템
CN114969808B (zh) 一种账号的管理方法、装置、电子设备及存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20170510

WD01 Invention patent application deemed withdrawn after publication