管理移动设备中存储器的系统和方法

文档序号:6655336阅读:180来源:国知局
专利名称:管理移动设备中存储器的系统和方法
技术领域
本发明实施例大体上涉及移动设备中非易失性存储器的管理,更具体地,涉及一种管理存储器以避免将敏感数据换出到非易失性存储器的系统和方法。
背景技术
机密数据或其它敏感数据通常被存储在计算设备上。这种数据可以包括的内容有和用户相关联的某些电子邮件消息、联系信息和日程安排信息。例如,在建立和维持安全通信信道中使用的口令和共享秘密以及密钥也可以被认为是敏感的。对于例如桌面计算机的更大的计算设备,可以使用物理保护来避免对计算设备自身和其中的数据进行未授权的访问。然而,手持设备或移动设备可能被认为是更不安全的,因为它们更可能因为自身尺寸相对小的特点而丢失或被窃取。结果是,通常希望保护移动设备上的敏感数据以防止未授权方访问这些信息,特别是在设备丢失或被窃取后。
多数计算设备通常使用或访问易失性和非易失性存储器。例如,在个人计算机上,可以将易失性存储器设置为随机存取存储器(RAM),而将非易失性存储器设置为硬盘。在移动设备上,可以将易失性存储器设置为RAM,而将非易失性存储器设置为闪存。一些计算设备适用于实现虚拟存储,其中,例如可以将存储在RAM中的数据或指令换出到非易失性存储器组件以便暂时释放RAM中的空间。按照这种方式,非易失性存储器组件似乎扩展了RAM的存储容量,在计算设备中,通常可用的RAM的存储容量相对于可用的非易失性存储器来说在数量上更加有限。
然而,当将数据写入非易失性存储器介质时,直到被重写之前数据都会保持在该介质上,即使介质断电。攻击者也许可能访问介质上尚未被重写(例如断电后)的数据。因此,如果将敏感数据写入到非易失性存储器组件,即使只是短暂地,也可能存在安全风险。

发明内容
本发明的实施例大体上涉及一种用于管理移动设备中存储器的系统和方法,以避免将敏感数据换出到非易失性存储器,来消除这种安全风险。
在一个整体方面上,提供了一种管理移动设备中存储器的方法,用于在移动设备上执行一个或多个程序期间避免将敏感数据换出到非易失性存储器,所述方法包括以下步骤识别存储在移动设备易失性存储器上的、将要被换出到非易失性存储器组件的一个或多个数据对象;确定所述一个或多个数据对象的第一子集,其中属于第一子集的每个数据对象都被标记为包含敏感数据;以及将数据对象的第一子集保留在移动设备的易失性存储器中,使得数据对象的第一子集不会被换出到非易失性存储器组件。
在另一个整体方面上,提供了一种管理移动设备中存储器的系统,用于在移动设备上执行一个或多个程序期间避免将敏感数据换出到非易失性存储器,所述系统包括处理器;与处理器相连的易失性存储器;与处理器相连的非易失性存储器组件;存储器管理组件,用于在处理器执行一个或多个程序期间控制易失性存储器和非易失性存储器组件之间的数据对象的交换;其中,存储器管理组件适用于执行以下步骤识别存储在移动设备易失性存储器上的、将要被换出到非易失性存储器组件的一个或多个数据对象;确定所述一个或多个数据对象的第一子集,其中属于第一子集的每个数据对象都被标记为包含敏感数据;以及将数据对象的第一子集保留在移动设备易失性存储器中,使得数据对象的第一子集不会被换出到非易失性存储器组件。


为了更好地理解此处所述的系统和方法的实施例,并且为了更清楚地示出怎样实现这些实施例,现在作为示例来参考附图,其中图1是一个示例实施方式中的移动设备的框图;图2是图1中移动设备的通信子系统组件的框图;图3是无线网络的节点的框图;图4是示出了包括可寻址存储器的系统的多个组件的高级框图;图5A是示出了存储器管理方法的实施例的步骤的流程图;图5B是示出了存储器管理方法的另一个实施例的步骤的流程图;以及图5C是示出了存储器管理方法的另一个实施例的步骤的流程图。
具体实施例方式
此处描述的系统和方法的实施例可以应用于移动站。移动站是带有具有和其它计算机系统通信的能力的先进数据通信能力的双向通信设备,而且此处主要是指移动设备。移动设备还可以包括语音通信的能力。取决于移动设备所提供的功能,移动设备可以是指收发数据消息设备、双向寻呼机、带有收发数据消息能力的蜂窝电话、无线因特网装置或数据通信设备(带有或不带有电话能力)。移动设备通过收发站的网络来与其它设备进行通信。
参考图1至图3来帮助读者理解移动设备的结构和移动设备如何与其它设备通信。
首先参考图1,一个示例实施方式中的移动设备的框图通常如100所示。移动设备100包括多个组件,控制组件是微处理器102。微处理器102控制移动设备100的整体操作。包括数据和语音通信的通信功能通过通信子系统104得以执行。通信子系统104从无线网络200接收消息并将消息发送给无线网络200。在移动设备100的该示例实施例中,根据全球移动通信系统标准(GSM)和通用分组无线业务(GPRS)标准来配置通信子系统104。GSM/GPRS无线网络是全球使用的,而且可以预期将会被增强型数据GSM环境(EDGE)和通用移动通信业务(UMTS)最终取代。新的标准仍在定义中,但是可以相信新标准和此处描述的网络特性有类似之处,并且本领域的技术人员可以理解到,本发明意欲使用将来被开发的任意其它适合的标准。使通信子系统104与网络200相连的无线链路表示根据针对GSM/GPRS通信而指定的规定协议来操作的一个或多个不同的射频(RF)信道。利用更新的网络协议,这些信道能够同时支持电路交换语音通信和分组交换数据通信。
尽管在移动设备100的一个示例实施方式中,与移动设备100相关联的无线网络是GSM/GPRS无线网络,但是在变化的实施方式中,其它无线网络也可以与移动设备100相关联。例如,可以采用的不同类型的无线网络包括数据中心(data-centric)无线网络、语音中心(voice-centric)无线网络以及能够在相同的物理基站上支持语音和数据通信的双模式网络。组合的双模式网络包括但不限于码分多址(CDMA)或CDMA2000网络、GSM/GPRS网络(如上所述)以及例如EDGE和UMTS的未来第三代(3G)网络。一些更老的数据中心网络的示例包括MobitexTM无线网络和DataTACTM无线网络。一些更老的语音中心数据网络的示例包括例如GSM和时分多址(TDMA)系统的个人通信系统(PCS)网络。
微处理器102还与附加子系统相互作用,例如随机存取存储器(RAM)106、闪存108、显示器110、辅助输入/输出(I/O)子系统112、串行端口114、键盘116、扬声器118、麦克风120、近程通信子系统122和其它设备124。
移动设备100的一些子系统执行通信相关的功能,而其它子系统可以提供“固有”或设备上(on-device)的功能。作为示例,显示器110和键盘116既可以用于例如键入在网络200上传输的文本消息的通信相关功能,又可以用于例如计算器或任务列表的设备固有功能。微处理器102使用的操作系统软件通常被存储在例如闪存108的持久性(非易失性)存储器中,持久性存储器可以可选地为只读存储器(ROM)或相似的存储元件(未示出)。本领域的技术人员可以理解,可以将操作系统、专用设备应用程序或其部分暂时地加载到例如RAM 106的易失性存储器中。
在必需的网络注册或激活过程完成后,移动设备100可以在网络200上发送和接收通信信号。网络访问与移动设备100的订户或用户相关联。为了识别订户,移动设备100需要将订户身份模块或“SIM”卡126插入到SIM接口128中,以便与网络进行通信。SIM 126是一种常规“智能卡”,用于识别移动设备100的订户并且使移动设备100个性化。没有SIM 126,移动设备100不能完全地执行和网络200通信的操作。通过将SIM 126插入SIM接口128,订户能够访问所有订阅的服务。服务可以包括例如电子邮件的网络浏览和收发消息、语音邮件、短消息服务(SMS)和收发多媒体消息服务(MMS)。更先进的服务可以包括销售点、现场服务和销售人员自动化。SIM126包括处理器和用于存储信息的存储器。一旦SIM 126被插入SIM接口128,SIM 126就与微处理器102相连。为了识别订户,SIM 126包含例如国际移动订户身份(IMSI)的一些用户参数。使用SIM 126的优点是订户不需被任意单独的物理移动设备所限制。SIM 126也可以存储移动设备的附加订户信息,包括记事册(或日历)信息和最近的呼叫信息。
移动设备100是电池供电的设备,并且包括用于容纳一个或多个可充电电池130的电池接口132。电池接口132与用于辅助电池130给移动设备100提供电源V+的调节器(未示出)相连。尽管当前的技术使用电池,例如微燃料电池的未来技术也可以给移动设备100供电。
除了本身的操作系统功能之外,微处理器102还使软件应用程序能够在移动设备100上执行。通常在移动设备的制造过程中将包括数据和语音通信应用程序的控制基本设备操作的一组应用程序安装在移动设备上。另一种可以被加载到移动设备100上的应用程序可以是个人信息管理程序(PIM)。PIM具有组织和管理订户感兴趣的数据项的功能,所述数据项是例如但不限于电子邮件、日程事件、语音邮件、约会和任务项。PIM应用程序能够通过无线网络200来发送和接收数据项。使用存储的和/或与主计算机系统相关联的移动设备订户的相应数据项,PIM数据项可以通过无线网络200被无缝地整合、同步和更新。这项功能在移动设备100上创建了关于这些数据项的镜像主计算机。在主计算机系统是移动设备订户的办公室计算机系统时,这项功能特别有利。
也可以通过网络200、辅助I/O子系统112、串行端口114、近程通信子系统122或任意其它适合的子系统124将附加的应用程序加载到移动设备100上。这种应用程序安装的灵活性增加了移动设备100的功能,并可以提供增强的设备上功能、通信相关功能或两者。例如,安全通信应用程序使得可以利用移动设备100来执行电子商务功能和其它例如金融事务的事务。
除了通过无线通信网络,串行端口114使订户能够通过外部设备或软件应用程序来设置优选项,以及通过给移动设备100提供信息或下载软件到移动设备100来扩展移动设备100的性能。例如,可选的下载路径可以用于通过直接因而可靠且可信的连接来将密钥加载到移动设备100上,以便提供安全的设备通信。
近程通信子系统122为移动设备100与不同的系统或设备之间的通信做了准备,而不需使用网络200。例如,子系统122可以包括红外设备和相关电路以及用于近程通信的组件。近程通信的示例可以包括红外数据协会(IrDA)开发的标准、蓝牙和IEEE开发的802.11标准族。
使用中,例如文本消息、电子邮件消息或网页下载的接收信号由通信子系统104处理并被输入微处理器102。微处理器102接着处理接收数据,以便输出到显示器110或可选地输出到辅助I/O子系统112。订户也可以使用键盘116结合显示器110以及可能的辅助I/O子系统112,来编撰例如电子邮件消息的数据项。辅助子系统112可以包括例如以下设备触摸屏、鼠标、轨迹球、红外指纹检测器或带有动态按钮功能的滚轮。键盘116是字母数字键盘和/或电话型小键盘。可以通过通信子系统104在网络200上发送编撰的数据项。
对于语音通信,除了接收信号将被输出到扬声器118以及由麦克风120产生发送信号以外,移动设备100的整体操作基本上是相似的。可以在移动设备100上实现例如语音消息记录子系统的可选语音或音频I/O子系统。尽管主要通过扬声器118来完成语音或音频信号输出,显示器110也可以被用于提供附加的信息,例如呼叫方的身份、语音呼叫持续时间或其它语音呼叫相关信息。
现在参考图2,它示出了图1的通信子系统组件104的框图。通信子系统104包括接收机150、发射机152、一个或多个嵌入的或内部的天线元件154和156、本地振荡器(LO)158以及例如数字信号处理器(DSP)160的处理模块。
通信子系统104的特殊设计取决于移动设备100计划操作所处的网络200,因此应当理解的是,图2示出的设计只作为一个示例。通过网络200由天线154接收到的信号被输入接收机150,接收机150可以执行普通接收机的功能,例如信号放大、频率下变频、滤波、信道选择和模拟到数字(A/D)转换。接收信号的A/D转换允许在DSP 160中执行例如解调和解码的更复杂的通信功能。按照相似的方式由DSP160来处理发送信号,包括调制和编码。这些DSP处理的信号被输入发射机152,用于进行数字到模拟(D/A)转换、频率上变频、滤波、放大以及通过天线156在网络200上发射。DSP 160不仅处理通信信号,还提供接收机和发射机的控制。例如,可以通过在DSP 160中实现的自动增益控制算法来自适应地控制在接收机150和发射机152中施加到通信信号的增益。
移动设备100和网络200之间的无线链路可以包含通常是不同RF信道的一个或多个不同信道以及在移动设备100与网络200之间使用的相关联的协议。RF信道是必须节约的有限资源,通常是由于移动设备100的整体带宽的限制和有限的电池功率所导致的。
当移动设备100完全操作时,发射机152通常只在向网络200发射数据时被接通或开启,其它时候被关闭,以便节约资源。相似地,接收机150在指定时限内周期性地被关闭来节约电能,直到需要接收信号或信息(如果有的话)时才开启。
现在参考图3,无线网络节点的框图如202所示。实际中,网络200包括一个或多个节点202。移动设备100在无线网络200内与节点202进行通信。在图3的示例实施方式中,根据通用分组无线业务(GPRS)和全球移动通信系统(GSM)技术来配置节点202。节点202包括具有相关联的塔站206的基站控制器(BSC)204、被附加用于在GSM中支持GPRS的分组控制单元(PCU)208、移动交换中心(MSC)210、归属位置寄存器(HLR)212、访问位置寄存器(VLR)214、服务GPRS支持节点(SGSN)216、GPRS支持节点关口(GGSN)218和动态主机配置协议(DHCP)220。这个组件列表不意味着是GSM/GPRS网络中每个节点202的组件的详尽列表,而只是通常在通过网络200的通信中使用的组件列表。
在GSM网络中,MSC 210与BSC 204相连,并且与例如公共交换电话网(PSTN)222的陆地网络相连,以满足电路交换的需求。通过PCU 208、SGSN 216和GGSN 218与公共或专用网络(因特网)224(在此处通常也指共享网络基础设施)的连接表示能够进行GPRS功能的移动设备的数据路径。在扩展具有GPRS能力的GSM网络中,BSC 204还包含分组控制单元(PCU)208,用于与SGSN 216相连来控制分段、无线信道分配以及满足分组交换的需求。为了跟踪移动设备的位置并且可供电路交换和分组交换管理使用,在MSC 210和SGSN 216之间共享HLR 212。对VLR 214的访问受MSC 210的控制。
站206是固定的收发站。站206和BSC 204共同组成了固定的收发装备。固定的收发装备提供了通常被称为“小区”的特定覆盖区域的无线网络覆盖。固定的收发装备通过站206向在其小区内的移动设备发送通信信号并且从在其小区内的移动设备接收通信信号。固定的收发装备通常在其控制器的控制下,根据特殊的(通常预定的)通信协议和参数,来执行例如对要发送给移动设备的信号的调制和可能的编码和/或加密的功能。如果需要,固定的收发装备类似地对来自其小区内的移动设备100的接收通信信号进行解调和可能的解码和解密。通信协议和参数可以在不同节点之间变化。例如,一个节点可以相对于其它节点使用不同的调制方案并且在不同的频率上进行操作。
对于向专用网络注册的所有移动设备100,将例如用户简档的永久配置数据存储在HLR 212中。HLR 212还包含每个注册的移动设备的位置信息,能够被查询以确定移动设备的当前位置。MSC 210负责一组位置区域,并将当前其负责区域内的移动设备的数据存储在VLR中。此外,VLR 214还包含关于访问其它网络的移动设备的信息。VLR214中的信息包括从HLR 212发送给VLR 214以实现更快访问的部分永久移动设备数据。通过将附加的信息从远程HLR 212节点移动到VLR2 14,能够减少这些节点之间的通信量,所以可以提供具有更快的反应时间且同时需要使用更少计算资源的语音和数据服务。
添加元件SGSN 216和GGSN 218用于在GSM中支持GPRS(即分组交换数据支持)。SGSN 216和MSC 210通过保持跟踪每个移动设备100的位置,在无线网络200中具有相似的职责。SGSN 216也为网络200上的数据业务提供安全功能和访问控制。GGSN 218给外部分组交换网络提供了网络连接,并通过在网络200中操作的因特网协议(IP)主干网与一个或多个SGSN 216相连。在正常操作中,给定的移动设备100必须执行“GPRS附加(attach)”来获得IP地址和访问数据服务。在电路交换语音信道中不存在这个要求,因为综合业务数字网(ISDN)的地址被用于路由输入和输出的呼叫。当前,所有具有GPRS功能的网络使用专用的动态分配的IP地址,因此需要DHCP服务器220与GGSN218相连。存在多种动态IP分配机制,包括使用远程验证拨号用户服务(RADIUS)服务器和DHCP服务器的组合。一旦完成了GPRS附加,就建立了从移动设备100经过PCU 208和SGSN 216到GGSN 218内的访问点节点(APN)之间的逻辑连接。APN表示能够访问直接因特网兼容服务或者专用网络连接的IP隧道的逻辑终端。在必须将每个移动设备100分配给一个或多个APN并且移动设备100在没有首先执行与其已被授权使用的APN的GPRS附加时不能交换数据的情况下,APN还表示网络200的安全机制。APN可以被认为和例如“myconnection.wireless.com”的因特网域名相似。
一旦完成了GPRS附加,就创建了隧道,并且在使用IP分组所支持的任意协议在标准IP分组中交换所有业务。这包括例如IP over IP的隧道方法,就象在虚拟专用网(VPN)使用的一些IPSecurity(IPsec)连接的情况下一样。这些隧道也被称为分组数据协议(PDP)语境,并且在网络200中具有有限数目的可用隧道。为了PDP语境的使用最大化,网络200将会为每个PDP语境运行空闲记时器来确定是否不活动。当移动设备100未使用其PDP语境时,可以释放PDP语境并且IP地址返回到DHCP服务器220管理的IP地址池。
此处描述的是用于管理移动设备中存储器以避免敏感数据被换出到非易失性存储器的系统和方法的实施例,来提供增强的安全性,防止对敏感数据的未授权的访问。在说明书和权利要求书中,可以替换使用术语“贮存器”、“存储”和“存储器组件”。可以理解的是,每个这些术语都不限于限定由单独的物理组件或设备组成的实施方式。例如,多个物理组件和设备可以共同提供“存储器”或“存储器组件”。
通过避免敏感数据被从移动设备上的易失性存储器被换出到非易失性存储器(即使只是暂时的),攻击者将不能访问那些遗留存储在非易失性存储器上的敏感数据。在将敏感数据换出到非易失性存储器的情况下,例如因为在数据被交换回易失性存储器之前移动设备断电,或因为在被删除或交换回易失性存储器后没有正确地擦除或重写数据,敏感数据可能变为可以由攻击者访问。
此处描述的系统和方法的实施例能够应用于多种敏感数据。例如,当键入用户口令时,可以将其存储在不可交换的对象中,因此口令数据永远不会被写入非易失性存储器中。可以将在建立或维持安全通信信道中使用的共享秘密存储到这些对象中。相似地,可以将例如来自如高敏感通信的服务器的密钥和安全数据存储在这些对象中。在所有这些情况下,攻击者将不能从非易失性存储器读取敏感数据,因为敏感数据永远不会被存储在非易失性存储器上。
在这些实施例中,避免了存储在移动设备的易失性存储器(如图1中的RAM 106)中的敏感数据被换出到非易失性存储器组件(如图1中的快擦写存储器108)或例如硬盘的其它非易失性存储器、或例如USB棒的可拆卸存储器。这种技术与现有技术领域中的系统使用的技术形成对比,后者允许将敏感数据从易失性存储器换出到非易失性存储器组件,但对数据进行处理使数据仅以加密的形式存在于非易失性存储器组件上。尽管这种现有技术的系统可以解决与此处描述的实施例相同的安全问题,但是在易失性和非易失存储器组件之间交换数据时执行数据的加密和解密通常需要相当大量的处理。例如,也许可以在桌面或膝上计算系统中更有效地处理这个附加处理,但在受例如电池寿命的稀有资源约束的移动设备上不希望执行这些附加处理。
此外,在至少一个示例实施例中,甚至在易失性存储器中时也没有加密敏感数据。因此,如果数据仍被存储在易失性存储器,攻击者能够试图从易失性存储器读取敏感数据,但是由于介质的易失性以及当易失性存储器断电时数据不再可用的事实,这通常更加困难。因此,由于在这些实施例中敏感数据在易失性或非易失性存储器中时不经过加密,在关于存储在易失性存储器中的敏感数据的安全性破坏风险和更有效处理的益处之间存在可能的权衡。
根据此处描述的示例实施例的另一方面,可以将避免从易失性存储器(例如RAM)换出到非易失性存储器组件的敏感数据存储在被标记为包含敏感数据的对象或记录中。这使得适合于对存储在易失性存储器上的数据执行虚拟存储器管理功能的数据处理组件可以将这样标记的对象或记录标识为例如“不要被交换”或“只在RAM中”。根据这些实施例,能够避免将数据换出到非易失性存储器,在对象等级上管理数据。这可以给构造在移动设备上运行的程序的源代码的应用程序开发者(“程序员”)提供更大的灵活性,程序员可以通过强制要将这种数据存储在标记为包含敏感数据的对象中,来在他们的代码中定义在运行时哪些数据应该被避免换出到非易失性存储器组件。
这种方法与现有领域中的系统形成对比,在后者中,易失性存储器的特殊区域或块被分配为“非可交换的”,敏感数据被存储在这些区域中,因此能被保护不被换出到非易失性存储器。在这样一些现有技术的系统中,在运行时间之前就固定了存储器中专用“非可交换的”区域的大小。在其它这样一些现有技术的系统中,可以在程序执行期间动态地分配“非可交换的”块。然而,这需要程序员编写能够明确地调用函数来将专用地址块分配为“非可交换的”的源代码,这实现起来相对更加复杂。
从程序员的观点来看,编写源代码来定义能够被标记为包含敏感数据(不管运行时敏感数据是否实际存储于对象中)的对象的能力实现起来并不复杂。在对象等级上保护敏感数据更为直观,特别是在源代码采用面向对象的编程语言来编写时。在面向对象的编程语言中,可以将例如继承的属性用于自动标记合适的数据。
移动设备通常具有有限的存储能力。和个人计算机相比,移动设备通常具有更少的物理存储器,并缺少用于持久存储大块数据和使用虚拟存储器来补充物理存储器的硬盘。由于移动设备的总存储容量通常远小于例如桌面或膝上计算设备的更大计算设备的总存储器容量,设计用于在移动设备上执行的操作系统软件通常不适用于提供虚拟存储器管理能力。
然而,在移动设备(例如图1中的移动设备100)上实现的一个示例系统中,数据仍然可以在RAM 106(图1)和闪存108(图1)之间交换。这些存储器组件共同组成了移动设备上的可寻址存储器。参考图4,包括可寻址存储器的系统的多个组件的高级示意图通常如300所示。系统300包括微处理器102以及通过数据总线312与微处理器102相连的可寻址存储器310。可寻址存储器310存储了微处理器软件模块314(例如操作系统软件)、堆(heap)316和参考表318。在该示例系统中,操作系统不像个人计算机的操作系统通常所作的那样管理换入和换出RAM的数据交换。作为替代,设置在移动设备100上的虚拟机软件320适用于在系统300中将数据记录换入和换出RAM。例如,虚拟机软件320适用于把数据记录从闪存加载到RAM中来对数据记录进行修改,然后把数据记录从RAM存回闪存来获得持久性存储。本领域的技术人员可以理解,虚拟机软件320实现了运行在硬件平台和操作系统(在本例中,是指移动设备100的硬件平台和存在系统)之上的虚拟机(例如JavaTM虚拟机)。虚拟机能够解释在应用程序或程序模块322中找到的虚拟机指令,使得通常使用相关联的编程语音(例如Java)编写的程序能够运行在该硬件上。
在该示例系统中,虚拟机可以适用于把数据从RAM中暂时换出到闪存以释放RAM的空间,从而提供虚拟存储器能力。
还可以通过虚拟机将数据从RAM换出到闪存,使得可以更永久性地存储数据。通过这种虚拟机,可以在移动设备上在该系统中实现管理存储器以避免将敏感数据换出到例如闪存的非易失性存储器的方法的实施例。
参考图5A,在一个实施例中管理移动设备中存储器的方法的步骤通常如400所示。
在步骤410处,最初由一个或多个程序员编写要在移动设备(例如图1中的移动设备100)上执行的程序的源代码。程序员被允许编写当执行时创建对象的代码,其中每个对象都具有“只在RAM上”的属性,该属性表明各个对象包含敏感数据。例如,特殊的“只在RAM上”的属性可以和对象相关联,并能够被赋予布尔值来(例如向下文所述的运行时间环境中的存储器管理组件)表明该对象是否将会从RAM被换出到非易失性存储器。按照这种方式,对象在编程阶段就能够被标记为包含敏感数据,使得当执行程序时,能够将数据存储在那些对象中以避免数据被从RAM中换出。
随后,在运行时间,在程序执行(在步骤420处开始)期间,移动设备上的存储器管理组件试图把易失性存储器中的一个或多个数据对象换出到非易失性存储器。例如,这可以开始以暂时释放移动设备上易失性存储器中的空间。在结合图4所描述的一个示例系统中,适用于执行这种存储器管理功能的存储器管理组件是移动设备上的虚拟机(例如通过图4中的虚拟机软件320实现)。该虚拟机适用于把数据对象从易失性存储器(例如图1中的RAM 106)交换到非易失性存储器(例如图1中的闪存)。因此,在步骤430处,虚拟机识别易失性存储器中的将要被交换到非易失性存储器组件的一个或多个数据对象。然而,根据这种方法,虚拟机适用于在数据对象被换出到非易失性存储器组件前,首先检查数据对象是否已经被标记为包含敏感数据。
因此,在步骤440处,将要被换出到非易失性存储器组件的数据对象不仅被检查是否具有“只在RAM上”的属性,还被检查该属性是否被赋予了表明不会将对象换出到非易失性存储器的值。如果属性存在并且被赋予了这种值,那么在步骤450处,将数据对象保留在移动设备的易失性存储器中,使得数据对象不会被换出到非易失性存储器组件。另一方面,如果在数据对象中不存在该属性,或属性虽然存在但是未被赋予表明不会将该数据对象换出到非易失性存储器的值,那么在步骤460处,存储器管理组件可以开始将对象换出到非易失性存储器组件。
如果存储器管理组件将要换出到非易失性存储器组件的数据对象多于一个,则可以重复从步骤440开始的步骤。在被检查到后,不需要单独地将数据对象换出到非易失性存储器。本领域的技术人员可以理解,存储器管理组件可以在将数据对象交换到非易失性存储器组件前检查多个数据对象的“只在RAM上”的属性和该属性的值。在步骤470处,程序继续执行。
在方法的不同实施方式中,可选的技术可以被用于将数据对象标记为包含敏感数据,来控制哪些数据对象不会被换出到非易失性存储器。
例如,现在参考图5B,另一个实施例中管理移动设备中存储器的方法的步骤通常如400b所示。除了在编程阶段使用定义包含敏感数据的对象实现的特殊预定义类或接口来标记对象以外,方法400b和方法400相似。这允许程序员编写在执行时创建特殊类或接口的实例的代码。存储器管理组件适用于检测作为特殊类或接口的实例的对象,并且不将这种对象换出到非易失性存储器。当执行程序时,数据能够被存储在这些对象中,以保护数据不被从RAM换出到非易失性存储器组件。方法400b中的步骤410b和440b反映了这种不同的标记技术。
现在参考图5C,另一个实施例中管理移动设备中存储器的方法的步骤通常如400c所示。方法400c可以应用于上述两种方法中。在方法400c中,存储器管理组件适用于检查(可能使用递归的方式)本身没有被标记为“只在RAM上”的对象是否包含其它已被标记为“只在RAM上”的对象。在该实施例中,包含“只在RAM上”的对象的任意对象本身也被认为是“只在RAM上”的,而且不会被换出到非易失性存储器。
在本发明的不同实施例中,某些函数被定义为敏感的,使得作为参数被传递给这些函数的任意对象(例如密钥)将会自动地被标记为“只在RAM上”。
尽管此处描述的系统和方法的一些实施例大体上涉及可能被交换到驻留(reside on)在移动设备上的非易失性存储器组件(例如闪存)的数据的管理,可以理解的是,在特定的系统配置中,数据可能从移动设备上的易失性存储器被换出到的非易失性存储器组件可以是不驻留在移动设备本身上的远程组件。
此外,此处对所提供的一些示例的描述是关于虚拟机作为存储器管理组件的,虚拟机适用于执行管理移动设备中存储器的方法的特定步骤。然而,在不同的实施例中,适用于执行这些存储器管理功能的存储器管理组件是移动设备上执行的操作系统。
作为示例,此处提供了主要关于移动设备的示例的描述。然而,在不同的实施例中,此处描述的至少一些系统和方法可以被用在其它计算设备上。
此处描述的管理移动设备中存储器的方法的步骤可以被设置为存储在可以包括传输(transmission)型媒体的计算机可读媒体上的可执行软件指令。
对本发明关于多个实施例进行了描述。然而,本领域的技术人员可以理解,在不背离所附权利要求定义的本发明范围下,可以进行不同的改变和修改。
权利要求
1.一种管理移动设备中存储器的方法,用于在移动设备上执行一个或多个程序期间,避免将敏感数据换出到非易失性存储器,所述方法包括以下步骤a)识别存储在移动设备上的易失性存储器中的、将被换出到非易失性存储器组件的一个或多个数据对象;b)确定所述一个或多个数据对象的第一子集,其中属于第一子集的每个数据对象被标记为包含敏感数据;以及c)将数据对象的第一子集保留在移动设备易失性存储器中,使得数据对象的第一子集不会被换出到非易失性存储器组件。
2.根据权利要求1所述的方法,还包括将不在第一子集中的至少一个数据对象换出到非易失性存储器组件的步骤。
3.根据权利要求1或2所述的方法,其中,非易失性存储器组件驻留在移动设备上。
4.根据权利要求1至3中任意一项所述的方法,其中,如果数据对象包含具有表明对象已经被标记为包含敏感数据的值的属性,则在确定步骤确定所述一个或多个数据对象的数据对象属于第一子集。
5.根据权利要求1至3中任意一项所述的方法,其中,如果数据对象被确定为定义包含敏感数据的对象的实现的类或接口的实例,则在确定步骤确定所述一个或多个数据对象的数据对象属于第一子集。
6.根据权利要求1至3中任意一项所述的方法,其中,如果数据对象被作为参数传递给敏感函数,则认为数据对象被标记为包含敏感数据。
7.根据上述权利要求中任意一项所述的方法,其中,如果以下条件中的至少一项为真,则认为数据对象被标记为包含敏感数据i)数据对象本身被标记为包含敏感数据;ii)数据对象包含第二数据对象,而第二数据对象被标记为包含敏感数据。
8.一种软件应用程序,包括存储在计算机可读介质上的多个指令,所述指令用于执行根据上述权利要求中任意一项所述的管理移动设备中存储器的方法。
9.一种管理移动设备中存储器的系统,用于在移动设备上执行一个或多个程序期间,避免将敏感数据换出到非易失性存储器,所述系统包括处理器;与处理器相连的易失性存储器;与处理器相连的非易失性存储器;存储器管理组件,用于在处理器执行一个或多个程序期间,控制易失性存储器和非易失性存储器组件之间的数据对象的交换;其中,所述存储器管理组件适用于执行以下步骤a)识别存储在移动设备上的易失性存储器中的、将被换出到非易失性存储器组件的一个或多个数据对象,b)确定所述一个或多个数据对象的第一子集,其中属于第一子集的每个数据对象被标记为包含敏感数据,以及c)将数据对象的第一子集保留在移动设备易失性存储器中,使得数据对象的第一子集不会被换出到非易失性存储器组件。
10.根据权利要求9所述的系统,其中,在移动设备上的虚拟机中实现存储器管理组件。
11.根据权利要求9或10所述的系统,其中,存储器管理组件还适用于执行将不在第一子集中的至少一个数据对象换出到非易失性存储器组件的步骤。
12.根据权利要求9至11中任意一项所述的系统,其中,非易失性存储器组件驻留在移动设备上。
13.根据权利要求9至12中任意一项所述的系统,其中,如果数据对象包含具有表明对象已经被标记为包含敏感数据的值的属性,则在确定步骤确定一个或多个数据对象的数据对象属于第一子集。
14.根据权利要求9至12中任意一项所述的系统,其中,如果数据对象被确定为定义包含敏感数据的对象的实现的类或接口的实例,则在确定步骤确定一个或多个数据对象的数据对象属于第一子集。
15.根据权利要求9至12中任意一项所述的系统,其中,如果数据对象被作为参数传递给敏感函数,则认为数据对象被标记为包含敏感数据。
16.根据权利要求9至15中任意一项所述的系统,其中,以下条件中的至少一项为真,则认为数据对象被标记为包含敏感数据i)数据对象本身被标记为包含敏感数据;ii)数据对象包含第二数据对象,而第二数据对象被标记为包含敏感数据。
全文摘要
一种管理移动设备中存储器的系统和方法,用于避免将敏感数据从易失性存储器换出到非易失性存储器,来为敏感数据提供增强的安全性。在一个整体方面,提供了一种管理移动设备中存储器的方法,包括步骤识别存储在移动设备易失性存储器上的、将被换出到非易失性存储器组件的一个或多个数据对象;确定被标记为包含敏感数据的对象;以及将这样标记的对象保留在移动设备的易失性存储器中。
文档编号G06F12/14GK1985244SQ200580008248
公开日2007年6月20日 申请日期2005年8月3日 优先权日2005年6月24日
发明者麦克尔·S·布朗, 麦克尔·K·布朗, 麦克尔·G·柯卡普, 尼尔·P·亚当斯, 赫伯特·A·利特尔 申请人:捷讯研究有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1