CN103119889B - 使用硬件超级密钥验证和保护正版软件安装的装置、系统、方法和控制器 - Google Patents
使用硬件超级密钥验证和保护正版软件安装的装置、系统、方法和控制器 Download PDFInfo
- Publication number
- CN103119889B CN103119889B CN201180045632.4A CN201180045632A CN103119889B CN 103119889 B CN103119889 B CN 103119889B CN 201180045632 A CN201180045632 A CN 201180045632A CN 103119889 B CN103119889 B CN 103119889B
- Authority
- CN
- China
- Prior art keywords
- key
- management engine
- user
- server
- encrypted
- 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.)
- Expired - Fee Related
Links
- 238000000034 method Methods 0.000 title claims abstract description 29
- 230000006870 function Effects 0.000 claims description 21
- 238000004891 communication Methods 0.000 claims description 15
- 230000004044 response Effects 0.000 claims 4
- 230000005055 memory storage Effects 0.000 claims 3
- 238000012545 processing Methods 0.000 description 83
- 230000008569 process Effects 0.000 description 17
- 238000009434 installation Methods 0.000 description 8
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 230000008859 change Effects 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 230000001413 cellular effect Effects 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 238000007689 inspection Methods 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 239000002184 metal Substances 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000003466 welding Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/0819—Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
- H04L9/0822—Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) using key encryption key
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/10—Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/61—Installation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/12—Details relating to cryptographic hardware or logic circuitry
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2463/00—Additional details relating to network architectures or network communication protocols for network security covered by H04L63/00
- H04L2463/061—Additional details relating to network architectures or network communication protocols for network security covered by H04L63/00 applying further key derivation, e.g. deriving traffic keys from a pair-wise master key
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2463/00—Additional details relating to network architectures or network communication protocols for network security covered by H04L63/00
- H04L2463/062—Additional details relating to network architectures or network communication protocols for network security covered by H04L63/00 applying encryption of the keys
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/18—Network architectures or network communication protocols for network security using different networks or channels, e.g. using out of band channels
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Technology Law (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Multimedia (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Storage Device Security (AREA)
Abstract
公开了一种设备、系统和方法。在一个实施方式中,该设备从用户应用接收用户密钥。该设备通过将管理引擎密钥创建算法应用于用户密钥来创建管理引擎密钥。然后该设备将管理引擎密钥发送到远程服务器。稍后,该设备从远程服务器获取服务器密钥。该设备接着执行对用户密钥、管理引擎密钥和服务器密钥的散列组合以创建超级密钥。一旦超级密钥已经被创建,该设备就认证超级密钥,并且如果超级密钥是有效的,则该设备接着将管理引擎证书发送到用户应用。
Description
技术领域
本发明涉及验证和保护软件安装过程。
背景技术
每年有数百万美元的收入损失掉,这是因为软件在全世界被非法地拷贝和安装在个人计算机上。软件许可密钥试图抑制这种盗版行为,但它们容易受到能够定期地对软件安全特征进行解锁的恶意用户(例如,黑客)的攻击。此外,独立的软件卖主没有验证安装在最终用户计算机系统上的软件是否是正版的而不是被非法侵入的能力。在线执行的软件升级是易受攻击的,并可导致在软件安装时附带发生的恶意软件安装的非计划中的结果。
附图说明
通过例子的方式示出了本发明,并且本发明不受附图的限制,在附图中,相似的参考符号表示相似的元件,并且其中:
图1示出了能够使用地址交换动态地更换存储段的计算机系统的实施方式;
图2是在实现了加密的情况下利用硬件超级密钥来验证和保护正版软件安装的过程的实施方式的流程图;
图3是在没有实现加密的情况下利用硬件超级密钥来验证和保护正版软件安装的过程的实施方式的流程图。
具体实施方式
公开了使用硬件超级密钥来验证并保护正版软件安装的装置、系统、方法和机器可读介质的元素。
图1示出了能够使用地址交换动态地更换存储段的计算机系统的实施 方式。
示出了计算机系统100。计算机系统可以是台式机、服务器、工作站、膝上型计算机、手持设备、电视机顶盒、媒体中心、游戏控制台、集成系统(例如位于汽车中)或其它类型的计算机系统。在几个实施方式中,计算机系统100包括也被称为“处理器”的一个或多个中央处理单元(CPU)。虽然在很多实施方式中可能有很多CPU,但是在图1所示的实施方式中,为了清楚起见,只示出了CPU102。CPU102可以是公司的CPU或另一品牌的CPU。在不同的实施方式中,CPU102包括一个或多个核心。CPU102被示为包括四个核心(核心104、106、108和110)。
在很多实施方式中,每个核心包括内部功能块,例如一个或多个执行单元、引退单元、一组通用和专用寄存器等。在单线程核心中,每个核心可被称为硬件线程。当核心是多线程的或超线程的时,则在每个核心中操作的每个线程也可被称为硬件线程。因此,在计算机系统100中运行的执行的任何单线程可被称为硬件线程。例如,在图1中,如果每个核心是单线程的,则在于系统中存在四个硬件线程(四个核心)。另一方面,如果每个核心是多线程的并具有同时维持两个线程的状态的能力,则在于系统中存在八个硬件线程(四个核心,每核心有两个线程)。
CPU102还可包括一个或多个高速缓冲存储器,例如高速缓冲存储器112。在未示出的很多实施方式中,除了高速缓冲存储器112以外,还实现另外的高速缓冲存储器,使得在存储器与每个核心的执行单元之间存在多级高速缓冲存储器。在不同的实施方式中,可以用不同的方式分配高速缓冲存储器112。此外,在不同的实施方式中,高速缓冲存储器112可以具有很多不同大小中的一个大小。例如,高速缓冲存储器112可以是8兆字节(MB)高速缓冲存储器、16MB高速缓冲存储器等。此外,在不同的实施方式中,高速缓冲存储器可以是直接映射高速缓冲存储器、全关联高速缓冲存储器、多路组关联高速缓冲存储器或具有另一类型的映射的高速缓冲存储器。在很多实施方式中,高速缓冲存储器112可包括在所有核心当中共享的一个大部分,或可被划分成几个单独的功能分片(例如,每个核心有一个分片)。高速缓冲存储器112还可包括一个在所有核心当中共享的部分和几个其它部分,所述其它部分针对每个核心而言是单独的功能分片。
在很多实施方式中,CPU102包括集成的系统存储器控制器114,用于提供与系统存储器16通信的接口。在未示出的其它实施方式中,存储器控制器114可位于与CPU102分离的分立部件(计算机系统100的其它地方)中。
系统存储器116可包括几个动态随机存取存储器(DRAM)设备,例如一种双数据速率(DDR)DRAM。系统存储器可通过焊接或其它连接直接耦合到主板,或者它可通过一个或多个双列直插式存储器模块(DIMM)或其它类似的存储器模块耦合到主板。
系统存储器116可以是存储将由CPU102操作的数据和指令的通用存储器。此外,在计算机系统100内可以存在具有对系统存储器进行读和写的能力的其它可能的设备,例如能够进行直接存储器存取(DMA)的I/O(输入/输出)设备。
将CPU102与系统存储器116耦合起来的链路118(即,总线、互连等)可包括能够传输数据、地址、控制和时钟信息的一个或多个光学、金属或其它线(即,线路)。
平台控制器中心(PCH)120(例如,I/O控制器和其它电路的集合体)包括实现CPU102与外部I/O设备之间的通信的I/O接口。该中心可包括一个或多个I/O适配器,例如I/O适配器122。I/O适配器将在CPU102内使用的主机通信协议转换成与特定的I/O设备(例如I/O设备124)兼容的协议。给定I/O适配器可转换的一些协议包括外围部件互连(PCI)-快速协议、通用串行总线(USB)、串行高级技术附件(SATA)接口、以太网和1394“火线”等等。此外,可以存在一个或多个无线协议I/O适配器。无线协议的例子是蓝牙、基于IEEE802.11的无线协议和蜂窝协议等等。
除了I/O设备以外,PCH120还可耦合到系统中的一个或多个嵌入式控制器(EC),例如EC126。EC126可合并很多功能。例如,RAID存储控制器设备可存在于计算机系统100内。RAID控制器可管理硬盘驱动器或固态磁盘(SSD)的阵列。控制器设备的其它例子可以是分立的带外管理引擎、键盘控制器或另一类型的控制器。
在其它实施方式中,PCH120是位于CPU102外部的分立设备。在这些实施方式中,诸如直接存储器接口(DMI)之类的接口或另一类似的接 口将CPU耦合到PCH的CPU。虽然没有示出这些实施方式。
CPU之间的接口128可向耦合到一个或多个额外的CPU的链路提供接口,并允许CPU之间的通信发生。例如,CPU之间的高速接口可以是快速路径互连(QPI)或其它类似的接口。虽然图1中未示出额外的CPU,但在很多实施方式中,CPU102是存在于计算机系统100内的多个CPU之一。在很多实施方式中,CPU之间的接口128提供CPU102与存在于系统中的其它CPU中的每个CPU之间的点到点高速通信接口。
图形接口130可向耦合到分立图形控制器(分立图形控制器未示出)的链路提供接口。该接口可以是高速平台部件互连(PCI)-快速接口或另一高速接口。在其它实施方式中,CPU102包括集成的图形控制器,并且图形接口144可耦合到显示设备,例如监视器。在很多实施方式中,该接口是高速的,以允许在链路上传输相当多的图形数据业务(例如,3D图形、视频等)。
计算机系统100还包括系统管理固件132,用于提供初始化计算机系统和部件的引导指令。在不同的实施方式中,系统管理固件可以是基本输入/输出系统(BIOS)、可扩展固件或在平台的引导期间计算机系统可使用的另一形式的固件指令。
此外,计算机系统100包括网络接口134。网络接口134可包括网络接口控制器,以便于在CPU102与计算机系统100外部的一个或多个实体之间的通信。例如,网络接口134可耦合到网络136,并且网络136可直接或间接地耦合到一个或多个服务器(例如服务器138)或其它类型的计算机。网络136可以是企业内联网内的局部服务器、或者可能是位于互联网上的某个位置处的不相关的远程服务器、或者是很多其它服务器实施方式中的任意一个。
在很多实施方式中,计算机系统100运行操作系统(OS)以管理当前的硬件和软件应用。例如,OS140可在计算机系统100的引导过程期间被加载到系统存储器116中,并在计算机系统100运转时运行。在不同的实施方式中,OS140可以是基于 的OS、基于Linux的OS或任何其它类型的OS。
此外,在很多实施方式中,PCH120可包括管理引擎(ME)142,其 为关键计算机系统功能(例如系统管理固件132的更新、认证在系统内运行或与系统通信的软件和/或硬件部件的安全测量和验证过程、以及与功率管理相关的功能等等)提供带外(OOB)管理。当计算机系统100被充分供电时以及当计算机系统100处于几种低功率状态时,ME148可以是可操作的。ME148的这种多功率状态通信能力使信息技术(IT)管理员或其它类似的管理人员能够在计算机系统100否则将无法通信时与该系统进行通信。在未示出的其它实施方式中,ME142位于PCH120外部。在未示出的这些实施方式的一些中,ME142是耦合到计算机系统100的主板的分立芯片。在其它实施方式中,ME142集成在PCH120中,但PCH120位于CPU102外部。
在很多实施方式中,可以使用安装程序将软件应用安装在计算机系统100中。软件应用可能需要来自ME148的硬件密钥证书以允许完全的安装。硬件密钥证书具有执行密钥是有效的而不是被恶意实体假冒或以另外方式规避的更严格的安全检查的能力。接下来的是对由OS140内的软件、ME148内的硬件以及远程服务器138内的硬件执行的过程进行解释,以创建“超级密钥”,“超级密钥”在被创建时向ME148授予发送真实的软件证书的权利,所述真实的软件证书向软件通知在软件应用的安装期间输入的用户密钥是有效的,这将允许完成软件应用安装。
软件应用150可作为程序在OS140层处(例如,以与OS140中的一般应用环级别相同的信任级别)运行。在安装期间的某个点处,软件应用请求安装密钥。被称为用户密钥的密钥可以是可使用脚本或其它这样的软件机制自动地输入的或通过用户键入密钥而手动地输入的任何形式的字母数字密钥。一旦已经输入了用户密钥,OS140就将其存储在临时或永久的用户密钥存储单元152中。
在一些实施方式中,用户密钥加密算法154将用户密钥加密成已加密的用户密钥。该加密可以是掩饰用户密钥152的标识的任何可行的加密方案。例如,在一些实施方式中,使用RSA加密来将用户密钥加密成已加密的用户密钥。在很多实施方式中,使用加密算法中的第一加密密钥来对用户密钥进行加密。为了对用户密钥进行解密,必须知道第一加密密钥和加密算法。
一旦用户密钥已经通过用户密钥加密算法154被加密,OS140(例如,或在OS140上运行的安装程序)就将已加密的用户密钥发送到ME148。已加密的用户密钥在进入点156处进入ME148,并由ME148内的用户密钥解密算法158接收。用户密钥解密算法158有权访问用户密钥加密算法154用于对用户密钥进行加密的第一加密密钥和算法。
当使用用户密钥解密算法158连同第一加密密钥在ME148内对已加密的用户密钥进行了解密时,得到原始用户密钥。该用户密钥接着存储在用户密钥存储单元160中。用户密钥存储单元160向ME密钥创建算法162提供用户密钥。在很多实施方式中,ME密钥创建算法使用额外的ME散列键使用户密钥散列化,以创建散列化的用户密钥的唯一校验和值,其被称为“ME密钥”。新创建的ME密钥首先存储在ME密钥存储单元164中,并且使用ME密钥加密算法166来加密ME密钥的副本。ME密钥加密算法166利用第二加密密钥来对新创建的ME密钥进行加密。这个已加密的ME密钥接着由ME148通过退出点168、通过网络接口134以及在网络136上向外发送到服务器138。
服务器138知道第二加密密钥和ME密钥加密算法,这允许服务器138通过使用第二加密密钥反转加密算法来将已加密的ME密钥解密成原始ME密钥。因此,ME密钥解密算法170对从计算机系统100接收的已加密的ME密钥进行解密并得到原始ME密钥。
在很多实施方式中,服务器接着利用所得到的ME密钥来在数据库中运行查找算法。在数据库中示出一组有效的ME密钥。如果其他人已经使用同一用户密钥认证了程序的另一安装,则ME密钥将就这点告知服务器138,并且服务器可接着决定停止进一步的密钥验证,这是因为该密钥是已知的用过的密钥。虽然服务器138不完全拥有用户密钥,但从对用户密钥进行散列化而创建的ME密钥可用作有效密钥表中的索引查找。
例如,假设ME密钥是有效的,而不是无效的ME密钥。如果是有效的,则服务器138通过以下方式使用服务器密钥创建算法172来创建服务器密钥:用额外的服务器散列键来对ME密钥进行散列化,以创建散列化的ME密钥的唯一校验和值,其被称为“服务器密钥”。随后服务器密钥加密算法174使用第三加密密钥对新创建的服务器密钥进行加密。接着在网 络136上将已加密的服务器密钥发送回计算机系统100。在ME148内,已加密的服务器密钥在进入点176处由已加密的服务器密钥解密算法178接收。服务器密钥解密算法178有权访问服务器138上的服务器密钥加密算法174用于加密服务器密钥的第三加密密钥和算法。
当使用服务器密钥解密算法178连同第三加密密钥在ME148内对已加密的服务器密钥进行了解密时,得到原始服务器密钥。该服务器密钥接着存储在服务器密钥存储单元180中。
此时,ME148分别在用户密钥存储单元160、ME密钥存储单元164和服务器密钥存储单元180中存储了用户密钥、ME密钥和服务器密钥。所有三个密钥(即,用户密钥、ME密钥和服务器密钥)接着被组合以创建超级密钥。更具体地,在很多实施方式中,超级密钥创建算法对用户密钥、ME密钥和服务器密钥一起进行散列化,以创建这三个密钥的组合散列的唯一校验和值。这个组合的散列值(即,校验和)被称为“超级密钥”。接着在超级密钥存储单元184中对照已经存储在ME148中的预定超级密钥来检查新创建的超级密钥。作为结果,如果比较匹配,则确认输入的用户密钥是有效的。这种有效性接着以证书的形式通过ME148的退出点186而被发送到OS140,这在过程开始时输入有效的用户密钥的情况下允许软件安装完成。
在很多实施方式中,利用OOB通信信道在不同的起点和目的地逻辑模块(即,用户app./OS、ME和服务器)之间发送用户密钥、ME密钥和服务器密钥。
图2是在实现了加密的情况下利用硬件超级密钥来验证和保护正版软件安装的过程的实施方式的流程图。
该过程由处理逻辑执行,该处理逻辑可包括软件应用、固件代码、硬件电路或处理逻辑的任何所列出的形式的组合。
该过程以用户应用和/或OS中的处理逻辑创建或获取用户密钥(处理块200)开始。处理逻辑接着对用户密钥进行加密(处理块202)。一旦被加密,处理逻辑就将已加密的用户密钥发送到计算机系统中的管理引擎(ME)(处理块204)。
管理引擎中的处理逻辑接收已加密的用户密钥(处理块206)。一旦被 接收,处理逻辑就对已加密的用户密钥进行解密以得到用户密钥(处理块208)。然后处理逻辑通过用ME散列键对用户密钥进行散列化来创建ME密钥(处理块210)。如上所述,ME密钥创建算法可利用任何预定的ME散列键来创建用户密钥的唯一散列,其产生ME密钥。
一旦ME密钥被创建,处理逻辑就接着对ME密钥进行加密(处理块212)。并且当ME密钥已经被加密时,处理逻辑会将已加密的ME密钥发送到服务器(处理块214)。
服务器中的处理逻辑接收已加密的ME密钥(处理块216)。一旦被接收,处理逻辑就对已加密的ME密钥进行解密以得到ME密钥(处理块218)。当处理逻辑具有ME密钥时,它确定ME密钥是否是有效的(处理块220)。可通过执行在数据库中查找ME密钥来作出该确定。数据库可具有所有的ME密钥和每个ME密钥的当前状态(例如,用过的、未用过的,等等)。如果ME密钥不是有效的,则该过程停止,并且服务器不返回有效的服务器密钥(这使超级密钥是无效的)。
另一方面,如果ME密钥是有效的,则处理逻辑通过用ME散列键对ME密钥进行散列化来创建服务器密钥(处理块222)。一旦服务器密钥已经被创建,处理逻辑就接着对服务器密钥进行加密(处理块224)。然后处理逻辑将已加密的服务器密钥发送到ME(处理块226)。
ME中的处理逻辑接收已加密的服务器密钥(处理块228)。一旦被接收,处理逻辑就接着对已加密的服务器密钥进行解密以得到服务器密钥(处理块230)。此时,ME中的处理逻辑具有所有三个有效的密钥:用户密钥、ME密钥和服务器密钥。处理逻辑接着对这三个密钥一起进行散列化以创建超级密钥(处理块232)。在装备了超级密钥的情况下,处理逻辑接着认证超级密钥(处理块234)。认证可以像将所创建的超级密钥与存储在ME内的超级密钥的一个版本进行比较一样简单。在其它实施方式中,ME通过所测量的/安全的通信来向远程安全服务器请求对超级密钥的认证。
认证的结果由处理逻辑接收,并且处理逻辑接着确定超级密钥是否是真实的(处理块236)。如果发现超级密钥不是真实的,则处理逻辑停止进一步的密钥验证,并且没有证书被传递回到用户应用来完成安装。但是,如果超级密钥是真实的,则ME中的处理逻辑将证书发送到用户应用或OS (处理块238)以向用户应用或OS通知最初输入的用户密钥是有效的并且是被验证的。最后,用户应用或OS中的处理逻辑接着接收证书(处理块240),并且软件安装可完成。
图1和图2描述了在超级密钥创建过程期间当在模块(即,用户应用/OS模块逻辑、ME模块逻辑和服务器模块逻辑)之间传递通信时利用加密的过程的实施方式。
另一方面,图3是在没有实现加密的情况下利用硬件超级密钥来验证和保护正版软件安装的过程的实施方式的流程图。更确切地,在图3所示的实施方式中,三个密钥(用户密钥、ME密钥和服务器密钥)中的每一个都是以原始形式在模块之间进行发送的,因此这不需要解密。与图2中的过程相比,该过程不太安全,但由于较少的加密开销而更精简。
该过程由处理逻辑执行,该处理逻辑可包括软件应用、固件代码、硬件电路或处理逻辑的任何所列出的形式的组合。
该过程以用户应用和/或OS中的处理逻辑创建或获取用户密钥(处理块300)开始。处理逻辑接着将用户密钥发送到计算机系统中的管理引擎(ME)(处理块302)。
管理引擎中的处理逻辑接收用户密钥(处理块304)。一旦被接收,处理逻辑就通过用ME散列键对所接收的用户密钥进行散列化来创建ME密钥(处理块306)。如上所述,ME密钥创建算法可利用任何预定的ME散列键来创建用户密钥的唯一散列,其产生了ME密钥。
一旦ME密钥被创建,处理逻辑就会接着将ME密钥发送到服务器(处理块308)。
服务器中的处理逻辑接收ME密钥(处理块310)。一旦被接收,处理逻辑接着就确定ME密钥是否是有效的(处理块312)。可通过执行在数据库中查找ME密钥来作出该确定。数据库可具有所有的ME密钥和每个ME密钥的当前状态(例如,用过的、未用过的,等等)。如果ME密钥不是有效的,则该过程停止,并且服务器不返回有效的服务器密钥(这使超级密钥是无效的)。在其它实施方式中,可以使ME密钥经历确认算法,其确定密钥是真正的还是编造的。
如果ME密钥是有效的,则处理逻辑通过用ME散列键来对ME密钥 进行散列化来创建服务器密钥(处理块314)。一旦服务器密钥已经被创建,处理逻辑就将服务器密钥发送到ME(处理块316)。
ME中的处理逻辑接收服务器密钥(处理块318)。一旦被接收,处理逻辑就接着对三个密钥一起进行散列化以创建超级密钥(处理块320)。在装备了超级密钥的情况下,处理逻辑接着认证超级密钥(处理块322)。认证可以像将所创建的超级密钥与存储在ME内的超级密钥的一个版本进行比较一样简单。在其它实施方式中,ME通过所测量的/安全的通信来向远程安全服务器请求对超级密钥的认证。
认证的结果由处理逻辑接收,并且处理逻辑接着确定超级密钥是否是真实的(处理块324)。如果发现超级密钥不是真实的,则处理逻辑停止进一步的密钥验证,并且没有证书被传递回到用户应用来完成安装。但是,如果超级密钥是真实的,则ME中的处理逻辑将证书发送到用户应用或OS(处理块326)以向用户应用或OS通知最初输入的用户密钥是有效的并且被验证了。最后,用户应用或OS中的处理逻辑接着接收证书(处理块328),并且软件安装可完成。
在本发明中讨论的散列算法可包括一个或多个有效的散列算法。例如,可以使用SHA-1散列算法来为每个散列函数创建校验和/散列结果。在其它实施方式中,为了散列化的目的,可利用任何其它有效的散列算法中的一个或多个。在所有其它实施方式,利用另一形式的密钥创建算法而不是散列算法。
本发明的实施方式的元素也可被提供为用于存储机器可执行指令的机器可读介质。机器可读介质可包括但不限于闪存、光盘、光盘-只读存储器(CD-ROM)、数字通用/视频盘(DVD)ROM、随机存取存储器(RAM)、可擦除可编程只读存储器(EPROM)、电可擦除可编程只读存储器(EEPROM)、磁卡或光卡、传播介质或适合于存储电子指令的其它类型的机器可读介质。
在上面的描述中以及在权利要求书中,可以使用术语“包含”和“包括”以及它们衍生词,并且旨在将这些术语看做彼此的同义词。此外,在下面的描述和权利要求中,可使用术语“耦合”和“连接”以及它们的衍生词。应当理解,这些术语并不旨在作为彼此的同义词。相反,在特定的 实施方式中,“连接”可用于指示两个或更多个元件彼此直接物理或电接触。“耦合”可意味着两个或更多个元件处于直接物理或电接触。然而,“耦合”也可意味着两个或更多个元件彼此不处于直接接触,但仍然彼此协作、交互或通信。
在上面的描述中,使用某些术语来描述本发明的实施方式。例如,术语“逻辑”表示执行一个或多个功能的硬件、固件、软件(或其任何组合)。例如,“硬件”的例子包括但不限于集成电路、有限状态机或甚至组合逻辑。集成电路可采取处理器(例如微处理器)、专用集成电路、数字信号处理器、微控制器等的形式。
应当认识到,在整个这个说明书中对“一个实施方式”或“实施方式”的提及意味着结合该实施方式描述的特定特征、结构或特性包括在本发明的至少一个实施方式中。因此,要强调的并且应当认识到的是,在本说明书中的不同部分中对“实施方式”或“一个实施方式”或“可替换的实施方式“的两次或更多次提及不一定都是指同一实施方式。此外,在本发明的一个或多个实施方式中,可以适当地组合所述特定特征、结构或特性。
类似地,应当认识到,在本发明的实施方式的前述描述中,为了使本公开简化的目的,有时将各个特征一起组合在单个实施方式、附图或其描述中,以帮助理解各种创造性方案中的一个或多个。然而,这种公开方法不应被解释为反映所要求保护的主题需要比在每个权利要求中明确记载的特征更多的特征的意图。相反,如下面的权利要求所反映的,创造性方案在于比单个前述公开的实施方式的所有特征更少。因此,在具体实施方式后面的权利要求书在此明确地并入具体实施方式中。
Claims (24)
1.一种用于验证并保护软件安装的装置,包括:
I/O接口,被配置为实现与所述装置的通信;以及
管理引擎,包括密钥存贮存储器,所述管理引擎被配置为:
通过将用户密钥解密算法应用于从用户应用接收的已加密的用户密钥来获取用户密钥;
通过将管理引擎密钥创建算法应用于所述用户密钥来创建管理引擎密钥;
通过将管理引擎密钥加密算法应用于所述管理引擎密钥来对所述管理引擎密钥进行加密;
将已加密的管理引擎密钥发送到远程服务器;
通过将服务器密钥解密算法应用于从所述远程服务器接收的已加密的服务器密钥来获取服务器密钥;
执行对所述用户密钥、所述管理引擎密钥和所述服务器密钥的散列组合以创建超级密钥;
执行对所述超级密钥的认证;以及
响应于所述超级密钥被成功地认证而将管理引擎证书发送到所述用户应用。
2.如权利要求1所述的装置,还包括:
至少存储超级密钥主值的存储器存储单元,其中当散列组合值等于所述超级密钥主值时,所述超级密钥被成功地认证。
3.如权利要求1所述的装置,其中所述已加密的用户密钥和所述管理引擎证书是经由带外信道在所述用户应用与所述管理引擎之间进行发送的。
4.如权利要求1所述的装置,其中所述已加密的管理引擎密钥和所述已加密的服务器密钥是经由带外信道在所述管理引擎与所述远程服务器之间进行发送的。
5.如权利要求1所述的装置,其中所述管理引擎密钥创建算法包括管理引擎密码散列函数,其中所述用户密钥被输入到所述散列函数中,并且所述管理引擎密钥是所述散列函数产生的输出。
6.如权利要求1所述的装置,还包括:
存储所述用户密钥的用户密钥存储单元、存储所述管理引擎密钥的管理引擎密钥存储单元和存储所述服务器密钥的服务器密钥存储单元。
7.一种用于验证并保护软件安装的系统,包括:
具有管理引擎的客户端设备以及远程服务器;
其中,所述管理引擎能够:
通过将用户密钥解密算法应用于从用户应用接收的已加密的用户密钥来获取用户密钥;
通过将管理引擎密钥创建算法应用于所述用户密钥来创建管理引擎密钥;
通过将管理引擎密钥加密算法应用于所述管理引擎密钥来对所述管理引擎密钥进行加密;
将已加密的管理引擎密钥发送到远程服务器;
通过将服务器密钥解密算法应用于从所述远程服务器接收的已加密的服务器密钥来获取服务器密钥;
执行对所述用户密钥、所述管理引擎密钥和所述服务器密钥的散列组合以创建超级密钥;
执行对所述超级密钥的认证;以及
响应于所述超级密钥被成功地认证而将管理引擎证书发送到所述用户应用;以及
其中,所述远程服务器能够:
从所述管理引擎接收所述已加密的管理引擎密钥;
通过将管理引擎密钥解密算法应用于所述已加密的管理引擎密钥来获取所述管理引擎密钥;
通过将服务器密钥创建算法应用于所述管理引擎密钥来创建服务器密钥;
通过将服务器密钥加密算法应用于所述服务器密钥来对所述服务器密钥进行加密;以及
将所述已加密的服务器密钥发送到所述管理引擎。
8.如权利要求7所述的系统,其中所述管理引擎还包括:
至少存储超级密钥主值的存储器存储单元,其中当散列组合值等于所述超级密钥主值时,所述超级密钥被成功地认证。
9.如权利要求7所述的系统,还包括:
带外信道,用于将所述管理引擎与所述用户应用通信地耦合,其中所述已加密的用户密钥和所述管理引擎证书是经由所述带外信道在所述用户应用与所述管理引擎之间进行发送的。
10.如权利要求7所述的系统,还包括:
带外信道,用于将所述管理引擎与所述远程服务器通信地耦合,其中所述已加密的管理引擎密钥和所述已加密的服务器密钥是经由带外信道在所述管理引擎与所述远程服务器之间进行发送的。
11.如权利要求7所述的系统,其中所述管理引擎密钥创建算法包括管理引擎密码散列函数,其中所述用户密钥被输入到所述散列函数中,并且所述管理引擎密钥是所述散列函数产生的输出。
12.如权利要求7所述的系统,其中所述服务器密钥创建算法包括服务器密码散列函数,其中所述用户密钥被输入到所述散列函数中,并且所述服务器密钥是所述散列函数产生的输出。
13.一种用于验证并保护软件安装的方法,包括:
通过将用户密钥解密算法应用于从用户应用接收的已加密的用户密钥来获取用户密钥;
通过将管理引擎密钥创建算法应用于所述用户密钥来创建管理引擎密钥;
通过将管理引擎密钥加密算法应用于所述管理引擎密钥来对所述管理引擎密钥进行加密;
将已加密的管理引擎密钥发送到远程服务器;
通过将服务器密钥解密算法应用于从所述远程服务器接收的已加密的服务器密钥来获取服务器密钥;
执行对所述用户密钥、所述管理引擎密钥和所述服务器密钥的散列组合以创建超级密钥;
执行对所述超级密钥的认证;以及
响应于所述超级密钥被成功地认证而将管理引擎证书发送到所述用户应用。
14.如权利要求13所述的方法,还包括:
将超级密钥主值至少存储在管理引擎中,其中当散列组合值等于所述超级密钥主值时,所述超级密钥被成功地认证。
15.如权利要求13所述的方法,还包括:
经由带外信道在所述用户应用与所述管理引擎之间发送所述已加密的用户密钥和所述管理引擎证书。
16.如权利要求13所述的方法,还包括:
经由带外信道在所述管理引擎与所述远程服务器之间发送所述已加密的管理引擎密钥和所述已加密的服务器密钥。
17.如权利要求13所述的方法,其中所述管理引擎密钥创建算法包括管理引擎密码散列函数,其中所述用户密钥被输入到所述散列函数中,并且所述管理引擎密钥是所述散列函数产生的输出。
18.如权利要求14所述的方法,还包括:
将所述用户密钥、所述管理引擎密钥和所述服务器密钥存储在所述管理引擎中的单独存储单元中。
19.一种用于验证并保护软件安装的控制器,包括:
I/O接口,被配置为实现与所述控制器的通信;以及
管理引擎,包括密钥存贮存储器,所述管理引擎被配置为:
从具有所述控制器的装置的用户应用接收用户密钥;
通过将管理引擎密钥创建算法应用于所述用户密钥来创建管理引擎密钥;
将所述管理引擎密钥发送到远程服务器;
从所述远程服务器获取服务器密钥;
执行对所述用户密钥、所述管理引擎密钥和所述服务器密钥的散列组合以创建超级密钥,所述用户密钥、所述管理引擎密钥和所述服务器密钥存储在所述密钥存贮存储器中;
执行对所述超级密钥的认证;以及
响应于所述超级密钥被成功地认证而将管理引擎证书发送到所述用户应用。
20.如权利要求19所述的控制器,还包括:
至少存储超级密钥主值的存储器存储单元,其中当散列组合值等于所述超级密钥主值时,所述超级密钥被成功地认证。
21.如权利要求19所述的控制器,其中所述用户密钥和所述管理引擎证书是经由带外信道在所述用户应用与所述管理引擎之间进行发送的。
22.如权利要求19所述的控制器,其中所述管理引擎密钥和所述服务器密钥是经由带外信道在所述管理引擎与所述远程服务器之间进行发送的。
23.如权利要求19所述的控制器,其中所述管理引擎密钥创建算法包括管理引擎密码散列函数,其中所述用户密钥被输入到所述散列函数中,并且所述管理引擎密钥是所述散列函数产生的输出。
24.如权利要求19所述的控制器,还包括:
存储所述用户密钥的用户密钥存储单元、存储所述管理引擎密钥的管理引擎密钥存储单元和存储所述服务器密钥的服务器密钥存储单元。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/890,304 | 2010-09-24 | ||
US12/890,304 US8522030B2 (en) | 2010-09-24 | 2010-09-24 | Verification and protection of genuine software installation using hardware super key |
PCT/US2011/053311 WO2012040728A1 (en) | 2010-09-24 | 2011-09-26 | Verification and protection of genuine software installationv using hardware super key |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103119889A CN103119889A (zh) | 2013-05-22 |
CN103119889B true CN103119889B (zh) | 2015-09-09 |
Family
ID=45871891
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201180045632.4A Expired - Fee Related CN103119889B (zh) | 2010-09-24 | 2011-09-26 | 使用硬件超级密钥验证和保护正版软件安装的装置、系统、方法和控制器 |
Country Status (4)
Country | Link |
---|---|
US (1) | US8522030B2 (zh) |
EP (1) | EP2619707B1 (zh) |
CN (1) | CN103119889B (zh) |
WO (1) | WO2012040728A1 (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8594333B2 (en) * | 2008-09-05 | 2013-11-26 | Vixs Systems, Inc | Secure key access with one-time programmable memory and applications thereof |
US20120254857A1 (en) * | 2011-03-31 | 2012-10-04 | Infosys Technologies Limited | System and method for installing an application on client machine |
US10127406B2 (en) * | 2015-03-23 | 2018-11-13 | Intel Corporation | Digital rights management playback glitch avoidance |
US10601590B1 (en) * | 2017-11-09 | 2020-03-24 | Amazon Technologies, Inc. | Secure secrets in hardware security module for use by protected function in trusted execution environment |
CN108769007B (zh) * | 2018-05-28 | 2020-08-21 | 上海顺舟智能科技股份有限公司 | 网关安全认证方法、服务器及网关 |
CN111859311A (zh) * | 2020-07-03 | 2020-10-30 | 青岛鼎信通讯股份有限公司 | 一种基于CPU IP Security Engine的终端设备软件防非法拷贝方法 |
CN111880826A (zh) * | 2020-07-28 | 2020-11-03 | 平安科技(深圳)有限公司 | 云业务应用升级方法、装置、电子设备和存储介质 |
US11323325B1 (en) | 2021-04-26 | 2022-05-03 | At&T Intellectual Property I, L.P. | System and method for remote configuration of scalable datacenter |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1407446A (zh) * | 2001-08-31 | 2003-04-02 | 李光 | 计算机软件的防盗版技术 |
CN1514375A (zh) * | 2003-07-21 | 2004-07-21 | 蒋正华 | 一种软件保护方法 |
CN1561026A (zh) * | 2004-02-20 | 2005-01-05 | 胡祥义 | 一种基于加密算法技术的软件防盗版方法 |
CN101206704A (zh) * | 2006-12-20 | 2008-06-25 | 汤姆森许可贸易公司 | 用于安全软件安装的方法及设备 |
CN101266638A (zh) * | 2008-04-16 | 2008-09-17 | 北京飞天诚信科技有限公司 | 软件保护的方法和系统 |
CN101604362A (zh) * | 2008-06-13 | 2009-12-16 | 鸿富锦精密工业(深圳)有限公司 | 用于软件加密的计算机系统及方法 |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5418854A (en) * | 1992-04-28 | 1995-05-23 | Digital Equipment Corporation | Method and apparatus for protecting the confidentiality of passwords in a distributed data processing system |
US6697948B1 (en) * | 1999-05-05 | 2004-02-24 | Michael O. Rabin | Methods and apparatus for protecting information |
US7003672B2 (en) * | 2001-09-25 | 2006-02-21 | Hewlett-Packard Development Company, L.P. | Authentication and verification for use of software |
US7644442B2 (en) * | 2003-01-31 | 2010-01-05 | Microsoft Corporation | Systems and methods for using machine attributes to deter software piracy in an enterprise environment |
US20060048236A1 (en) * | 2004-09-01 | 2006-03-02 | Microsoft Corporation | Licensing the use of software to a particular user |
US20070143228A1 (en) * | 2005-12-15 | 2007-06-21 | Microsoft Corporation | Licensing matrix |
US8001383B2 (en) * | 2007-02-01 | 2011-08-16 | Microsoft Corporation | Secure serial number |
US8266062B2 (en) * | 2007-06-27 | 2012-09-11 | Microsoft Corporation | Server side reversible hash for telephone-based licensing mechanism |
CN101414263B (zh) * | 2007-10-17 | 2013-06-05 | 鸿富锦精密工业(深圳)有限公司 | 软件安装方法及防盗版模块 |
US20090313171A1 (en) * | 2008-06-17 | 2009-12-17 | Microsoft Corporation | Electronic transaction verification |
US9946848B2 (en) * | 2009-02-26 | 2018-04-17 | International Business Machines Corporation | Software protection using an installation product having an entitlement file |
US8959353B2 (en) * | 2009-03-31 | 2015-02-17 | Topaz Systems, Inc. | Distributed system for multi-function secure verifiable signer authentication |
-
2010
- 2010-09-24 US US12/890,304 patent/US8522030B2/en not_active Expired - Fee Related
-
2011
- 2011-09-26 CN CN201180045632.4A patent/CN103119889B/zh not_active Expired - Fee Related
- 2011-09-26 EP EP11827741.7A patent/EP2619707B1/en not_active Not-in-force
- 2011-09-26 WO PCT/US2011/053311 patent/WO2012040728A1/en active Application Filing
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1407446A (zh) * | 2001-08-31 | 2003-04-02 | 李光 | 计算机软件的防盗版技术 |
CN1514375A (zh) * | 2003-07-21 | 2004-07-21 | 蒋正华 | 一种软件保护方法 |
CN1561026A (zh) * | 2004-02-20 | 2005-01-05 | 胡祥义 | 一种基于加密算法技术的软件防盗版方法 |
CN101206704A (zh) * | 2006-12-20 | 2008-06-25 | 汤姆森许可贸易公司 | 用于安全软件安装的方法及设备 |
CN101266638A (zh) * | 2008-04-16 | 2008-09-17 | 北京飞天诚信科技有限公司 | 软件保护的方法和系统 |
CN101604362A (zh) * | 2008-06-13 | 2009-12-16 | 鸿富锦精密工业(深圳)有限公司 | 用于软件加密的计算机系统及方法 |
Also Published As
Publication number | Publication date |
---|---|
EP2619707A4 (en) | 2017-07-19 |
US20120079277A1 (en) | 2012-03-29 |
US8522030B2 (en) | 2013-08-27 |
EP2619707A1 (en) | 2013-07-31 |
EP2619707B1 (en) | 2019-09-18 |
WO2012040728A1 (en) | 2012-03-29 |
CN103119889A (zh) | 2013-05-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103119889B (zh) | 使用硬件超级密钥验证和保护正版软件安装的装置、系统、方法和控制器 | |
US9537656B2 (en) | Systems and methods for managing cryptographic keys in a secure microcontroller | |
CN103221961B (zh) | 包括用于保护多用户敏感代码和数据的架构的方法和装置 | |
US9684789B2 (en) | Arbitrary code execution and restricted protected storage access to trusted code | |
CN106127043B (zh) | 从远程服务器对数据存储设备进行安全扫描的方法和装置 | |
US8286004B2 (en) | Saving encryption keys in one-time programmable memory | |
US20190050598A1 (en) | Secure data storage | |
US10990687B2 (en) | System and method for user managed encryption recovery using blockchain for data at rest | |
ES2773950T3 (es) | Sistema informático asegurado con autenticación asíncrona | |
CN100437618C (zh) | 一种便携式信息安全设备 | |
US10205748B2 (en) | Protection for computing systems from revoked system updates | |
US9071581B2 (en) | Secure storage with SCSI storage devices | |
JP2009535992A (ja) | Drmトランスレーションのシステムおよび方法 | |
KR20140019599A (ko) | 데이터의 안전한 저장을 위한 키 관리 방법 및 그 장치 | |
WO2013095473A1 (en) | Systems and methods for protecting symmetric encryption keys | |
CN102855452A (zh) | 基于加密组块的快速数据加密策略遵从 | |
TW202301141A (zh) | 受信賴記憶體共享機制 | |
JP2020030527A (ja) | 記憶装置及びプログラム | |
US20140173280A1 (en) | Device authentication | |
US20210318814A1 (en) | Storage device and data disposal method thereof | |
JP2022527904A (ja) | 無線更新の有効性確認 | |
KR101656092B1 (ko) | 비동기적인 인증을 갖는 보안 컴퓨팅 시스템 | |
CN102833296A (zh) | 用于构建安全的计算环境的方法和设备 | |
US20230394152A1 (en) | Establishing a chain of ownership of a device | |
US8914901B2 (en) | Trusted storage and display |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20150909 Termination date: 20210926 |