CN111971661B - 安全接口禁用 - Google Patents

安全接口禁用 Download PDF

Info

Publication number
CN111971661B
CN111971661B CN201980022993.3A CN201980022993A CN111971661B CN 111971661 B CN111971661 B CN 111971661B CN 201980022993 A CN201980022993 A CN 201980022993A CN 111971661 B CN111971661 B CN 111971661B
Authority
CN
China
Prior art keywords
peripheral interface
physical address
peripheral
processor
translation table
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
CN201980022993.3A
Other languages
English (en)
Other versions
CN111971661A (zh
Inventor
J·布雷霍夫
V·拉韦恩德朗
O·豪根
B·K·比格洛
K·帕雅尼
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.)
Qualcomm Inc
Original Assignee
Qualcomm Inc
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 Qualcomm Inc filed Critical Qualcomm Inc
Publication of CN111971661A publication Critical patent/CN111971661A/zh
Application granted granted Critical
Publication of CN111971661B publication Critical patent/CN111971661B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/604Tools and structures for managing or administering access control systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/82Protecting input, output or interconnection devices
    • G06F21/85Protecting input, output or interconnection devices interconnection devices, e.g. bus-connected or in-line devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1081Address translation for peripheral access to main memory, e.g. direct memory access [DMA]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1027Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
    • G06F12/1036Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] for multiple virtual address spaces, e.g. segmentation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1416Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights
    • G06F12/1425Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being physical, e.g. cell, word, block
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1458Protection against unauthorised use of memory or access to memory by checking the subject access rights
    • G06F12/1491Protection against unauthorised use of memory or access to memory by checking the subject access rights in a hierarchical protection system, e.g. privilege levels, memory rings
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/10Program control for peripheral devices
    • G06F13/102Program control for peripheral devices where the programme performs an interfacing function, e.g. device driver
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45554Instruction set architectures of guest OS and hypervisor or native processor differ, e.g. Bochs or VirtualPC on PowerPC MacOS
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45579I/O management, e.g. providing access to device drivers or storage
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45583Memory management, e.g. access or allocation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1052Security improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/15Use in a specific computing environment
    • G06F2212/151Emulated environment, e.g. virtual machine
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/65Details of virtual memory and virtual address translation
    • G06F2212/651Multi-level translation tables

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Automation & Control Theory (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Advance Control (AREA)
  • Stored Programmes (AREA)
  • Telephone Function (AREA)

Abstract

各个实施例包括用于在计算设备上实现安全外围接口禁用的方法和设备。各个实施例可以包括:接收用于禁用与计算设备的外围设备相关联的外围接口的触发;识别外围接口的物理地址;以及安全地移除外围接口的中间物理地址到外围接口的物理地址的映射。

Description

安全接口禁用
相关申请
本申请要求享受于2018年4月8日递交的、名称为“Secure InterfaceDisablement”的美国临时专利申请序列No.62/654,473的优先权权益,据此将该申请的全部内容通过引用的方式并入本文以用于所有目的。
背景技术
诸如相机和麦克风之类的移动设备外围设备的恶意使用可能导致来自政府或商业设施的敏感数据丢失。因此,一些安全的政府和商业设施不允许用户将其移动设备带入内部。其它设施需要安装移动设备管理(MDM)软件,使得企业可以控制和监测设备的操作。
发明内容
各个实施例可以包括用于在计算设备上的安全外围接口禁用的装置和方法。各个实施例可以包括:接收用于禁用与所述计算设备的外围设备相关联的外围接口的触发;识别所述外围接口的物理地址;以及移除所述外围接口的中间物理地址到所述外围接口的所述物理地址的映射。
一些实施例还包括:接收用于在阶段2存储器转换表中将所述外围接口的所述中间物理地址和所述外围接口的所述物理地址取消映射的请求。在一些实施例中,移除所述外围接口的中间物理地址到所述外围接口的所述物理地址的映射可以包括:响应于所述请求,从所述阶段2存储器转换表中移除所述外围接口的所述中间物理地址到所述外围接口的所述物理地址的所述映射。
一些实施例还可以包括:接收用于访问所述外围接口的请求;针对所述外围接口的所述中间物理地址到所述外围接口的所述物理地址的所述映射来检查阶段2存储器转换表;确定在所述阶段2存储器转换表中未找到所述外围接口的所述中间物理地址到所述外围接口的所述物理地址的所述映射;以及响应于确定在所述阶段2存储器转换表中未找到所述外围接口的所述中间物理地址到所述外围接口的所述物理地址的所述映射,发出存储器异常。
一些实施例还可以包括:接收用于启用与所述计算设备的所述外围设备相关联的所述外围接口的触发;接收用于在所述阶段2存储器转换表中映射所述外围接口的所述中间物理地址和所述外围接口的所述物理地址的请求;以及响应于所述请求,在所述阶段2存储器转换表中添加所述外围接口的所述中间物理地址到所述外围接口的所述物理地址的所述映射。
一些实施例还可以包括:确定所述外围接口的状态是否为锁定。在一些实施例中,在所述阶段2存储器转换表中添加所述外围接口的所述中间物理地址到所述外围接口的所述物理地址的所述映射可以包括:响应于确定所述外围接口的所述状态为锁定,在所述阶段2存储器转换表中添加所述外围接口的所述中间物理地址到所述外围接口的所述物理地址的所述映射。一些实施例还可以包括:响应于确定所述外围接口的状态为锁定,将所述外围接口的所述状态设置为解锁。
一些实施例还可以包括:向在第一虚拟机上执行的高级操作系统发信号通知关闭和卸载所述外围设备的外围设备驱动程序;以及在不包括所述外围设备的所述外围设备驱动程序的第二虚拟机上执行受限高级操作系统。
一些实施例还可以包括:从与高级操作系统正在其中执行的执行环境可以不同的可信执行环境接收用于在阶段2存储器转换表中将所述外围接口的所述中间物理地址取消映射或映射到所述外围接口的所述物理地址的请求。
一些实施例还可以包括:由在执行环境中执行的高级操作系统经由通过可信执行环境来路由对所述外围设备驱动程序的访问请求,来访问在所述可信执行环境中执行的所述外围设备的外围设备驱动程序。
一些实施例还可以包括:由在第二虚拟机上执行的高级操作系统经由通过第一虚拟机来路由对所述外围设备驱动程序的访问请求,来访问在所述第一虚拟机中执行的所述外围设备的外围设备驱动程序。
各个实施例包括计算设备,其具有存储器、外围接口以及被配置为执行上文概述的方法中的任何方法的操作的处理器。各个实施例包括计算设备,其具有用于执行上文概述的方法中的任何方法的功能的单元。各个实施例包括在其上存储有处理器可执行指令的非暂时性处理器可读存储介质,处理器可执行指令被配置为使得处理器执行上文概述的方法中的任何方法的操作。
附图说明
被并入本文并且构成本说明书的部分的附图示出了各个实施例的示例方面,并且连同上文给出的总体描述和下文给出的详细描述一起用于解释权利要求的特征。
图1是示出适于实现各个实施例的示例计算设备的组件框图。
图2是示出适于实现各个实施例的示例计算设备的组件框图。
图3是示出适于实现各个实施例的示例多核处理器的组件框图。
图4是示出适于实现各个实施例的用于安全外围接口禁用的计算设备的示例配置的组件框图。
图5是示出适于实现各个实施例的用于安全外围接口禁用的计算设备的示例配置的组件框图和过程流程图。
图6是示出适于实现各个实施例的用于安全外围接口禁用的计算设备的示例配置的组件框图和过程流程图。
图7是示出适于实现各个实施例的用于安全外围接口禁用的计算设备的示例配置的组件框图和过程流程图。
图8是示出适于实现各个实施例的安全外围接口禁用的组件框图和信号流程图。
图9A和9B是示出根据各个实施例的用于安全外围接口禁用的方法的过程流程图。
图10是示出根据各个实施例的用于处理针对被禁用的外围接口的请求的方法的过程流程图。
图11A和11B是示出根据各个实施例的用于安全外围接口启用的方法的过程流程图。
图12是示出适于与各个实施例一起使用的示例无线通信设备的组件框图。
图13是示出适于与各个实施例一起使用的示例计算设备的组件框图。
图14是示出适于与各个实施例一起使用的示例服务器的组件框图。
具体实施方式
将参考附图来详细地描述各个实施例。在可能的情况下,将贯穿附图使用相同的附图标记来指代相同或相似的部分。对特定示例和实现方式的引用是出于说明性目的,而并不旨在限制权利要求的范围。
各个实施例可以包括用于安全禁用和重新启用计算设备上的外围接口以禁用/启用对各种外围设备的访问的方法以及实现这样的方法的计算设备。各个实施例可以包括这样的方法、以及实现这样的方法的计算设备以禁用无法被软件或用户阻止的外围接口。禁用外围接口对于保护个人隐私以及敏感的政府和商业设施是有用的。禁用外围接口对于安全目的是有用的,例如减少车辆中的分散注意力的驾驶以及对医疗设施中的医疗设备的干扰。禁用外围接口对于防止在电影的演示、表演或放映期间的扰乱是有用的。禁用外围接口对于防止用户使用计算设备的外围设备是有用的。禁用外围接口对于防止恶意软件对计算设备的外围设备的使用是有用的。例如,禁用外围接口对于防止在未经用户许可的情况下恶意软件对外围设备的使用是有用的。禁用外围接口对于防止恶意软件通过击败移动设备管理(MDM)软件而对外围设备的使用是有用的。禁用外围接口对于针对操作管理维护(OAM)场景而远程监测增强型机器类型通信(eMTC)设备和物联网(IoT)设备是有用的。
对外围接口的禁用可以关于被禁用的外围接口选择性地实现,并且可以在被禁用的外围接口不可用时允许对被启用的外围接口的使用。例如,当用于相机光传感器的外围接口可以被禁用时,用于无线电发射机的外围接口可以保持启用。在这样的示例中,计算设备的用户能够使用计算设备的通信功能,同时被阻止使用计算设备的视觉图像捕获功能。这样,对外围接口的禁用可以被配置为既提供对外围接口的禁用的益处,同时仍然为计算设备的用户提供使用计算设备的某些功能的便利性。
相比于现有的MDM策略和软件,本文描述的用于禁用外围接口的各种实施例方法提供了技术优势。根据各个实施例的对外围接口的禁用无法被计算设备上的恶意软件克服。对外围接口的禁用无法被计算设备的用户克服。根据各个实施例的对外围接口的禁用可以允许用户维持对计算设备的拥有。根据各个实施例的对外围接口的禁用可以允许用户使用计算设备的用于被启用的外围接口的功能,同时防止用户使用计算设备的用于被禁用的外围接口的功能。根据各个实施例的对外围接口的禁用可以不依赖于计算设备的用户来遵守对外围接口的禁用。
各个实施例可以在各种计算设备中使用,但是在移动的无线通信设备中可能是特别有用的,并且因此可以在其中期望禁用外围设备的情形下引入。本文使用术语“计算设备”来指代各种计算设备中的任何一种,包括智能电话、移动计算设备(例如,平板设备、膝上型计算机、可穿戴设备等)、基于蜂窝的无线热点、IoT设备、eMTC设备、台式计算机、工作站、服务器、机电系统的嵌入式系统(例如,车辆、工业和农业机械、医疗设备、控制系统等)等等。无线通信设备通常也被称为用户设备(UE)、移动设备和蜂窝设备。计算设备可以经由包括以下各项的各种有线和/或无线通信网络来接收和/或发送通信:广域网(例如,移动通信网络)、局域网(例如,Wi-Fi、蓝牙等)、地理定位网络(例如,全球定位系统(“GPS”))、个域网(例如,无线USB、蓝牙、ZigBee等)、近场通信等。
本文使用术语“外围设备”来指代计算设备的各种传感器、执行器和/或通信组件中的任何一者。外围设备的非限制性示例包括音频接收器和/或发射器、射频接收机和/或发射机、光频接收器和/或发射器、电磁场接收器和/或发射器、电传感器,运动传感器、定向传感器、振动传感器、温度传感器、压力传感器等。外围设备可以整合到计算设备中和/或可附接到计算设备或者可从计算设备拆卸。
本文使用术语“外围接口”来指代计算设备用来与外围设备进行交互以及控制外围设备的各种资源中的任何一种,包括外围设备驱动程序、外围设备存储器、外围设备控制器/微控制器、外围设备存储器寄存器、用于控制外围设备的存储器寄存器等。外围接口可以与外围设备的功能中的任何一种或组合相关联。为了简单起见并且易于解释,本文的实施例是依据禁用和启用外围设备和外围接口来描述的。在各个实施例中,禁用和启用外围设备和外围接口可以涉及禁用和启用外围设备的功能中的任何一种或组合。换句话说,外围设备可以被完全地或部分地禁用和启用。此外,禁用和启用外围设备可以仅通过禁用对相关联的外围接口的访问来完成,而无需对外围设备或外围接口进行实质性改变。
术语“输入”和“触发”在本文中可互换地使用,以指代被配置为使得计算设备禁用和/或启用外围接口的多种信号中的一种。在各个实施例中,触发可以包括通过任何手段到计算设备的任何输入,例如基于GPS、蜂窝和/或Wi-Fi数据的位置;蓝牙信标;近场通信信号,例如密钥卡(fob)或钥匙卡的轻扫或轻击;可视码扫描,例如条形码或快速响应(QR)码;可信用户的用户输入,例如物理按钮或触摸屏交互;经由Wi-F直连、近场通信、蓝牙和/或C-V2X指示的到设备的接近度;多因素认证;在使用虚拟现实显示器时的虹膜检测;来自远程连接的计算设备的信号;等等。在各个实施例中,触发可以包括缺乏连续或重复的输入。
图1示出了适于实现各个实施例的计算设备100的组件。本文描述的各个实施例可以在计算设备100中实现,计算设备100在各种通信系统(例如,任何数量的移动网络(诸如移动电话网络))内操作。在各个实施例中,计算设备100可以支持对移动电话网络的任何数量的订制。为了支持对多个移动电话网络的订制,在一些实施例中,计算设备100可以是多SIM通信设备。
计算设备100可以经由到移动电话网络的基站的蜂窝连接来与移动电话网络进行通信。可以通过使用诸如以下各项的各种通信技术的双向无线通信链路进行蜂窝连接:长期演进(LTE)、第五代(5G)、第四代(4G)、第三代(3G)、码分多址(CDMA)、时分同步码分多址(TD-SCDMA)、宽带码分多址(WCDMA)、全球移动通信系统(GSM)以及其它移动电话通信技术。其它连接可以包括各种其它无线连接,包括:WLAN,诸如基于电气与电子工程师协会(IEEE)802.11标准的Wi-Fi;以及无线定位服务,诸如全球定位系统(GPS);WPAN,诸如无线USB、蓝牙和ZigBee;和/或近场通信。
计算设备100可以包括可以接收身份模块的任何数量的用户身份模块(SIM)接口。计算设备100可以包括用户身份模块(SIM)接口102,其可以接收与对移动电话网络的订制相关联的身份模块SIM 104。在各个实施例中,计算设备100可以是包括第二(或更多个)SIM接口(未示出)的多订制计算设备,第二(或更多个)SIM接口可以接收与对第二移动电话网络的第二订制相关联的第二身份模块SIM(未示出)。
各个实施例中的SIM 104可以是通用集成电路卡(UICC),其被配置有SIM和/或通用SIM(USIM)应用,其实现对例如GSM和/或通用移动电信系统(UMTS)网络的接入。UICC还可以提供对电话本和其它应用的存储。替代地,在CDMA网络中,SIM可以是卡上的UICC可移动用户身份模块(R-UIM)或CDMA用户身份模块(CSIM)。
每个SIM 104可以具有中央处理器(CPU)、只读存储器(ROM)、随机存取存储器(RAM)、电可擦除可编程只读存储器(EEPROM)和输入/输出(I/O)电路。在各个实施例中使用的SIM可以包含用户账户信息、国际移动用户身份(IMSI)、一组SIM方法应用工具包(SAT)命令和用于电话本联系人的存储空间。SIM还可以存储移动国家代码(MCC)、移动网络代码(MNC)和家庭公共陆地移动网络(HPLMN)代码以指示SIM卡网络运营商提供商。集成电路卡身份(ICCID)SIM序列号可以被印在SIM上以用于标识。
每个计算设备100可以包括至少一个控制器,诸如通用处理器106(例如,中央处理单元(“CPU”)),其可以耦合到编码器/解码器(CODEC)108。CODEC 108可以耦合到扬声器110和麦克风112。通用处理器106也可以耦合到至少一个存储器114。存储器114可以是存储处理器可执行指令的非暂时性有形计算机可读存储介质。例如,指令可以包括通过相应的基带射频(RF)资源链或RF链来路由与订制有关的通信数据。
存储器114可以存储操作系统(OS)以及用户应用软件和可执行指令,包括被配置为使得处理器执行各个实施例的操作的指令。存储器114还可以存储应用数据,诸如阵列数据结构。
通用处理器106和存储器114均可以耦合到至少一个基带调制解调器处理器116。在各个实施例中,计算设备100中的SIM 104可以与基带RF资源链相关联。在各个实施例中,多个SIM 104可以与由两个或更多个SIM 104共享的公共基带RF资源链相关联,或者SIM104可以与专用基带RF资源链相关联。每个基带RF资源链可以包括用于执行用于在SIM 104上的通信的基带/调制解调器功能的基带调制解调器处理器116、以及一个或多个放大器和无线电单元(本文中通常被称为RF资源118)。在一些实施例中,基带RF资源链可以共享基带调制解调器处理器116(即,执行用于计算设备上的所有SIM 104的基带/调制解调器功能的单个设备)进行交互。替代地,每个基带RF资源链可以包括在物理上或在逻辑上单独的基带处理器。
在一些实施例中,基带调制解调器处理器116可以是能够管理SIM 104或订制的协议栈并且实现共存管理器软件的集成芯片。通过在该集成基带调制解调器处理器116上实现调制解调器软件、订制协议堆栈和共存管理器软件,可以在该集成基带调制解调器处理器116上使用基于线程的指令,以在实现用于共存问题的干扰减轻技术的软件与实现接收(Rx)和发送(Tx)操作的软件之间传送指令。
RF资源118可以是执行用于计算设备100的相关联的SIM 104的发送/接收功能的通信电路(circuit)或收发机。RF资源118可以是包括单独的发送和接收电路系统(circuitry)的通信电路,或者可以包括将发射机功能和接收机功能组合的收发机。RF资源118可以被配置为支持根据不同的无线通信协议进行操作的多种无线电接入技术/无线网络。RF资源118可以包括放大器、数模转换器、模数转换器、滤波器、压控振荡器等的不同集合或者提供到其的连接。多个天线120和/或接收块可以耦合到RF资源118以利用天线和接收机/发射机频率和协议(例如,LTE、Wi-Fi、蓝牙、近场通信等)的各种组合来促进多模通信。RF资源118也可以耦合到基带调制解调器处理器116。
在一些实施例中,通用处理器106、存储器114、基带处理器116和RF资源118可以作为片上系统(SoC)122被包括在计算设备100中。在其它实施例中,SIM 104和其对应的接口102可以在片上系统122的外部。此外,可以用作输入和输出设备的各种外围设备可以耦合到片上系统122上的组件,诸如接口或控制器/微控制器106、108、116、118、130。适于在计算设备100中使用的示例用户外围设备可以包括但不限于扬声器110、麦克风112、天线120、物理按钮124、触摸屏显示器126以及本文描述的其它外围设备128(例如,相机)。
在一些实施例中,计算设备100可以是具有多于或少于两个RF链的单技术或多技术设备。此外,各个实施例可以在单RF链或多RF链计算设备(其具有比RF链的数量要少的SIM卡)中实现,包括不使用任何物理SIM卡而是依赖于虚拟SIM应用的设备。在各个实施例中,具有公共基带RF资源链的计算设备100能够在单一无线电LTE模式下操作以允许多种无线电接入技术共享公共基带RF资源链。
图2示出了具有适于实现一个实施例的多个外围设备组件的计算设备(例如,图1中的计算设备100)。参考图1和图2,SoC 230(例如,图1中的SoC 122)可以包括如上所述的各种组件。一些这样的组件和额外的组件可以是计算设备100的子系统。SoC 230可以包括各种通信组件,其被配置为通信地连接SoC 230的可以发送、接收和共享数据的组件。通信组件可以包括系统集线器200、协议转换器208和系统片上网络(NoC)224。通信组件可以促进子系统组件(例如,CPU集群206中的处理器和各种外围设备子系统(例如,相机、视频、显示、音频和无线通信子系统218、220、222、232、234))之间的通信,并且还可以包括其它专用处理器(例如,图形处理器单元(GPU)210、调制解调器数字信号处理器(DSP)212、应用处理器单元(APU)214和其它硬件加速器)。通信组件可以促进外围设备子系统218、220、222、232、234和CPU集群206、210、212、214与其它组件(例如,存储器设备,其包括系统高速缓存202、随机存取存储器(RAM)228以及在CPU集群206、210、212、214中包括的各种存储器(例如,CPU集群206、210、212、214的高速缓存))之间的通信。
各种存储器控制设备(例如,系统高速缓存控制器204、存储器接口216和存储器控制器226)可以被配置为控制外围设备子系统218、220、222、232、234和CPU集群206、210、212、214对各种存储器的访问,并且实现外围设备子系统218、220、222、232、234和CPU集群206、210、212、214可以请求的针对各种存储器的操作。
外围设备子系统218、220、222、232、234还可以包括各种控制器、传感器、接收机、发射机以及专用存储器(例如,高速缓存和存储器寄存器),其被配置用于控制和实现子系统218、220、222、232、234的外围设备的功能。
本文中对在图2中示出的SoC 230和其各种组件的描述仅意味着示例,而绝不是限制性的。所示的示例SoC 230的若干组件可以被可变地配置、组合和分开。若干组件可以以更多或更少的数量来包括,并且可以以不同的方式位于SoC 230内并且被连接,或者可以与SoC 230分开。类似地,许多其它组件(例如,其它存储器、处理器、外围设备子系统、接口和控制器)可以包括在SoC 230中并且与系统高速缓存控制器204进行通信以便访问系统高速缓存202。
图3示出了适于实现一个实施例的计算设备(例如,图1中的计算设备100)的组件。参考图1-2,处理器350(例如,在图1-2中的通用处理器106、基带调制解调器处理器116、控制器/微控制器108、118、130、CPU集群206中的处理器、GPU 210、DSP 212、APU 214、以及外围设备子系统218、220、222、232、234的处理器)可以包括多种处理器类型,其包括例如CPU和各种硬件加速器(例如,GPU、DSP、APU、外围设备子系统处理器、控制器/微控制器等)。处理器350还可以包括定制硬件加速器,其可以包括被配置为实现专用功能集合的定制处理硬件和/或通用硬件。处理器350可以包括任何数量的处理器核300、301、302、303。具有多个处理器核300、301、302、303的处理器350可以被称为多核处理器。
处理器350可以具有多个同构或异构处理器核300、301、302、303。同构处理器可以包括多个同构处理器核。处理器核300、301、302、303可以是同构的,因为处理器350的处理器核300、301、302、303可以被配置用于相同的目的并且具有相同或相似的性能特性。例如,处理器350可以是通用处理器,并且处理器核300、301、302、303可以是同构通用处理器核。处理器350可以是GPU或DSP,并且处理器核300、301、302、303可以分别是同构的图形处理器核或数字信号处理器核。处理器350可以是具有同构处理器核300、301、302、303的定制硬件加速器。
异构处理器可以包括多个异构处理器核。处理器核300、301、302、303可以是异构的,因为处理器350的处理器核300、301、302、303可以被配置用于不同的目的和/或具有不同的性能特性。这样的异构处理器核的异构性可以包括不同的指令集架构、流水线、操作频率等。这样的异构处理器核的示例可以包括被称为“big.LITTLE”架构的示例,其中较慢的低功耗处理器核可以与更强大且高功耗的处理器核耦合。在类似的实施例中,SoC(例如,图3的SoC)可以包括任何数量的同构或异构处理器350。在各个实施例中,并非所有的处理器核300、301、302、303都需要是异构处理器核,因为异构处理器可以包括包含至少一个异构处理器核的处理器核300、301、302、303的任何组合。
可以为处理器350的处理器核300、301、302、303中的每一者指定专用处理器核高速缓存(PPCC)存储器310、312、314、316,其可以专用于由指定处理器核300、301、302、303进行的读和/或写访问。专用处理器核高速缓存存储器310、312、314、316可以存储数据和/或指令,并且使得所存储的数据和/或指令可用于专用处理器核高速缓存存储器310、312、314、316专用于其的处理器核300、301、302、303,以供处理器核300、301、302、303执行。专用处理器核高速缓存存储器310、312、314、316可以包括易失性存储器。
可以为处理器350的各组处理器核300、301、302、303指定共享处理器核高速缓存(SPCC)存储器320、322,其可以专用于由指定的一组处理器核300、301、302、303进行的读和/或写访问。共享处理器核高速缓存存储器320、322可以存储数据和/或指令,并且使得所存储的数据和/或指令可用于共享处理器核高速缓存存储器320、322专用于其的该组处理器核300、301、302、303,以供该指定组中的处理器核300、301、302、303执行。共享处理器核高速缓存存储器320、322可以包括易失性存储器。
处理器350可以包括处理器共享高速缓存330,其可以专用于由处理器350的处理器核300、301、302、303进行的读和/或写访问。处理器共享高速缓存330可以存储数据和和/或指令,并且使得所存储的数据和/或指令可用于处理器核300、301、302、303,以供处理器核300、301、302、303执行。处理器共享高速缓存330还可以充当用于向处理器350输入和/或从处理器350输出的数据和/或指令的缓冲器,处理器共享高速缓存330可以包括易失性存储器。
多个处理器350可以访问共享系统高速缓存340(例如,图2中的系统高速缓存202),其可以专用于由多个处理器350的处理器核300、301、302、303进行的读和/或写访问。共享系统高速缓存340可以存储数据和/指令或,并且使得所存储的数据和/或指令可用于处理器核300、301、302、303,以供处理器核300、301、302、303执行。共享系统高速缓存340还可以充当用于向多个处理器350输入和/或从多个处理器350输出的数据和/或指令的缓冲器。共享系统高速缓存340可以包括易失性存储器。
在图3中所示的示例中,处理器350包括四个处理器核300、301、302、303(即,处理器核0、处理器核1、处理器核2和处理器核3)。在该示例中,为每个处理器核300、301、302、303指定为相应的专用处理器核高速缓存存储器310、312、314、316(即,处理器核0和专用处理器核高速缓存存储器0、处理器核1和专用处理器核高速缓存存储器1、处理器核2和专用处理器核高速缓存存储器2、以及处理器核3和专用处理器核高速缓存存储器3)。处理器核300、301、302、303可以被分组,并且可以为每一组指定为共享处理器核高速缓存存储器320、322(即,一组处理器核0和处理器核2以及共享处理器核高速缓存存储器0、以及一组处理器核1和处理器核3以及共享处理器核高速缓存存储器1)。为了便于解释,本文的示例可以指代在图3中所示的四个处理器核300、301、302、303、四个专用处理器核高速缓存存储器310、312、314、316、两组处理器核300、301、302、303、以及共享处理器核高速缓存存储器320、322。然而,在图3中示出并且本文描述的四个处理器核300、301、302、303、四个专用处理器核高速缓存存储器310、312、314、316、两组处理器核300、301、302、303以及共享处理器核高速缓存存储器320、322仅是作为示例提供的,而绝不意味着将各个实施例限制为具有四个指定的专用处理器核高速缓存存储器和两个指定的共享处理器核高速缓存存储器320、322的四核处理器系统。计算设备100、SoC或处理器350可以单独地或组合地包括少于或多于本文示出并且描述的四个处理器核300、301、302、303和专用处理器核高速缓存存储器310、312、314、316以及两个共享处理器核高速缓存存储器320、322。
为了便于引用,术语“硬件加速器”、“定制硬件加速器”、“多核处理器”、“处理器”、“处理器核”、“控制器”和“微控制器”在本文中可以互换地使用。本文对所示出的计算设备和其各种组件的描述仅意味着是示例性的,而绝不是限制性的。所示出的示例计算设备的若干组件可以被可变地配置、组合和分开。若干组件可以以更多或更少的数量来包括,并且可以以不同的方式位于SoC内并且被连接,或者可以与SoC分开。
参考图4-11描述了各个实施例,以指代参考图1-3描述的示例硬件组件。以下对硬件组件的组合的引用并不旨在关于可以作为用于实现本文描述的实施例的硬件组件而包括的处理器、硬件加速器、控制器和/或存储器的数量或类型进行限制。可以使用组件的任何组合来实现各个实施例。
图4示出了适于实现各个实施例的用于安全外围接口禁用的计算设备400(例如,图1中的计算设备100)的示例配置。可以使用任何数量或组合的处理器(例如,在图1-3中的通用处理器106、基带调制解调器处理器116、控制器/微控制器108、118、130、CPU集群206中的处理器、GPU 210、DSP 212、APU 214、外围设备子系统218、220、222、232、234的处理器、处理器核300、301、302、303以及处理器350)来实现计算设备400的配置。可以使用任何数量或组合的存储器(例如,在图1-3中的存储器114、系统高速缓存202、随机存取存储器228、专用处理器核高速缓存存储器310、312、314、316、共享处理器核高速缓存存储器320、322、以及共享系统高速缓存340)来实现计算设备400的配置。
计算设备400的配置可以包括各种执行环境。执行环境可以包括富执行环境402,其也被称为正常执行环境。执行环境可以包括可信执行环境404(例如,ARM TrustZone执行环境),其也被称为安全执行环境。富执行环境402可以被配置为执行多个虚拟机414、416(例如,虚拟机1和虚拟机2)。每个虚拟机414、416可以被配置有用于访问计算设备的资源以及执行不同软件的不同许可。虚拟机414可以被配置为执行各种软件模块。在一些实施例中,软件模块可以包括应用424。在一些实施例中,软件模块可以包括高级操作系统426。高级操作系统426的非限制性示例包括Windows操作系统、Android操作系统、Chrome操作系统、基于Linux的操作系统和/或iOS操作系统。在一些实施例中,软件模块可以包括外围设备驱动程序428。虚拟机416可以被配置为执行各种软件模块。在一些实施例中,这样的软件模块可以包括安全接口禁用管理器430。在一些实施例中,这样的软件模块可以包括多传感器硬件抽象层432。在一些实施例中,这样的软件模块可以包括上下文硬件抽象层集线器438。在一些实施例中,这样的软件模块可以包括受限高级操作系统434。受限高级操作系统434的非限制性示例包括Windows操作系统、Android操作系统、Chrome操作系统、基于Linux的操作系统、和/或在受限配置下的iOS操作系统。在一些实施例中,这样的软件模块可以可选地包括受限外围设备驱动程序436。可信执行环境404可以被配置为执行安全应用440。
计算设备400的配置还可以包括管理程序420,其被配置为管理来自虚拟机414、416的执行的存储器访问请求。计算设备还可以包括安全监测器422,其被配置为控制对可信执行环境404的访问。
计算设备400的配置的不同组件可以被配置为在各种异常级别406、408、410、412内执行,这些异常级别控制对在每个异常级别406、408、410、412内执行的组件的执行特权。执行特权的异常级别406、408、410、412(从最小数量到最大数量)可以包括异常级别0、异常级别1、异常级别2和异常级别3。在各个实施例中,在异常级别410(异常级别2)下执行的管理程序420可以具有与在执行级别406(执行级别0)下执行的软件模块相比更大的执行特权。在一些实施例中,在执行级别408下执行的软件模块可以包括应用424。在一些实施例中,在执行级别408下执行的软件模块可以包括安全应用440。在一些实施例中,在异常级别410下执行的管理程序420(异常级别2)可以具有与在执行级别408(执行级别1)下执行的软件模块相比更大的执行特权。在一些实施例中,在执行级别408下执行的软件模块可以包括高级操作系统426。在一些实施例中,在执行级别408下执行的软件模块可以包括外围设备驱动程序428。在一些实施例中,在执行级别408下执行的软件模块可以包括受限高级操作系统434。在一些实施例中,在执行级别408下执行的软件模块可以包括受限外围设备驱动程序436。管理程序420可以具有用于改变阶段2存储器转换表(未示出)的特权,阶段2存储器转换表被配置为将来自虚拟机414、416的执行的存储器访问请求的中间物理地址转换为存储器中的物理地址。相反,在执行级别406下执行的应用424、安全应用440、高级操作系统426、外围设备驱动程序428、受限高级操作系统434和受限外围设备驱动程序436可以不具有用于改变阶段2存储器转换表的特权。
计算设备400的配置还可以包括外围设备子系统442。在一些实施例中,外围设备子系统442可以包括在图2中所示的外围设备子系统218、220、222、232、234的任何组合。外围设备子系统442可以接收被配置为触发对任何数量的外围接口的禁用的输入。外围设备子系统442可以将对输入的指示发送给在虚拟机416(虚拟机2)中执行的安全接口禁用管理器430。例如,外围设备子系统442可以经由上下文硬件抽象层集线器438和多传感器硬件抽象层432将对输入的指示发送给安全接口禁用管理器430。安全接口禁用管理器430可以解释对输入的指示并且识别外围接口以禁用其相关联的外围设备。安全接口禁用管理器430可以向在虚拟机414(虚拟机1)中执行的高级操作系统426发信号通知关闭外围设备驱动程序428。在一些实施例中,从安全接口禁用管理器430到高级操作系统426的信号还可以向高级操作系统426发信号通知卸载外围设备驱动程序428。安全接口禁用管理器430也可以向管理程序420发信号通知取消映射与输入有关的外围设备驱动程序。在一些实施例中,与输入有关的外围设备驱动程序可以包括对于执行安全接口禁用管理器430不是必要的所有设备驱动程序。在一些实施例中,与输入有关的外围设备驱动程序可以包括对于执行安全接口禁用管理器430不是必要的设备驱动程序的任何子集。管理程序可以从阶段2存储器转换表中移除用于中间物理地址到相关设备驱动程序的物理地址的映射。在一些实施例中,受限高级操作系统434可以是在虚拟机416(虚拟机2)中执行的,并且可以可选地执行对于执行安全接口禁用管理器430不是必要的受限外围设备驱动程序436。在一些实施例中,在虚拟机414(虚拟机1)中执行的高级操作系统426可以通过经由虚拟机416(虚拟机2)来路由对受限外围设备驱动程序436的访问来访问虚拟化外围设备驱动程序。虚拟机416(虚拟机2)可以是无头的(headless),使得用户无法经由用户界面与在虚拟机416(虚拟机2)中执行的项目进行交互。
作为非限制性示例,外围设备子系统442可以是蓝牙SoC。由蓝牙SoC接收的输入可以是在如下的位置处发送的蓝牙信标:针对该位置,企业期望禁用计算设备的所有外围设备。安全接口禁用管理器430可以向在虚拟机414(虚拟机1)中执行的高级操作系统426发信号通知关闭和卸载所有的外围设备驱动程序428。安全接口禁用管理器430还可以向管理程序420发信号通知取消映射对于执行安全接口禁用管理器430不是必要的所有设备驱动程序。
在各个实施例中,外围设备子系统442可以接收输入。在一些实施例中,输入可以被配置为触发对任何数量的外围接口的启用。在一些实施例中,输入可以被配置为触发对任何数量的外围接口的禁用。在一些实施例中,外围设备子系统442可以停止接收输入。在各个实施例中,外围设备子系统442可以将对输入的指示发送给在虚拟机416(虚拟机2)中执行的安全接口禁用管理器430。例如,外围设备子系统442可以经由上下文硬件抽象层集线器438和多传感器硬件抽象层432将对输入的指示发送给安全接口禁用管理器430。在一些实施例中,外围设备子系统442可以停止将对输入的指示发送给在虚拟机416(虚拟机2)中执行的安全接口禁用管理器430。
安全接口禁用管理器430可以解释对输入的指示并且识别要启用的外围接口,以便启用相关联的外围设备。类似地,安全接口禁用管理器430可以解释对输入的指示的缺乏,并且识别要启用的外围接口以便启用相关联的外围设备。安全接口禁用管理器430可以发信号通知在虚拟机414(虚拟机1)中执行的高级操作系统426,并且高级操作系统426可以加载外围设备驱动程序428。安全接口禁用管理器430还可以向管理程序420发信号通知映射用于与输入有关的外围设备驱动程序的存储器。在一些实施例中,与输入有关的外围设备驱动程序可以包括对于执行安全接口禁用管理器430不是必要的所有设备驱动程序。在一些实施例中,与输入有关的外围设备驱动程序包括对于执行安全接口禁用管理器430不是必要的设备驱动程序的任何子集。管理程序可以将用于中间物理地址到相关设备驱动程序的物理地址的映射添加到阶段2存储器转换表中。
图5示出了适于实现各个实施例的用于安全外围接口禁用的计算设备500(例如,图1中的计算设备100)的示例配置。可以使用任何数量或组合的处理器(例如,在图1-3中的通用处理器106、基带调制解调器处理器116、控制器/微控制器108、118、130、CPU集群206中的处理器、GPU 210、DSP 212、APU 214、外围设备子系统218、220、222、232、234的处理器、处理器核300、301、302、303以及处理器350)来实现计算设备500的配置。可以使用任何数量或组合的存储器(例如,在图1-3中的存储器114、系统高速缓存202、随机存取存储器228、专用处理器核高速缓存存储器310、312、314、316、共享处理器核高速缓存存储器320、322、以及共享系统高速缓存340)来实现计算设备500的配置。
在各个实施例中,计算设备500的配置可以在异常级别1(例如,图4中的异常级别408)处执行高级操作系统502。高级操作系统的非限制性示例包括Windows操作系统、Android操作系统、Chrome操作系统、基于Linux的操作系统和/或iOS操作系统。在各个实施例中,计算设备500的配置可以在异常级别0(例如,图4中的异常级别406)处执行应用502。在一些实施例中,计算设备500的配置可以执行高级操作系统和应用502两者。在一些实施例中,高级操作系统可以请求对外围设备508的访问。在各个实施例中,应用可以请求对外围设备508的访问。在各个实施例中,高级操作系统和应用两者都可以提出用于对外围设备508的访问的请求。用于对外围设备508的访问的请求可以包括用于与外围设备508相关联的外围接口的虚拟地址。
阶段1存储器转换表504可以被配置为存储用于虚拟地址到中间物理地址的映射。阶段1存储器转换表504可以由高级操作系统510控制。对存储器转换表504的控制可以允许高级操作系统识别用于外围接口的中间物理地址,该中间物理地址被映射到用于对外围设备508的访问的请求的用于该外围接口的虚拟地址。在一些实施例中,这可以经由存储器管理单元(未示出)来实现。
阶段2存储器转换表506可以被配置为存储用于中间物理地址到外围接口的物理地址(例如,存储器位置)的映射。在一些实施例中,存储器位置可以是用于存储器寄存器的。在一些实施例中,存储器位置可以是用于专用高速缓存的。在一些实施例中,存储器位置可以是用于存储器分区的。阶段2存储器转换表506可以由在异常级别2(例如,图4中的异常级别410)处执行的管理程序512控制。可以将用于外围接口的中间物理地址发送给管理程序,管理程序可以识别用于外围接口的物理地址,该物理地址被映射到用于对外围设备508的访问的请求的用于外围接口的中间物理地址。在一些实施例中,用于外围接口的物理地址可以允许高级操作系统访问外围设备508。在一些实施例中,用于外围接口的物理地址可以允许应用访问外围设备508。
在各个实施例中,在异常级别1处执行的高级操作系统不具有用于允许该高级操作系统修改阶段2存储器转换表的特权。在各个实施例中,在异常级别0处执行的应用不具有用于允许该应用修改阶段2存储器转换表的特权。在异常级别2处执行的管理程序可以具有用于允许管理程序修改阶段2存储器转换表的特权。可信执行环境514(也被称为安全执行环境)可以检测或接收用于禁用与外围设备508相关联的外围接口的触发。在一些实施例中,可信执行环境514可以包括ARM TrustZone实现方式。在一些实施例中,可信执行环境514可以包括安全虚拟机。
可信执行环境514可以向管理程序发送用于禁用外围接口的请求。作为响应,管理程序可以修改阶段2存储器转换表以移除用于外围接口的中间物理地址到用于外围接口的物理地址的映射。在一些实施例中,将拒绝高级操作系统对与被禁用的外围接口相关联的外围设备508的访问。在一些实施例中,将拒绝应用对与外围接口相关联的被禁用的外围设备508的访问。用于访问外围设备508的请求可以触发存储器异常,而不是访问外围设备508。
可信执行环境514可以检测或接收用于启用与外围设备508相关联的外围接口的触发。可信执行环境514可以向管理程序发送用于启用外围接口的请求。作为响应,管理程序可以修改阶段2存储器转换表,以添加用于外围接口的中间物理地址到用于外围接口的物理地址的映射。在一些实施例中,高级操作系统能够访问与外围接口相关联的被启用的外围设备508。在一些实施例中,应用能够访问与外围接口相关联的被启用的外围设备508。
图6示出了适于实现各个实施例的用于安全外围接口禁用的计算设备600(例如,图1中的计算设备100)的示例配置。可以使用任何数量或组合的处理器(例如,在图1-3中的通用处理器106、基带调制解调器处理器116、控制器/微控制器108、118、130、CPU集群206中的处理器、GPU 210、DSP 212、APU 214、外围设备子系统218、220、222、232、234的处理器、处理器核300、301、302、303以及处理器350)来实现计算设备600的配置。可以使用任何数量或组合的存储器(例如,在图1-3中的存储器114、系统高速缓存202、随机存取存储器228、专用处理器核高速缓存存储器310、312、314、316、共享处理器核高速缓存存储器320、322、以及共享系统高速缓存340)来实现计算设备600的配置。
计算设备600的配置可以在不可信虚拟机602中执行高级操作系统。计算设备600可以执行的高级操作系统的非限制性示例包括Windows操作系统、Android操作系统、Chrome操作系统、基于Linux的操作系统和/或iOS操作系统。不可信虚拟机602中的高级操作系统对外围接口608(例如,存储器中的位置)的访问可以使用任何组合或存储器管理单元,经由常规的多阶段存储器地址转换直接进行。
在一些实施例中,不可信虚拟机602中的高级操作系统可以使用与外围接口608相关联的虚拟地址(VA)来提出对外围接口608的外围接口访问请求。可以使用阶段1存储器转换表604来将虚拟地址转换为中间物理地址(IPA),阶段1存储器转换表604可以由不可信虚拟机602中的高级操作系统访问。在各个实施例中,可以由阶段1存储器管理单元来实现虚拟地址到中间物理地址的转换。阶段1存储器转换表604可以存储虚拟地址到中间物理地址的映射。可以使用阶段2存储器转换表606来将中间物理地址转换为物理地址(PA)。在各个实施例中,可以通过由在异常级别2处执行的管理程序618管理的阶段2存储器管理单元来实现中间物理地址到物理地址的转换。阶段2存储器转换表606可以不被不可信虚拟机602中的高级操作系统访问。阶段2存储器转换表606可以存储中间物理地址到物理地址的映射。可以使用物理地址来实现对外围接口608的访问。
在一些实施例中,可信虚拟机610中的高级操作系统可以使用与外围接口608相关联的虚拟地址(VA)来提出对外围接口608的外围接口访问请求。同样,高级操作系统的非限制性示例包括Windows操作系统、Android操作系统、Chrome操作系统、基于Linux的操作系统和/或iOS操作系统。可以使用阶段1存储器转换表614来将虚拟地址转换为中间物理地址(IPA),阶段1存储器转换表614可以由在可信虚拟机610中的高级操作系统访问。在各个实施例中,可以由阶段1存储器管理单元来实现虚拟地址到中间物理地址的转换。阶段1存储器转换表614可以存储虚拟地址到中间物理地址的映射。可以使用阶段2存储器转换表614来将中间物理地址转换为物理地址(PA)。在各个实施例中,中间物理地址到物理地址的转换可以由在异常级别2处执行的管理程序618管理的阶段2存储器管理单元来实现。阶段2存储器转换表614可以不被在不可信虚拟机602或可信虚拟机610中的高级操作系统访问。阶段2存储器转换表614可以存储中间物理地址到物理地址的映射。可以使用物理地址来实现对外围接口608的访问。
在一些实施例中,可以在异常级别2(例如,图4中的异常级别410)中执行管理程序618。在异常级别2中执行可以授予管理程序618修改阶段2存储器转换表606和614的特权。管理程序618可以接收用于禁用外围接口608的请求。例如,管理程序618可以接收用于取消映射与外围接口608相关联的存储器位置的请求。用于禁用外围接口608的请求可以是响应于触发来接收的,该触发使得在可信虚拟机610中的高级操作系统中执行的安全接口禁用管理器(例如,图4中的安全接口禁用管理器430)生成用于禁用对外围接口608的访问的请求。作为响应,管理程序618可以修改阶段2存储器转换表606,以移除用于外围接口608的中间物理地址到用于外围接口608的物理地址的映射。当被禁用时,可以拒绝在不可信虚拟机602中的高级操作系统对外围接口608的访问。用于访问外围接口608的请求可以触发存储器异常,而不是访问外围接口608。
管理程序618可以接收用于启用外围接口608的请求。例如,管理程序618可以接收用于映射与外围接口608相关联的存储器位置的请求。用于启用外围接口608的请求可以是响应于触发来接收的,该触发使得在可信虚拟机610中的高级操作系统中执行的安全接口禁用管理器生成用于启用对外围接口608的访问的请求。作为响应,管理程序618可以修改阶段2存储器转换表606以添加用于外围接口608的中间物理地址到用于外围接口608的物理地址的映射。当被启用时,在不可信虚拟机602中的高级操作系统能够访问外围接口608。
在一些实施例中,可以由在不可信虚拟机602中的高级操作系统生成触发,该触发使得在可信虚拟机610中的高级操作系统中执行的安全接口禁用管理器生成用于禁用或启用对外围接口608的访问的请求。在一些实施例中,可以由在不可信虚拟机602中的应用生成触发,该触发使得在可信虚拟机610中的高级操作系统中执行的安全接口禁用管理器生成用于禁用或启用对外围接口608的访问的请求。在一些实施例中,该触发可以由计算设备的另一组件来生成。例如,这样的触发可以包括由硬件响应于检测到和/或发信号通知给硬件的条件而生成的信号。作为另一示例,这样的触发可以包括由在不可信虚拟机602外部执行的软件响应于检测到和/或发信号通知给软件的条件而生成的信号。作为另一示例,这样的触发可以包括由固件响应于检测到和/或发信号通知给固件的条件而生成的信号。
图7示出了适于实现各个实施例的用于安全外围接口禁用的计算设备700(例如,图1中的计算设备100)的示例配置。可以使用任何数量或组合的处理器(例如,在图1-3中的通用处理器106、基带调制解调器处理器116、控制器/微控制器108、118、130、CPU集群206中的处理器、GPU 210、DSP 212、APU 214、外围设备子系统218、220、222、232、234的处理器、处理器核300、301、302、303以及处理器350)来实现计算设备700的配置。可以使用任何数量或组合的存储器(例如,在图1-3中的存储器114、系统高速缓存202、随机存取存储器228、专用处理器核高速缓存存储器310、312、314、316、共享处理器核高速缓存存储器320、322、以及共享系统高速缓存340)来实现计算设备700的配置。
计算设备700的配置可以包括用户空间702、内核704、安全用户界面706、可信执行环境708(也被称为安全执行环境)、安全文件系统710和管理程序712。在一些实施例中,可信执行环境708可以包括ARM TrustZone实现方式。在一些实施例中,可信执行环境708可以包括安全虚拟机。在各个实施例中,可以在用户空间702中执行高级操作系统。在各个实施例中,可以在内核704中执行高级操作系统。可以在内核704中执行的高级操作系统的非限制性示例包括Windows操作系统、Android操作系统、Chrome操作系统、基于Linux的操作系统和/或iOS操作系统。
在用户空间702中,计算设备700的配置可以接收用户输入714。在一些实施例中,用户输入714可以用于启用外围设备。在一些实施例中,用户输入714可以用于禁用外围设备。在各个实施例中,用户输入714可以包括与计算设备700的用户交互。在一些实施例中,与计算设备700的用户交互可以包括与触摸屏的用户交互。在一些实施例中,与计算设备700的用户交互可以包括与物理按钮的用户交互。在一些实施例中,与计算设备700的用户交互可以包括用户提供的可听码。在一些实施例中,与计算设备700的用户交互可以包括用户提供的图像。在一些实施例中,与计算设备700的用户交互可以包括用户提供的生物计量令牌。在各个实施例中,用户输入714可以是用于预定外围设备的信号。在各个实施例中,用户输入714可以是被配置为指示用户选择的外围设备的信号。在各个实施例中,用户输入714可以是被配置为与外围设备具有预设关联的信号。在各个实施例中,用户输入714可以不仅与单个外围设备相关联。在用户空间702中,高级操作系统可以禁用高级操作系统对与和用户输入714相关联的外围设备相关联的外围接口716的访问。类似地,在用户空间702中,高级操作系统可以启用高级操作系统对与和用户输入714相关联的外围设备相关联的外围接口716的访问。
高级操作系统还可以向内核704发信号通知对外围接口716的禁用。类似地,高级操作系统还可以向内核704发信号通知对外围接口716的启用。作为响应,内核704可以调用管理程序功能以重新映射存储器转换表718。管理程序712可以检查在安全文件系统710中存储的外围接口734的状态。在各个实施例中,外围接口730的被存储的状态可以为锁定,这指示外围接口被禁用。在各个实施例中,外围接口730的被存储的状态可以为解锁,这指示外围接口被启用。响应于在外围接口的锁定状态期间针对外围接口的禁用请求,管理程序712可以忽略禁用请求。响应于在外围接口的解锁状态期间针对外围接口的禁用请求,管理程序712可以重新映射阶段2存储器转换表736,以移除用于外围接口的中间物理地址到用于外围接口的物理地址的映射。管理程序712还可以向可信执行环境708发信号通知将外围接口的状态设置为锁定728。
安全用户界面706可以从用户接收并且确认针对外围设备的解锁请求720。在各个实施例中,解锁请求可以是被配置为指示用户选择的外围设备要解锁的信号。在各个实施例中,解锁请求可以是可以与要解锁的外围设备具有预设关联的信号。在各个实施例中,解锁请求可以不仅与单个外围设备相关联。响应于在外围接口的解锁状态期间针对外围接口的启用请求,管理程序712可以忽略该启用请求。响应于在外围接口的锁定状态期间针对外围接口的启用请求,管理程序712可以重新映射阶段2存储器转换表736,以添加用于外围接口的中间物理地址到用于外围接口的物理地址的映射。管理程序712还可以向安全执行环境708发信号通知将外围接口的状态设置为解锁724。
为了启用外围设备,计算设备700的配置可以在用户空间702中接收用于启用外围设备的用户输入714。在各个实施例中,用户输入可以是被配置为指示用户选择的要解锁的外围设备(包括与解锁请求相关联的外围设备)的信号。在各个实施例中,用户输入可以是可以与要解锁的外围设备(包括与解锁请求相关联的外围设备)具有预设关联的信号。在各个实施例中,用户输入714可以不仅与单个外围设备相关联。在用户空间702中,高级操作系统可以启用高级操作系统对与和用户输入714相关联的外围设备相关联的外围接口716的访问。高级操作系统还可以向内核704发信号通知对外围接口716的启用。作为响应,内核704可以调用管理程序功能来重新映射存储器转换表718。管理程序712可以检查在安全文件系统710中存储的外围接口734的状态。响应于针对解锁状态的启用请求,管理程序712可以重新映射阶段2存储器转换表736,以添加用于外围接口的中间物理地址到用于外围接口的物理地址的映射。
当外围接口未被映射在阶段2存储器转换表中时,计算设备可以尝试访问外围接口。作为响应,存储器管理单元(未示出)可以不在阶段2存储器转换表中定位用于外围接口的中间物理地址到用于外围接口的物理地址的映射。存储器管理单元可以发出存储器异常中断732。在一些实施例中,可信执行环境708可以例如通过记录和清除存储器异常中断来处理存储器异常中断726。在一些实施例中,管理程序712可以例如通过记录和清除存储器异常中断来处理存储器异常中断726。此外,安全用户界面706可以发出未经授权使用消息722。未经授权使用消息可以向计算设备的用户发信号通知当时不允许尝试访问与外围接口相关联的外围设备。
图8示出了适于实现各个实施例的用于安全外围接口禁用的示例计算设备(例如,图1中的计算设备100)组件通信。可以使用任何数量或组合的处理器(例如,在图1-3中的通用处理器106、基带调制解调器处理器116、控制器/微控制器108、118、130、CPU集群206中的处理器、GPU 210、DSP 212、APU 214、外围设备子系统218、220、222、232、234的处理器、处理器核300、301、302、303以及处理器350)来实现计算设备800的配置。可以使用任何数量或组合的存储器(例如,在图1-3中的存储器114、系统高速缓存202、随机存取存储器228、专用处理器核高速缓存存储器310、312、314、316、共享处理器核高速缓存存储器320、322、以及共享系统高速缓存340)来实现计算设备700的配置。
可信执行环境802(其可以被称为安全执行环境)、管理程序804和高级操作系统806可以进行通信以实现安全外围接口禁用。可信执行环境802可以包括图4的可信执行环境404。可信执行环境802可以包括图6的可信虚拟机610。可信执行环境802可以包括图7的可信执行环境708。管理程序804可以包括图4的管理程序420。管理程序804可以包括图6的管理程序618。管理程序804可以包括图7的管理程序712。高级操作系统806可以包括图4的高级操作系统426。高级操作系统806可以包括图5的高级操作系统502。高级操作系统806可以包括图6的不可信虚拟机602。可信执行环境802可以检测用于禁用外围接口808的触发。在各个实施例中,该触发可以由计算设备的用户提供。在各个实施例中,触发可以由对计算设备的非自愿触发提供。在一些实施例中,非自愿触发可以是基于计算设备所接收的信号的。在一些实施例中,非自愿触发可以是基于与计算设备有关的上下文的。在各个实施例中,外围接口可以由触发来指定。在各个实施例中,外围接口可以专门地与计算设备的触发相关。在各个实施例中,外围接口可以一般地与计算设备的触发相关。换句话说,触发可以指示外围接口。计算设备可以将外围接口与触发匹配。计算设备可以被配置为识别用于任何触发的外围接口。在各个实施例中,外围接口可以不只是单个外围接口。
可信执行环境802可以确定要禁用的外围接口的物理地址810。外围接口可以与虚拟地址相关联,并且可以将该虚拟地址转换为中间物理地址,并且将该中间物理地址转换为物理地址。映射的分开阶段可以用于将虚拟地址转换为物理地址。阶段1存储器转换表可以用于将虚拟地址转换为中间物理地址。阶段2存储器转换表可以用于将中间物理地址转换为物理地址。因此,被映射到中间物理地址(其被映射到外围接口的虚拟地址)的物理地址是要禁用的外围接口的物理地址。
可信执行环境802可以请求812取消映射要禁用的外围接口。管理程序804可以接收用于取消映射要禁用的外围接口的请求812。管理程序804可以从阶段2存储器转换表中移除中间物理地址到用于要禁用的外围接口的物理地址的映射814。移除映射可以包括在阶段2存储器转换表中解除中间物理地址和物理地址的关联。移除映射可以包括从阶段2存储器转换表中移除中间物理地址。移除映射可以包括从阶段2存储器转换表中移除物理地址。从阶段2存储器转换表中移除中间物理地址到用于外围接口的物理地址的映射可以通过使得外围接口不可访问来禁用该外围接口。
当外围接口被禁用时,高级操作系统806可以尝试访问被禁用的外围接口816。为了访问被禁用的外围接口,高级操作系统806可以请求对与被禁用的外围接口相关联的虚拟地址的访问818。存储器管理单元可以将虚拟地址转换为中间物理地址。存储器管理单元可以尝试将中间物理地址转换为物理地址。然而,当从阶段2存储器转换表中移除中间物理地址到用于外围接口的物理地址的映射时,存储器管理单元可以无法将中间物理地址转换为物理地址。
存储器管理单元可以响应于未能访问被禁用/未被映射的外围接口来发出存储器异常820。在各个实施例中,存储器异常可以触发通知。可以将通知提供给计算设备,例如提供给可信执行环境802。可以将通知提供给计算设备的用户。可以将通知提供给实现移动设备管理的位置的监测器以禁用计算设备的外围设备。在一些实施例中,位置的监测器可以是自动计算设备。在一些实施例中,位置的监测者可以是监测位置的个人。
可信执行环境802可以检测用于启用外围接口的触发822。在各个实施例中,触发可以由计算设备的用户提供。在各个实施例中,触发可以是针对计算设备的非自愿触发。在一些实施例中,非自愿触发可以是基于计算设备所接收的信号的。在一些实施例中,非自愿触发可以是基于与计算设备有关的上下文的。在各个实施例中,触发可以包括缺少针对计算设备的非自愿触发。在各个实施例中,外围接口可以由触发指定。在各个实施例中,外围接口可以专门地与计算设备的触发相关。在各个实施例中,外围接口可以一般地与计算设备的触发相关。换句话说,触发可以指示外围接口。计算设备可以将外围接口与触发匹配。计算设备可以被配置为识别用于任何触发的外围接口。在各个实施例中,外围接口可以不只是单个外围接口。
可信执行环境802可以确定要启用的外围接口的物理地址824。外围接口可以与虚拟地址相关联,并且该虚拟地址可以被转换为中间物理地址,并且该中间物理地址可以被转换为物理地址。映射的分开阶段可以用于将虚拟地址转换为物理地址。阶段1存储器转换表可以用于将虚拟地址转换为中间物理地址。阶段2存储器转换表可以用于将中间物理地址转换为物理地址。因此,被映射到中间物理地址(其被映射到外围接口的虚拟地址)的物理地址是要启用的外围接口的物理地址。
可信执行环境802可以请求826映射要启用的外围接口。管理程序804可以接收用于映射要启用的外围接口的请求826。管理程序804可以将中间物理地址到用于要启用的外围接口的物理地址的映射添加到阶段2存储器转换表中828。添加映射可以包括在阶段2存储器转换表中将中间物理地址和物理地址进行关联。添加映射可以包括添加中间物理地址。添加映射可以包括将物理地址添加到阶段2存储器转换表中。从阶段2存储器转换表中添加中间物理地址到用于外围接口的物理地址的映射可以通过使得外围接口可访问来启用该外围接口。
图9A示出了根据一个实施例的用于安全外围接口禁用的方法900。方法900可以在以下各项中实现:计算设备、在处理器(例如,在图1-3中的通用处理器106、基带调制解调器处理器116、控制器/微控制器108、118、130、CPU集群206中的处理器、GPU 210、DSP 212、APU214、外围设备子系统218、220、222、232、234的处理器、处理器核300、301、302、303以及处理器350)中执行的软件、通用硬件、专用硬件、或者软件配置的处理器和专用硬件的组合,例如,在启用计算设备个性化多样性的系统(例如,在图4-7中的计算设备400、500、600、700的配置)内执行软件的处理器,该系统包括其它各个组件(在图1-3中的存储器114、系统高速缓存202、随机存取存储器228、专用处理器核高速缓存存储器310、312、314、316、共享处理器核高速缓存存储器320、322、以及共享系统高速缓存340)和各种存储器/高速缓存控制器(例如,在图2中示出的系统高速缓存控制器204、存储器接口216和存储器控制器226))。为了涵盖在各个实施例中实现的替代配置,实现方法900的硬件在本文中被称为“处理设备”。
在框902中,处理设备可以检测/接收用于禁用外围接口的触发。在各个实施例中,触发可以由与计算设备交互的用户来提供。在各个实施例中,触发可以由对计算设备的非自愿触发来提供。在一些实施例中,非自愿触发可以是基于计算设备所接收的信号的。在一些实施例中,非自愿触发可以是基于与计算设备有关的上下文的。在各个实施例中,外围接口可以由触发来指定。在各个实施例中,外围接口可以专门地与计算设备的触发相关。在各个实施例中,外围接口可以一般地与计算设备的触发相关。换句话说,触发可以指示外围接口。计算设备可以将外围接口与触发匹配。计算设备可以被配置为识别用于任何触发的外围接口。在各个实施例中,外围接口可以不只是单个外围接口。
在框904中,处理设备可以确定外围接口的物理地址。外围接口可以与虚拟地址相关联,并且该虚拟地址可以被转换为中间物理地址,并且该中间物理地址被转换为物理地址。映射的分开阶段可以用于将虚拟地址转换为物理地址。阶段1存储器转换表可以用于将虚拟地址转换为中间物理地址。阶段2存储器转换表可以用于将中间物理地址转换为物理地址。因此,被映射到中间物理地址(其被映射到外围接口的虚拟地址)的物理地址是要启用的外围接口的物理地址。
在框906中,处理设备可以请求从阶段2存储器转换表中取消映射外围接口的物理地址。
在可选的确定框908中,处理设备可以确定外围接口状态是否为锁定。处理设备可以从存储器取得外围接口状态。存储器可以包括在计算设备的安全位置中的状态寄存器。安全位置可以包括计算设备的安全文件系统。
在框906中请求从阶段2存储器转换表中取消映射外围接口的物理地址之后,在框910中,处理设备可以从阶段2存储器转换表中移除中间物理地址到用于外围接口的物理地址的映射。类似地,响应于确定外围接口状态不是锁定(即,可选确定框908=“否”),在框910中,处理设备可以从阶段2存储器转换表中移除中间物理地址到用于外围接口的物理地址的映射。移除映射可以包括在阶段2存储器转换表中解除中间物理地址和物理地址的关联。移除映射可以包括从阶段2存储器转换表中移除中间物理地址。移除映射可以包括从阶段2存储器转换表中移除物理地址。从阶段2存储器转换表中移除中间物理地址到用于外围接口的物理地址的映射可以通过使外围接口不可访问来禁用该外围接口。
在可选框912中,处理设备可以将外围接口的状态设置为锁定。外围接口的锁定状态可以向计算设备指示外围接口以及因此与外围接口相关联的外围设备被禁用。处理设备可以将外围接口的状态写入用于存储状态的存储器中。
响应于确定外围接口状态为锁定(即,可选的确定框908=“是”),在可选框914中,处理设备可以忽略用于从阶段2存储器转换表中取消映射外围接口的物理地址的请求。此外,处理设备可以向计算设备的用户发出关于外围接口状态为锁定的消息。处理设备可以向实现移动设备管理的位置的监测器发出关于外围接口状态为锁定的消息。在一些实施例中,位置的监测器可以是自动计算设备。在一些实施例中,位置的监测者可以是监测位置的个人。
在一些实施例中,代替上述针对可选确定框908的操作,在框902中处理设备检测到/接收到用于禁用外围接口的触发之后,在可选的确定框908中,处理设备可以确定外围接口状态是否为锁定。这样,响应于确定外围接口状态不是锁定(即,可选的确定框908=“否”),在框904中,处理设备可以确定外围接口的物理地址。响应于确定外围接口状态为锁定(即,可选的确定框908=“是”),在框914中,处理设备可以忽略用于禁用外围接口的触发。此外,处理设备可以向计算设备的用户发出关于外围接口状态为锁定的消息。处理设备可以向实现移动设备管理的位置的监测器发出关于外围接口状态为锁定的消息。在一些实施例中,位置的监测器可以是自动计算设备。在一些实施例中,位置的监测器可以是监测位置的个人。
在一些实施例中,框904和906中的操作可以不像在图9B中所示的方法950那样被执行。
图10示出了根据一个实施例的用于安全外围接口禁用的方法1000。方法1000可以在以下各项中实现:计算设备、在处理器(例如,在图1-3中的通用处理器106、基带调制解调器处理器116、控制器/微控制器108、118、130、CPU集群206中的处理器、GPU 210、DSP 212、APU 214、外围设备子系统218、220、222、232、234的处理器、处理器核300、301、302、303以及处理器350)中执行的软件、通用硬件、专用硬件、或者软件配置的处理器和专用硬件的组合,例如,在启用计算设备个性化多样性的系统(例如,在图4-7中的计算设备400、500、600、700的配置)内执行软件的处理器,该系统包括其它各个组件(在图1-3中的存储器114、系统高速缓存202、随机存取存储器228、专用处理器核高速缓存存储器310、312、314、316、共享处理器核高速缓存存储器320、322、以及共享系统高速缓存340)和各种存储器/高速缓存控制器(例如,在图2中示出的系统高速缓存控制器204、存储器接口216和存储器控制器226))。为了涵盖在各个实施例中实现的替代配置,实现方法1000的硬件在本文中被称为“处理设备”。
在框1002中,处理设备可以接收用于访问被禁用的外围接口的请求。在各个实施例中,用于访问被禁用的外围接口的请求可能由与计算设备的用户交互而引起。在各个实施例中,用于访问被禁用的外围接口的请求可以由在计算设备上执行的合法应用而引起。在各个实施例中,用于访问被禁用的外围接口的请求可以由在计算设备上执行的高级操作系统而引起。高级操作系统可以包括图4-8中的高级操作系统426、502、不可信虚拟机602、806中的任何一者。在各个实施例中,用于访问被禁用的外围接口的请求可以由在计算设备上执行的非法或恶意代码而引起。在各个实施例中,用于访问被禁用的外围接口的请求可以由与计算设备交互的远程用户而引起。在一些实施例中,远程用户可以是未经授权的入侵者。用于访问被禁用的外围接口的请求访问可以包括与被禁用的外围接口相关联的虚拟地址。在各个实施例中,可以在阶段1存储器转换表中使用虚拟地址到中间物理地址的映射来将虚拟地址转换为中间物理地址。
在框1004中,处理设备可以针对用于访问被禁用的外围接口的请求的地址到被禁用的外围接口的物理地址的映射来检查阶段2存储器转换表。在各个实施例中,用于访问被禁用的外围接口的请求的地址可以是被禁用的外围接口的虚拟地址,并且可以被转换为被禁用的外围接口的中间物理地址,以针对到被禁用的外围接口的物理地址的映射来检查阶段2存储器转换表。在各个实施例中,用于访问被禁用的外围接口的请求的地址可以是被禁用的外围接口的中间物理地址。在任一种情况下,一旦处理设备获取中间物理地址,处理设备就可以在阶段2存储器转换表中针对中间物理地址到物理地址的映射进行检查。
在框1006中,处理设备可以确定未找到用于访问被禁用的外围接口的请求的地址到被禁用的外围接口的物理地址的映射。未能找到用于访问被禁用的外围接口的请求的地址到被禁用的外围接口的物理地址的映射可能由于中间物理地址和物理地址在阶段2存储器转换表中未被关联而造成。未能找到用于访问被禁用的外围接口的请求的地址到被禁用的外围接口的物理地址的映射可能由于在阶段2存储器转换表中缺少中间物理地址而造成。未能找到用于访问被禁用的外围接口的请求的地址到被禁用的外围接口的物理地址的映射可能由于在阶段2存储器转换表中缺少物理地址而造成。
在框1008中,处理设备可以针对用于访问被禁用的外围接口的请求来发出存储器异常。在各个实施例中,存储器异常可以触发针对计算设备的通知。在一些实施例中,可以将通知提供给处理器。在一些实施例中,可以将通知提供给计算设备的用户。在一些实施例中,可以将通知提供给实施移动设备管理的位置的监测器以禁用计算设备的外围设备。在一些实施例中,位置的监测器可以是自动计算设备。在一些实施例中,位置的监测器可以是监测位置的个人。该通知可以向接收方通知正在进行对于访问被禁用的外围设备的尝试。该通知还可以向接收方通知访问被禁用的外围设备是不可用的。该通知可以类似地向接收方通知:根据移动设备管理策略,不允许对被禁用的外围设备的访问。
在框1010中,处理设备可以处理针对用于访问被禁用的外围接口的请求的存储器异常。在各个实施例中,处理存储器异常可以包括记录针对用于访问被禁用的外围接口的请求的存储器异常。在各个实施例中,处理存储器异常可以包括记录与用于访问被禁用的外围接口的请求有关的数据。在一些实施例中,处理存储器异常可以包括从缓冲器或寄存器清除异常。在一些实施例中,处理存储器异常可以包括重置处理。在一些实施例中,处理存储器异常可以包括通知用户。在一些实施例中,处理存储器异常可以包括通过移动设备管理系统通知系统管理员。
图11A示出了根据一个实施例的用于安全外围接口禁用的方法1100。方法1100可以在以下各项中实现:计算设备、在处理器(例如,在图1-3中的通用处理器106、基带调制解调器处理器116、控制器/微控制器108、118、130、CPU集群206中的处理器、GPU 210、DSP212、APU 214、外围设备子系统218、220、222、232、234的处理器、处理器核300、301、302、303以及处理器350)中执行的软件、通用硬件、专用硬件、或者软件配置的处理器和专用硬件的组合,例如,在启用计算设备个性化多样性的系统(例如,在图4-7中的计算设备400、500、600、700的配置)内执行软件的处理器,该系统包括其它各个组件(在图1-3中的存储器114、系统高速缓存202、随机存取存储器228、专用处理器核高速缓存存储器310、312、314、316、共享处理器核高速缓存存储器320、322、以及共享系统高速缓存340)和各种存储器/高速缓存控制器(例如,在图2中示出的系统高速缓存控制器204、存储器接口216和存储器控制器226))。为了涵盖在各个实施例中实现的替代配置,实现方法1100的硬件在本文中被称为“处理设备”。
在框1102中,处理设备可以检测/接收用于启用外围接口的触发。在各个实施例中,触发可以由与计算设备交互的用户来提供。在各个实施例中,触发可以由针对计算设备的非自愿触发来提供。在一些实施例中,非自愿触发可以是基于计算设备所接收的信号的。在一些实施例中,非自愿触发可以是基于与计算设备有关的上下文的。在各个实施例中,触发可以是缺少针对计算设备的非自愿触发。在各个实施例中,外围接口可以由触发指定。在各个实施例中,外围接口可以专门地与计算设备的触发相关。在各个实施例中,外围接口可以一般地与计算设备的触发相关。换句话说,触发可以指示外围接口。计算设备可以将外围接口与触发匹配。计算设备可以被配置为识别用于任何触发的外围接口。在各个实施例中,外围接口可以不只是单个外围接口。
在可选的确定框1104中,处理设备可以确定外围接口状态是否为锁定。处理设备可以从存储器取得外围接口状态。存储器可以包括在计算设备的安全位置中的状态寄存器。安全位置可以包括计算设备的安全文件系统。在可选的确定框1104中关于外围接口状态是否为锁定的确定可以用于确认用于启用外围接口的触发是否是合法的。在外围接口的锁定状态期间用于启用外围接口的触发可以是合法的。在外围接口的解锁状态期间用于启用外围接口的触发可以是非法的。
响应于确定外围接口状态为锁定(即,可选的确定框1104=“是”),在框1106中,处理设备可以确定外围接口的物理地址。外围接口可以与虚拟地址相关联,并且该虚拟地址可以被转换为中间物理地址,并且该中间物理地址可以被转换为物理地址。映射的分开阶段可以用于将虚拟地址转换为物理地址。阶段1存储器转换表可以用于将虚拟地址转换为中间物理地址。阶段2存储器转换表可以用于将中间物理地址转换为物理地址。因此,被映射到中间物理地址(其被映射到外围接口的虚拟地址)的物理地址是要启用的外围接口的物理地址。
在框1108中,处理设备可以请求将外围接口的物理地址映射到阶段2存储器转换表。
在框1110中,处理设备可以从阶段2存储器转换表中添加中间物理地址到用于外围接口的物理地址的映射。添加映射可以包括在阶段2存储器转换表中将中间物理地址和物理地址进行关联。添加映射可以包括将中间物理地址添加到阶段2存储器转换表。添加映射可以包括将物理地址添加到阶段2存储器转换表中。将中间物理地址到用于外围接口的物理地址的映射添加到阶段2存储器转换表中可以通过使得外围接口可访问来启用该外围接口。
在框1112中,处理设备可以将外围接口的状态设置为解锁。外围接口的解锁状态可以向计算设备指示外围接口以及因此与外围接口相关联的外围设备被启用和/或能够被启用。处理设备可以将外围接口的状态写入用于存储状态的存储器中。
响应于确定外围接口状态不是锁定(即,可选的确定框1104=“否”),在可选框1114中,处理设备可以忽略用于启用外围接口的触发。
在一些实施例中,代替上述可选的确定框1104的描述,在框1108中处理设备请求将外围接口的物理地址映射到阶段2存储器转换表之后,在可选的确定框1104中,处理设备可以确定外围接口状态是否为锁定。这样,响应于确定外围接口状态为锁定(即,可选的确定框1104=“是”),在框1110中,处理设备可以从阶段2存储器转换表中添加中间物理地址到用于外围接口的物理地址的映射。响应于确定外围接口状态不是锁定(即,可选的确定框1104=“否”),在可选框1114中,处理设备可以忽略用于将外围接口的物理地址映射到阶段2存储器转换表的请求。
在一些实施例中,框1108中的操作可以不像图11B中所示的方法1150中那样被执行。
可以用包括无线通信设备的多种计算系统来实现各个实施例(包括但不限于上文参照图1-11B论述的实施例),在图12中示出了适于与各个实施例一起使用的无线通信设备的示例。无线通信设备1200可以包括被耦合到触摸屏控制器1204和内部存储器1206的处理器1202。处理器1202可以是被指定用于一般或特定处理任务的一个或多个多核集成电路。内部存储器1206可以是易失性或非易失性存储器,并且还可以是安全和/或加密存储器、或者非安全和/或非加密存储器、或其任何组合。可以利用的存储器类型的示例包括但不限于DDR、LPDDR、GDDR、WIDEIO、RAM、SRAM、DRAM、P-RAM、R-RAM、M-RAM、STT-RAM和嵌入式DRAM。触摸屏控制器1204和处理器1202还可以被耦合到触摸屏面板1212,诸如电阻感测式触摸屏、电容感测式触摸屏、红外感测式触摸屏等。另外,计算设备1200的显示器不需要具有触摸屏能力。
无线通信设备1200可以具有彼此耦合和/或耦合到处理器1202的、用于发送和接收通信的一个或多个无线电信号收发机1208(例如,Peanut、蓝牙、Zigbee、Wi-Fi、RF无线电)和天线1210。收发机1208和天线1210可以与上文提及的电路系统一起用于实现各种无线传输协议栈和接口。无线通信设备1200可以包括蜂窝网络无线调制解调器芯片1216,蜂窝网络无线调制解调器芯片1216实现经由蜂窝网络的通信并且被耦合到处理器。
无线通信设备1200可以包括被耦合到处理器1202的外围设备连接接口1218。外围设备连接接口1218可以被特别配置为接受一种类型的连接,或者可以被配置为接受各种类型的物理和通信连接,公共的或专有的,诸如通用串行总线(USB)、FireWire、Thunderbolt或PCIe。外围设备连接接口1218还可以被耦合到类似地配置的外围设备连接端口(未示出)。
无线通信设备1200还可以包括用于提供音频输出的扬声器1214。无线通信设备1200还可以包括由塑料、金属、或材料的组合制成的壳体1220,其用于包含本文所论述的组件中的全部或一些组件。无线通信设备1200可以包括被耦合到处理器1202的电源1222,诸如一次性或可充电电池。可充电电池还可以被耦合到外围设备连接端口以从在无线通信设备1200外部的源接收充电电流。无线通信设备1200还可以包括用于接收用户输入的物理按钮1224。无线通信设备1200还可以包括用于打开和关闭无线通信设备1200的电源按钮1226。
还可以在多种计算设备(包括膝上型计算机1300)中实现各个实施例(包括但不限于上文参照图1-11论述的实施例),在图13中示出了膝上型计算机1300的示例。许多膝上型计算机包括充当计算机的指向设备的触摸板触摸表面1317,并且因此可以接收与在配备有触摸屏显示器和上文描述的计算设备上实现的那些手势类似的拖拽、滚动和轻弹手势。膝上型计算机1300将典型地包括处理器1311,处理器1311被耦合到易失性存储器1312和大容量非易失性存储器(诸如闪存的磁盘驱动器1313)。另外,计算机1300可以具有可以连接到无线数据链路的用于发送和接收电磁辐射的一个或多个天线1308和/或被耦合到处理器1311的蜂窝电话收发机1316。计算机1300还可以包括被耦合到处理器1311的软盘驱动器1314和压缩光盘(CD)驱动器1315。在笔记本配置中,计算机壳体包括触摸板触摸表面1317、键盘1318和显示器1319,它们全部被耦合到处理器1311。计算设备的其它配置可以包括被耦合到处理器(例如,经由USB输入)的计算机鼠标或轨迹球,如公知的,它们也可以结合各个实施例来使用。
各个实施例(包括但不限于上文参照图1-11论述的实施例)还可以在固定计算系统(诸如各种商业上可用的服务器中的任何一种)中实现。图14中示出了示例服务器1400。这样的服务器1400通常包括一个或多个多核处理器组装件1401,其被耦合到易失性存储器1402和大容量非易失性存储器(诸如磁盘驱动器1404)。如图14所示,可以通过将多核处理器组装件1401插入到组装件的机架中来将其添加到服务器1400。服务器1400还可以包括被耦合到多核处理器组装件1401的软盘驱动器、压缩光盘(CD)或数字多功能光盘(DVD)光盘驱动器1406。服务器1400还可以包括被耦合到多核处理器组装件1401的网络接入端口1403,其用于与网络1405(诸如被耦合到其它广播系统计算机和服务器的局域网、互联网、公共交换电话网络和/或蜂窝数据网络(例如,CDMA、TDMA、GSM、PCS、3G、4G、LTE或任何其它类型的蜂窝数据网络))建立网络接口连接。
用于在可编程处理器上执行以实现各个实施例的操作的计算机程序代码或“程序代码”可以以诸如C、C++、C#、Smalltalk、Java、JavaScript、Visual Basic、结构化查询语言(例如,Transact-SQL)、Perl之类的高级编程语言或以各种其它编程语言来编写。如本申请中所使用的被存储在计算机可读存储介质上的程序代码或程序可以指代其格式是处理器可理解的机器语言代码(例如,目标代码)。
前述方法描述和过程流图仅是作为说明性示例来提供的,并非旨在要求或暗示各个实施例的操作必须以所给出的次序来执行。如本领域技术人员将明白的,前述实施例中的操作的次序可以以任何次序来执行。诸如“其后”、“然后”、“接着”等的词语并非旨在限制操作的次序;这些词语仅用于引导读者阅读对方法的描述。此外,例如使用冠词“一”、“一个”或“所述”对单数形式的权利要求元素的任何引用不应被解释为将元素限制为单数。
结合各个实施例所描述的各个说明性的逻辑框、模块、电路和算法操作可以被实现成电子硬件、计算机软件或两者的组合。为了清楚地说明硬件和软件的这种可互换性,上文已经围绕各个说明性的组件、框、模块、电路和操作的功能,对它们进行了总体描述。至于这种功能是实现为硬件还是软件,取决于特定应用和施加在整体系统上的设计约束。本领域技术人员可以针对每种特定应用以变化的方式来实现所描述的功能,但是这种实现决策不应当被解释为造成脱离权利要求的范围。
可以利用被设计为执行本文所描述的功能的通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或其它可编程逻辑器件、分立门或者晶体管逻辑、分立硬件组件或者其任何组合来实现或执行用于实现结合本文公开的实施例所描述的各个说明性的逻辑单元、逻辑框、模块和电路的硬件。通用处理器可以是微处理器,但是在替代方式中,处理器可以是任何常规的处理器、控制器、微控制器或者状态机。处理器也可以实现为计算设备的组合,例如,DSP和微处理器的组合、多个微处理器、一个或多个微处理器结合DSP核、或者任何其它此种配置。替代地,一些操作或方法可以由特定于给定功能的电路系统来执行。
在一个或多个实施例中,所描述的功能可以用硬件、软件、固件或其任何组合来实现。如果用软件来实现,则所述功能可以作为一个或多个指令或代码存储在非暂时性计算机可读介质或非暂时性处理器可读介质上。本文所公开的方法或算法的操作可以体现在处理器可执行软件模块中,处理器可执行软件模块可以驻留在非暂时性计算机可读或处理器可读存储介质上。非暂时性计算机可读或处理器可读存储介质可以是可由计算机或处理器存取的任何存储介质。通过举例而非限制性的方式,这样的非暂时性计算机可读或处理器可读介质可以包括RAM、ROM、EEPROM、闪存、CD-ROM或其它光盘存储、磁盘存储或其它磁存储设备、或者可以用于以指令或数据结构形式存储期望的程序代码以及可以由计算机来存取的任何其它介质。如本文所使用的,磁盘和光盘包括压缩光盘(CD)、激光光盘、光盘、数字多功能光盘(DVD)、软盘和蓝光光盘,其中磁盘通常磁性地复制数据,而光盘利用激光来光学地复制数据。上述的组合也包括在非暂时性计算机可读和处理器可读介质的范围内。另外,方法或算法的操作可以作为代码和/或指令之一或任何组合或集合驻留在非暂时性处理器可读介质和/或计算机可读介质上,这些介质可以被并入到计算机程序产品中。
提供对所公开的实施例的以上描述以使任何本领域技术人员能够实施或使用权利要求。对于本领域技术人员来说,对这些实施例的各种修改将是显而易见的,并且在不脱离各个实施例的范围的情况下,可以将本文所定义的总体原理应用于其它实施例和实现方式。因此,本公开内容并非旨在限于本文所描述的实施例和实现方式,而是被赋予与所附的权利要求以及本文所公开的原理和新颖特征相一致的最宽范围。

Claims (30)

1.一种用于在计算设备上的安全外围接口禁用的方法,包括:
接收用于禁用与所述计算设备的外围设备相关联的外围接口的触发;
识别所述外围接口的物理地址;
响应于接收用于禁用所述外围接口的所述触发,从阶段2存储器转换表中移除所述外围接口的中间物理地址到所述外围接口的所述物理地址的映射,其中,所述阶段2存储器转换表被配置为将所述外围接口的所述中间物理地址转换为所述外围接口的所述物理地址;
通过可信执行环境来将所述外围接口的状态设置为锁定;以及
在所述计算设备的安全位置处存储所述外围接口的所述状态。
2.根据权利要求1所述的方法,还包括:接收用于在所述阶段2存储器转换表中将所述外围接口的所述中间物理地址和所述外围接口的所述物理地址的所述映射取消映射的请求,
其中,响应于接收用于禁用所述外围接口的所述触发,从所述阶段2存储器转换表中移除所述外围接口的所述中间物理地址到所述外围接口的所述物理地址的所述映射包括:响应于接收用于禁用所述外围接口的所述触发和接收用于取消映射的所述请求,从所述阶段2存储器转换表中移除所述外围接口的所述中间物理地址到所述外围接口的所述物理地址的所述映射。
3.根据权利要求1所述的方法,还包括:
接收用于访问所述外围接口的请求;
针对所述外围接口的所述中间物理地址到所述外围接口的所述物理地址的所述映射来检查所述阶段2存储器转换表;
确定在所述阶段2存储器转换表中未找到所述外围接口的所述中间物理地址到所述外围接口的所述物理地址的所述映射;以及
响应于确定在所述阶段2存储器转换表中未找到所述外围接口的所述中间物理地址到所述外围接口的所述物理地址的所述映射,发出存储器异常。
4.根据权利要求1所述的方法,还包括:
接收用于启用与所述计算设备的所述外围设备相关联的所述外围接口的触发;
接收用于在所述阶段2存储器转换表中映射所述外围接口的所述中间物理地址和所述外围接口的所述物理地址的请求;以及
响应于接收用于映射的所述请求,在所述阶段2存储器转换表中添加所述外围接口的所述中间物理地址到所述外围接口的所述物理地址的所述映射。
5.根据权利要求4所述的方法,还包括:
确定所述外围接口的状态是否为锁定,
其中,在所述阶段2存储器转换表中添加所述外围接口的所述中间物理地址到所述外围接口的所述物理地址的所述映射包括:响应于确定所述外围接口的所述状态为锁定:
在所述阶段2存储器转换表中添加所述外围接口的所述中间物理地址到所述外围接口的所述物理地址的所述映射;以及
响应于确定所述外围接口的所述状态为锁定,将所述外围接口的所述状态设置为解锁。
6.根据权利要求1所述的方法,还包括:
向在第一虚拟机上执行的高级操作系统发信号通知关闭和卸载所述外围设备的外围设备驱动程序;以及
在不包括所述外围设备的所述外围设备驱动程序的第二虚拟机上执行受限高级操作系统。
7.根据权利要求1所述的方法,还包括:从与高级操作系统正在其中执行的执行环境不同的可信执行环境接收用于在所述阶段2存储器转换表中将所述外围接口的所述中间物理地址取消映射或映射到所述外围接口的所述物理地址的请求。
8.根据权利要求1所述的方法,还包括:由在执行环境中执行的高级操作系统经由通过可信执行环境来路由对所述外围设备驱动程序的访问请求,来访问在所述可信执行环境中执行的所述外围设备的外围设备驱动程序。
9.根据权利要求1所述的方法,还包括:由在第二虚拟机上执行的高级操作系统经由通过第一虚拟机来路由对外围设备驱动程序的访问请求,来访问在所述第一虚拟机中执行的所述外围设备的所述外围设备驱动程序。
10.一种计算设备,包括:
存储器;
外围接口;以及
处理器,其通信地连接到所述存储器和所述外围接口,并且被配置有处理器可执行指令以使得所述处理器执行包括以下各项的操作:
接收用于禁用与所述计算设备的外围设备相关联的所述外围接口的触发;
识别所述外围接口的物理地址;
响应于接收用于禁用所述外围接口的所述触发,从阶段2存储器转换表中移除所述外围接口的中间物理地址到所述外围接口的所述物理地址的映射,其中,所述阶段2存储器转换表被配置为将所述外围接口的所述中间物理地址转换为所述外围接口的所述物理地址;
通过可信执行环境来将所述外围接口的状态设置为锁定;以及
在所述计算设备的安全位置处存储所述外围接口的所述状态。
11.根据权利要求10所述的计算设备,其中:
所述处理器被配置有处理器可执行指令以执行还包括以下项的操作:接收用于在所述阶段2存储器转换表中将所述外围接口的所述中间物理地址和所述外围接口的所述物理地址取消映射的请求;以及
所述处理器被配置有处理器可执行指令以执行操作,以使得响应于接收用于禁用所述外围接口的所述触发,从所述阶段2存储器转换表中移除所述外围接口的所述中间物理地址到所述外围接口的所述物理地址的所述映射包括:响应于接收用于禁用所述外围接口的所述触发和接收用于取消映射的所述请求,从所述阶段2存储器转换表中移除所述外围接口的所述中间物理地址到所述外围接口的所述物理地址的所述映射。
12.根据权利要求10所述的计算设备,其中,所述处理器被配置有处理器可执行指令以执行还包括以下各项的操作:
接收用于访问所述外围接口的请求;
针对所述外围接口的所述中间物理地址到所述外围接口的所述物理地址的所述映射来检查所述阶段2存储器转换表;
确定在所述阶段2存储器转换表中未找到所述外围接口的所述中间物理地址到所述外围接口的所述物理地址的所述映射;以及
响应于确定在所述阶段2存储器转换表中未找到所述外围接口的所述中间物理地址到所述外围接口的所述物理地址的所述映射,发出存储器异常。
13.根据权利要求10所述的计算设备,其中,所述处理器被配置有处理器可执行指令以执行还包括以下各项的操作:
接收用于启用与所述计算设备的所述外围设备相关联的所述外围接口的触发;
接收用于在所述阶段2存储器转换表中映射所述外围接口的所述中间物理地址和所述外围接口的所述物理地址的请求;以及
响应于接收用于映射的所述请求,在所述阶段2存储器转换表中添加所述外围接口的所述中间物理地址到所述外围接口的所述物理地址的所述映射。
14.根据权利要求13所述的计算设备,其中:
所述处理器被配置有处理器可执行指令以执行还包括以下各项的操作:
确定所述外围接口的状态是否为锁定;以及
响应于确定所述外围接口的所述状态为锁定,将所述外围接口的所述状态设置为解锁;并且
所述处理器被配置有处理器可执行指令以执行操作,以使得在所述阶段2存储器转换表中添加所述外围接口的所述中间物理地址到所述外围接口的所述物理地址的所述映射包括:响应于确定所述外围接口的所述状态为锁定,在所述阶段2存储器转换表中添加所述外围接口的所述中间物理地址到所述外围接口的所述物理地址的所述映射。
15.根据权利要求10所述的计算设备,其中,所述处理器被配置有处理器可执行指令以执行还包括以下各项的操作:
向在第一虚拟机上执行的高级操作系统发信号通知关闭和卸载所述外围设备的外围设备驱动程序;以及
在不包括所述外围设备的所述外围设备驱动程序的第二虚拟机上执行受限高级操作系统。
16.根据权利要求10所述的计算设备,还包括:通信地连接到所述处理器的可信执行环境;以及
其中,所述处理器被配置有处理器可执行指令以执行还包括以下项的操作:从与高级操作系统正在其中执行的执行环境不同的所述可信执行环境接收用于在所述阶段2存储器转换表中将所述外围接口的所述中间物理地址取消映射或映射到所述外围接口的所述物理地址的请求。
17.根据权利要求10所述的计算设备,还包括:
通信地连接到所述处理器的可信执行环境;以及
通信地连接到所述处理器的执行环境,
其中,所述处理器被配置有处理器可执行指令以执行还包括以下项的操作:由在所述执行环境中执行的高级操作系统经由通过所述可信执行环境来路由对所述外围设备驱动程序的访问请求,来访问在所述可信执行环境中执行的所述外围设备的外围设备驱动程序。
18.一种计算设备,包括:
用于接收用于禁用与所述计算设备的外围设备相关联的外围接口的触发的单元;
用于识别所述外围接口的物理地址的单元;
用于响应于接收用于禁用所述外围接口的所述触发,从阶段2存储器转换表中移除所述外围接口的中间物理地址到所述外围接口的所述物理地址的映射的单元,其中,所述阶段2存储器转换表被配置为将所述外围接口的所述中间物理地址转换为所述外围接口的所述物理地址;
用于通过可信执行环境来将所述外围接口的状态设置为锁定的单元;以及
用于在所述计算设备的安全位置处存储所述外围接口的所述状态的单元。
19.根据权利要求18所述的计算设备,还包括:用于接收用于在所述阶段2存储器转换表中将所述外围接口的所述中间物理地址和所述外围接口的所述物理地址取消映射的请求的单元,
其中,用于响应于接收用于禁用所述外围接口的所述触发,从所述阶段2存储器转换表中移除所述外围接口的所述中间物理地址到所述外围接口的所述物理地址的所述映射的单元包括:用于响应于接收用于禁用所述外围接口的所述触发和接收用于取消映射的所述请求,从所述阶段2存储器转换表中移除所述外围接口的所述中间物理地址到所述外围接口的所述物理地址的所述映射的单元。
20.根据权利要求18所述的计算设备,还包括:
用于接收用于访问所述外围接口的请求的单元;
用于针对所述外围接口的所述中间物理地址到所述外围接口的所述物理地址的所述映射来检查所述阶段2存储器转换表的单元;
用于确定在所述阶段2存储器转换表中未找到所述外围接口的所述中间物理地址到所述外围接口的所述物理地址的所述映射的单元;以及
用于响应于确定在所述阶段2存储器转换表中未找到所述外围接口的所述中间物理地址到所述外围接口的所述物理地址的所述映射,发出存储器异常的单元。
21.根据权利要求18所述的计算设备,还包括:
用于接收用于启用与所述计算设备的所述外围设备相关联的所述外围接口的触发的单元;
用于接收用于在所述阶段2存储器转换表中映射所述外围接口的所述中间物理地址和所述外围接口的所述物理地址的请求的单元;以及
用于响应于接收用于映射的所述请求,在所述阶段2存储器转换表中添加所述外围接口的所述中间物理地址到所述外围接口的所述物理地址的所述映射的单元。
22.根据权利要求21所述的计算设备,还包括:
用于确定所述外围接口的状态是否为锁定的单元,
其中,用于在所述阶段2存储器转换表中添加所述外围接口的所述中间物理地址到所述外围接口的所述物理地址的所述映射的单元包括:用于响应于确定所述外围接口的所述状态为锁定,在所述阶段2存储器转换表中添加所述外围接口的所述中间物理地址到所述外围接口的所述物理地址的所述映射的单元;以及
用于响应于确定所述外围接口的所述状态为锁定,将所述外围接口的所述状态设置为解锁的单元。
23.根据权利要求18所述的计算设备,还包括:
用于向在第一虚拟机上执行的高级操作系统发信号通知关闭和卸载所述外围设备的外围设备驱动程序的单元;以及
用于在不包括所述外围设备的所述外围设备驱动程序的第二虚拟机上执行受限高级操作系统的单元。
24.根据权利要求18所述的计算设备,还包括:用于从与高级操作系统正在其中执行的执行环境不同的可信执行环境接收用于在所述阶段2存储器转换表中将所述外围接口的所述中间物理地址取消映射或映射到所述外围接口的所述物理地址的请求的单元。
25.根据权利要求18所述的计算设备,还包括:用于由在执行环境中执行的高级操作系统经由通过可信执行环境来路由对所述外围设备驱动程序的访问请求,来访问在所述可信执行环境中执行的所述外围设备的外围设备驱动程序的单元。
26.一种非暂时性处理器可读存储介质,其具有被存储在其上的处理器可执行指令,所述处理器可执行指令被配置为使得计算设备的处理器执行包括以下各项的操作:
接收用于禁用与所述计算设备的外围设备相关联的外围接口的触发;
识别所述外围接口的物理地址;
响应于接收用于禁用所述外围接口的所述触发,从阶段2存储器转换表中移除所述外围接口的中间物理地址到所述外围接口的所述物理地址的映射,其中,所述阶段2存储器转换表被配置为将所述外围接口的所述中间物理地址转换为所述外围接口的所述物理地址;
通过可信执行环境来将所述外围接口的状态设置为锁定;以及
在所述计算设备的安全位置处存储所述外围接口的所述状态。
27.根据权利要求26所述的非暂时性处理器可读存储介质,其中:
所存储的处理器可执行指令被配置为使得所述计算设备的所述处理器执行还包括以下项的操作:接收用于在所述阶段2存储器转换表中将所述外围接口的所述中间物理地址和所述外围接口的所述物理地址取消映射的请求;以及
所存储的处理器可执行指令被配置为使得所述计算设备的所述处理器执行操作,以使得响应于接收用于禁用所述外围接口的所述触发,从所述阶段2存储器转换表中移除所述外围接口的所述中间物理地址到所述外围接口的所述物理地址的所述映射包括:响应于接收用于禁用所述外围接口的所述触发和接收用于取消映射的所述请求,从所述阶段2存储器转换表中移除所述外围接口的所述中间物理地址到所述外围接口的所述物理地址的所述映射。
28.根据权利要求26所述的非暂时性处理器可读存储介质,其中,所存储的处理器可执行指令被配置为使得所述计算设备的所述处理器执行还包括以下各项的操作:
接收用于访问所述外围接口的请求;
针对所述外围接口的所述中间物理地址到所述外围接口的所述物理地址的所述映射来检查所述阶段2存储器转换表;
确定在所述阶段2存储器转换表中未找到所述外围接口的所述中间物理地址到所述外围接口的所述物理地址的所述映射;以及
响应于确定在所述阶段2存储器转换表中未找到所述外围接口的所述中间物理地址到所述外围接口的所述物理地址的所述映射,发出存储器异常。
29.根据权利要求26所述的非暂时性处理器可读存储介质,其中,所存储的处理器可执行指令被配置为使得所述计算设备的所述处理器执行还包括以下各项的操作:
接收用于启用与所述计算设备的所述外围设备相关联的所述外围接口的触发;
接收用于在所述阶段2存储器转换表中映射所述外围接口的所述中间物理地址和所述外围接口的所述物理地址的请求;以及
响应于接收用于映射的所述请求,在所述阶段2存储器转换表中添加所述外围接口的所述中间物理地址到所述外围接口的所述物理地址的所述映射。
30.根据权利要求29所述的非暂时性处理器可读存储介质,其中:
所存储的处理器可执行指令被配置为使得所述计算设备的所述处理器执行还包括以下各项的操作:
确定所述外围接口的状态是否为锁定;以及
响应于确定所述外围接口的所述状态为锁定,将所述外围接口的所述状态设置为解锁;并且
所存储的处理器可执行指令被配置为使得所述计算设备的所述处理器执行操作,以使得在所述阶段2存储器转换表中添加所述外围接口的所述中间物理地址到所述外围接口的所述物理地址的所述映射包括:响应于确定所述外围接口的所述状态为锁定,在所述阶段2存储器转换表中添加所述外围接口的所述中间物理地址到所述外围接口的所述物理地址的所述映射。
CN201980022993.3A 2018-04-08 2019-01-25 安全接口禁用 Active CN111971661B (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201862654473P 2018-04-08 2018-04-08
US62/654,473 2018-04-08
US16/118,245 US11157635B2 (en) 2018-04-08 2018-08-30 Secure interface disablement
US16/118,245 2018-08-30
PCT/US2019/015121 WO2019199367A1 (en) 2018-04-08 2019-01-25 Secure interface disablement

Publications (2)

Publication Number Publication Date
CN111971661A CN111971661A (zh) 2020-11-20
CN111971661B true CN111971661B (zh) 2023-12-05

Family

ID=68096028

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201980022993.3A Active CN111971661B (zh) 2018-04-08 2019-01-25 安全接口禁用

Country Status (8)

Country Link
US (1) US11157635B2 (zh)
EP (1) EP3776221B1 (zh)
KR (1) KR20200141069A (zh)
CN (1) CN111971661B (zh)
BR (1) BR112020020401A2 (zh)
SG (1) SG11202008479SA (zh)
TW (1) TW201944280A (zh)
WO (1) WO2019199367A1 (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11157289B2 (en) * 2019-05-13 2021-10-26 Intel Corporation Power management method and apparatus for virtualized I/O devices
US11356845B1 (en) * 2019-07-10 2022-06-07 Sprint Communications Company L.P. Trusted operating system in an internet of things (IoT) device
CN111148070B (zh) * 2019-12-31 2021-06-15 华为技术有限公司 V2x通信方法、装置及车辆
US11915015B2 (en) * 2021-08-27 2024-02-27 Dell Products, L.P. Systems and methods for use of pre-boot resources by modern workspaces

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7263623B1 (en) * 2004-03-30 2007-08-28 Altera Corporation Microprocessor system
CN105074663A (zh) * 2013-03-12 2015-11-18 高通股份有限公司 按需选择性地启用虚拟机监测器的操作的方法和装置

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1997021281A1 (en) * 1995-12-08 1997-06-12 Amsc Subsidiary Corporation Mobile communications terminal for satellite communications system
US7548999B2 (en) 2006-01-17 2009-06-16 Advanced Micro Devices, Inc. Chained hybrid input/output memory management unit
US8924708B2 (en) 2007-01-22 2014-12-30 Simon Yoffe Security switch
US20100017893A1 (en) 2008-07-21 2010-01-21 Ati Technologies Ulc System for Securing Register Space and Method of Securing the Same
US9535849B2 (en) 2009-07-24 2017-01-03 Advanced Micro Devices, Inc. IOMMU using two-level address translation for I/O and computation offload devices on a peripheral interconnect
US20120173843A1 (en) * 2011-01-04 2012-07-05 Kamdar Chetan C Translation look-aside buffer including hazard state
US8631212B2 (en) 2011-09-25 2014-01-14 Advanced Micro Devices, Inc. Input/output memory management unit with protection mode for preventing memory access by I/O devices
US9092969B2 (en) * 2011-12-29 2015-07-28 Verizon Patent And Licensing Inc. Method and system for invoking a security function of a device based on proximity to another device
US20130204962A1 (en) 2012-02-02 2013-08-08 Texas Instruments Incorporated Network and peripheral interface circuits, systems and processes
US9063891B2 (en) 2012-12-19 2015-06-23 Advanced Micro Devices, Inc. Secure computer system for preventing access requests to portions of system memory by peripheral devices and/or processor cores
US10210096B2 (en) * 2013-10-01 2019-02-19 Ampere Computing Llc Multi-stage address translation for a computing device
GB2525003B (en) * 2014-04-09 2021-06-09 Advanced Risc Mach Ltd Data Processing Systems
US9665340B2 (en) * 2014-10-13 2017-05-30 Daniel Kuniansky Systems and methods for temporarily sharing audio over a network
US9660656B2 (en) * 2015-04-15 2017-05-23 Sandisk Technologies Llc Delay compensation
US10394586B2 (en) 2015-08-13 2019-08-27 Red Hat Israel, Ltd. Using capability indicators to indicate support for guest driven surprise removal of virtual PCI devices
US10146962B2 (en) 2015-12-17 2018-12-04 Mcafee, Llc Method and apparatus for protecting a PCI device controller from masquerade attacks by malware
US10225873B2 (en) * 2016-02-18 2019-03-05 Texas Instruments Incorporated System and method for peripheral initiated host arbitration
US10268483B2 (en) * 2016-09-27 2019-04-23 Lenovo Enterprise Solutions (Singapore) Pte. Ltd Data protocol for managing peripheral devices

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7263623B1 (en) * 2004-03-30 2007-08-28 Altera Corporation Microprocessor system
CN105074663A (zh) * 2013-03-12 2015-11-18 高通股份有限公司 按需选择性地启用虚拟机监测器的操作的方法和装置

Also Published As

Publication number Publication date
US11157635B2 (en) 2021-10-26
EP3776221B1 (en) 2024-01-17
TW201944280A (zh) 2019-11-16
KR20200141069A (ko) 2020-12-17
CN111971661A (zh) 2020-11-20
WO2019199367A1 (en) 2019-10-17
BR112020020401A2 (pt) 2021-01-12
EP3776221A1 (en) 2021-02-17
US20190311141A1 (en) 2019-10-10
SG11202008479SA (en) 2020-10-29

Similar Documents

Publication Publication Date Title
CN111971661B (zh) 安全接口禁用
CN107710209B (zh) 用于在计算设备中使用按应用简档的系统和方法
US8539561B2 (en) Systems and methods to control device endpoint behavior using personae and policies
US8918841B2 (en) Hardware interface access control for mobile applications
US9483646B2 (en) Data exfiltration prevention from mobile platforms
US20170206351A1 (en) Mobile device security monitoring and notification
US20190303603A1 (en) Location-based security of storage drives
KR20180080227A (ko) 동적 허니팟 시스템
CN110997442B (zh) 用于提供对硬件资源的访问控制的计算装置
US9183391B2 (en) Managing device driver cross ring accesses
US10075443B2 (en) System, apparatus and method for stateful application of control data in a device
US10630688B2 (en) Method for controlling contents and electronic device thereof
GB2479916A (en) Access rights management of locally held data based on network connection status of mobile device
CA2944586A1 (en) Systems and methods to enforce security policies on the loading, linking, and execution of native code by mobile applications running inside of virtual machines
KR20160147993A (ko) 구내-인식 보안 및 정책 조정
CN114826785B (zh) 一种动态防护方法、系统级芯片、电子设备及介质
US10581917B2 (en) Systems and methods for enforcing device policies
US11068614B2 (en) System-level data security based on environmental properties
US20210166227A1 (en) Secure User Interface With Improved User Experience
TWI767548B (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
GR01 Patent grant
GR01 Patent grant