CN115943376A - 认证界面元素交互 - Google Patents
认证界面元素交互 Download PDFInfo
- Publication number
- CN115943376A CN115943376A CN202180043382.4A CN202180043382A CN115943376A CN 115943376 A CN115943376 A CN 115943376A CN 202180043382 A CN202180043382 A CN 202180043382A CN 115943376 A CN115943376 A CN 115943376A
- Authority
- CN
- China
- Prior art keywords
- component
- electronic device
- authentication token
- application
- data
- 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
Links
- 230000003993 interaction Effects 0.000 title claims description 27
- 230000006870 function Effects 0.000 claims abstract description 100
- 238000000034 method Methods 0.000 claims description 134
- 230000008569 process Effects 0.000 claims description 69
- 230000015654 memory Effects 0.000 claims description 67
- 230000004044 response Effects 0.000 claims description 40
- 238000012545 processing Methods 0.000 claims description 35
- 239000000463 material Substances 0.000 claims description 17
- 230000000977 initiatory effect Effects 0.000 claims description 8
- 238000006073 displacement reaction Methods 0.000 abstract 1
- 239000008186 active pharmaceutical agent Substances 0.000 description 99
- 238000004891 communication Methods 0.000 description 20
- 238000012795 verification Methods 0.000 description 18
- 238000013475 authorization Methods 0.000 description 9
- 230000007246 mechanism Effects 0.000 description 9
- 238000010586 diagram Methods 0.000 description 8
- 230000002093 peripheral effect Effects 0.000 description 7
- 238000005516 engineering process Methods 0.000 description 6
- 238000005259 measurement Methods 0.000 description 6
- 230000009471 action Effects 0.000 description 5
- 230000036541 health Effects 0.000 description 5
- 230000033001 locomotion Effects 0.000 description 5
- 230000003287 optical effect Effects 0.000 description 5
- 238000004458 analytical method Methods 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 3
- 230000001404 mediated effect Effects 0.000 description 3
- 238000009877 rendering Methods 0.000 description 3
- 230000001960 triggered effect Effects 0.000 description 3
- SPBWHPXCWJLQRU-FITJORAGSA-N 4-amino-8-[(2r,3r,4s,5r)-3,4-dihydroxy-5-(hydroxymethyl)oxolan-2-yl]-5-oxopyrido[2,3-d]pyrimidine-6-carboxamide Chemical compound C12=NC=NC(N)=C2C(=O)C(C(=O)N)=CN1[C@@H]1O[C@H](CO)[C@@H](O)[C@H]1O SPBWHPXCWJLQRU-FITJORAGSA-N 0.000 description 2
- 102100021677 Baculoviral IAP repeat-containing protein 2 Human genes 0.000 description 2
- 101000896157 Homo sapiens Baculoviral IAP repeat-containing protein 2 Proteins 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 230000001413 cellular effect Effects 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 238000013503 de-identification Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000007774 longterm Effects 0.000 description 2
- 238000007726 management method Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 238000010200 validation analysis Methods 0.000 description 2
- 230000004931 aggregating effect Effects 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 235000014510 cooky Nutrition 0.000 description 1
- 238000001816 cooling Methods 0.000 description 1
- 238000013480 data collection Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 229940079593 drug Drugs 0.000 description 1
- 239000003814 drug Substances 0.000 description 1
- 230000007613 environmental effect Effects 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 230000001815 facial effect Effects 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 229910044991 metal oxide Inorganic materials 0.000 description 1
- 150000004706 metal oxides Chemical class 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 230000000644 propagated effect Effects 0.000 description 1
- 230000010076 replication Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000010897 surface acoustic wave method Methods 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 210000003813 thumb Anatomy 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/10—Network architectures or network communication protocols for network security for controlling access to devices or network resources
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/08—Network architectures or network communication protocols for network security for authentication of entities
- H04L63/0807—Network architectures or network communication protocols for network security for authentication of entities using tickets, e.g. Kerberos
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/10—Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/08—Network architectures or network communication protocols for network security for authentication of entities
- H04L63/083—Network architectures or network communication protocols for network security for authentication of entities using passwords
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/08—Network architectures or network communication protocols for network security for authentication of entities
- H04L63/0853—Network architectures or network communication protocols for network security for authentication of entities using an additional device, e.g. smartcard, SIM or a different communication terminal
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W12/00—Security arrangements; Authentication; Protecting privacy or anonymity
- H04W12/06—Authentication
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W12/00—Security arrangements; Authentication; Protecting privacy or anonymity
- H04W12/08—Access security
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2463/00—Additional details relating to network architectures or network communication protocols for network security covered by H04L63/00
- H04L2463/121—Timestamp
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Computing Systems (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Multimedia (AREA)
- Technology Law (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- User Interface Of Digital Computer (AREA)
Abstract
提供一种用于防止暗中准予对电子设备上的隐私相关功能的访问的访问控制系统。准予对设备功能的访问的基于软件的事件可通过确认该软件事件与硬件输入事件相对应来校验。该校验防止可用于欺诈地准予对特定功能的访问的用户界面输入的顶替。
Description
交叉引用
本申请要求2020年6月19日提交的美国临时申请第63/041,797号的优先权,该申请的全部内容以引用方式并入本文。
技术领域
本公开整体涉及移动电子设备。更具体地,本公开涉及用于经由与在移动电子设备的用户界面上呈现的用户界面元素的认证交互启用对受保护功能的访问的系统和相关联方法。
背景技术
可对应用程序访问由电子设备提供的某些功能的能力施加限制。受限功能可包括对用户的隐私相关数据的访问或者移动设备的可用于采集私人用户数据的功能。电子设备的操作系统可包括管理对隐私相关功能施加的限制的隐私控制。此类隐私控制可用于启用或禁用对由电子设备提供的功能的访问。一般来讲,隐私控制系统被配置为将访问仅限制到由电子设备的用户明确准予的隐私相关功能。
发明内容
本文描述了一种用于防止暗中准予对电子设备上的隐私相关功能的访问的访问控制系统。准予对设备功能的访问的基于软件的事件可通过确认该软件事件与硬件输入事件相对应来校验。该校验防止可用于欺诈地准予对特定功能的访问的用户界面输入的欺骗。
一个实施方案提供了一种方法,包括:经由电子设备的显示器显示对应于在电子设备的一个或多个处理器上执行的进程的功能的用户界面元素;以及接收与用户界面元素的交互的指示。该方法还包括:响应于接收到该指示并且根据该指示对应于硬件输入事件的确定,由电子设备的第一部件向电子设备的第二部件发送认证令牌;由第二部件验证认证令牌有效;以及在验证认证令牌有效之后,发起功能的执行。
一个实施方案提供了一种存储指令的非暂态机器可读介质,这些指令当由一个或多个处理器执行时使一个或多个处理器执行包括如本文所述的方法的操作。
一个实施方案提供了一种电子设备上的数据处理系统,该系统包括显示器、存储器设备以及与存储器设备和显示器耦接的一个或多个处理器。该一个或多个处理器被配置为执行存储在该存储器设备中的指令。这些指令使一个或多个处理器执行如本文所述的方法的操作。
通过附图以及通过以下具体实施方式,本发明实施方案的其他特征将显而易见。
附图说明
本公开的实施方案以举例的方式而不是以限制的方式在各个附图的图示中进行说明,在附图中类似的附图标号是指类似的元件,并且在附图中:
图1示出了用于计算设备的隐私敏感数据和硬件的访问控制系统;
图2A至图2B示出了用于实现针对电子设备上的选择功能的认证界面交互的系统;
图3示出了包括电子设备的系统,在该电子设备中显示访问控制提示以启用对由电子设备提供的功能的访问;
图4示出了一种系统,在该系统中电子设备验证用于选择在由电子设备执行的应用程序内显示的广告的输入;
图5示出了一种系统,在该系统中电子设备验证用于粘贴来自电子设备的粘贴板存储器的数据的输入;
图6示出了执行与所验证的UI元素的认证界面元素交互的方法;
图7示出了绘制所验证的界面元素的方法;
图8A至图8C示出了使用所验证的UI元素来管理对由电子设备的进程提供的功能的访问的方法;
图9示出了用于门控对所验证的UI元素背后的设备功能的访问并且当此种功能被访问时促进向用户提供通知的系统;
图10示出了显示与在应用程序之间执行的粘贴操作相关联的透明度通知的系统;
图11示出了显示用于在不同应用程序之间执行的粘贴操作的透明度通知的方法;
图12示出了一种系统,在该系统中应用程序可基于粘贴板内的数据模式来呈现不同粘贴选项;
图13示出了将所检测到的模式类型返回给请求应用程序的方法;
图14示出了基于用户输入校验的安全粘贴板访问的系统;
图15是示出了可用于一些实施方案中的示例性API架构的框图;
图16A至图16B是根据实施方案的示例性API软件栈的框图;
图17是根据实施方案的用于移动或嵌入式设备的设备架构的框图;并且
图18是根据实施方案的计算系统的框图。
具体实施方式
在本说明书中对“一个实施方案”或“实施方案”的引用是指结合该实施方案描述的特定特征、结构或特性可以被包括在本发明的至少一个实施方案中。在本说明书中的各个位置出现短语“在一个实施方案中”不一定都是指同一个实施方案。随后的附图中描绘的过程由处理逻辑执行,该处理逻辑包括硬件(例如,电路、专用逻辑)、软件(作为非暂态机器可读存储介质上的指令),或硬件和软件的组合。现在将详细地参考各种实施方案,这些实施方案的示例在附图中示出。在下面的详细描述中给出了许多具体细节,以便提供对本发明的彻底理解。但是,对本领域技术人员将显而易见的是,本发明可在没有这些具体细节的情况下被实施。在其他情况下,没有详细地描述众所周知的方法、过程、部件、电路和网络,从而不会不必要地使实施方案的各个方面晦涩难懂。
还将理解的是,虽然术语“第一”、“第二”等可能在本文中用于描述各种元素,但是这些元素不应当被这些术语限定。这些术语只是用于将一个元件与另一元件区分开。例如,第一接触可被命名为第二接触,并且类似地,第二接触可被命名为第一接触,而不脱离本发明的范围。第一接触和第二接触两者都是接触,但是它们不是同一接触。
在本文中对本发明的描述中所使用的术语只是为了描述特定实施方案,而并非旨在作为对本发明的限制。如本发明说明书和所附权利要求中所使用的那样,单数形式的“一个”(“a”、“an”)和“该”旨在也涵盖复数形式,除非上下文清楚地另有指示。还将理解的是,本文中所使用的术语“和/或”是指并且涵盖相关联地列出的项目中的一个或多个项目的任何和全部可能的组合。还将理解的是,术语“包括”(“comprises”和/或“comprising”)在本说明书中使用时是指定存在所陈述的特征、整数、步骤、操作、元件和/或部件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、部件,和/或其分组。
如本文中所用,根据上下文,术语“如果”可以被解释为意思是“当...时”或“在...时”或“响应于确定”或“响应于检测到”。类似地,根据上下文,短语“如果确定...”或“如果检测到[所陈述的条件或事件]”可被解释为是指“在确定...时”或“响应于确定...”或“在检测到[所陈述的条件或事件]时”或“响应于检测到[所陈述的条件或事件]”。
描述了计算设备、用于此类设备的用户界面、和用于使用此类设备的相关联的过程的实施方案。在一些实施方案中,计算设备是还包含其他功能(诸如PDA和/或音乐播放器功能)的便携式通信设备,诸如移动电话。便携式多功能设备的示例性实施方案包括但不限于来自Apple Computer,Inc.(Cupertino,California)的和iPod设备。
在一个实施方案中,通过确认软件事件响应于经由硬件输入设备接收的硬件输入事件而发生来校验用于准予对设备功能的访问的软件事件,该硬件输入设备诸如但不限于触摸屏界面、触控板界面、硬件鼠标或硬件键盘。该校验防止用户界面输入的基于软件的欺骗,该基于软件的欺骗可用于通过门控对特定功能的访问来欺诈地准予对此种功能的访问,除非从电子设备的用户接收到硬件输入事件。应用程序或操作系统守护进程可将用户界面(UI)元素或热键事件指定为需要所校验输入。应用程序或操作系统守护进程可通过向操作系统的提供传入硬件事件的指示的源守护进程注册UI元素或热键事件来指定UI元素或热键事件。在一个实施方案中,UI元素或热键事件的注册可包括密码材料诸如共享秘密的交换。指示对UI元素的选择或热键输入的组合的软件事件可提供基于共享秘密生成的认证令牌。认证令牌可被验证以校验输入事件。在其他实施方案中,可使用其他注册和/或校验技术。
认证界面元素交互使用如由本文所述的各种实施方案提供的各种认证技术针对各种功能来描述。在一个实施方案中,经由认证用户界面交互来门控对电子设备上的位置服务的访问。在一个实施方案中,经由认证用户界面交互来门控广告点击的属性数据。在一个实施方案中,经由认证用户界面交互来门控对粘贴板存储器的访问。可从各种输入设备接收认证用户交互。例如,认证用户交互可以是经由触摸屏界面接收的硬件触摸事件。认证用户交互还可以是从物理键盘接收的热键事件。认证用户交互还可以是经由触控板或鼠标外围设备接收的点击事件。也可支持其他类型的物理输入交互。
图1示出了根据实施方案的其中对应用程序施加访问限制的系统100。系统100包括可由应用程序103访问的用户数据110和系统资源120。在一个实施方案中,对隐私敏感用户数据110和系统资源120的访问由访问控制模块117调解。隐私敏感的用户数据110可被分组成不同分类,包括但不限于联系人111、日历数据112、提醒113、照片库114和消息116,其中这些消息可包括文本(例如,SMS)消息、电子邮件消息和/或经由即时消息传送应用程序的即时消息。隐私敏感的系统资源120包括但不限于粘贴板121、相机/麦克风123、位置服务125和其他资源127,这些其他资源可包括软件资源、硬件资源或它们的组合。对用户数据110的访问可在每个分类等级上调解。对系统资源120的访问可在每个资源等级上调解。系统100可保护各种附加类型的隐私敏感信息作为用户数据110的分类或其他类型的隐私敏感系统资源120,包括但不限于消息历史、网络浏览器数据(例如,浏览器历史、cookie数据等)、系统备份数据、以及可由系统100存储的任何类型的位置历史数据。
在一个实施方案中,访问控制模块117是系统守护进程,应用程序103可经由系统调用API 118诸如进程间通信(IPC)调用与该系统守护进程通信。该应用程序包括用于向访问控制模块117标识应用程序的标识符104。在一个实施方案中,标识符104是通用唯一标识符。在一个实施方案中,标识符104对于每个系统是唯一的。在一个实施方案中,标识符104对于每个用户是唯一的。
应用程序103可被提供默认对有限资源集的访问。该默认访问可以是基于策略的访问(例如,策略访问132),该基于策略的访问基于应用程序的标准功能而向应用程序103准予。例如,如果应用程序103是相机应用程序,则可基于与应用程序103相关联的策略来赋予应用程序103对相机/麦克风123和照片库114的策略访问132。系统100可被配置为默认不允许对隐私敏感系统资源的访问,除了向应用程序103准予策略访问132的那些资源之外。在一个实施方案中,在向应用程序103准予对策略之外的用户数据110或系统资源120的访问之前,访问控制模块117可触发图形界面提示,通过该图形界面提示系统的用户可明确准予或拒绝对用户数据110的分类或系统资源120的访问。例如,在应用程序103可访问用户的联系人111之前,应用程序103通过对访问控制模块117的系统调用API 118执行调用以明确请求对联系人111的访问134。然后,用户可准予或拒绝对联系人111的访问。
在准予对选择功能的访问之前对应用程序的明确授权
明确授权系统可用于门控对应用程序的选择隐私相关功能的访问。授权提示可在向应用程序准予对隐私相关资源的访问之前显示。授权提示还可响应于应用程序访问隐私相关资源的尝试而自动显示。
图2A至图2B示出了用于实现针对电子设备上的选择功能的认证界面交互的系统。图2A示出了用于实现认证界面交互的系统200。图2B示出了用于认证界面交互的API进程250。
如图2A所示,系统200可包括应用程序103和验证器守护进程214。系统200还包括源守护进程204和输入设备202。应用程序103可经由系统调用API 118或另一机制与验证器守护进程214通信以实现计算设备上的操作环境的进程之间的通信。源守护进程204和验证器守护进程214可以是与电子设备的操作系统相关联的进程。源守护进程204可以是被配置为报告来自输入设备的硬件输入事件的发生的进程。源守护进程204还可报告来自传感器设备(包括但不限于加速度计)的事件。在一个实施方案中,验证器守护进程214是被配置为门控或控制对特定设备功能的访问的进程。在一个实施方案中,验证器守护进程214是电子设备的操作系统的窗口管理器或用户界面框架的部件。在一个实施方案中,应用程序103可向验证器守护进程214指示显示针对其启用了所验证的硬件输入的所验证的UI元素220。在一个实施方案中,应用程序103可显示所验证的UI元素220并且直接执行对在所验证的UI元素220处接收到的硬件输入的验证。在各种实施方案中,应用程序103或验证器守护进程214可执行注册操作222以向源守护进程204注册所验证的UI元素220。源守护进程204是系统的被配置为接收与输入设备202相对应的硬件输入事件的软件部件。输入设备202是硬件输入设备,诸如物理键盘、触摸输入设备和/或指针设备。
注册操作222向源守护进程204注册所验证的UI元素220。注册操作222可经由多种机制来指定所验证的UI元素220,这些机制可基于电子设备上保持在适当位置的UI、组成或窗口化界面而变化。在一个实施方案中,注册操作222指定标识被呈现以供显示的各种UI元素当中的所验证的UI元素220的标识符。在一个实施方案中,可在注册操作222期间提供用于所验证的UI元素220的边界框。边界框可以是屏幕空间边界框或包含所验证的UI元素220的表面的边界框。当源守护进程204从输入设备202接收硬件事件以选择所验证的UI元素220时,认证通知224可被发射到验证器守护进程214或应用程序103中的一者或多者。在一个实施方案中,验证器守护进程214接收认证通知224,执行验证操作以对认证通知224进行认证,并且向应用程序103通知认证通知224或接收到该认证通知。在一个实施方案中,应用程序103接收认证通知224并且将认证通知224的至少一部分发射到验证器守护进程214以供验证。验证器守护进程214然后可用验证结果来答复应用程序103。在一个实施方案中,应用程序103执行验证器守护进程214的功能或者包括与验证器守护进程214的逻辑等效的逻辑。在此种实施方案中,应用程序103可直接验证认证通知224的真实性。
在一个实施方案中,代替所验证的UI元素220,执行注册操作222以注册可经由附接到系统200的硬件键盘接收的所验证热键。所验证热键可以是用于执行受保护操作的键盘热键,诸如使应用程序103尝试访问被指定为系统200的粘贴板或剪贴板的存储器缓冲区的粘贴操作。粘贴板或剪贴板是用于存储与在应用程序内或在应用程序之间执行的复制和粘贴操作相关联的数据的存储器缓冲区。在一些配置中,当访问由不同应用程序插入存储器中的数据时,在向应用程序103提供对粘贴板或剪贴板存储器的访问之前,系统200期望硬件输入事件的认证通知224,如下文进一步详细描述的。
认证通知224可由验证器守护进程214和/或应用程序103使用多种技术来验证和/或认证。在一个实施方案中,认证通知224包括认证令牌。认证令牌可基于在注册操作222期间提供或建立的共享秘密来生成。验证器守护进程214和/或应用程序103可验证认证令牌以验证认证通知224。在一个实施方案中,源守护进程204是系统200的可信部件。源守护进程204可以是由系统200的供应商签名的软件模块。签名可基于源守护进程204的源代码来生成,以使得能够验证提供商和源守护进程204的完整性。系统200可在将源守护进程204加载到存储器中之前验证源守护进程204的签名。验证器守护进程214和/或应用程序103还可验证源守护进程204的签名作为用于认证通知224的认证和验证进程的一部分。操作系统可被配置成使得某些系统事件可仅由系统的可信部件触发。
用于认证界面交互的API进程250在图2B中示出。图2B所示的API进程250是一个实施方案的示例,并且本文所述的其他实施方案可提供附加或另选的API进程。API进程250可由应用程序103、UI模块212、验证器守护进程214和源守护进程204来实现。以上详细描述了应用程序103、验证器守护进程214和源守护进程204。UI模块212是操作系统的代表应用程序103执行或促进UI操作的部件。UI模块212可包括UI客户端框架和/或窗口管理框架的部件。
验证器守护进程214和源守护进程204可执行一组操作255以建立安全信道。安全信道然后可用于执行操作260以建立共享秘密。该共享秘密可形成用于校验对所验证的UI元素的输入的认证令牌的基础。应用程序103可执行绘制操作261以绘制应用程序UI。绘制操作261可包括在被执行以绘制应用程序的UI元素的一系列操作中。在一个实施方案中,当应用程序103执行绘制操作262以绘制将经受验证输入的UI元素时。UI模块212可执行操作264以请求验证器守护进程214绘制将被注册为如图2A中的所验证的UI元素220的UI元素。另选地,应用程序103可直接请求验证器守护进程214绘制UI元素。验证器守护进程214可执行操作265以向源守护进程204注册UI元素作为所验证的UI元素。UI注册操作265用于标识在其中将绘制所验证的UI元素的区域。在一个实施方案中,UI注册操作265还可用于在验证器守护进程214和源守护进程204之间建立共享秘密或交换密码材料。在所示的实施方案中,在绘制操作262期间由应用程序103指定在其中将绘制UI元素的区域。验证器守护进程214然后可直接地或者使用对UI模块212的请求266在所请求位置处绘制UI元素。另选地,在UI元素与由操作系统呈现的提示相关联的情况下,操作系统部件可代替应用程序103。
在安全UI元素的准备之后,源守护进程204可在操作270期间检测来自输入设备(例如,触摸屏、触控板、鼠标)的输入。源守护进程204可执行操作271以检测该输入是否与对所注册的UI元素的输入相对应。操作271可包括将与输入事件相关联的细节与在操作265中执行的注册期间的针对UI元素指定的细节(例如,UI标识符或坐标)进行比较。如果所检测到的输入与对所注册的UI元素的输入相对应,则源守护进程204可执行操作274以向应用程序103发送消息和授权令牌。应用程序103然后可执行操作276以向验证器守护进程214发送数据请求和授权令牌。验证器守护进程214可执行操作278以验证授权令牌。如果授权令牌是合法的,则验证器守护进程214可执行操作280以将数据返回到被授权以便经由对所注册的UI元素的输入返回的应用程序103。
类似的操作可通过经由物理键盘的热键输入来执行。当物理键盘在使用中时,源守护进程204可响应于检测到在键盘处输入的所注册热键而生成认证令牌。该认证令牌可由应用程序使用以启用对粘贴板的认证访问。当物理键盘在使用中时,验证器守护进程214可不必负责绘制UI元素。
图3示出了包括电子设备322的系统300,在该电子设备中显示访问控制提示324以启用对由电子设备322提供的功能的访问。电子设备322可以是移动计算设备,诸如膝上型计算设备或平板计算设备。电子设备322还可以是台式计算机设备。系统300所示的技术也可应用于智能电话设备。
系统300被示出为显示使得应用程序能够访问电子设备322的位置服务功能的提示。当应用程序请求对电子设备322上的隐私敏感数据或硬件的访问时,也可显示类似的提示。例如,当应用程序首次尝试访问电子设备322的硬件资源诸如相机或麦克风时,可在电子设备322的显示器321上呈现类似于访问控制提示324的提示。当应用程序尝试访问隐私敏感数据诸如用户联系人、照片或粘贴板存储器时,也可呈现类似的提示。访问控制提示324可包括使得用户能够阻止(“不允许”)对功能的访问的第一界面元素325。可呈现第二界面元素326以允许(“同意”)应用程序访问功能。在一个实施方案中,一旦向应用程序准予对所提示功能的访问,该应用程序就可继续访问该功能持续有限时间段或除非该访问在电子设备322的权限设置内被撤销。
访问控制提示324可通过将第二界面元素326注册为如图2A中的所验证的UI元素220来被配置为所验证的访问控制提示。对访问控制提示324的第二界面元素326的注册和输入处理可根据如图2B中的API进程250来执行。对于位置服务功能,电子设备322的操作系统的充当验证器守护进程214的部件可向源守护进程204注册第二界面元素326。源守护进程204可以是操作系统的被指派处理硬件输入事件并且响应于这些硬件输入事件而触发软件事件的部件。在一个实施方案中,注册可包括由源守护进程204使用以生成认证令牌的密码材料的交换。该认证令牌可与通知验证器守护进程214在所注册的UI元素(例如,第二界面元素326)处已经接收到输入的软件事件一起发射。认证令牌由验证器守护进程214使用以确保软件事件尚未被在电子设备322上执行的恶意逻辑欺骗。如果认证令牌未与软件事件一起发送或者无效令牌被发射,则将不提供或启用对与所验证的访问提示相关联的功能的访问。
图4示出了一种系统300,在该系统中电子设备322验证用于选择在由电子设备322执行的应用程序内显示的广告的输入。电子设备322可执行具有在电子设备322的显示器321上显示的用户界面421的应用程序422。应用程序422可以是可周期性地在用户界面421上显示包括广告426的UI元素425的至少部分地支持广告的应用程序。响应于接收到用于选择显示广告426的UI元素425的输入(例如,触摸、点击),电子设备322的操作系统可启动或移动到前台浏览器应用程序并且加载与广告426相关联的统一资源定位符(URL)。在一个实施方案中,与操作系统的应用商店框架相关联的逻辑可响应于对广告426的选择而被调用,并且提供与广告相关联的URL。所提供URL可以是到应用商店的应用商店页面的链接或网络(例如,互联网)上的网站,其中用户可购买和/或下载由广告426广告的软件程序。除了提供URL之外,应用商店框架还可与URL一起提供标识显示由用户选择的广告426的应用程序422的属性数据。属性数据可与响应于对广告426的选择而打开的URL一起提供。属性数据还可或另选地由应用商店框架内部地记录。属性数据可跨广告活动聚集。所聚集度量然后可并入用于广告活动的广告度量中。用于广告活动的广告度量可被提供给已约定运行广告426的广告服务的客户端。
在一个实施方案中,为了防止电子设备上的恶意软件产生错误的属性数据,所选择广告的属性数据的生成和传输在如图2A中的所验证的UI元素220背后被门控。对显示广告426的UI元素425的注册和输入处理可根据如图2B中的API进程250来执行。例如,应用程序422可将呈现广告426的UI元素425注册为所验证的UI元素。电子设备322的操作系统的部件还可代表应用程序422注册UI元素。一旦被注册为所验证的UI元素,指示广告在用户界面上已被选择的软件事件将不会导致属性数据的传输,除非该软件事件与在电子设备处接收的硬件输入事件相对应。当报告输入的发生的软件事件被确定为与硬件输入事件相对应时,属性数据可与所提供URL一起发射和/或由应用商店框架记录。
图5示出了一种系统500,在该系统中电子设备512验证用于粘贴来自电子设备512的粘贴板存储器的数据的输入。电子设备512可以是手持式电子设备,诸如智能电话。针对电子设备512描述的技术也适用于本文所述的其他类型的电子设备,诸如工作台计算设备、膝上型计算设备或台式计算设备。电子设备512可呈现应用程序的用户界面513。用户界面513可使得用户能够输入使显示界面元素514的输入姿势,该界面元素可用于粘贴存储在粘贴板中的数据。数据可经由复制动作来插入粘贴板中。复制动作可由具有用户界面513的应用程序执行,或者从电子设备512上的不同应用程序执行。该数据还可已经由与电子设备512具有共享粘贴板的不同设备上的应用程序插入粘贴板中。例如,共享公共云服务账户的多个设备可具有共享粘贴板。共享粘贴板可复制和粘贴要在多个设备之间执行的操作。
为了防止在电子设备512上执行的应用程序恶意访问粘贴板存储器,界面元素514可被配置为如图2A中的所验证的UI元素220。对界面元素514的注册和输入处理可根据图2B的API进程250以与图3的第二界面元素326和图4的UI元素425类似的方式来执行。显示用户界面513的应用程序可注册界面元素514,或者界面元素514可由电子设备512的操作系统的部件代表该应用程序注册。例如,粘贴板管理器或UI部件可向电子设备512的操作系统的输入处理部件注册界面元素514,并且验证提供对界面元素514的选择的通知的软件事件与经由电子设备512的输入设备接收的硬件输入事件相对应。
图6示出了执行与所验证的UI元素220的认证界面元素交互的方法600。根据方法600,电子设备上的逻辑可执行操作以接收与输入设备相关联的硬件事件(602)。硬件事件可由电子设备的操作系统的部件从输入设备接收,该部件被配置为作为如图2A中的源守护进程204来操作。电子设备的逻辑可处理硬件事件以确定硬件事件是否是与被注册为所验证的UI元素的用户界面元素的交互的指示。
逻辑可确定硬件事件与对所验证的界面元素的输入相关联,该所验证的界面元素被配置为启用对由电子设备提供的受限功能的访问(604)。受限功能可以是由在电子设备的一个或多个处理器上执行的进程提供的功能。安全界面元素可以是与由该进程提供的功能相对应的所验证的UI元素。该确定可通过将与硬件输入相关联的数据与所验证的UI元素的注册数据进行比较来执行。注册数据可指定标识被呈现以供电子设备显示的各种UI元素当中的所验证的UI元素220的标识符。注册数据可附加地或另选地指定与所验证的UI元素相关联的窗口坐标或屏幕坐标。当硬件输入事件被确定为在所验证的UI元素的指定坐标内或被确定为与所验证的UI元素的UI标识符相对应时,可确定对所验证的UI元素的选择。
逻辑然后可生成认证令牌以启用对受限功能的认证访问(606)。认证令牌可基于在所验证的UI元素的注册期间生成或交换的共享秘密或其他密码材料来生成。在一个实施方案中,共享秘密或其他密码材料通过在电子设备的操作系统的验证器守护进程和源守护进程之间建立的加密通信信道来交换。在一个实施方案中,应用程序可充当验证器,并且还可参与共享秘密或其他密码材料的创建或管理。认证令牌可在接收到硬件事件之前生成,或者一旦已经确定该硬件事件与所验证的UI元素相对应就创建。在一个实施方案中,时间戳可作为输入被提供给认证令牌生成进程并且与认证令牌一起发送。时间戳可以是例如与从输入设备接收的硬件事件相关联的时间戳。时间戳可由验证器在输入的验证期间使用。
逻辑然后可触发软件事件以报告硬件事件的发生并且经由该软件事件发射认证令牌(608)。软件事件可以是由操作系统的事件系统提供以向软件通知与由用户界面显示的UI元素相对应的输入事件的事件。在一个实施方案中,认证令牌是用于验证软件事件的真实性的机制。由在电子设备上执行的软件生成的欺诈软件事件将不与硬件事件相对应。此种欺诈软件事件将不包含认证令牌或者包含可验证不正确的软件令牌。在使用其他验证机制的情况下,欺诈软件事件也将缺少指定的验证机制(例如,签名等)或者包括不正确的验证机制。软件事件可通过事件系统传播,并且由要作用于软件事件的应用程序或其他软件部件接收。应用程序或其他部件然后可发送访问受限功能的请求。
逻辑然后可接收访问受限功能的请求,其中该请求包括认证令牌(610)。如果认证令牌有效(“是”612),则逻辑可提供存储在存储器缓冲区中的数据(614)。如果认证令牌无效(“否”612),则逻辑可拒绝对存储在存储器缓冲区中的数据的访问(616)。确定认证令牌的有效性可通过使用共享秘密或其他密码材料生成新的认证令牌并且将新的认证令牌与所接收令牌进行比较来执行。新的认证令牌的生成可使用在访问受限功能的请求中与认证令牌一起接收的时间戳来执行。
图7示出了绘制所验证的界面元素的方法700。方法700可由如本文所述的电子设备的软件和硬件逻辑执行。根据方法700,电子设备上的逻辑可在验证器守护进程处接收提供启用对受限操作的访问的所验证的界面元素的请求(702)。逻辑然后可向源守护进程发送通知以标识将包含所验证的界面元素的UI区域(704)。该通知可经由多种技术(包括经由UI标识符或经由UI、窗口或屏幕空间坐标)来指定所验证的界面元素。逻辑然后可在请求应用程序的UI中绘制所验证的界面元素(706)。电子设备的逻辑然后可被配置为响应于用于选择所验证的界面元素的硬件输入事件而触发包括验证数据的软件事件(708)。验证数据可以是认证令牌、认证令牌和时间戳、包括有软件事件的签名、与软件事件的生成器相关联的签名或另一验证机制。
图8A至图8C示出了使用所验证的UI元素来管理对由电子设备的进程提供的功能的访问的方法800、820、830。图8A示出了用于实现对位置服务功能的访问提示门控的方法800。图8B示出了用于实现对广告属性功能的访问提示门控的方法820。图8C示出了用于实现对粘贴板功能的访问提示门控的方法830。方法800、820、830可由本文所述的电子设备中的任一者使用上文针对相应受限功能所述的技术来执行。
图8A的方法800包括供电子设备的逻辑从应用程序接收访问电子设备的位置服务功能的请求(802)。逻辑可确定是否向应用程序准予位置服务访问(804)。如果例如基于针对应用程序呈现的先前访问提示向应用程序准予位置服务访问(“是”804),则逻辑可允许应用程序访问位置服务(806)。如果尚未向应用程序准予位置服务访问(“否”804),则逻辑然后可显示所验证的UI元素以提示对位置服务功能的访问(808)。然后可响应于对启用对位置服务功能的访问的所验证的UI元素的选择而提供对该功能的访问。启用对位置服务功能的访问使得应用程序能够获得对电子设备的位置数据的访问,该位置数据包括电子设备的所确定的当前位置或电子设备的位置历史数据。
图8B的方法820包括供电子设备的逻辑接收输入事件以选择在应用程序的用户界面内呈现的广告(822)。逻辑可确定输入事件是所认证的输入事件(824),使得使用本文所述的技术将输入事件验证为与实际硬件输入事件相关联。如果输入与所认证的输入事件相对应(“是”824),则逻辑可将与广告相关联的URL连同指示显示广告的应用程序的属性数据一起发射到浏览器(826)。如果输入不与所认证的输入事件相对应(“否”824),则逻辑将仅将与广告相关联的URL发射到浏览器(828)。
图8C的方法830包括供与电子设备相关联的逻辑在粘贴板守护进程处从应用程序接收访问与粘贴板相关联的存储器的请求(832)。在该情况下,粘贴板守护进程可充当用于对用于门控对粘贴板存储器的访问的所验证的UI元素的输入的验证器(例如,如图2A中的验证器守护进程214)。另选地,其他UI系统或窗口管理器守护程序可充当用于对所验证的UI元素的输入的验证器。逻辑可确定计算设备的访问控制系统是否向该应用程序准予粘贴板访问(834)。如果先前已经准予访问(“是”,834),则逻辑可允许对与粘贴板相关联的存储器的访问(836)。如果先前尚未准予访问(“否”,834),则逻辑可确定请求是同步请求还是异步请求(838)。对于同步请求,应用程序可从粘贴板守护进程请求粘贴板数据,并且等待该请求以返回粘贴板数据。对于异步请求,应用程序可向粘贴板发送请求并且继续进行其他操作。粘贴板守护进程然后可利用粘贴板数据来异步地响应请求。在请求是同步请求(即,不是异步请求)的情况下,则粘贴板逻辑可返回空值(840),或以其他方式不返回在粘贴板存储器中的信息。如果请求是异步请求,则粘贴板守护进程可请求显示或以其他方式触发访问控制提示,以接收对由应用程序进行粘贴板访问的用户批准(842)。
图9示出了用于门控对所验证的UI元素背后的设备功能的访问并且当此种功能被访问时促进向用户提供通知的系统900。系统900包括计算设备的软件部件和硬件部件。与系统相关联的计算设备可以是但不限于台式计算机、膝上型计算机、平板计算机、移动电话(例如,智能电话)、可穿戴设备、个人数字助理(PDA)、媒体播放器、游戏设备、电视或电视机顶盒、智能电器和/或智能扬声器设备。系统900的软件部件可以是由一个或多个处理器(例如,应用程序处理器、系统处理器、传感器处理器、永远在线处理器等)执行的指令或由一个或多个微控制器执行的固件。
在一个实施方案中,系统900上的软件包括应用程序103,该应用程序经由对访问控制模块117的系统调用API 118通信地耦接。应用程序103可经由对访问控制模块117的系统调用API 118进行通信以获得对资源诸如隐私敏感用户数据或系统资源的访问。可经由安全配置文件906向应用程序103提供对某些资源的默认访问。可通过编译指定应用程序可访问的资源的一组一个或多个规则来动态地生成或更新应用程序的安全配置文件。
在应用程序103首次访问隐私敏感资源时,访问控制模块117可触发UI模块212以显示包括所验证的UI元素的对话提示,诸如图3的访问控制提示324,该对话提示使得用户能够明确准予或拒绝对资源的访问。可基于提供给访问控制提示的响应来针对资源记录访问状态的记录。该响应与源守护进程204对硬件输入事件的接收相关,该源守护进程检测硬件输入事件并且通过向系统900的软件部件发射软件事件来进行响应。
在一些实施方案中,系统900可维持以每个用户为基础记录访问决定的访问控制记录920,其中系统上的每个用户具有单独的记录实例。在一个实施方案中,访问控制记录920标识用户已经被容许或拒绝访问的资源,以及触发访问请求的特定应用程序或进程。在一个实施方案中,访问控制记录920可存储一些资源的未知状态,该未知状态可指示尚未针对该资源记录提示结果或权利转让。在一个实施方案中,访问控制记录920包括分布式记录922和集中式记录924。分布式记录922用于持续先前被准予或拒绝的对数据文件或文件夹的访问。在一个实施方案中,分布式记录922可存储在文件或文件夹的包含用户数据的扩展文件系统数据中。对于分布式记录922,如果存在记录的文件或文件夹被删除,则在一个实施方案中,分布式记录922的与该文件或文件夹相关联的部分也可被删除。集中式记录924可存储在每个用户的中央数据库中,并且可专门用于记录对系统资源的访问请求的结果。在各种实施方案中,对粘贴板存储器912和位置数据914的访问记录可存储在分布式记录922或集中式记录924中。在一个实施方案中,在将属性数据916中继到浏览器应用程序期间短暂存储属性数据916。在此种实施方案中,不维持对属性数据916的访问控制。在一个实施方案中,应用商店917框架可维持针对所选择广告生成的属性数据916的记录。在此种实施方案中,经由访问控制记录920来维持对该数据的访问。对属性数据916的默认访问可以是管理安全配置文件906。
系统900是可配置的,使得如果应用程序103尝试以与用户访问位置数据914的意图的表达断开连接的方式访问位置数据914,则将拒绝对应用程序103的访问。在各种实施方案中,位置数据914包括可经由位置服务915模块访问的任何数据。位置数据914可包括有包括系统900的电子设备的当前位置和/或电子设备的位置历史。一旦用户经由所验证的UI元素允许访问,就可向应用程序103提供对位置数据914的访问,其中位置服务915模块或UI模块212充当验证器守护进程。可在每次访问的基础上门控对位置数据914的访问,或者可在访问控制记录920中存储应用程序103对位置服务915的长期访问。还可向位置数据914提供条件访问,使得应用程序103可在活动时和/或在前台中访问位置数据914,而在后台中的访问被禁用。
系统900是可配置的,使得如果应用程序103的用户选择由应用程序103显示的广告,则不发射链接所显示广告和应用程序103的属性数据,除非对广告的选择与用户选择应用程序的意图的表达相对应。该用户意图的表达以对显示广告的所验证的UI元素(例如,UI元素425)的硬件输入的形式被记录。用于选择广告的硬件输入由源守护进程204检测。硬件输入可经由由源守护进程204发射的认证令牌连同输入的通知来验证,或者经由本文所述的另一验证方法(例如,可信部件、签名)来验证。硬件输入的发生由验证器守护进程验证。在各种实施方案中,应用商店917或UI模块212可包括验证器守护进程,该验证器守护进程验证接收到所验证的UI元素的输入与由源守护进程204检测到的硬件输入相对应。
访问控制模块117被配置为与粘贴板守护进程913通信以管理对粘贴板存储器912的访问控制。访问控制模块117还可与位置服务915模块或框架通信以管理对位置数据914的访问。在一个实施方案中,访问控制模块117可与应用商店917框架通信以确定是否生成、存储或发送由用户选择的广告的属性数据。另选地,应用商店917框架可在不与访问控制模块117交互的情况下直接管理是否发射属性数据。在一个实施方案中,访问控制模块117可维持用户是否已经决定退出所选择广告的属性数据的传输的记录。在此种实施方案中,应用商店917框架将不发射所选择广告的属性数据916。系统调用API 118可提供使用图2B的API进程250的一个或多个变型来访问粘贴板存储器912、位置数据914和属性数据916的接口。
在一个实施方案中,粘贴板守护进程913可接收经由系统调用API 118提交的将数据复制到粘贴板存储器912中(复制)和将数据复制出该粘贴板存储器(粘贴)的请求。可经由访问控制模块117门控对粘贴板守护进程913的访问。在一个实施方案中,粘贴板守护进程913可替代地执行它自己的访问控制操作。提供基于图2B的API进程250的所认证的粘贴板API以保护应用程序间粘贴板操作。在此种实施方案中,粘贴板守护进程913和/或UI模块212用于代表应用程序103在UI上绘制粘贴按钮。由于应用程序103不会直接绘制粘贴按钮,因此恶意编码的应用程序更加难以显示所欺骗的粘贴按钮。粘贴板守护进程913还将知道在UI中的何处正在显示粘贴按钮,并且可使用该信息来校验访问粘贴板中的数据的请求。当粘贴板守护进程913绘制粘贴按钮时,粘贴板守护进程可向源守护进程204通知粘贴按钮是与所验证的硬件输入相关联的所验证的UI元素。所验证的UI元素可基于与该区域相关联的UI标识符来标识。在一些具体实施中,粘贴板守护进程913可使用在其中绘制粘贴按钮的屏幕坐标来向源守护进程204标识所验证的UI元素。可基于UI系统的具体实施细节来使用各种其他技术。
当源守护进程204检测到与粘贴按钮相对应的硬件输入时,源守护进程204可向应用程序103发送硬件输入的通知以及认证令牌。应用程序103可接收认证令牌并且向充当验证器守护进程(例如,如图2A至图2B中的验证器守护进程214)的操作系统部件发送所认证的粘贴请求。在一个实施方案中,验证器守护进程是粘贴板守护进程913。在一个实施方案中,UI模块212包括验证器守护进程。认证令牌可包括基于共享秘密生成的密码材料,该共享秘密是在验证器守护进程(例如,粘贴板守护进程913或UI模块212)和源守护进程204之间预先交换的或由它们预先生成的。在一个实施方案中,验证器守护进程和源守护进程204是能够通过由操作系统提供的安全信道进行通信的特权进程。该安全信道可用于交换共享秘密或其他密码材料。共享机密可由源守护进程204使用以响应于对已经被标识为粘贴按钮的位置或UI标识符的UI区域的触摸输入的检测而生成认证令牌。时间戳可作为输入被提供给认证令牌生成进程并且与认证令牌一起发送。假设应用程序103在尝试访问粘贴板存储器912时尝试更改与触摸输入相关联的时间戳,则当所更改的时间戳用于验证认证令牌时,所更改的时间戳将使粘贴板处的令牌认证进程失败。
使用上述技术,如果应用程序103尝试以与用户访问粘贴板的意图的表达断开连接的方式访问粘贴板,则将拒绝对应用程序103的访问。然而,在一些场景中,可实现对粘贴板的认证访问的免除。当免除保持在适当位置时,应用程序将被允许访问该粘贴板而无需认证。针对恶意或暗中访问粘贴板的可能性低的场景启用基于免除的访问。可基于将数据放入粘贴板中的应用程序或复制和粘贴操作的定时来启用免除。例如,当应用程序将数据放入粘贴板中时,应用程序的标识符、与应用程序相关联的团队(例如,开发者或供应商)的标识符以及数据被存储在其中的时间戳可被保存为粘贴板元数据。当应用程序尝试访问粘贴板中的数据时,可将应用程序标识符、团队标识符和访问尝试时间戳与粘贴板元数据的对应元素进行比较。免除可被配置成使得应用程序可被允许访问该应用程序放置在粘贴板中的数据,使得单个应用程序可在没有认证的情况下执行复制和粘贴操作。免除还可被配置为允许应用程序访问由具有相同团队标识符的应用程序放置的数据。免除还可被配置为允许任何应用程序在数据被存储到粘贴板之后访问粘贴板持续有限的时间量。此外,如上所述,一旦认证了对粘贴板的非免除访问,相同应用程序就可继续访问粘贴板,直到新的数据被存储到粘贴板。
此外,在一些情况下可采用认证粘贴技术的变型。在一个实施方案中,可能不需要粘贴板守护进程绘制粘贴图标。在此种场景中,应用程序可向输入守护进程注册粘贴图标的UI标识符。当在与所注册的UI标识符相关联的位置处检测到触摸输入时,源守护进程204然后可实现认证令牌的生成。附加变型是基于击键的粘贴板认证,该基于击键的粘贴板认证可作为基于触摸的粘贴板认证的补充或替代而被启用。当物理键盘在使用中时,输入守护进程可响应于检测到在键盘处输入的粘贴热键而生成粘贴板认证令牌。该认证令牌可由应用程序使用以启用对粘贴板的认证访问。
用于选择功能的透明度通知
作为在准予对选择功能的访问之前需要所验证的硬件输入的替代或补充,当系统准予对选择功能的访问时,可经由UI显示通知。例如,在一些实施方案中,可利用通知用户何时发生跨应用程序粘贴的系统来代替或补充启用对粘贴板存储器912的访问的明确授权提示。粘贴板守护进程913可经由系统调用API 118直接接收请求。当促进应用程序间粘贴操作时,粘贴板守护进程913可向UI模块212发送触发粘贴板透明度通知的显示的请求。粘贴板透明度通知可指示正在从粘贴板粘贴的应用程序和所粘贴数据的源应用程序。对于使用共享粘贴板的跨系统粘贴,可显示所粘贴数据的源设备。粘贴板守护进程913还可执行附加隐私措施和安全措施,诸如使存储在粘贴板中的数据在一定时间段之后过期。
图10示出了显示与在应用程序之间执行的粘贴操作相关联的透明度通知的系统1000。当用户粘贴来自粘贴板的数据时,包含在粘贴板中的数据被插入应用程序中并且经由应用程序的用户界面513显示。例如,电子设备512的用户可执行图5所示的粘贴操作以将URL粘贴到笔记应用程序的用户界面513中。响应于粘贴操作,将所粘贴数据插入用户界面513中。就URL而言,所粘贴数据可被显示为可选择的界面元素1006。由于所粘贴数据由不同应用程序插入粘贴板中,因此在插入粘贴板数据时,可显示指示正在访问粘贴板以执行粘贴操作的应用程序(Notes)和将信息插入粘贴板中的应用程序(Safari)的粘贴板透明度通知1005。为了实现该功能,维持标识使数据被插入粘贴板中的复制动作的源应用程序的粘贴板元数据。当应用程序将数据插入剪贴板中时,可创建粘贴板元数据,并且当应用程序尝试访问粘贴板时,可检查粘贴板元数据。可根据该元数据来呈现透明度通知。
图11示出了显示用于在不同应用程序之间执行的粘贴操作的透明度通知的方法1100。方法1100包括供电子设备上的软件逻辑执行操作以在粘贴板守护进程处从应用程序接收访问与粘贴板相关联的存储器的请求(1102)。软件逻辑可以是例如如图9中的粘贴板守护进程913。逻辑可确定粘贴板中的数据是否是来自与请求应用程序不同的应用程序的数据(1104)。如果数据是来自不同应用程序(“是”,1104),则逻辑可呈现粘贴板透明度通知(1106)。如果数据并非来自不同应用程序(“否”,1104),则逻辑可绕过粘贴板透明度通知的呈现(1108)。
在各种实施方案中,透明度通知可结合或代替由电子设备提供的其他功能的所验证的UI元素的用户来执行。例如,可在向应用程序准予对位置数据的访问时显示通知或指示。也可在响应于对广告的选择而发射属性数据时显示通知。
基于粘贴板数据对UI元素的修改
在一个实施方案中,不同粘贴操作可基于粘贴板内的所检测到的数据模式来呈现。可由应用程序执行粘贴板数据的模式确定,而不引起透明度通知的触发。
图12示出了一种系统1200,在该系统中应用程序可基于粘贴板内的数据模式来呈现不同粘贴选项。例如,粘贴板存储器1202可包括被模式化为URL的数据(例如https://developer.apple.com/wwdc20/)。应用程序诸如网络浏览器应用程序可检测粘贴板存储器中的URL模式,并且响应于应用程序的搜索栏和/或地址栏1203处的输入姿势,可呈现启用粘贴并转到操作的UI元素1204。粘贴并转到操作将在粘贴板中插入URL,并且使网络浏览器加载由URL标识的网页。可启用其他类型的模式特定操作,诸如粘贴并搜索操作,其将基于粘贴板内的数据执行网络搜索。在一个实施方案中,如果粘贴板内的数据具有搜索查询模式,则可执行粘贴并搜索操作。除了网络浏览器应用程序之外的应用程序还可分析粘贴板数据的数据模式以调节要呈现的粘贴UI元素的类型和/或确定是否完全呈现粘贴UI元素。例如,一些应用程序可仅支持某些类型的数据(例如,图像数据、文件、音频数据、数值等)的粘贴。如果粘贴板中的数据与预期模式不匹配,则此类应用程序可不呈现粘贴UI元素。
在先前的具体实施中,应用程序可本身已经执行粘贴板模式分析,读取由不同应用程序粘贴的粘贴板数据可触发虚假的粘贴板透明度通知,原因是粘贴板中的数据正被访问,但实际上不会被粘贴到目标应用程序中。为了避免该问题,本文所述的实施方案提供API接口以使得应用程序能够请求操作系统逻辑对粘贴板数据执行模式分析并且返回数据以指示在粘贴板数据内检测到预期数据模式中的一种数据模式。
图13示出了将所检测到的模式类型返回给请求应用程序的方法1300。根据方法1300,与操作系统相关联的软件逻辑诸如在粘贴板守护进程内或与粘贴板守护进程相关联的逻辑可从应用程序接收对存储在粘贴板中的数据的模式的指示的请求(1302)。逻辑然后可分析粘贴板中的数据以确定该数据内是否存在模式(1304)。在一个实施方案中,分析逻辑被配置为确定数据是否包含一组已知模式(例如,URL、搜索栏数据、数值等)中的一种或多种模式。逻辑然后可将所检测到的模式类型返回给应用程序(1306)。在各种实施方案中,如果未检测到模式,则可不返回模式,可返回一般模式类型,或可返回“未知”模式类型。请求应用程序可使用所返回的模式类型来确定要显示以粘贴粘贴板数据的粘贴UI元素的类型。
图14示出了基于用户输入校验的安全粘贴板访问的系统1400。系统1400包括电子设备1402,该电子设备可物理地或无线地附接到呈物理键盘1405形式的输入设备。电子设备1402可执行在电子设备1402的显示器上呈现用户界面1401的应用程序。用户界面1401可包括启用复制操作的界面元素1410和启用粘贴操作的界面元素1420。用户界面1401还可包括文本可被键入、复制和粘贴到其中的文本区域1403。粘贴操作可在显示在用户界面1401的文本区域1403中的光标位置1430处执行。用于执行粘贴操作的界面元素1420可由应用程序经由如本文所述的UI模块212来绘制,由UI模块212直接绘制,或者经由图9的粘贴板守护进程913来绘制。来自不同应用程序的经由界面元素1420的粘贴操作可经由安全粘贴API来执行。
安全粘贴API还可响应于从物理键盘1405提供给电子设备1402的热键组合1406来促进安全应用程序间粘贴。可以与所验证的UI元素的注册类似的方式向源守护进程204注册热键组合1406。当源守护进程204接收到所注册的热键组合时,发射包括数据(例如,认证令牌、签名等)的消息,该数据可在提供对电子设备的粘贴板存储器或其他受保护功能(例如,位置数据、广告属性数据等)的访问之前由验证器守护进程验证。
示例性API和数据处理系统
本文所述的实施方案包括环境中的一个或多个应用编程接口(API),其中调用程序代码与通过一个或多个编程接口调用的其他程序代码进行交互。各种功能调用、消息或其他类型的调用还可包括各种参数,这些调用可以经由调用程序和被调用代码之间的API而传输。此外,API可以给调用程序代码提供使用在API中定义的、并在被调用程序代码中实现的数据类型或类别的能力。
API允许API调用部件的开发者(可以是第三方开发者)利用由API实现部件提供的指定特征。可以有一个API调用部件或可以有多于一个此类部件。API可以是计算机系统或程序库提供的源代码接口,以便支持来自应用程序的服务请求。操作系统(OS)可具有多个API,以允许运行于OS上的应用程序调用那些API中的一个或多个API,并且服务(例如程序库)可具有多个API,以允许使用服务的应用程序调用那些API中的一个或多个API。可按照在构建应用程序时能够解译或编译的编程语言来指定API。
在一些实施方案中,API实现部件可提供多于一个API,每个API提供不同视图或具有不同方面,该不同方面访问由API实现部件实现的功能的不同方面。例如,API实现部件的一个API可提供第一函数集,并可暴露于第三方开发者,并且API实现部件的另一个API可被隐藏(不暴露)并提供第一函数集的子集,并且还提供另一函数集,诸如不在第一函数集中的测试或调试函数。在其他实施方案中,API实现部件本身可经由下层API调用一个或多个其它部件,因而既是API调用部件又是API实现部件。
API定义在访问和使用API实现部件的指定特征时API调用部件所使用的语言和参数。例如,API调用部件通过被API暴露的一个或多个API调用或引用(例如由函数或方法调用实现)来访问API实现部件的指定特征,并经由API调用或引用使用参数来传递数据和控制信息。API实现部件可响应于来自API调用部件的API调用而通过API返回值。尽管API定义API调用的语法和结果(例如,如何引起API调用以及API调用能干什么),但API可不揭示API调用如何完成由API调用指定的函数。经由调用(API调用部件)和API实现部件之间的一个或多个应用编程接口来传输各种API调用。传输API调用可包括发出、发起、引用、调用、接收、返回或响应函数调用或消息;换句话讲,传输能够描述API调用部件或API实现部件中的任一者的动作。API的函数调用或其它引用可通过参数列表或其它结构发送或接收一个或多个参数。参数可以是常数、键、数据结构、对象、对象类、变量、数据类型、指针、数组、列表或指向函数或方法的指针或援引要经由API传递的数据或其它项目的另一种方式。
此外,数据类型或类可由API提供并由API实现部件实现。因此,API调用部件可利用API中提供的定义来声明变量、使用指向此类类型或类的指针、使用或实例化此类类型或类的恒定值。
通常,可使用API来访问由API实现部件提供的服务或数据,或启动执行由API实现部件提供的操作或计算。以举例的方式,API实现部件和API调用部件可各自为操作系统、库、设备驱动程序、API、应用程序或其它模块(应当理解,API实现部件和API调用部件可以是彼此相同或不同类型的模块)中的任一种。在一些情况下,可至少部分地在固件、微码或其它硬件逻辑部件中实现API实现部件。在一些实施方案中,API可以允许客户端程序使用由软件开发工具包(SDK)库提供的服务。在其他实施方案中,应用程序或其他客户端程序可使用由应用程序框架提供的API。在这些实施方案中,应用程序或客户端程序可将调用结合到由SDK提供和由API提供的函数或方法中,或使用SDK中定义并由API提供的数据类型或对象。在这些实施方案中,应用程序框架可为程序提供主要事件循环,其对框架定义的各种事件作出响应。API允许应用程序利用应用程序框架来指定事件和对事件的响应。在一些具体实施中,API调用能够向应用程序报告硬件设备的能力或状态,包括与诸如输入能力和状态、输出能力和状态、处理能力、电源状态、存储容量和状态、通信能力等方面相关的能力或状态,并且API可部分地由固件、微码或部分地在硬件部件上执行的其它低电平逻辑部件实现。
API调用部件可以是本地部件(即与API实现部件在同一数据处理系统上)或远程部件(即在不同于API实现部件的数据处理系统上),所述部件经由网络通过API与API实现部件进行通信。应当理解,API实现部件也可充当API调用部件(即,它可对被不同API实现部件暴露的API进行API调用),并且API调用部件也可通过实现暴露于不同API调用部件的API来充当API实现部件。
API可允许以不同编程语言编写的多个API调用部件与API实现部件通信(从而API可包括用于转换API实现部件和API调用部件之间的调用和返回的特征);不过,可以特定的编程语言实现API。在一个实施方案中,API调用部件可调用来自不同提供商的API,例如来自OS提供商的一组API和来自插件提供商的另一组API,以及来自另一提供商(例如软件库的提供商)或另一组API的创建者的另一组API。
图15是示出了可用于本发明的一些实施方案中的示例性API架构的框图。如图15所示,API架构1500包括实现API 1520的API实现部件1510(例如,操作系统、库、设备驱动程序、API、应用程序、软件或其他模块)。API 1520指定可由API调用部件1530使用的API实现部件的一个或多个函数、方法、类、对象、协议、数据结构、格式和/或其他特征。API1520可指定至少一个调用约定,该调用约定指定API实现部件中的函数如何从API调用部件接收参数以及函数如何向API调用部件返回结果。API调用部件1530(例如,操作系统、库、设备驱动程序、API、应用程序、软件或其他模块)通过API 1520进行API调用,以访问并使用由API 1520指定的API实现部件1510的特征。API实现部件1510可响应于API调用而通过API 1520向API调用部件1530返回值。
应当理解,API实现部件1510可包括未通过API 1520指定并且对于API调用部件1530不可用的附加函数、方法、类、数据结构和/或其他特征。应当理解,API调用部件1530可与API实现部件1510在同一系统上,或者可远程定位并且通过网络来使用API 1520访问API实现部件1510。尽管图15示出了单个API调用部件1530与API 1520交互,但应当理解,可用与API调用部件1530不同的语言(或相同的语言)编写的其他API调用部件可使用API 1520。
API实现部件1510、API 1520和API调用部件1530可存储在机器可读介质中,其包括用于以机器(例如,计算机或其他数据处理系统)可读的形式存储信息的任何机制。例如,机器可读介质包括磁盘、光盘、随机存取存储器;只读存储器、闪存存储器设备等。
在一个实施方案中,本文所述的访问控制模块117可与API实现部件1510通信地耦接以调解对隐私相关系统资源诸如图1所示的用户数据和系统资源的访问。在API实现部件1510可执行一些操作之前,API实现部件1510可与访问控制模块117通信以确定是否可执行此类操作。
图16A至图16B是根据实施方案的示例性API软件栈1600、1610的框图。图16A示出了示例性API软件栈1600,其中应用程序1602可使用服务API调用服务A或服务B以及使用OSAPI调用操作系统1604。此外,服务A和服务B可使用若干OS API调用操作系统1604。
图16B示出了示例性API软件栈1610,包括应用程序1、应用程序2、服务1、服务2和操作系统1604。如图所示,服务2具有两个API,其中一个(服务2API 1)从应用程序1接收调用并返回值,并且另一个(服务2API 2)从应用程序2接收调用并返回值。服务1(例如,可以是软件库)向OS API 1进行调用并接收返回的值,并且服务2(例如,可以是软件库)向OSAPI 1和OS API 2两者进行调用并接收返回的值。应用程序2对OS API 2进行调用并接收返回的值。
图17是根据实施方案的用于移动或嵌入式设备的设备架构1700的框图。设备架构1700包括存储器接口1702、包括一个或多个数据处理器的处理系统1704、图像处理器和/或图形处理单元以及外围设备接口1706。各种部件可通过一条或多条通信总线或信号线耦接。各种部件可以是单独的逻辑部件或设备或可以集成在一个或多个集成电路,诸如片上系统集成电路。
存储器接口1702可耦接到存储器1750,该存储器可包括高速随机存取存储器诸如静态随机存取存储器(SRAM)或动态随机存取存储器(DRAM)和/或非易失性存储器,诸如但不限于闪存存储器(例如,NAND闪存、NOR闪存等)。
传感器、设备和子系统可耦接到外围设备接口1706以促进多个功能。例如,运动传感器1710、光传感器1712和接近传感器1714可耦接到外围设备接口1706以促进移动设备功能。还可存在一个或多个生物特征传感器1715,诸如用于指纹识别的指纹扫描器或用于面部识别的图像传感器。其他传感器1716也可连接到外围设备接口1706,诸如定位系统(例如,GPS接收器)、温度传感器、或其他感测设备以促进相关功能。可利用相机子系统1720和光学传感器1722(例如,电荷耦合器件(CCD)或互补金属氧化物半导体(CMOS)光学传感器)来促进相机功能,诸如拍摄照片和视频剪辑。
可通过一个或多个无线通信子系统1724来促进通信功能,这些无线通信子系统可包括射频接收器和发射器和/或光学(例如,红外)接收器和发射器。无线通信子系统1724的具体设计与实现可取决于移动设备打算通过其操作的通信网络。例如,包括示出的设备架构1700的移动设备可包括设计来通过GSM网络、CDMA网络、LTE网络、Wi-Fi网络、Bluetooth网络或任何其他无线网络操作的无线通信子系统1724。具体地,无线通信子系统1724可提供通信机制,在该通信机制中,媒体回放应用程序可从远程媒体服务器检索资源或从远程日历或事件服务器检索调度事件。
音频子系统1726可耦接到扬声器1728和麦克风1730以促进支持语音的功能,诸如语音识别、语音复制、数字记录和电话功能。在本文所述的智能媒体设备中,音频子系统1726可以是包括支持虚拟环绕声的高质量音频子系统。
I/O子系统1740可包括触摸屏控制器1742和/或其他输入控制器1745。对于包括显示设备的计算设备,触摸屏控制器1742可耦接到触敏显示系统1746(例如,触摸屏)。触敏显示系统1746和触摸屏控制器1742可例如使用多种触摸和压力感测技术中的任何一种检测接触和移动和/或压力,触摸和压力感测技术包括但不限于电容性、电阻性、红外和表面声波技术,以及用于确定与触敏显示系统1746接触的一个或多个点的其他接近传感器阵列或其他元件。触敏显示系统1746的显示输出可由显示控制器1743生成。在一个实施方案中,显示控制器1743可在可变帧速率下向触敏显示系统1746提供帧数据。
在一个实施方案中,包括传感器处理器1744以监测、控制和/或处理从运动传感器1710、光传感器1712、接近传感器1714或其他传感器1716中的一者或多者接收的数据。传感器处理器1744可包括逻辑来解释传感器数据以通过分析来自传感器的传感器数据来确定多个运动事件或活动中的一者的发生。在一个实施方案中,传感器处理器1744还管理经由外围设备接口1706与传感器处理器1744耦接的相机子系统1720和音频子系统1726。由相机子系统1720和/或音频子系统1726捕获的多媒体可被中继到存储器1750以由在处理系统1704上执行的软件访问,或由传感器处理器1744或系统中的其他处理器处理以确定环境元数据。在一个实施方案中,传感器处理器可将现场音频流配置到经由无线处理器连接的助听器设备或无线耳塞,从而使得音频流能够绕过处理系统1704和存储器1750。
在一个实施方案中,I/O子系统1740包括其他输入控制器1745,该其他输入控制器可耦接到其他输入/控制设备1748,诸如一个或多个按钮、摇臂开关、拇指滚轮、红外线端口、USB端口和/或指针设备诸如触笔,或控制设备诸如扬声器1728和/或麦克风1730的音量控件的向上/向下按钮。
在一个实施方案中,耦接到存储器接口1702的存储器1750可存储操作系统1752的指令,包括便携式操作系统接口(POSIX)兼容和不兼容的操作系统或嵌入式操作系统。操作系统1752可包括用于处理基础系统服务以及用于执行硬件相关任务的指令。在一些具体实施中,操作系统1752可以是内核。
存储器1750还可存储通信指令1754以促进与一个或多个附加设备、一个或多个计算机和/或一个或多个服务器的通信,例如从远程网络服务器检索网络资源。存储器1750还可包括用户界面指令1756,包括促进图形用户界面处理的图形用户界面指令。
此外,存储器1750可存储促进传感器相关处理和功能的传感器处理指令1758;促进与电话相关的过程和功能的电话指令1760;促进与电子消息传送相关的过程和功能的即时消息传送指令1762;促进与网络浏览相关的过程和功能的网络浏览器指令1764;促进与媒体处理相关的过程和功能的媒体处理指令1766;促进基于位置的功能的位置服务指令包括GPS和/或导航指令1768和基于Wi-Fi的位置指令;促进与相机相关的过程和功能的相机指令1770;和/或促进其他过程和功能例如安全过程和功能以及与系统相关的过程和功能的其他软件指令1772。存储器1750还可存储其他软件指令,诸如促进与网络视频相关的过程和功能的网络视频指令;和/或促进与网络购物相关的过程和功能的网络购物指令。在一些具体实施中,媒体处理指令1766分为音频处理指令和视频处理指令,以分别用于促进与音频处理相关的过程和功能以及与视频处理相关的过程和功能。移动设备标识符,诸如国际移动设备身份(IMEI)1774或类似的硬件标识符也可存储在存储器1750中。
上面所识别的指令和应用程序中的每一者可对应于用于执行上述一个或多个功能的指令集。这些指令不需要作为独立软件程序、进程或模块来实现。存储器1750可包括附加指令或更少的指令。此外,可在硬件和/或软件中,包括在一个或多个信号处理和/或专用集成电路中,执行各种功能。
图18是根据实施方案的计算系统1800的框图。示出的计算机系统1800旨在表示一系列计算系统(有线或无线的),包括例如台式计算机系统、膝上型计算机系统、平板计算机系统、蜂窝电话、包括支持蜂窝的PDA的个人数字助理(PDA)、机顶盒、娱乐系统或其他消费电子设备、智能电器设备、或者智能媒体回放设备的一个或多个具体实施。另选的计算系统可以包括更多、更少和/或不同的部件。计算系统1800可用于提供计算设备和/或计算设备可能与之连接的服务器设备。
计算系统1800包括总线1835或用于传达信息的其他通信设备,以及耦接到总线1835的可处理信息的处理器1810。虽然计算系统1800被例示为具有单个处理器,但是计算系统1800可包括多个处理器和/或协处理器。计算系统1800还可包括存储器1820,诸如耦接到总线1835的随机存取存储器(RAM)或其他动态存储设备。存储器1820可存储可由处理器1810执行的信息和指令。在由处理器1810执行指令期间,存储器1820还可用于存储临时变量或其他中间信息。
计算系统1800还可包括只读存储器(ROM)1830和/或耦接到总线1835的可存储用于处理器1810的信息和指令的其他数据存储设备1840。数据存储设备1840可以是或包括多种存储设备,诸如闪存存储器设备、磁盘或光盘,并且可经由总线1835或经由远程外围设备接口耦接到计算系统1800。
计算系统1800还可经由总线1835耦接到显示设备1850以向用户显示信息。计算系统1800还可包括数字字母混合输入设备1860,该设备包括数字字母键和其他键,其可耦接到总线1835以将信息和命令选择传达到处理器1810。另一种类型的用户输入设备包括光标控件1870设备,诸如触控板、鼠标、轨迹球、或光标方向键,用于向处理器1810传达方向信息和命令选择以及在显示设备1850上控制光标移动。计算系统1800还可经由一个或多个网络接口1880从通信地耦接的远程设备接收用户输入。
计算系统1800还可包括一个或多个网络接口1880,以提供对网络诸如局域网的接入。网络接口1880可包括例如具有天线1885的无线网络接口,该天线可表示一个或多个天线。计算系统1800可包括多个无线网络接口,诸如Wi-Fi、近场通信(NFC)和/或蜂窝电话接口的组合。网络接口1880也可包括例如有线网络接口,以经由网络电缆1887与远程设备通信,该电缆可以是例如,以太网电缆、同轴电缆、光纤电缆、串行电缆或并行电缆。
在一个实施方案中,网络接口1880可例如通过符合IEEE 802.18标准来提供对局域网的接入,和/或无线网络接口可例如通过符合蓝牙标准提供对个人区域网络的接入。其他无线网络接口和/或协议也可得到支持。作为经由无线LAN标准进行通信的补充或替代,网络接口1880可使用例如时分多址(TDMA)协议、全球移动通信系统(GSM)协议、码分多址(CDMA)协议、长期演进(LTE)协议和/或任何其他类型的无线通信协议来提供无线通信。
计算系统1800还可包括一个或多个能量源1805和一个或多个能量测量系统1845。能量源1805可包括耦接到外部电源的AC/DC适配器、一个或多个电池、一个或多个电荷存储设备、USB充电器或其他能量源。能量测量系统包括至少一个电压或电流测量设备,该至少一个电压或电流测量设备可测量计算系统1800在预先确定的时间段期间消耗的能量。此外,可包括一个或多个能量测量系统测量,例如,显示设备,冷却子系统,Wi-Fi子系统,或其他常用的或高能量消费子系统所消耗的能量。
如上所述,本发明技术的一个方面是采集和使用可从具体合法源获得的数据,以改善关于准予对数据处理系统上的受保护资源的访问的用户体验。本公开设想,在一些情况下,该所采集数据可包括关于用户的应用程序使用模式的个人信息数据。此类应用程序使用模式的采集也可不经意地揭示可用于唯一地标识用户的其他信息,诸如人口统计数据、基于位置的数据、在线标识符、电话号码、电子邮件地址、家庭地址、与用户的健康或健身级别相关的数据或记录(例如,生命特征测量、药物信息、锻炼信息)、出生日期或任何其他个人信息。本公开认识到,在本发明技术中,此类个人信息数据的使用可被使用来有益于用户,例如,改善使用本文所述的数据处理系统或计算设备执行任务的用户体验。
本公开设想负责收集、分析、公开、传输、存储或其他使用此类个人信息数据的实体将遵守既定的隐私政策和/或隐私实践。具体地,将期望此类实体实现和一贯地应用一般公认为满足或超过维护用户隐私的行业或政府所要求的隐私实践。关于使用个人数据的此类信息应当被突出并能够被用户方便地访问,并应当随数据的采集和/或使用变化而被更新。用户的个人信息应被收集仅用于合法使用。另外,此类收集/共享应仅发生在接收到用户同意或在适用法律中所规定的其他合法根据之后。此外,此类实体应考虑采取任何必要步骤,保卫和保障对此类个人信息数据的访问,并确保有权访问个人信息数据的其他人遵守其隐私政策和流程。另外,这种实体可使其本身经受第三方评估以证明其遵守广泛接受的隐私政策和实践。此外,应针对被收集和/或访问的特定类型的个人信息数据调整政策和实践,并使其适用于适用法律和标准,包括可用于施加较高标准的辖区专有的考虑因素。例如,在美国,对某些健康数据的收集或获取可能受联邦和/或州法律的管辖,诸如健康保险流通和责任法案(HIPAA);而其他国家的健康数据可能受到其他法规和政策的约束并应相应处理。
不管前述情况如何,本公开还预期用户选择性地阻止使用或访问个人信息数据的实施方案。即本公开预期可提供硬件元件和/或软件元件,以防止或阻止对此类个人信息数据的访问。例如,本发明技术可被配置为允许用户在系统配置期间或其后随时选择参与收集个人信息数据的“选择加入”或“选择退出”。除了提供“选择加入”和“选择退出”选项外,本公开还设想提供与访问或使用个人信息相关的通知。例如,可在下载应用时向用户通知其个人信息数据将被访问,然后就在个人信息数据被应用访问之前再次提醒用户。
此外,本公开的目的是应管理和处理个人信息数据以最小化无意或未经授权访问或使用的风险。一旦不再需要数据,通过限制数据收集和删除数据可最小化风险。此外,并且当适用时,包括在某些健康相关应用程序中,数据去标识可用于保护用户的隐私。可在适当时通过移除标识符、控制所存储数据的量或特异性(例如,在城市级别而不是在地址级别收集位置数据)、控制数据如何被存储(例如,在用户间汇集数据)和/或其他方法诸如差异化隐私来促进去标识。
因此,虽然本公开广泛地覆盖了使用个人信息数据来实现一个或多个各种所公开的实施方案,但本公开还预期各种实施方案也可在无需访问此类个人信息数据的情况下被实现。即,本发明技术的各种实施方案不会由于缺少此类个人信息数据的全部或一部分而无法正常进行。例如,可基于汇集的非个人信息数据或绝对最低数量的个人信息,诸如仅在用户设备上处理的内容或可用于内容递送服务的其他非个人信息,来选择内容并递送给用户。
在前面的说明中,已经描述了本公开的示例性实施方案。显而易见的是,在不脱离本公开的更广泛的实质和范围的情况下,可对其进行各种修改。相应地,说明书和附图被视为是例示性意义而不是限定性意义。所提供的描述和示例中的具体细节可用于一个或多个实施方案中的任何地方。不同实施方案或示例的各种特征可与所包括的一些特征和排除的其他特征不同地组合,以适应多种不同的应用。示例可包括主题,诸如方法,用于执行该方法的行为的装置,包括指令的至少一种机器可读介质,所述指令在由机器执行时使得机器执行该方法的行为,或者根据本文所述的实施方案和示例执行装置或系统的动作。此外,本文描述的各种部件可为用于执行本文所描述的操作或功能的装置。
一个实施方案提供了一种方法,包括:经由电子设备的显示器显示对应于在电子设备的一个或多个处理器上执行的进程的功能的用户界面元素;以及接收与用户界面元素的交互的指示。该方法还包括:响应于接收到该指示并且根据该指示对应于硬件输入事件的确定,由电子设备的第一部件向电子设备的第二部件发送认证令牌;由第二部件验证认证令牌有效;以及在验证认证令牌有效之后,发起功能的执行。
进一步关于上述方法,第一部件可以是与电子设备的操作系统相关联的第一守护进程,并且第二部件可以是与电子设备的操作系统相关联的第二守护进程。第二部件可以是在电子设备的一个或多个处理器上执行的进程。在一个实施方案中,响应于验证认证令牌有效,该方法可附加地包括:由第二部件向进程发送认证令牌有效的指示。第一部件可使用由第二部件提供的密码材料来生成认证令牌,并且与认证令牌一起发送与认证令牌相关联的时间戳。验证认证令牌有效包括:使用时间戳来生成第二认证令牌。此外,第二部件可在用户界面元素的注册期间提供密码材料。用户界面元素的注册包括:作为指示对执行该功能的批准,向第一部件指定用户界面元素。该方法可附加地包括:呈现功能的执行的指示。该指示可包括在电子设备的用户界面上显示的通知或对用户的已经执行受保护功能的另一指示。
在各种实施方案中,受保护功能可包括访问存储在由电子设备的操作系统配置为剪贴板或粘贴板的存储器缓冲区中的数据,响应于对由该进程显示的广告的选择而发送广告属性数据,或者发送与电子设备相关联的位置信息。
一个实施方案提供了一种存储指令的非暂态机器可读介质,这些指令当由一个或多个处理器执行时使一个或多个处理器执行包括以下项的操作:经由电子设备的显示器显示对应于在电子设备的一个或多个处理器上执行的进程的功能的用户界面元素;以及接收与用户界面元素的交互的指示。这些操作还包括:响应于接收到该指示并且根据该指示对应于硬件输入事件的确定,由电子设备的第一部件向电子设备的第二部件发送认证令牌;由第二部件验证认证令牌有效;以及在验证认证令牌有效之后,发起功能的执行。
一个实施方案提供了一种电子设备上的数据处理系统,该系统包括显示器、存储器设备以及与存储器设备和显示器耦接的一个或多个处理器。该一个或多个处理器被配置为执行存储在该存储器设备中的指令。这些指令使一或多个处理器执行以下操作:经由显示器显示对应于由一或多个处理器执行的进程的功能的用户界面元素;接收与用户界面元素的交互的指示;以及响应于接收到该指示:根据指示对应于硬件输入事件的确定,由电子设备的第一部件向电子设备的第二部件发送认证令牌;由第二部件验证认证令牌有效;并且在验证认证令牌有效之后,发起功能的执行。
一个实施方案提供了一种存储指令的非暂态机器可读介质,这些指令当由电子设备的一个或多个处理器执行时使一个或多个处理器执行包括以下项的操作:接收与输入设备相关联的硬件事件;确定硬件事件与访问存储在由电子设备的操作系统配置为剪贴板或粘贴板的存储器缓冲区中的数据的请求相关联;响应于确定硬件事件与访问存储器缓冲区的请求相关联而生成认证令牌以启用对存储器缓冲区的认证访问,该认证令牌至少部分地基于共享秘密和时间戳来生成;触发软件事件以报告硬件事件的发生,该软件事件包括认证令牌和时间戳;从由电子设备的一个或多个处理器执行的应用程序接收访问存储器缓冲区中的数据的请求,该请求包括认证令牌和时间戳;校验认证令牌和时间戳;以及响应于校验认证令牌和时间戳而向应用程序提供存储在存储器缓冲区中的数据。
在另外的实施方案中,这些操作附加地包括:在第一软件进程处,接收与输入设备相关联的硬件事件;确定硬件事件与访问存储在存储器缓冲区中的数据的请求相关联;生成认证令牌以启用对存储器缓冲区的认证访问;以及触发软件事件以报告硬件事件的发生,该软件事件包括认证令牌和时间戳。这些操作附加地包括:在第二软件进程处,从由电子设备的一个或多个处理器执行的应用程序接收访问存储器缓冲区中的数据的请求,该请求包括认证令牌和时间戳;校验认证令牌和时间戳;以及响应于校验认证令牌和时间戳而向应用程序提供存储在存储器缓冲区中的数据。这些操作还可包括:通过经由第一软件进程和第二软件进程建立的特权通信信道生成或交换共享秘密。硬件事件可以是与硬件输入设备相关联的输入事件,诸如从触摸输入设备接收的触摸事件、从指针设备接收的点击事件、或从键盘设备接收的键盘热键。确定硬件事件与访问存储在存储器缓冲区中的数据的请求相关联包括:确定输入事件与被配置为触发粘贴动作或本文所述的另一受保护功能的用户界面元素相关联。
一个实施方案提供了一种数据处理系统,包括显示器、存储器设备以及与存储器设备和显示器耦接的一个或多个处理器,该一个或多个处理器用于执行存储在存储器设备中的指令。这些指令使一个或多个处理器执行以下操作:从由一个或多个处理器执行的第一进程接收请求,其中该请求是访问与粘贴板或剪贴板相关联的存储器的请求,并且第一进程与由一个或多个处理器执行的应用程序相关联;确定存储器包括通过由一个或多个处理器执行的第二进程放入存储器中的数据,该第二进程不同于该第一进程,其中该确定是基于与数据相关联的元数据执行的,并且与将数据插入存储器中相关联地产生元数据;以及响应于该确定而在显示器上呈现通知。通知可指示第一应用程序已粘贴来自第二应用程序的数据。
在另外的实施方案中,这些指令使一个或多个处理器执行以下操作:从第一应用程序接收请求,该请求是针对存储在存储器中的数据的模式的指示;分析存储在存储器中的数据以确定数据内是否存在模式;以及将模式类型返回给第一应用程序,该模式类型与数据内的所检测到的模式相关联。基于在数据内检测到的模式类型,第一应用程序可调节经由显示器呈现的粘贴界面元素。模式类型可以是统一资源定位符、数值模式或搜索查询模式。
一个实施方案提供了一种存储指令的非暂态机器可读介质,这些指令使一个或多个处理器执行包括以下项的操作:防止对由电子设备提供的位置服务功能的访问;接收与在电子设备的显示器上呈现的用户界面元素相对应的硬件输入事件,其中在用户界面元素处接收到硬件事件被指定为对访问位置服务功能的批准的指示;由电子设备的第一部件发送用于指示硬件输入事件的发生的消息,该消息包括认证令牌;在接收到消息时验证认证令牌;以及响应于验证认证令牌而启用对由电子设备提供的位置服务功能的访问。
通过附图以及通过上述具体实施方式,本实施方案的其他特征将显而易见。因此,在研究附图、说明书和所附权利要求时,这些实施方案的真正范围对于技能熟练的从业人员来说是显而易见的。
Claims (20)
1.一种方法,包括:
经由电子设备的显示器显示对应于在所述电子设备的一个或多个处理器上执行的进程的功能的用户界面元素;
接收与所述用户界面元素的交互的指示;
响应于接收到所述指示:
根据所述指示对应于硬件输入事件的确定,由所述电子设备的第一部件向所述电子设备的第二部件发送认证令牌;
由所述第二部件验证所述认证令牌有效;以及
在验证所述认证令牌有效之后,发起所述功能的执行。
2.根据权利要求1所述的方法,其中所述第一部件是与所述电子设备的操作系统相关联的第一守护进程。
3.根据权利要求1所述的方法,其中所述第二部件是所述进程。
4.根据权利要求1所述的方法,还包括:响应于验证所述认证令牌有效,由所述第二部件向所述进程发送所述认证令牌有效的指示。
5.根据权利要求1所述的方法,还包括:由所述第一部件使用由所述第二部件提供的密码材料来生成所述认证令牌;以及与所述认证令牌一起发送与所述认证令牌相关联的时间戳,其中验证所述认证令牌有效包括:使用所述时间戳来生成第二认证令牌。
6.根据权利要求5所述的方法,其中所述第二部件用于在所述用户界面元素的注册期间提供所述密码材料,其中所述用户界面元素的注册包括:作为指示对执行所述功能的批准,向所述第一部件指定所述用户界面元素。
7.根据权利要求6所述的方法,还包括:呈现所述功能的执行的指示。
8.根据权利要求1所述的方法,其中所述功能包括:访问存储在由所述电子设备的操作系统配置为剪贴板或粘贴板的存储器缓冲区中的数据。
9.根据权利要求1所述的方法,其中所述功能包括:响应于对由所述进程显示的广告的选择而发送广告属性数据。
10.根据权利要求1所述的方法,其中所述功能包括:发送位置信息。
11.一种存储指令的非暂态机器可读介质,所述指令当由一个或多个处理器执行时使所述一个或多个处理器执行包括以下项的操作:
经由电子设备的显示器显示对应于由所述一个或多个处理器执行的进程的功能的用户界面元素;
接收与所述用户界面元素的交互的指示;
响应于接收到所述指示:
根据所述指示对应于硬件输入事件的确定,由所述电子设备的第一部件向所述电子设备的第二部件发送认证令牌;
由所述第二部件验证所述认证令牌有效;以及
在验证所述认证令牌有效之后,发起所述功能的执行。
12.根据权利要求11所述的非暂态机器可读介质,其中所述第一部件是与所述电子设备的操作系统相关联的第一守护进程,并且所述第二部件是所述进程。
13.根据权利要求11所述的非暂态机器可读介质,所述操作还包括:由所述第一部件使用由所述第二部件提供的密码材料来生成所述认证令牌;以及与所述认证令牌一起发送与所述认证令牌相关联的时间戳,其中验证所述认证令牌有效包括:使用所述时间戳来生成第二认证令牌。
14.根据权利要求13所述的非暂态机器可读介质,其中所述第二部件用于在所述用户界面元素的注册期间提供所述密码材料,其中所述用户界面元素的注册包括:作为指示对执行所述功能的批准,向所述第一部件指定所述用户界面元素。
15.根据权利要求11所述的非暂态机器可读介质,还包括:呈现所述功能的执行的指示,其中所述功能包括执行一组操作中的操作,所述一组操作包括:访问存储在由所述电子设备的操作系统配置为剪贴板或粘贴板的存储器缓冲区中的数据,响应于对由所述进程显示的广告的选择而发送广告属性数据,以及发送位置信息。
16.一种电子设备上的数据处理系统,所述系统包括:
显示器;
存储器设备;和
与所述存储器设备和所述显示器耦接的一个或多个处理器,所述一个或多个处理器用于执行存储在所述存储器设备中的指令,其中所述指令使所述一个或多个处理器执行操作以:
经由所述显示器显示对应于由所述一个或多个处理器执行的进程的功能的用户界面元素;
接收与所述用户界面元素的交互的指示;
响应于接收到所述指示:
根据所述指示对应于硬件输入事件的确定,由所述电子设备的第一部件向所述电子设备的第二部件发送认证令牌;
由所述第二部件验证所述认证令牌有效;以及
在验证所述认证令牌有效之后,发起所述功能的执行。
17.根据权利要求16所述的数据处理系统,其中所述第一部件是与所述电子设备的操作系统相关联的第一守护进程,并且所述第二部件是所述进程。
18.根据权利要求16所述的数据处理系统,所述一个或多个处理器进一步用于:由所述第一部件使用由所述第二部件提供的密码材料来生成所述认证令牌;并且与所述认证令牌一起发送与所述认证令牌相关联的时间戳,其中验证所述认证令牌有效包括:至少部分地基于所述时间戳来生成第二认证令牌。
19.根据权利要求18所述的数据处理系统,其中所述第二部件用于在所述用户界面元素的注册期间提供所述密码材料,其中注册所述用户界面元素包括:作为指示对执行所述功能的批准,向所述第一部件指定所述用户界面元素。
20.根据权利要求16所述的数据处理系统,所述一个或多个处理器进一步用于呈现所述功能的执行的指示,其中所述功能包括执行一组操作中的操作,所述一组操作包括:访问存储在由所述电子设备的操作系统配置为剪贴板或粘贴板的存储器缓冲区中的数据,响应于对由所述进程显示的广告的选择而发送广告属性数据,并且发送位置信息。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US202063041797P | 2020-06-19 | 2020-06-19 | |
US63/041,797 | 2020-06-19 | ||
US17/162,955 | 2021-01-29 | ||
US17/162,955 US11895105B2 (en) | 2020-06-19 | 2021-01-29 | Authenticated interface element interactions |
PCT/US2021/033904 WO2021257250A1 (en) | 2020-06-19 | 2021-05-24 | Authenticated interface element interactions |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115943376A true CN115943376A (zh) | 2023-04-07 |
Family
ID=79022190
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202180043382.4A Pending CN115943376A (zh) | 2020-06-19 | 2021-05-24 | 认证界面元素交互 |
Country Status (4)
Country | Link |
---|---|
US (2) | US11895105B2 (zh) |
EP (1) | EP4143707A1 (zh) |
CN (1) | CN115943376A (zh) |
WO (1) | WO2021257250A1 (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11936638B2 (en) * | 2019-06-28 | 2024-03-19 | Salesforce Inc. | Link protocol agents for inter-application communications |
US11489835B2 (en) * | 2020-02-21 | 2022-11-01 | ASA Technologies, Corporation | Access controller for secure transactions |
CN115221497A (zh) * | 2021-03-29 | 2022-10-21 | 北京小米移动软件有限公司 | 应用的使用权限的设置方法、装置、电子设备及存储介质 |
CN114443105B (zh) * | 2022-04-11 | 2022-08-02 | 深圳市帝迈生物技术有限公司 | 流水线系统的升级方法、设备、介质及程序产品 |
Family Cites Families (28)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
AU9422401A (en) * | 2000-11-13 | 2002-05-21 | Dentsu Inc | Advertisement segment transaction method and system |
US7950066B1 (en) | 2001-12-21 | 2011-05-24 | Guardian Data Storage, Llc | Method and system for restricting use of a clipboard application |
US7779062B2 (en) * | 2004-08-18 | 2010-08-17 | Ripple Effects Holdings Limited | System for preventing keystroke logging software from accessing or identifying keystrokes |
US20070240212A1 (en) | 2006-03-30 | 2007-10-11 | Check Point Software Technologies, Inc. | System and Methodology Protecting Against Key Logger Spyware |
US8656461B2 (en) | 2006-07-28 | 2014-02-18 | Microsoft Corporation | Copy-paste trust system |
US8572716B2 (en) * | 2007-04-23 | 2013-10-29 | Microsoft Corporation | Integrating operating systems with content offered by web based entities |
WO2012000092A1 (en) * | 2010-06-28 | 2012-01-05 | Lionstone Capital Corporation | Seamless end-to-end data obfuscation and encryption |
US9959263B2 (en) * | 2010-12-07 | 2018-05-01 | Microsoft Technology Licensing, Llc. | User interface form field expansion |
US9098719B2 (en) * | 2011-02-03 | 2015-08-04 | Apple Inc. | Securing unrusted content for collaborative documents |
US8973158B2 (en) | 2011-07-20 | 2015-03-03 | Microsoft Technology Licensing Llc | Trust level activation |
US8955084B2 (en) * | 2011-11-10 | 2015-02-10 | Blackberry Limited | Timestamp-based token revocation |
US8347083B1 (en) * | 2012-01-04 | 2013-01-01 | Google Inc. | Encrypted cross-origin communication via an intermediary |
US8935777B2 (en) * | 2012-02-17 | 2015-01-13 | Ebay Inc. | Login using QR code |
US8881302B1 (en) * | 2012-04-03 | 2014-11-04 | Google Inc. | Detecting security token reuse in a third party mediated video authentication system |
JP2015517164A (ja) * | 2012-04-30 | 2015-06-18 | トムソン ライセンシングThomson Licensing | ソーシャルな分散式コンテンツ閲覧システムにおける広告のための方法および装置 |
US8832782B2 (en) * | 2012-08-31 | 2014-09-09 | Avaya Inc. | Single sign-on system and method |
US8775248B1 (en) * | 2013-03-14 | 2014-07-08 | Abakus, Inc. | Advertising conversion attribution |
WO2014196963A1 (en) * | 2013-06-04 | 2014-12-11 | Intel Corporation | End-to-end secure communication system |
US20150205962A1 (en) | 2014-01-23 | 2015-07-23 | Cylent Systems, Inc. | Behavioral analytics driven host-based malicious behavior and data exfiltration disruption |
CN103761472B (zh) * | 2014-02-21 | 2017-05-24 | 北京奇虎科技有限公司 | 基于智能终端设备的应用程序访问方法与装置 |
US10042680B2 (en) | 2014-07-17 | 2018-08-07 | Blackberry Limited | Cross-domain data sharing with permission control |
GB2537601B (en) | 2015-04-14 | 2017-12-27 | Avecto Ltd | Computer device and method for isolating untrusted content on a clipboard |
US9817682B2 (en) * | 2015-05-18 | 2017-11-14 | Goodrich Corporation | System architecture for machine vision on moving platforms |
US9710742B2 (en) | 2015-12-02 | 2017-07-18 | Microsoft Technology Licensing, Llc | Copy and paste with scannable code |
US20180019870A1 (en) * | 2016-07-15 | 2018-01-18 | Qualcomm Incorporated | Device to limit access to storage to authenticated actors only |
US10715536B2 (en) * | 2017-12-29 | 2020-07-14 | Square, Inc. | Logical validation of devices against fraud and tampering |
US11695767B2 (en) * | 2018-12-04 | 2023-07-04 | Journey.ai | Providing access control and persona validation for interactions |
US11190346B2 (en) * | 2019-11-19 | 2021-11-30 | Lenovo Enterprise Solutions (Singapore) Pte. Ltd. | Secure device ownership transfer using an ephemeral device transfer token generated using elliptic curve cryptography |
-
2021
- 2021-01-29 US US17/162,955 patent/US11895105B2/en active Active
- 2021-05-24 WO PCT/US2021/033904 patent/WO2021257250A1/en unknown
- 2021-05-24 CN CN202180043382.4A patent/CN115943376A/zh active Pending
- 2021-05-24 EP EP21732769.1A patent/EP4143707A1/en active Pending
-
2024
- 2024-01-16 US US18/414,421 patent/US20240187395A1/en active Pending
Also Published As
Publication number | Publication date |
---|---|
US20210400037A1 (en) | 2021-12-23 |
WO2021257250A1 (en) | 2021-12-23 |
US20240187395A1 (en) | 2024-06-06 |
US11895105B2 (en) | 2024-02-06 |
EP4143707A1 (en) | 2023-03-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11895105B2 (en) | Authenticated interface element interactions | |
US10970385B2 (en) | Multiple device credential sharing | |
US10073985B2 (en) | Apparatus and method for trusted execution environment file protection | |
WO2017034312A1 (en) | Apparatus and method for trusted execution environment based secure payment transactions | |
CN106921799A (zh) | 一种移动终端安全防护方法以及移动终端 | |
WO2021169382A1 (zh) | 链接检测方法、装置、电子设备及存储介质 | |
US10764305B2 (en) | Account verification system | |
WO2014014565A1 (en) | Method and system for browser identity | |
KR20100126471A (ko) | 적어도 하나의 설치된 프로파일에 기초하여 소프트웨어 코드의 실행을 인가하는 시스템 및 방법 | |
WO2018000370A1 (zh) | 一种移动终端的认证方法及移动终端 | |
Riad et al. | Roughdroid: operative scheme for functional android malware detection | |
US11824850B2 (en) | Systems and methods for securing login access | |
KR20210102057A (ko) | 콘텐츠 플랫폼에서 사용자 상호작용 확인 | |
WO2018200153A1 (en) | Multi-level, distributed access control between services and applications | |
Mohsen et al. | Android keylogging threat | |
US20230259548A1 (en) | Virtual file library | |
US11017109B1 (en) | Dynamic sandboxing of user data | |
CN106685945B (zh) | 业务请求处理方法、业务办理号码的验证方法及其终端 | |
US20210397751A1 (en) | Software initiated camera and microphone indicator | |
US10049222B1 (en) | Establishing application trust levels using taint propagation | |
CN109324843B (zh) | 一种指纹处理系统、方法及指纹设备 | |
WO2019127468A1 (zh) | 分组应用使用同一密钥共享数据 | |
US11256864B2 (en) | Contacts autocomplete keyboard | |
US20230409736A1 (en) | Method and system of securing sensitive information | |
US20230359350A1 (en) | Using a virtual keyboard to enter particular input |
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 |