CN101802835B - 便携介质上的软件的保护 - Google Patents

便携介质上的软件的保护 Download PDF

Info

Publication number
CN101802835B
CN101802835B CN200880107267.3A CN200880107267A CN101802835B CN 101802835 B CN101802835 B CN 101802835B CN 200880107267 A CN200880107267 A CN 200880107267A CN 101802835 B CN101802835 B CN 101802835B
Authority
CN
China
Prior art keywords
processing equipment
recording medium
readable recording
portable machine
machine computer
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
CN200880107267.3A
Other languages
English (en)
Other versions
CN101802835A (zh
Inventor
M·卡尔基
Y·阿塔斯
B·萨瑞恩
S·尤纳尔
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.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft Technology Licensing LLC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Microsoft Technology Licensing LLC filed Critical Microsoft Technology Licensing LLC
Publication of CN101802835A publication Critical patent/CN101802835A/zh
Application granted granted Critical
Publication of CN101802835B publication Critical patent/CN101802835B/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/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/12Protecting executable software
    • G06F21/121Restricting unauthorised execution of programs
    • G06F21/125Restricting unauthorised execution of programs by manipulating the program code, e.g. source code, compiled code, interpreted code, machine code
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/101Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM] by binding digital rights to specific entities
    • G06F21/1014Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM] by binding digital rights to specific entities to tokens

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Multimedia (AREA)
  • Technology Law (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Storage Device Security (AREA)

Abstract

提供了用于防止被存储在便携可重写介质上的可执行软件的未经授权的使用的便携可重写介质和方法。被存储在便携可重写介质上的软件的一部分可包括供处理设备确定是否允许可执行软件的执行的指令。如果允许可执行软件的执行,则处理设备可从便携可重写介质中直接执行可执行软件。可检查便携可重写介质的特征以确定可执行软件的功能是否要受限。

Description

便携介质上的软件的保护
背景
闪存设备可将诸如音乐、数据、或其它信息等信息存储在其上。在过去若干年中,闪存设备变得较便宜了。结果,闪存设备被更频繁地使用以电子地存储信息。
当前,可将可执行软件放在诸如例如压缩盘(CD)、数字视频盘(DVD)、或其它便携介质等便携介质上运送给用户。在没有任何类型的保护措施的情况下,用户可使用便携介质、或可使用便携介质的未授权版本以在处理设备上安装并执行盗版或未经许可的软件。结果,软件厂商可能意识到减少的收入。
概述
提供本概述是为了以简化的形式介绍将在以下详细描述中进一步描述的一些概念。本发明内容并不旨在标识出所要求保护的主题的关键特征或必要特征,也不旨在用于限定所要求保护的主题的范围。
在根据本发明主题的各实施例中,可提供一种可移动可重写介质。可移动可重写介质可在其上存储可执行软件。可执行软件可包括具有供处理设备确定是否允许软件的执行的指令的部分。软件可由处理设备从可移动可重写介质中直接执行。在某些实施例中,可检查可移动可重写介质的特征,且基于可移动可重写介质的这些特征,可限制或禁用软件的功能。此外,可检查处理设备的特征,且基于处理设备的这些特征,可限制或禁用软件的功能。
附图
为了描述能够获得上述和其它优点和特征的方式,以下将描述并通过参考附图中示出的各具体实施例来呈现更为具体的描述。可以理解,这些附图仅描述各典型实施例,从而不被认为是对其范围的限制,将通过使用附图用附加特征和细节来描述和说明各个实现。
图1示出了用于根据本发明的主题的各实施例的示例性操作环境。
图2是可被用来实现根据本发明主题的处理设备或服务器的处理设备的功能框图。
图3是示出用于确定存储在便携介质上的软件的执行是否被处理设备允许的示例性处理的流程图。
图4-11是示出用于在根据本发明主题的各实施例中执行图3的动作302的各示例性过程的流程图。
详细描述
以下详细描述各实施例。尽管讨论各个具体实现,但应当理解,这仅是出于说明的目的。相关领域技术人员将认识到,可以使用其它组件和配置而不背离本发明的主题的精神和范围。
概览
在根据本发明的主题的各实施例中,诸如例如闪存设备、或其它可重写可移动介质等可重写可移动介质可包括用于处理设备的可执行软件,诸如例如,软件应用程序、操作系统、或其它可执行软件等。可执行软件的一部分可包括供处理设备确定是否允许被存储在可重写可移动介质上的可执行软件的执行的指令。在处理设备执行可执行软件的一部分之后,仅在可执行软件的一部分的执行导致允许可执行软件的执行的判定时,处理设备可直接从可重写可移动介质中执行可执行软件。换言之,在不将可执行软件安装在处理设备上的情况下,处理设备可直接从可重写可移动介质中执行可执行软件。此外,在根据本发明的主题的某些实施例中,处理设备可访问关于可重写可移动介质的特征的信息。特征可包括介质类型、品牌、介质速度、介质存储容量、介质特性(加密、公私钥、或其它或不同特性)、或其它特征。在其中作出允许直接从可重写可移动介质中执行可执行软件的判定的情况下,可基于所访问的关于可重写可移动介质的特征的信息改变可执行软件的功能。
在各实施例中,可采用多个不同技术来确定是否允许由处理设备执行存储在可重写可移动介质上的可执行软件。例如,可重写可移动介质可包括关于可被允许执行可执行软件的处理设备的类的信息。在此类实施例中,可执行软件可仅在被包括在处理设备的类中的处理设备上执行。该处理设备的一个或多个类可由一个或多个值指示,该值可提供关于被包括在处理设备中的处理器的制造商的信息、被包括在处理设备中的处理器的具体类型、处理器速度、或处理设备的其它或不同特征。
在某些实施例中,在来自可重写可移动介质的可执行软件的第一次执行后,可将关于处理设备的信息存储在可重写可移动介质上,进而将该处理设备与可重写可移动介质相关联。可仅在可重写可移动介质与处理设备相关联时允许来自可重写可移动介质的可执行软件的后续执行。在可重写可移动介质不与处理设备相关联时可阻止可执行软件的执行。
在某些实施例中,可预先在处理设备上安装有效防篡改证明(ID)。可仅在确认了有效防篡改证明ID的存在时允许来自可重写可移动介质的可执行软件的执行。
在某些实施例中,处理设备可执行来自可重写可移动介质的可执行软件的一部分以提交要由被包括在可重写可移动介质中的嵌入式处理设备数字签名的数据对象。可仅在嵌入式处理设备为所提供的数据对象提供有效签名时允许处理设备执行来自可重写可移动介质的可执行软件。
在某些实施例中,处理设备可向诸如服务器或其它处理设备等第二处理设备发送产品信息和处理设备信息。周期性地,处理设备可请求并接收与产品信息相关联的处理设备信息,处理设备可将其与存储在可重写可移动介质中的来自处理设备的处理设备信息进行比较。如果比较展示来自第二处理设备的处理设备信息中的改变,可执行一动作,诸如例如,禁用或减少可执行软件的功能、或执行另一动作。
在某些实施例中,可采用上述技术的组合或其它技术来确定可否可允许来自可重写可移动介质的可执行软件的执行。
示例性操作环境
图1示出了用于根据本发明的主题的各实施例的示例性操作环境100。操作环境100可包括处理设备102、便携介质104、一个或多个服务器106、网络108、以及作为便携介质104的一部分被包括的嵌入式处理设备110。
网络108可以是单个网络或网络的组合,诸如例如,因特网或其他网络。网络108可包括无线网络、有线网络、分组交换网络、公共交换电信网络、光纤网络、其他类型的网络或以上网络的任何组合。
处理设备102可以是用户的处理设备,诸如例如,台式个人计算机(PC)、膝上型PC、手持式处理设备或其他处理设备。
便携介质104可以是诸如例如,通用串行总线(USB)闪速RAM设备、安全数字(SD)卡、或其它介质等可移动地连接到处理设备102的可重写可移动介质。在某些实施例中,便携介质104可包括嵌入式处理设备110。在其中便携介质104是USB闪速RAM设备的实施例中,USB闪速RAM设备可经由处理设备102的USB端口来可移动地连接到处理设备102。在其中便携介质是SD卡的实施例中,SD卡可经由处理设备102的SD卡端口可移动地连接到处理设备102。
服务器106可以是一处理设备或被配置成一起工作的一组处理设备。在其中服务器106包括一组处理设备的实施例中,这些处理设备可被配置成服务器场。
示例性处理设备
图2是示出可用于实现根据本发明的主题的处理设备102和/或服务器106的各实施例的示例性处理设备200的功能框图。
处理设备200可包括总线210、输入设备220、存储器230、只读存储器(ROM)240、输出设备250、处理器260、便携介质端口270和通信接口280。总线210可以准许处理设备200的各组件之间的通信。
处理器260可以包括解释和执行指令的至少一个常规处理器或微处理器。存储器230可以是随机存取存储器(RAM)或存储供处理器260执行的信息和指令的另一种类型的动态存储设备。存储器230还可以存储在处理器260执行指令期间使用的临时变量或其它中间信息。ROM 240可以包括常规ROM设备或为处理器260存储静态信息和指令的另一种类型的静态存储设备。便携介质端口270可提供用于将诸如例如便携介质104的介质连接到处理设备100的装置。便携介质104可存储用于诸如例如处理器260的处理器的数据和/或指令。在处理设备102的某些实施例中,便携介质104可以是处理设备102的唯一存储介质。
输入设备220可包括键盘或其他输入设备。输出设备250可包括输出信息的一个或多个常规机制,包括一个或多个显示屏或其它输出设备。
通信接口280可包括用于向网络108发送信息和从网络108接收信息的收发器。通信接口280可经由无线或有线连接来发送和接收信息。
在嵌入式处理设备110由处理设备200实现时,处理设备110可包括存储器230、ROM240、总线210、以及处理器260。
处理设备200可响应于处理器260执行诸如例如存储器230、ROM 240、便携介质104或其它介质等有形机器可读介质中所包含的指令序列来执行这些功能。这些指令可从另一机器可读介质或经由通信接口280从单独的设备读入存储器230中。
示例性过程
图3是示出可在根据本发明的主题的各实施例中执行的示例性过程的流程图。该过程可开始于处理设备(诸如例如,处理设备102)执行被存储在连接到处理设备102的可重写可移动介质(诸如例如,便携介质104)上的软件的一部分(动作302)。该软件的部分可包括供处理器(诸如例如,处理设备102的处理器260)确定被存储在便携介质104上的可执行软件的执行是否被处理设备102允许的指令。
在各实施例中,可采用多种方法和技术来确定处理设备102是否被允许执行被存储在便携介质104上的可执行软件(动作302)。可在不同实施例中实现的示例性方法可由图4-10的流程图示出。
图4是示出用于执行图3的动作302的一个示例性方法302-1的流程图。通过执行来自便携介质104的软件的一部分,处理设备102可从便携介质104获取关于被允许执行被存储在便携介质104上的可执行软件的处理设备的类的信息(动作402)。在某些实施例中,软件厂商可向便携介质104提供被存储在其中的预定义信息,以指示被允许执行可执行软件的处理设备的一个或多个类。该处理设备的一个或多个类可由一个或多个值指示,该值可提供关于被包括在处理设备中的处理器的制造商的信息、被包括在处理设备中的处理器的具体类型、处理器速度、或处理设备的其它或不同特征。
接着,处理设备102可执行来自被包括在便携介质104中的软件的一部分的指令以从处理设备102后去关于处理设备102的类的信息(动作404)。处理设备102可随后通过将处理设备102的类与被存储在便携介质104中的预定义信息进行比较来确定处理设备102的类是否是允许可执行软件的执行的类(动作406)。如果确定处理设备102的类是被允许执行可执行软件的处理设备的类,则处理设备102可提供允许执行来自便携介质104的可执行软件的指示(动作410)。如果确定处理设备102的类是不被允许执行可执行软件的处理设备的类,则处理设备102可提供不允许执行来自便携介质104的可执行软件的指示(动作408)。
图5是示出用于执行图3的动作302的第二示例性方法302-2的流程图。通过执行来自便携介质104的软件的一部分,处理设备102可从处理设备102提取硬件信息(动作502)。所提取的硬件信息可用作处理设备102的标识符。所提取的硬件信息可包括专用于处理设备102的信息,诸如例如,唯一硬件标识的关键部分、网卡的媒体访问控制(MAC)地址、基本输入/输出(BIOS)固件的系统管理基本输入/输出系统(SMBIOS)全局唯一标识符(GUID)、或其它信息。
处理设备102可随后确定这是否是执行被存储在便携介质104中的可执行软件的第一次尝试(动作504)。在一实施例中,处理设备102可基于存储在便携介质104中的指示符或标志来作出此判定。在另一实施例中,如下文所述,处理设备102可基于在动作506期间存储的信息作出此判定。
如果处理设备102确定这是执行被存储在便携介质104中的可执行软件的第一次尝试,则处理设备102可将所提取的硬件信息存储在便携介质104中(动作506)。在某些实施例中,可将所提取的硬件信息以加密形式存储在便携介质104中。处理设备102可随后提供允许可执行软件在处理设备102上的执行的指示(动作508)。
如果在动作504期间,处理设备102确定这不是执行被存储在便携介质104中的可执行软件的第一次尝试,则处理设备102可确定所提取的硬件信息是否匹配被包括在便携介质104中的之前存储的硬件信息(动作510)。如果确定所提取的硬件信息匹配之前存储的硬件信息,则处理设备102可提供允许可执行软件在处理设备102上的执行的指示(动作508)。否则,处理设备102可提供不允许在处理设备102上执行可执行软件的指示(动作512)。
图6是示出用于执行图3的动作302的第三示例性方法302-3的流程图。在此实施例中,可将防篡改证明ID存储在处理设备102上。在一实现中,防篡改证明ID可以是证书,使用软件开发者的私钥来对该证书进行数字签名。防篡改证明ID可由软件开发者向处理设备102的原始设备制造商(OEM)提供。OEM可将防篡改证明ID烧录到处理设备102的ROM 240中。
该过程可起始于处理设备102执行来自便携介质104的软件的一部分以访问防篡改证明ID(动作602)。接着,处理设备102可验证防篡改证明ID的有效性(动作604)。在其中使用软件开发着的私钥对防篡改证明ID进行数字签名的一个实现中,处理设备102可通过使用对应于软件开发者的私钥的公钥来验证数字签名的有效性。如果处理设备102确定防篡改证明ID具有有效数字签名,则处理设备102可提供允许可执行软件在处理设备102上的执行的指示(动作606)。否则,处理设备102可提供不允许在处理设备102上执行可执行软件的指示(动作608)。
图7是示出用于执行图3的动作302的第四示例性方法302-4的流程图。通过执行来自便携介质104的软件的一部分,处理设备102可通过访问便携式节制104的嵌入式处理设备110来使用数字对象X质询嵌入式处理设备110。嵌入式处理设备110可使用可被存储在便携介质104中不可由处理设备102访问的部分中的私钥对数字对象X签名以产生数字对象Y(动作704)。嵌入式处理设备110可随后将数字对象Y交回到处理设备102(动作706)。处理设备102可随后将对应于私钥的公钥应用到数字对象Y以产生数字对象X’(动作708)。处理设备102可随后通过比较数字对象X’与数字对象X来确定是否使用了有效私钥来对数字对象Y签名(动作710)。如果处理设备102确定数字对象X等于数字对象X’,则使用了有效私钥对数字对象Y签名且处理设备102可提供允许执行来自便携介质104的可执行软件的指示(动作712)。否则,处理设备102可提供不允许执行来自便携介质104的可执行软件的指示(动作714)。
图8是示出用于执行图3的动作302的第五示例性实施例302-5的流程图。此实施例假设在执行可执行软件之前,可执行软件可由处理设备102向诸如例如服务器106等服务器发送关于包括可执行软件的产品的信息、以及关于处理设备102的信息来激活。在此类实施例中,服务器106可负责记录关于产品和执行该产品的处理设备的信息,进而将处理设备与产品相关联。在此实施例中,在每一可执行软件执行预先确定次数之后,处理设备102可请求关于与包括可执行软件在内的产品相关联的处理设备的信息。在一实施例中,处理设备102可在请求关于与产品相关联的处理设备的信息时向服务器106发送产品密钥。如果对应于所请求的信息的所接收到的信息对应于便携介质104中之前被存储的信息,则处理设备102可允许可执行软件在处理设备102上的执行。
通过执行来自便携介质104的软件的一部分,处理设备102可递增计数器(动作804)以对可执行软件的执行次数进行计数。在某些实施例中,可将该计数器初始设置为零。接着,处理设备102可确定该计数器是否等于预先确定的值(动作806)。该预先确定的值可以是40、100、或另一值。
如果处理设备102确定该计数器等于预先确定的值,则处理设备102可重设计数器(动作808)。处理设备102可随后经由诸如例如网络108等网络访问诸如例如服务器106等服务器以请求关于与包括可执行软件的产品相关联的处理设备的信息(动作810)。处理设备102可随后接收关于处理设备的被请求的信息(动作812)。处理设备102可随后确定所接收的被请求信息是否对应于之前存储在便携介质104中的信息(动作814)。存储在便携介质104中的信息可包括例如标识处理设备102的信息、标识可执行软件的信息、标识便携介质104的唯一信息、和/或其它信息。如果所接收到的被请求信息对应于被存储在便携介质104中的信息,则处理设备102可提供允许可执行软件在处理设备102上的执行的指示(动作816)。否则,处理设备102可提供不允许在处理设备102上执行可执行软件的指示(动作818)。
图9是示出用于执行图3的动作302的第六示例性实施例302-6的流程图。处理设备102可执行被存储在便携介质104上的软件的一部分,进而使得处理设备102访问与便携介质104相关的标识符(动作902)。在某些实施例中,标识符可以是唯一的标识符。
处理设备102可随后确定该标识符是否在预定义范围内(动作904)。如果处理设备102确定该标识符在预定义范围内,则处理设备102可随后确定这是否是执行存储在便携介质104中的可执行软件的第一次尝试(动作906)。如果处理设备102确定这是执行被存储在便携介质104中的可执行软件的第一次尝试,则处理设备102可将标识符存储在便携介质104中(动作908)。在某些实施例中,可将标识符以加密形式存储在便携介质104中。处理设备102可随后提供允许执行来自便携介质104的可执行软件的指示(动作910)。
如果在动作904期间,处理设备102确定标识符不在预先确定的范围内,则处理设备102可提供阻止执行来自便携介质104的可执行软件的指示(动作914)。
如果在动作906期间,处理设备102确定这不是执行被存储在便携介质104中的可执行软件的第一次尝试,则处理设备102可确定所存储的标识符是否匹配从便携介质104获取的标识符(动作912)。如果所存储的标识符匹配从便携介质104获取的标识符,则处理设备102可前进至动作910以提供指示允许执行来自便携介质104的可执行软件的标识符。否则,处理设备102可提供阻止执行来自便携介质104的可执行软件的指示(动作914)。
图10-11包括用于解释在组合方法302-1到302-6的处理的实施例中的示例性处理的流程图。根据图10的流程图,处理设备102可执行来自便携介质104的软件的一部分,这可使得处理设备102执行方法302-1(图4)(动作1002)。
处理设备102可随后基于来自执行方法302-1的指示确定是否允许执行来自便携介质104的可执行软件(动作1004)。如果处理设备102确定不允许执行来自便携介质104的可执行软件,则处理设备102可提供阻止执行来自便携介质104的可执行软件的指示(动作1112,图11)。
如果在动作1004期间,处理设备102确定允许可执行软件的执行,则处理设备102可执行方法302-2(图5)(动作1006,图10)。处理设备102可随后基于来自执行方法302-2的指示确定是否允许执行来自便携介质104的可执行软件(动作1008)。如果处理设备102确定不允许执行来自便携介质104的可执行软件,则处理设备102可提供阻止执行来自便携介质104的可执行软件的指示(动作1112,图11)。
如果在动作1008期间,处理设备102确定允许可执行软件的执行,则处理设备102可执行方法302-3(图6)(动作1010,图10)。处理设备102可随后基于来自执行方法302-3的指示确定是否允许执行来自便携介质104的可执行软件(动作1012)。如果处理设备102确定不允许执行来自便携介质104的可执行软件,则处理设备102可提供阻止执行来自便携介质104的可执行软件的指示(动作1112,图11)。
如果在动作1012期间,处理设备102确定允许可执行软件的执行,则处理设备102可执行302-4(图7)(动作1014,图10)。处理设备102可随后基于来自执行方法302-4的指示确定是否允许执行来自便携介质104的可执行软件(动作1016)。如果处理设备102确定不允许执行来自便携介质104的可执行软件,则处理设备102可提供阻止执行来自便携介质104的可执行软件的指示(动作1112,图11)。
如果在动作1016期间,处理设备102确定允许可执行软件的执行,则处理设备102可执行方法302-5(图8)(动作1102,图11)。处理设备102可随后基于来自执行方法302-5的指示确定是否允许执行来自便携介质104的可执行软件(动作1104)。如果处理设备102确定不允许执行来自便携介质104的可执行软件,则处理设备102可提供阻止执行来自便携介质104的可执行软件的指示(动作1112)。
如果在动作1104期间,处理设备102确定允许可执行软件的执行,则处理设备102可执行方法302-6(图6)(动作1106)。处理设备102可随后基于来自执行方法302-6的指示确定是否允许执行来自便携介质104的可执行软件(动作1108)。如果处理设备102确定不允许执行来自便携介质104的可执行软件,则处理设备102可提供阻止执行来自便携介质104的可执行软件的指示(动作1112)。
如果在动作1108期间处理设备102确定允许可执行软件的执行,则处理设备102可提供允许执行来自便携介质104的可执行软件的指示(动作1110)。
返回到图3,在执行动作302之后,处理设备102可检查所提供的指示以确定是否允许被存储在便携介质102上的可执行软件的执行(动作304)。如果处理设备102确定不允许被存储在便携介质102上的可执行软件的执行,则处理设备102可更改可执行软件关于处理设备102的行为(动作306)。在一实施例中,更改可执行软件的行为可包括阻止可执行软件在处理设备102上的执行,或仅启用可执行软件的有限功能集合。
如果在动作304期间,处理设备102确定允许存储在便携介质102上的可执行软件的执行,则处理设备102可获取关于便携介质102的特征的信息(动作308)。这些特征可包括关于介质的类型、介质的品牌、介质的速度、介质存储容量、介质特性(例如,允许加密、公/私钥、或其它的或不同的特性)、或其它信息的信息。
处理设备102可随后确定是否要限制被存储在便携介质104上的可执行软件的功能(动作310)。例如,处理设备102可不执行来自诸如安全数字(SD)卡、或处理设备102的软件驱动程序可能不支持全部功能的其它设备等某些类型的便携介质的可执行软件。在可能具有比预先确定的速度慢的读或写速度的特定介质上,处理设备102可限制对介质的读和写。在某些实施例中,在便携介质104是多媒体卡(MMC)时,由于MMC卡上安全性的缺乏,处理设备102可不执行来自便携介质104的可执行软件。在便携介质104具有小于预先确定量的存储容量时,处理设备102可能不能执行某些功能,诸如例如分页或休眠、或其它的或不同的功能。以上受限功能的示例仅是示例性的。在其它实施例中,可基于便携介质104的不同的或其它的特征来实现额外的、不同的、或其它的受限功能。
如果由于便携介质104的一个或多个特征而使功能受到限制,则可按受限的被改变的功能执行来自便携介质104的可执行软件(假设该受限功能允许执行,否则不允许执行)(动作314)。如果该功能不受限,则处理设备102可在功能不受限的情况下允许执行来自便携介质104的可执行软件(动作312)。
由图3-11的流程图示出的处理仅是示例性的。根据本发明的主题的其它实施例可执行不同的或额外的处理。
结论
尽管用对结构特征和/或方法动作专用的语言描述了本主题,但可以理解,所附权利要求书中的主题不必限于上述具体特征或动作。相反,上述具体特征和动作是作为实现权利要求的示例形式公开的。
虽然以上描述可能包含具体细节,但决不应将其解释为是对权利要求的限制。所述各实施例的其它配置也是本发明的范围的一部分。此外,根据本发明主题的各个实现可以具有比所描述的更多或更少动作,或可以按与所示出的顺序不同的顺序来实现各个动作。因此,只有所附权利要求书及其合法的等效技术方案才应定义本发明,而非任何给出的具体示例。

Claims (21)

1.一种机器实现的方法,用于防止被存储在可重写可移动介质上的可执行软件的未经授权的使用,所述机器实现的方法包括:
由主处理设备直接从所述可重写可移动介质执行可执行软件的第一部分而不在所述主处理设备上安装所述可执行软件的所述第一部分以从所述可重写可移动介质获取信息,其中所获取的信息包括所述可重写可移动介质的类型、所述可重写可移动介质的品牌、所述可重写可移动介质的制造商或所述可重写可移动介质的标识符中的至少一个;
由所述主处理设备基于从所述可重写可移动介质获取的信息来确定是否允许所述可执行软件的第二部分直接从所述可重写可移动介质执行,所述确定是否允许所述可执行软件的第二部分直接从所述可重写可移动介质执行还包括:
由所述主处理设备向所述可重写可移动介质的嵌入式处理设备提交未经签名的数据对象供所述嵌入式处理设备用私钥签名,其中所述私钥对所述主处理设备而言是不可访问的,
由所述主处理设备从所述嵌入式处理设备接收所述数据对象经签名的副本作为从所述可重写可移动介质获取的信息的一部分,
用对所述主处理设备可访问的公钥来处理所接收到的数据对象的经签名的副本,
将所述数据对象的未经签名的副本与所述数据对象的处理后的经签名的副本进行比较,并且
由所述主处理设备基于所确定的所述可重写可移动介质的类型、所述可重写可移动介质的品牌、所述可重写可移动介质的制造商、或所述可重写可移动介质的标识符中的至少一个确定是否允许所述可执行软件的所述第二部分直接从所述可重写可移动介质执行;以及
在所述数据对象的未经签名的副本与所述数据对象的处理后的经签名的副本相同时,由所述主处理设备直接从所述可重写可移动介质以未更改的行为执行所述可执行软件的第二部分。
2.如权利要求1所述的机器实现的方法,其特征在于,
在由所述主处理设备确定允许所述可执行软件的第二部分直接从所述可重写可移动介质执行之后,获取所述可重写可移动介质的至少一个特征,所述至少一个特征包括所述可重写可移动介质的速度、所述可重写可移动介质的安全特征或所述可重写可移动介质的存储容量。
3.如权利要求1所述的机器实现的方法,其特征在于,还包括:
由所述主处理设备向服务器发送标识包括被存储在所述可重写可移动介质上的所述可执行软件的第二部分的产品的信息,
由所述主处理设备响应于向所述服务器发送所述信息来从所述服务器接收响应,其中
由所述主处理设备确定是否允许所述可执行软件的第二部分直接从所述可重写可移动介质执行还包括:
还基于从所述服务器接收到的响应来由所述主处理设备确定是否允许所述可执行软件的第二部分直接从所述可重写可移动介质执行。
4.如权利要求1所述的机器实现的方法,其特征在于,还包括:
确定当前与所述可重写可移动介质相关联的所述主处理设备的至少一个特征,以及
还由所述主处理设备还基于所述主处理设备的所述至少一个特征来确定是否允许存储在所述可重写可移动介质上的所述可执行软件的第二部分的执行。
5.如权利要求1所述的机器实现的方法,其特征在于,还包括:
从与所述可重写可移动介质可移动附连的所述主处理设备中提取用于标识所述主处理设备的信息,以及
还基于用于标识所述主处理设备的所述信息来确定是否允许存储在所述可重写可移动介质上的所述可执行软件的第二部分的执行。
6.如权利要求1所述的机器实现的方法,其特征在于,还包括:
在当前与所述可重写可移动介质相关联的所述主处理设备上验证有效防篡改证明标识符的存在,以及
由所述主处理设备还基于对所述主处理设备上所述有效防篡改证明标识符的存在的验证来确定是否允许被存储在所述可重写可移动介质上的所述可执行软件的第二部分的执行。
7.如权利要求2所述的机器实现的方法,其特征在于,还包括:
基于所述至少一个特征来确定是否限制所述可执行软件的第二部分的功能。
8.一种机器实现的方法,包括:
由便携式机器可读介质可移除地附连的处理设备从所述便携式机器可读介质获取信息,其中所获取的信息包括所述便携式机器可读介质的类型、所述便携式机器可读介质的品牌、所述便携式机器可读介质的制造商或所述便携式机器可读介质的标识符中的至少一个;
基于所获取的信息,确定被存储在所述便携式机器可读介质上的可执行软件的第二部分是否被允许由所述处理设备直接从所述便携式机器可读介质执行,由所述处理设备确定是否允许存储在所述便携式机器可读介质上的所述可执行软件的第二部分的执行还包括:
由所述处理设备向所述便携式机器可读介质的嵌入式处理设备提交未经签名的数据对象供所述嵌入式处理设备用私钥签名,其中所述私钥对所述处理设备而言是不可访问的;
由所述处理设备从所述嵌入式处理设备接收所述数据对象经签名的副本;
由所述处理设备用对所述处理设备可访问的公钥来处理所接收到的数据对象的经签名的副本;
由所述处理设备将所述数据对象的未经签名的副本与所述数据对象的处理后的经签名的副本进行比较;并且
由所述处理设备基于所确定的所述便携式机器可读介质的类型、所述便携式机器可读介质的品牌、所述便携式机器可读介质的制造商、或所述便携式机器可读介质的标识符中的至少一个确定是否允许所述可执行软件的所述第二部分直接从所述便携式机器可读介质执行;以及
基于所述数据对象的未经签名的副本与所述数据对象的处理后的经签名的副本的比较,仅在确定允许被存储在所述便携式机器可读介质上的所述可执行软件的第二部分执行时由所述处理设备以未更改的行为允许所述可执行软件的所述第二部分的执行,被存储在所述便携式机器可读介质上的所述可执行软件第二部分被安排成由所述处理设备从所述便携式机器可读介质中直接执行。
9.如权利要求8所述的机器实现的方法,其特征在于,所获取的信息还包括所述便携式机器可读介质的至少一个特征,以及
由所述处理设备确定还基于从所述便携式机器可读介质获取的信息来确定是否允许存储在所述便携式机器可读介质上的所述可执行软件的第二部分的执行还包括:
确定所述便携式机器可读介质的所述特征是否具有指定值或预先确定的范围内的值,仅在所述便携式机器可读介质的特征具有所述指定值或所述预先确定的范围内的值时允许以所述未更改的行为来执行所述可执行软件的第二部分。
10.如权利要求8所述的机器实现的方法,其特征在于,所述方法还包括:
向服务器发送产品信息,
响应于所述产品信息的发送而接收服务器响应,以及
还基于所接收到的服务器响应来确定是否允许由所述处理设备执行被存储在所述便携式机器可读介质上的所述可执行软件的第二部分。
11.如权利要求8所述的机器实现的方法,其特征在于,由所述处理设备比较所述数据对象的未经签名的副本与所述数据对象的处理后的经签名的副本包括:
确定被签名的数据对象是否具有有效签名,所述有效签名指示出允许由所述处理设备以未更改的行为来执行被存储在所述便携式机器可读介质上的所述可执行软件的第二部分。
12.如权利要求8所述的机器实现的方法,其特征在于,所获取的信息还包括先前存储的处理设备信息,且由所述处理设备确定还基于从所述便携式机器可读介质获取的信息来确定是否允许存储在所述便携式机器可读介质上的所述可执行软件的第二部分的执行还包括:
确定被包括在所述便携式机器可读介质上的被预先存储的处理设备信息是否匹配关于所述处理设备的信息,仅在包括在所获取的信息中的所述被预先存储的处理设备信息匹配关于所述处理设备的信息时,确定被存储在所述便携式机器可读介质上的可执行软件被允许由所述处理设备以未更改的行为执行。
13.如权利要求8所述的机器实现的方法,其特征在于,还包括:
确定所述便携式机器可读介质的至少一个特征,以及
基于所述便携式机器可读介质的所确定的所述至少一个特征来更改所述可执行软件的第二部分的功能。
14.如权利要求8所述的机器实现的方法,其特征在于,还包括:
确定所述便携式机器可读介质的至少一个特征,以及
基于所述便携式机器可读介质的所确定的所述至少一个特征来更改所述可执行软件的功能,其中所述至少一个特征包括所述便携式机器可读介质的速度、所述便携式机器可读介质的安全特性、所述便携式机器可读介质的存储容量中的至少一个。
15.一种计算机系统,包括:
用于由便携式机器可读介质可移除地附连的处理设备从所述便携式机器可读介质获取信息的装置,其中所获取的信息包括所述便携式机器可读介质的类型、所述便携式机器可读介质的品牌、所述便携式机器可读介质的制造商或所述便携式机器可读介质的标识符中的至少一个;
用于基于所获取的信息确定被存储在便携式机器可读介质上的可执行软件的第二部分是否被允许由所述处理设备直接从所述便携式机器可读介质执行的装置,用于由所述处理设备确定是否允许存储在所述便携式机器可读介质上的所述可执行软件的第二部分的执行的装置还包括:
用于由所述处理设备向所述便携式机器可读介质的嵌入式处理设备提交未经签名的数据对象供所述嵌入式处理设备用私钥签名的装置,其中所述私钥对所述处理设备而言是不可访问的,
用于由所述处理设备从所述嵌入式处理设备接收所述数据对象经签名的副本的装置,
用于由所述处理设备用对所述处理设备可访问的公钥来处理所接收到的数据对象的经签名的副本的装置,
用于由所述处理设备将所述数据对象的未经签名的副本与所述数据对象的处理后的经签名的副本进行比较的装置,并且
用于由所述处理设备基于所确定的所述便携式机器可读介质的类型、所述便携式机器可读介质的品牌、所述便携式机器可读介质的制造商、或所述便携式机器可读介质的标识符中的至少一个确定是否允许所述可执行软件的所述第二部分直接从所述便携式机器可读介质执行的装置;以及
用于基于所述数据对象的未经签名的副本与所述数据对象的处理后的经签名的副本的比较,仅在确定允许被存储在所述便携式机器可读介质上的所述可执行软件的第二部分执行时由所述处理设备以未更改的行为允许所述可执行软件的第二部分的执行的装置,被存储在所述便携式机器可读介质上的所述可执行软件的第二部分被安排成由所述处理设备从所述便携式机器可读介质中直接执行。
16.如权利要求15所述的计算机系统,其特征在于,所获取的信息还包括所述便携式机器可读介质的至少一个特征,以及
用于由所述处理设备确定还基于从所述便携式机器可读介质获取的信息来确定是否允许存储在所述便携式机器可读介质上的所述可执行软件的第二部分的执行的装置还包括:
用于确定所述便携式机器可读介质的所述特征是否具有指定值或预先确定的范围内的值的装置,仅在所述便携式机器可读介质的特征具有所述指定值或所述预先确定的范围内的值时允许以所述未更改的行为来执行所述可执行软件的第二部分。
17.如权利要求15所述的计算机系统,其特征在于,还包括:
用于向服务器发送产品信息的装置,
用于响应于所述产品信息的发送而接收服务器响应的装置,以及
用于还基于所接收到的服务器响应来确定是否允许由所述处理设备执行被存储在所述便携式机器可读介质上的所述可执行软件的第二部分的装置。
18.如权利要求15所述的计算机系统,其特征在于,用于由所述处理设备比较所述数据对象的未经签名的副本与所述数据对象的处理后的经签名的副本的装置包括:
用于确定被签名的数据对象是否具有有效签名的装置,所述有效签名指示出允许由所述处理设备以未更改的行为来执行被存储在所述便携式机器可读介质上的所述可执行软件的第二部分。
19.如权利要求15所述的计算机系统,其特征在于,所获取的信息还包括先前存储的处理设备信息,且用于由所述处理设备确定还基于从所述便携式机器可读介质获取的信息来确定是否允许存储在所述便携式机器可读介质上的所述可执行软件的第二部分的执行的装置还包括:
用于确定被包括在所述便携式机器可读介质上的被预先存储的处理设备信息是否匹配关于所述处理设备的信息的装置,仅在包括在所获取的信息中的所述被预先存储的处理设备信息匹配关于所述处理设备的信息时,确定被存储在所述便携式机器可读介质上的可执行软件被允许由所述处理设备以未更改的行为执行。
20.如权利要求15所述的计算机系统,其特征在于,还包括:
用于确定所述便携式机器可读介质的至少一个特征的装置,以及
用于基于所述便携式机器可读介质的所确定的所述至少一个特征来更改所述可执行软件的第二部分的功能的装置。
21.如权利要求15所述的计算机系统,其特征在于,还包括:
用于确定所述便携式机器可读介质的至少一个特征的装置,以及
用于基于所述便携式机器可读介质的所确定的所述至少一个特征来更改所述可执行软件的功能的装置,其中所述至少一个特征包括所述便携式机器可读介质的速度、所述便携式机器可读介质的安全特性、所述便携式机器可读介质的存储容量中的至少一个。
CN200880107267.3A 2007-09-13 2008-07-29 便携介质上的软件的保护 Active CN101802835B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/854,565 US8667604B2 (en) 2007-09-13 2007-09-13 Protection of software on portable medium
US11/854,565 2007-09-13
PCT/US2008/071449 WO2009035777A1 (en) 2007-09-13 2008-07-29 Protection of software on portable medium

Publications (2)

Publication Number Publication Date
CN101802835A CN101802835A (zh) 2010-08-11
CN101802835B true CN101802835B (zh) 2017-03-08

Family

ID=40452387

Family Applications (1)

Application Number Title Priority Date Filing Date
CN200880107267.3A Active CN101802835B (zh) 2007-09-13 2008-07-29 便携介质上的软件的保护

Country Status (4)

Country Link
US (1) US8667604B2 (zh)
EP (1) EP2188757A1 (zh)
CN (1) CN101802835B (zh)
WO (1) WO2009035777A1 (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10528752B2 (en) * 2014-08-13 2020-01-07 Hewlett Packard Enterprise Development Lp Non-volatile storage of management data
CN105590042B (zh) * 2014-11-07 2019-02-05 株式会社东芝 半导体装置模块、许可设定方法
WO2016186606A1 (en) * 2015-05-15 2016-11-24 Micro Motion, Inc. Controlling access to an interface with a dongle
EP3719640A1 (en) * 2019-04-04 2020-10-07 Rohde & Schwarz GmbH & Co. KG Electronic device and method for operating an electronic device

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030005336A1 (en) * 2001-06-28 2003-01-02 Poo Teng Pin Portable device having biometrics-based authentication capabilities
US20030074294A1 (en) * 2001-10-15 2003-04-17 Dell Products, Lp Computer system warranty upgrade method and apparatus
KR20040097436A (ko) * 2003-05-12 2004-11-18 에크로텍(주) Usb 휴대용 저장장치를 이용한 소프트웨어 불법복제방지장치 및 방지방법
WO2006101765A2 (en) * 2005-03-16 2006-09-28 Snyder Jeremy N Method for preventing unauthorized installation of a software product

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2526977B1 (fr) 1982-05-14 1988-06-10 Cii Honeywell Bull Procede et dispositif pour authentifier ou certifier au moins une information contenue dans une memoire d'un support electronique notamment amovible et portatif tel qu'une carte
DE9109977U1 (de) 1991-08-12 1992-12-24 Intelligent Solution Services Gmbh, 8051 Marzling Speicherkarte mit Kopierschutzeinrichtung
FR2762417B1 (fr) 1997-04-16 1999-07-02 Gemplus Card Int Procede de controle de l'execution d'un produit logiciel
US7503072B2 (en) 1998-04-29 2009-03-10 Microsoft Corporation Hardware ID to prevent software piracy
US7055040B2 (en) 1999-04-02 2006-05-30 Hewlett-Packard Development Company, L.P. Method and apparatus for uniquely and securely loading software to an individual computer
US7024696B1 (en) 2000-06-14 2006-04-04 Reuben Bahar Method and system for prevention of piracy of a given software application via a communications network
JP2003092365A (ja) 2001-09-18 2003-03-28 Oki Electric Ind Co Ltd 読み出し専用不揮発性メモリ
US8181265B2 (en) 2003-01-31 2012-05-15 Microsoft Corporation Secure machine counting
KR20050083117A (ko) 2004-02-21 2005-08-25 주식회사 성신 인터넷상에서 usb 메모리 스틱을 이용한 본인 인증 방법
JP4140905B2 (ja) * 2004-03-22 2008-08-27 インターナショナル・ビジネス・マシーンズ・コーポレーション 記憶装置及びプログラム
US7971262B2 (en) 2004-07-23 2011-06-28 Alcatel-Lucent Usa Inc. Protecting against software piracy
US7849329B2 (en) 2004-09-01 2010-12-07 Microsoft Corporation Licensing the use of a particular feature of software
US8091142B2 (en) 2005-04-26 2012-01-03 Microsoft Corporation Supplementary trust model for software licensing/commercial digital distribution policy
US20070143529A1 (en) * 2005-04-28 2007-06-21 Bacastow Steven V Apparatus and method for PC security and access control
US20060288422A1 (en) 2005-06-21 2006-12-21 Microsoft Corporation Data structure for identifying hardware and software licenses to distribute with a complying device
US8761400B2 (en) 2005-07-15 2014-06-24 Microsoft Corporation Hardware linked product key
US20070041584A1 (en) 2005-08-16 2007-02-22 O'connor Clint H Method for providing activation key protection
FR2901038A1 (fr) * 2006-05-15 2007-11-16 France Telecom Procede et dispositif de configuration securisee d'un terminal au moyen d'un dispositif de stockage de donnees de demarrage
US20080148410A1 (en) * 2006-12-17 2008-06-19 Robert Allen Wilson Software Installation Authorization System
US20080163208A1 (en) * 2006-12-29 2008-07-03 Jeremy Burr Virtual machine creation for removable storage devices
US7945734B2 (en) * 2007-08-10 2011-05-17 Eastman Kodak Company Removable storage device with code to allow change detection

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030005336A1 (en) * 2001-06-28 2003-01-02 Poo Teng Pin Portable device having biometrics-based authentication capabilities
US20030074294A1 (en) * 2001-10-15 2003-04-17 Dell Products, Lp Computer system warranty upgrade method and apparatus
KR20040097436A (ko) * 2003-05-12 2004-11-18 에크로텍(주) Usb 휴대용 저장장치를 이용한 소프트웨어 불법복제방지장치 및 방지방법
WO2006101765A2 (en) * 2005-03-16 2006-09-28 Snyder Jeremy N Method for preventing unauthorized installation of a software product

Also Published As

Publication number Publication date
US8667604B2 (en) 2014-03-04
US20090077671A1 (en) 2009-03-19
WO2009035777A1 (en) 2009-03-19
CN101802835A (zh) 2010-08-11
EP2188757A1 (en) 2010-05-26

Similar Documents

Publication Publication Date Title
KR101008448B1 (ko) 소프트웨어 무단 복제 방지를 위한 시스템, 컴퓨터-구현형 방법, 및 컴퓨터 판독 가능 기록 매체
JP5449905B2 (ja) 情報処理装置、プログラム、および情報処理システム
CN100470565C (zh) 安全许可证管理
JP4818542B2 (ja) コンピューティングプラットフォームにおけるサービスの実行
US9038154B2 (en) Token Registration
EP2273411B1 (en) Systems and methods for determining authorization to operate licensed software based on a client device fingerprint
CN111797430B (zh) 数据校验方法、装置、服务器及存储介质
CN101213557B (zh) 限制操作系统及其它软件的安装的反骇客保护
EP2278524A1 (en) System and method for software activation
US20080222732A1 (en) Computer manufacturer and software installation detection
EP2270704B1 (en) Systems and methods for auditing software usage using a covert key
CN103077345B (zh) 基于虚拟机的软件授权方法及系统
CN101802835B (zh) 便携介质上的软件的保护
US20050216466A1 (en) Method and system for acquiring resource usage log and computer product
US8423473B2 (en) Systems and methods for game activation
US8972745B2 (en) Secure data handling in a computer system
CN105183799A (zh) 一种权限管理的方法及客户端
CN112000933A (zh) 应用软件的激活方法、装置、电子设备及存储介质
KR101532765B1 (ko) 어플리케이션 위변조 방지 시스템 및 방법
JP2007200244A (ja) 情報管理システムおよび情報管理方法
KR100939106B1 (ko) 이동식 저장장치에 저장된 데이터의 임의복제 방지 방법 및이에 적합한 시스템
CN109167785B (zh) 一种虚拟可信根的调用方法和业务服务器
CN113630440B (zh) 一种数据上传的方法、装置、系统、电子设备及存储介质
KR20090062370A (ko) 전산자원 관리방법 및 그 시스템
KR101680605B1 (ko) 네트워크형 라이선스 유통구조를 기반으로 하는 불법 소프트웨어 감지시스템

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
ASS Succession or assignment of patent right

Owner name: MICROSOFT TECHNOLOGY LICENSING LLC

Free format text: FORMER OWNER: MICROSOFT CORP.

Effective date: 20150730

C41 Transfer of patent application or patent right or utility model
TA01 Transfer of patent application right

Effective date of registration: 20150730

Address after: Washington State

Applicant after: Micro soft technique license Co., Ltd

Address before: Washington State

Applicant before: Microsoft Corp.

C14 Grant of patent or utility model
GR01 Patent grant