CN101385033B - 可信代码群组 - Google Patents
可信代码群组 Download PDFInfo
- Publication number
- CN101385033B CN101385033B CN2007800058123A CN200780005812A CN101385033B CN 101385033 B CN101385033 B CN 101385033B CN 2007800058123 A CN2007800058123 A CN 2007800058123A CN 200780005812 A CN200780005812 A CN 200780005812A CN 101385033 B CN101385033 B CN 101385033B
- Authority
- CN
- China
- Prior art keywords
- routine library
- group
- trusted
- library
- application program
- 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
Links
Images
Classifications
-
- 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
-
- 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/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/51—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems at application loading time, e.g. accepting, rejecting, starting or inhibiting executable software based on integrity or source reliability
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
-
- 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/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/52—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
-
- 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
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/30—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Storage Device Security (AREA)
- Stored Programmes (AREA)
Abstract
本发明描述用于加强应用程序与由所述应用程序加载的程序库之间的信任的技术及机构。非常概括地说,所述应用程序说明其程序库必须是被授权使用所述应用程序执行的成员的一个或一个以上可信代码群组(“TCG”)。被授权以断言一个或一个以上TCG中的成员资格的程序库包含所述成员资格的安全指示符。当所述应用程序执行并试图加载程序库时,在加载所述程序库之前验证TCG中由所述应用程序授权的程序库成员资格。
Description
技术领域
本发明通常涉及软件安全性领域,且更明确地说,涉及软件安全性的验证及证实。
背景技术
当今,软件应用程序通常由在一起工作以提供共用“应用程序功能”的数个不同的可执行模块组成。例如,新应用程序的开发者可写入实施所述应用程序的“核心业务逻辑”的源代码,同时再分类到第三方或其它代码程序库以用于更多例程功能(functionality),例如,共用对话框或通信功能。在运行时间时,应用程序被启动且指令操作系统加载动态链接到正执行应用程序代码的其它程序库的实例。接着,在应用程序正执行时,应用程序及程序库通常作为存储器中的单个单元一起工作。
然而,管理正执行应用程序代码与程序库之间的信任时困难的。在应用程序正执行时,其加载的任何程序库均被映射到应用程序的存储器空间或过程边界且所述程序库就像应用程序的一部分那样执行。一旦加载,应用程序与程序库之间便不存在边界,且当应用程序调用程序库时,其对所述程序库便完全信任。程序库可修改、删除或在分布应用程序已存取的任何或所有数据。随着应用程序变得更复杂且程序库更经常地被从各种可能的不可信位置加载到计算装置上,关注可由应用程序调用或加载的代码程序库的安全性及完整性(即,“可信性”)变得更重要。
直到现在,一种可胜任评估及/或确保代码程序库的可信性的机构一直困扰着所属领域的技术人员。
发明内容
本发明针对用于确保或加强应用程序与程序库之间的信任的技术及机构。在一个方面,本发明设想一种用于确保代码模块之间的信任的方法。所述方法包含接收使用一类别功能的应用程序,所述应用程序包含所述应用程序信任的用以实施所述类别的可信代码群组(“TCG”)列表。所述方法还包含接收实施所述类别的功能的程序库,所述程序库是使用签名密钥签署的,所述签名将所述程序库与TCG相关联,所述TCG是可信性的认可。当起始调用以致使加载所述程序库时,所述方法包含在加载所述程序库之前,致使验证所述程序库上的签名以确定所述程序库是否是所列出的TCG中的一者的成员。
在另一方面,本发明设想一种用于验证程序库的可信性的方法及计算机可读媒体。所述方法包含从应用程序接收加载所述程序库的指令,所述应用程序具有被授权TCG ID的相关联列表,每一TCG ID与TCG相关联,所述TCG表示与程序库群组相关联的信任等级。所述方法进一步包含:检验所述程序库以检测将TCG ID与所述程序库相关联的数字签名;将所述程序库的所述TCG ID与和所述应用程序相关联的所述被授权TCG ID列表相比较以确定所述程序库是否被授权使用所述应用程序来执行;及如果所述程序库被授权,那么加载所述程序库。
在又一方面,本发明设想一种用于验证程序库的可信性的设备。所述设备包含:存储媒体,其上存储有应用程序及程序库;处理器;及存储器,其耦合到所述处理器及所述存储媒体且其中驻留计算机可执行组件。所述组件操作以致使所述处理器执行:从应用程序接收加载所述程序库的指令,所述应用程序具有被授权TCG ID的相关联列表,每一TCG ID与TCG相关联,所述TCG表示与程序库群组相关联的信任等级;检验所述程序库以检测将所述TCG ID与所述程序库相关联的数字签名;将所述程序库的所述TCG ID与和所述应用程序相关联的所述被授权TCG ID列表相比较,以确定所述程序库是否被授权以使用所述应用程序来执行;及如果所述程序库被授权,那么加载所述程序库。
附图说明
结合图式依据下文所述的详细说明,本发明的特征及优点将变得更明了,在所有图式中相同的参考字符识别对应的元件。
图1显示根据本发明的一个实施方案正执行应用程序及程序库的实例的系统存储器。
图2是各自具有一个或一个以上相关联可信代码群组(“TCG”)的可信实体(“TE”)层级的概念性图解。
图3图解说明样本开发环境,其中代码开发者与TE互动以在TE的控制下获得经批准用于特定TCG的程序库。
图4图解说明根据本发明的实施方案的计算装置,例如其上执行应用程序及程序库的手持式计算装置。
图5是操作流程图,其大体上图解说明用于确保应用程序与所述应用程序加载的程序库之间的信任的方法。
图6是功能框图,其大体上图解说明特别适合本发明的实施方案的样本计算装置的核心组件。
具体实施方式
以下是对本发明的各种实施例的详细说明,其使应用程序开发者能够控制应用程序可在运行时间时致使加载的程序库的可信性。简单地说,本发明设想允许程序库开发者使其共享程序库经评估而包含在一个或一个以上“可信代码群组”中。应用程序开发者接着包含识别应用程序在运行时间时应信任的那些可信代码群组的列表。当安装的应用程序被启动且试图加载程序库时,信任管理器验证所述程序库是否在所述应用程序辨识的可信代码群组内。如果在所述群组内,那么信任管理器允许加载所述程序库,且如果不在所述群组内,那么信任管理器放弃所述加载。
为开始论述,图1显示根据本发明的一个实施方案的系统存储器101,其中正执行应用程序111及程序库131的实例。其它代码也可在系统存储器101中执行,例如其它应用程序145及/或操作系统代码147。在继续进行之前,提供将在整个文献中使用的术语的一些定义是有帮助的。
术语“信任者”意指加载被信任者的任何可执行代码(例如,应用程序)。信任者具有围绕其的存储器或过程保护边界且制定跨越所述边界来往的政策。简单的用户应用程序仅是信任者的一个实例。其它实例包含但不限于脚本、网页内容(例如,“快闪”或“冲击波”组件)、用户接口(例如,高等级UI描述语言的用户接口规格)及类似物。
术语“被信任者”意指信任者在运行时间时加载的任何可执行代码(例如,程序库)或配置数据。术语“被信任者”包含但不限于共享及公共程序库、动态及静态链接的程序库、“扩展”、脚本、配置、内容、用户接口或如此项技术中所用术语的任何其它资源(例如,图像或多媒体数据)。
在整个文献中术语“应用程序”或“信任者”可互换使用。同样,在整个文献中术语“程序库”及“被信任者”可互换使用。因此,不应向术语“应用程序”及“程序库”附加不同于恰好归属于所述术语的意义的特定意义。
如图1中所示,当将应用程序111加载到存储器101中时,便创建其中所述应用程序执行的过程,且所述过程具有过程边界113。正在过程边界113内执行的代码通常可自由地存取所述边界内的任何存储器位置,但不能(至少不能直接地)在过程边界113之外存取。虽然此处图解说明为连续存储器空间,但将了解过程还可具有不连续的存储器位置。
在此实例中,应用程序111正在过程边界113内执行且分配有自己的用于数据115的存储器空间。虽然此处显示为单个连续数据空间115,但将了解应用程序111可具有用于不同类型数据的数个不同数据位置。
在执行期间的任一点处,应用程序111可致使加载一个或一个以上程序库,例如,程序库131。在此实例中,程序库131可以是由应用程序111使用但不是应用程序111的部分的任何补充代码。在一个实例中,程序库131可以是实施某一核心或特定功能的第三方程序库。
程序库131自己通常不具有过程或保护边界,而是在应用程序的过程边界113内执行。因此,程序库131可存取应用程序111拥有的任何事物,例如,应用程序的数据115且甚至应用程序可执行代码的多个部分。然而,程序库131可具有其自己的数据117,应用程序111可存取数据117。正是此对应用程序的代码111及数据115的自由存取创建了对应用程序111与程序库131之间的牢固信任关系的需要。
如此专利文献的剩余部分中的更全面描述,应用程序111说明定义程序库131必须属于的信任关系的某一信息。当加载时,程序库131指示其不属于的那些信任关系。当程序库131开始加载时,如果其不属于应用程序111所辨识的信任关系,那么放弃所述加载。
图2是可信实体(“TE”)的层级200的概念性图解,所述可信实体的每一者具有一个或一个以上相关联的可信代码群组(“TCG”)。根据本发明,可信代码群组(“TCG”)实质上是可相等信任的代码模块群组。可信实体(TE)是批准或认证代码模块进入到一个或一个以上TCG的组织或可能个体。设想特定TE将拥有特定TCG的所有权且评估或测试针对所述TCG中的成员资格提议的代码模块。
在一个特定实施方案中,每一TCG具有相关联的TCG识别符(TCG ID)。TCG ID是32-位的整数,其识别所述TCG且唯一地区别每一TCG与其它TCC。在此特定实施方案中,TCG ID的完整范围可从0x00000000扩展到OxFFFFFFFF。参照图2,最高等级TE(即,TE 201)具有整个范围的TCG ID的所有权。此最高等级TE 201可以是负责移动装置上的操作系统的组织或类似者。
最高等级TE 201将整个TCG ID范围内对应于专家或特定信任域的某一区域的范围委授给从属TE。在一个实例中,从属TE(安全TE 211)可具有验证及认可与任一类型的安全特征相关的代码程序库的责任。因此,将用于安全特征的TCG ID范围授给安全TE 211。安全TE 211可进一步将其TCG ID的子范围授给下一等级TE。例如,安全TE 211可将TCG ID的子范围授给加密TE 221或鉴别TE 222的。
最高等级TE 201可将用于用户接口组件的TCG ID的不同范围授给负责用户接口程序库的用户接口TE 212。用户接口TE 212接着将其TCG ID的子范围授予负责共用对话的共用对话TE 223。此层级系统允许灵活地分布TCG ID的范围以便可在将来适应额外的TCG。将了解整个范围的某些子范围可能出于某种原因而被排除用作TCGID,例如保留用于另一使用。
为使用具体实例来图解说明此概念,假设最高等级TE 201将范围0x000F0000到0x000FFFFF授给安全TE 211,将范围0x00100000到0x1A000O授给用户接口TE 212。安全TE 211可依次将子范围0x000F000F到0x000F00FF授给加密TE 221且将子范围0x000F0100到OxOOOFOFFF授给鉴别TE 222。用户接口TE 212可将子范围0x0010F000到0x0010FFFF授给共用对话TE 223。当然,这些特定范围及子范围仅是用以图解说明所述概念的实例且在任何方式中也未必是本发明所必需的。
图3图解说明样本开发环境,其中代码开发者301与TE 331互动以在TE 331控制下获得被签署到特定TCG中的共享程序库311。在此实例中,代码开发者301可开发出可在数字权利管理(“DRM”)应用程序中用于解码安全媒体内容的程序库311。TE 331已被授给范围TCG ID 332,从而具有批准程序库进入到用于DRM程序库的特定TCG的授权。在此实例中,TE 331从根TE授权或“CA”333接收认可程序库的授权。
开发者301向TE 331呈现未签署的程序库311以便得到批准,其可包含任何形式的调查,例如,故障检查、病毒检查、性能评估或或许仅验证开发者301的身份以确保开发者301是可信的。如果未签署的程序库311及/或开发者301满意TE的准则,那么TE 331“签署”未签署的程序库311。签署未签署的程序库311可包含产生未签署程序库311的杂凑值且使用私钥320来编码所述杂凑值。经编码的杂凑值称为未签署程序库311的数字签名325。
在一个实施方案中,当产生数字签名325时,将程序库正签署到其中的群组的TCGID 312添加到未签署程序库311。此允许在签署过程期间从添加到程序库的信息直接识别TCG。另一选择是,TCG ID可与签署授权(例如,TE 331或CA 333)相关联并嵌入到其根证书中,以允许在运行时间验证数字签名325时间接地从证书链确定TCG。可应用于本发明的实施方案的共用数字证书标准是ITU-T X.509标准。
将了解,数字证书325可在TCG ID 312被包含在封装内的情况下明确地或在证书335通过证书链与TCG相关联的情况下隐含地将经签署的程序库321有效地绑定到TCG。
TE 331接着返回经签署的程序库321、数字签名325及可能地程序库已被签署到其中的群组的TCG ID 312。TE 331还返回TE的证书335,其包含TE的供用于验证数字签名325的真实性的公钥。实际上,TE证书335可以是证书链,其包含产生可信根证书的中间证书,例如,CA 333的证书。开发者301现在准备好分布经签署的程序库321。
应注意,虽然此处描述为执行程序库批准及证书颁发两者的单个实体,但所述两个任务可由单独实体来执行。例如,在某些情况下,TE 331可向CA 335请求颁发证书335或或许向完全单独的实体请求。
图4图解说明计算装置401,在此实例中其是上面执行应用程序411的手持式计算装置。图6中图解说明且在下文中描述可用于本发明的实施方案的一个实例性计算装置。计算装置401包含操作系统420及一个或一个以上已安装的应用程序(例如,应用程序411),还存在可如上所述认证的(例如,经认证的程序库417)或未认证(例如,程序库419)的一个或一个以上代码程序库415。在此实例中,经认证的程序库417已被批准包含在TCG中,且已由适当的TE签署,如上所述。
应用程序411具有包含被授权TCG列表412的元数据,被授权TCG列表412可以是应用程序411说明其辨识的被授权TCG ID的列表。此意味着使用应用程序411加载的任何程序库415必须在被授权TCG列表412中的TCG中的一者中。将了解被授权TCG列表412可包含可信TCG ID的范围,而非仅包含个别TCG ID的列表。
应用程序411还可包含可信证书413的列表,可信证书413包含用于应用程序411所信任的任何TE的根证书。根证书用于确定经认证的程序库是否已变更,变更的原因是所述经认证的程序库因使用TE的公钥(其嵌入在根证书中)来证实经认证的程序库517的数字签名而被签署。可信证书413可预先安装在计算装置401上,或可与应用程序411一起或在任何其它时间安装。除或替代应用程序411维持的可信证书413,操作系统420还可维持可信证书422的存储。
当应用程序411正执行时,其可尝试启动(例如,或许使用“创建实例”调用或其它调用)经认证的程序库417。应用程序411说明其调用的任一程序库必须是被授权TCG列表412中的可信TCG中的一者的成员。此可在作为应用程序的启动程序一部分的初始化时完成,或应用程序411可使用调用(例如,创建实例)而在被授权TGG列表412(或其相关部分)中通过以加载程序库。
响应于应用程序411的请求,操作系统420定位经认证的程序库417并确定是否批准使用应用程序411来执行所述程序库。批准确定可由操作系统420的信任管理器424模块来执行,其从经认证的程序库417提取数字签名并确定应用程序可信证书413中或或许全球可信证书422中是否存在对应的根证书。如果存在,那么信任管理器424验证程序库的数字签名的真实性以确保所述程序库尚未因其被签署而变更。此验证可包含检查远程信任实体或认证机构460以确保不取消适当的根证书。
如果所有的都得到证实,那么操作系统420加载经认证的程序库417(或其一部分)并在应用程序的存储器空间中将其链接到应用程序411。如果根据所述方法的任一测试失败,那么操作系统420不加载经认证的程序库417并返回错误。
在一些情况下,应用程序411可请求特定类别的功能而不必指定调用哪一特定程序库。可存在提供所请求功能的多个程序库,一些经认证的程序库417及一些未认证的程序库419。在所述情况下,操作系统420仅可使应用程序411使用满足应用程序的TCG要求的那些程序库(即,经认证的程序库417)。例如,应用程序411可再现受DRM控制的音频内容,例如“MP3”。在所述情况下,应用程序411将可能需要信任任何MP3解码器(程序库)不会盗用所述内容。此信任可以成员资格的形式进入特定DRM TCG中,因此,当应用程序411需要MP3解码器程序库时,操作系统420仅使是DRM TCG成员的MPS解码器程序库可用。
图5是操作流程图,其大体上图解说明用于确保应用程序与所述应用程序加载的程序库之间的信任的方法500。方法500通常描述由用于建立及验证应用程序与程序库之间的信任的系统中的各种机构执行的步骤。
在块502处,代码开发者创建程序库。所述程序库可以是既定或能够通过与执行代码的另一模块(例如,应用程序)共享过程而以支持作用执行的任何代码模块或组件。
在块504处,签署程序库以表示授权所述程序库包含在TCG中。包含在ICG中暗指所述程序库被某一可信实体(例如,IE)认可且已经验证为与针对包含在TCG中的任何要求或准则相符。在一个实施方案中,当程序库被签署时,将识别所述程序库已签署到其中的特定群组的TCG ID明确地添加到所述程序库。在替代实施例中,TCG证书被包含在表示程序库已签署到其中的特定TCG的经签署程序库内。TCG证书由TE颁发或从负责TCG的TE导出其授权。以此方式,签名明确地或暗含地将程序库绑定到TCG。
在块506处,创建并配置应用程序以使用程序库,例如在块502处创建的程序库。所述应用程序可以是执行某一主要功能且依赖于支持所述功能或提供某一补充功能的另一代码模块(即,程序库)的任一可执行代码。
在块508处,将被授权TCG的列表添加到应用程序,例如添加到应用程序的元信息中。被授权TCG列表识别经加载以支持应用程序的任一程序库必须属于的那些TCG以在应用程序的过程或存储器边界中执行。另一选择是或另外,所述应用程序可包含表示应用程序信任而将程序库签署到TCG中的TE的可信根证书。
在块510处,将来自块508的应用程序及来自块504的程序库安装在计算装置上,例如,手持式计算装置或智能蜂窝式电话。将了解,应用程序及程序库需要同时安装,且可能将不同时安装,但所述两个组件最终将安装在同一装置上。
在块512处,启动应用程序并开始执行。当启动应用程序时,可视需要验证应用程序的代码签名,以确保所述代码实际上是由代码开发者提供的,但所述验证在特性及目的上明显不同于此文献的大部分中所述的TCG验证。
在块514处,应用程序颁发创建实例调用以加载由程序库实施的类别。将了解,在一些情况下,可写入应用程序以调用一类别的程序库而非特定程序库。可安装多个程序库以实施所述类别的程序库且例如,所述应用程序并不对例示的实施类别进行特定控制。然而,在此实例中,应用程序用以创建所述类别的程序库的实例的调用起始对来自块510的程序库的加载。
在块516处,在加载程序库之前,检查所述程序库上的签名以确定其是有效的且链锁达到由应用程序识别为可信的根证书。在一个实施方案中,有效签名指示程序库尚未引起被签署而变更。因此,被包含在或嵌入在程序库中的TCG ID直接识别程序库属于的TCG。另一选择是,可从用于签署程序库的证书链确定TCG成员资格。例如,与应用程序相关联的可信根证书可含有可信实体具有对特定TCG的签署授权的确认(例如,根)证书。对照本地可信根证书评估与程序库相关联的TCG证书。应注意应用程序可识别被授权以使用应用程序执行的多个TCG ID。所述多个TCG ID可仅识别为TCG ID的列表、TCG ID的范围或或许定义程序库必须属于的一个或一个以上TCG以使用应用程序执行的布尔表达式。这些及其它替代技术对所属领域的技术人员将是显而易见。
如果程序库上的签名确认其可信性,那么在块518处,加载所述程序库。然而,如果程序库上的签名不能以任何方式确认,那么在块520处,不加载所述程序库。如果在计算装置上加载多个程序库,那么可以与初始程序库相同的方式选择及评估替代程序库。另一选择是,可发布安全提示以允许由用户或另一安全确认机构来做出信任决定。又一替代形式是仅放弃程序库的加载并为此发布错误代码。
图6是功能框图,其大体上图解说明其中本发明的实施方案尤其适用的样本计算装置601的核心组件。计算装置601可以是任一移动计算装置,例如蜂窝式电话、个人数字助理、手持式“掌上型”装置、膝上型计算机、便携式音乐播放器、全球定位卫星(GPS)装置等等。类似地,计算装置601可以是任一固定计算装置,例如桌上型计算机或服务器。
在此实例中,计算装置601包含处理器单元604、存储器606、存储媒体613及音频单元631。有利地,处理器单元604包含微处理器或专用处理器,例如数字信号处理器(DSP),但在替代形式中其可以是任何常规形式的处理器、控制器、微控制器或状态机。
处理器单元604耦合到存储器606,有利地可将所述存储器实施为保持由处理器单元604执行的软件指令的RAM存储器。在此实施例中,存储在存储器606中的软件指令包含操作系统610、一个或一个以上应用程序612及一个或一个以上代码程序库614。存储器606可以是板上RAM,或处理器单元604及存储器606可共同驻留于ASIC中。在替代实施例中,存储器606可由固件或快闪存储器组成。
处理器单元604耦接到存储媒体613,存储媒体613可实施为任一非易失性存储器,例如,ROM存储器、快闪存储器或磁盘驱动器(仅提出少数例子)。存储媒体613还可实施为那些或其它技术的任一组合,例如,磁盘驱动器与高速缓存器(RAM)存储器或类似组合。在此特定实施例中,存储媒体613用于在切断计算装置601电源时或在无电情况下的周期期间存储数据。
计算装置601还包含通信模块621,其能够在计算装置601与一个或一个以上其它计算装置之间实现双向通信。通信模块621可包含能够实现RF或其它无线通信的组件,例如,蜂窝式电话网络、蓝牙连接、无线局域网络或或许无线广域网络。另一选择是,通信模块621可包含能够实现陆线或硬线网络通信的组件,例如,以太网连接、RJ-11连接、通用串行总线连接、IEEE 6394(火线)连接或类似连接。本文打算将这些例子作为非排他性列举,且可能存在许多其它替代形式。
音频单元631是计算装置601中经配置以在模拟格式与数字格式之间转换信号的组件。音频单元631由计算装置601用来使用扬声器632输出声音且从麦克风633接收输入信号。
图6仅图解说明通常在多数常规计算装置中发现的某些组件。日常中,还可在特定实施方案中发现许多其它组件,且在某些罕见情况下,可省略图6中所示的一些组件。然而,图6中所示的计算装置601代表当今常见的装置。
虽然上文已参照特定实施例及实施方案对本发明进行描述,但应了解,这些实施例仅为说明性且本发明的范围并不限于这些实施例。可存在对上述实施例的许多变化、修改、添加及改进,预期这些变化、修改、添加及改进均属于如本发明权利要求书内所祥述的本发明的范围内。
Claims (32)
1.一种用于确保代码模块之间的信任的方法,所述方法包括:
接收使用一类的功能的应用程序,所述应用程序包含所述应用程序信任的用以实施所述类的可信代码群组(“TCG”)列表;
接收实施所述类的功能的程序库,所述程序库是使用签名密钥签署的,所述签名将所述程序库与可信代码群组相关联,所述可信代码群组是可信性的认可;
执行所述应用程序中的代码,其请求创建在所述程序库中实施的类的实例;
将所述程序库加载到应用程序存储器中;及
在加载所述程序库之前,致使验证所述程序库上的所述签名,以确定所述程序库是否是所述列出的可信代码群组中的一者的成员。
2.如权利要求1所述的方法,其中所述签名通过将所述程序库绑定到识别所述可信代码群组的可信代码群组ID而将所述程序库与所述可信代码群组相关联。
3.如权利要求1所述的方法,其中使用公钥密码来签署及验证所述程序库。
4.如权利要求3所述的方法,其中使用证书层级来进行所述签署及验证。
5.如权利要求4所述的方法,其中致使验证所述签名进一步包括确定所述可信代码群组证书是否已到期。
6.如权利要求4所述的方法,其中致使验证所述签名进一步包括确定所述可信代码群组证书是否已被取消。
7.如权利要求1所述的方法,其中所述签名通过证书链将所述程序库与所述可信代码群组相关联,所述证书链将所述签名密钥与负责授权将程序库签署到所述可信代码群组中的可信实体(“TE”)相关联。
8.如权利要求1所述的方法,其中致使验证所述程序库上的所述签名包括使用与可信实体相关联的根证书来验证所述签名,所述根证书用于验证所述签名的真实性以及所述可信实体被授权将所述程序库签署到所述可信代码群组中。
9.如权利要求1所述的方法,其中所述应用程序包括一个或一个以上代码模块,所述代码模块选自包括用户应用程序、脚本、网页内容、标记内容及用户接口的群组。
10.如权利要求1所述的方法,其中所述程序库包括一个或一个以上代码模块,所述代码模块选自包括共享程序库、公共程序库、动态链接的程序库、静态链接的程序库、扩展、脚本、配置、内容、用户接口及资源的群组。
11.一种用于验证程序库的可信性的方法,其包括:
从应用程序接收加载所述程序库的指令,所述应用程序具有被授权的可信代码群组(TCG)的相关联列表,每一可信代码群组表示与程序库群组相关联的信任等级;
检验所述程序库以检测将所述程序库与可信代码群组相关联的数字签名;
将所述程序库的所述可信代码群组与和所述应用程序相关联的所述被授权可信代码群组列表相比较,以确定所述程序库是否被授权使用所述应用程序来执行;及
如果所述程序库被授权,那么加载所述程序库。
12.如权利要求11所述的方法,其中所述数字签名通过证书链将所述程序库与所述可信代码群组相关联,所述证书链将用于创建所述数字签名的签名密钥与负责授权将程序库签署到所述可信代码群组中的可信实体(“TE”)的根证书相关联。
13.如权利要求11所述的方法,其中所述数字签名通过将所述程序库绑定到识别特定可信代码群组的可信代码群组ID而将所述程序库与所述可信代码群组相关联。
14.如权利要求13所述的方法,其中所述可信代码群组ID包括在一整数值范围内的整数值,所述整数值中的至少一者用于识别已针对使用所述至少一个整数值的授权进行了评估的一群组的程序库。
15.如权利要求11所述的方法,其进一步包括证实所述数字签名以确保所述可信代码群组与所述程序库的关联是真实的。
16.如权利要求15所述的方法,其中证实所述数字签名包括使用与可信实体相关联的根证书以确保所述数字签名是真实的。
17.如权利要求15所述的方法,其中证实所述数字签名包括验证可信实体被授权将所述程序库签署到所述可信代码群组中。
18.如权利要求11所述的方法,其进一步包括如果所述程序库未被授权,那么不加载所述程序库。
19.如权利要求11所述的方法,其中所述应用程序包括一个或一个以上代码模块,所述代码模块选自包括用户应用程序、脚本、网页内容、标记内容及用户接口的群组。
20.如权利要求11所述的方法,其中所述程序库包括一个或一个以上代码模块,所述代码模块选自包括共享程序库、公共程序库、动态链接的程序库、静态链接的程序库、扩展、脚本、配置、内容、用户接口及资源的群组。
21.如权利要求11所述的方法,其中来自所述应用程序的所述指令包括对特定类的功能的请求,且进一步其中所述程序库包括提供所述特定类的功能的一群组的程序库中的一者,所述方法进一步包括基于所述程序库与被授权可信代码群组相关联而从所述群组的程序库中选择所述程序库的步骤。
22.一种用于验证程序库的可信性的设备,其包括:
用于从应用程序接收加载所述程序库的指令的装置,所述应用程序具有被授权的可信代码群组(TCG)的相关联列表,每一可信代码群组表示与程序库群组相关联的信任等级;
用于检验所述程序库以检测将所述程序库与可信代码群组相关联的数字签名的装置;
用于将所述程序库的所述可信代码群组与和所述应用程序相关联的所述被授权可信代码群组列表相比较以确定所述程序库是否被授权使用所述应用程序来执行的装置;及
如果所述程序库被授权那么用于加载所述程序库的装置。
23.如权利要求22所述的设备,其中所述数字签名通过证书链将所述程序库与所述可信代码群组相关联,所述证书链将用于创建所述数字签名的签名密钥与负责授权将程序库签署到所述可信代码群组中的可信实体(“TE”)的根证书相关联。
24.如权利要求22所述的设备,其中所述数字签名通过将所述程序库绑定到识别特定可信代码群组的可信代码群组ID而将所述程序库与所述可信代码群组相关联。
25.如权利要求24所述的设备,其中所述可信代码群组ID包括在一整数值范围内的整数值,所述整数值中的至少一者用于识别已针对使用所述至少一个整数值的授权进行了评估的一群组的程序库。
26.如权利要求24所述的设备,其进一步包括证实所述数字签名以确保所述可信代码群组ID与所述程序库的关联是真实的。
27.如权利要求26所述的设备,其中证实所述数字签名包括使用与可信实体相关联的根证书来确保所述数字签名是真实的。
28.如权利要求26所述的设备,其中证实所述数字签名包括验证可信实体被授权将所述程序库签署到所述可信代码群组中。
29.如权利要求22所述的设备,其进一步包括如果所述程序库未被授权,那么不加载所述程序库。
30.如权利要求22所述的设备,其中所述应用程序包括一个或一个以上代码模块,所述代码模块选自包括用户应用程序、脚本、网页内容、标记内容及用户接口的群组。
31.如权利要求22所述的设备,其中所述程序库包括一个或一个以上代码模块,所述代码模块选自包括共享程序库、公共程序库、动态链接的程序库、静态链接的程序库、扩展、脚本、配置、内容、用户接口及资源的群组。
32.如权利要求22所述的设备,其中来自所述应用程序的所述指令包括对特定类的功能的请求,且进一步其中所述程序库包括提供所述特定类的功能的一群组的程序库中的一者,所述设备进一步包括基于所述程序库与被授权可信代码群组相关联而从所述群组的程序库中选择所述程序库。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/361,230 US8020001B2 (en) | 2006-02-23 | 2006-02-23 | Trusted code groups |
US11/361,230 | 2006-02-23 | ||
PCT/US2007/062749 WO2007101126A2 (en) | 2006-02-23 | 2007-02-23 | Trusted code groups |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101385033A CN101385033A (zh) | 2009-03-11 |
CN101385033B true CN101385033B (zh) | 2012-05-30 |
Family
ID=38294072
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2007800058123A Active CN101385033B (zh) | 2006-02-23 | 2007-02-23 | 可信代码群组 |
Country Status (6)
Country | Link |
---|---|
US (1) | US8020001B2 (zh) |
EP (1) | EP1987464A2 (zh) |
JP (1) | JP5173844B2 (zh) |
KR (1) | KR101033620B1 (zh) |
CN (1) | CN101385033B (zh) |
WO (1) | WO2007101126A2 (zh) |
Families Citing this family (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7496757B2 (en) * | 2002-01-14 | 2009-02-24 | International Business Machines Corporation | Software verification system, method and computer program element |
US8490184B2 (en) * | 2007-04-26 | 2013-07-16 | International Business Machines Corporation | Verification for computer programs that include external call references |
KR100938672B1 (ko) * | 2007-11-20 | 2010-01-25 | 한국전자통신연구원 | 악성 코드에 의해 삽입된 동적 연결 라이브러리 검출 장치 및 방법 |
US8079082B2 (en) * | 2008-06-30 | 2011-12-13 | Ebay, Inc. | Verification of software application authenticity |
US8745153B2 (en) | 2009-02-09 | 2014-06-03 | Apple Inc. | Intelligent download of application programs |
US9805196B2 (en) | 2009-02-27 | 2017-10-31 | Microsoft Technology Licensing, Llc | Trusted entity based anti-cheating mechanism |
US8433296B2 (en) | 2009-05-01 | 2013-04-30 | Ryan Hardin | Exclusive delivery of content within geographic areas |
CN102682243A (zh) * | 2011-03-11 | 2012-09-19 | 北京市国路安信息技术有限公司 | 一种构建可信java虚拟机平台的方法 |
US8832447B2 (en) * | 2011-08-10 | 2014-09-09 | Sony Corporation | System and method for using digital signatures to assign permissions |
US9336137B2 (en) | 2011-09-02 | 2016-05-10 | Google Inc. | System and method for performing data management in a collaborative development environment |
US8738706B1 (en) | 2011-11-16 | 2014-05-27 | Google Inc. | Systems and methods for collaborative document editing |
US9971896B2 (en) | 2011-12-30 | 2018-05-15 | International Business Machines Corporation | Targeted security testing |
CN103491056B (zh) * | 2012-06-12 | 2017-12-26 | 中兴通讯股份有限公司 | 应用权限的控制方法及装置 |
FR2992083B1 (fr) * | 2012-06-19 | 2014-07-04 | Alstom Transport Sa | Calculateur, ensemble de communication comportant un tel calculateur, systeme de gestion ferroviaire comportant un tel ensemble, et procede de fiabilisation de donnees dans un calculateur |
US8954732B1 (en) * | 2012-06-27 | 2015-02-10 | Juniper Networks, Inc. | Authenticating third-party programs for platforms |
CN104252597B (zh) * | 2013-06-25 | 2017-05-31 | 中国银联股份有限公司 | 一种指示移动设备操作环境的方法和能够指示操作环境的移动设备 |
JP5866316B2 (ja) * | 2013-06-28 | 2016-02-17 | 京セラドキュメントソリューションズ株式会社 | アプリケーション実行時間短縮方法 |
US9519758B2 (en) * | 2014-02-04 | 2016-12-13 | Pegasus Media Security, Llc | System and process for monitoring malicious access of protected content |
CN103916395B (zh) * | 2014-04-09 | 2017-04-19 | 北京京东尚科信息技术有限公司 | 一种服务调用方法、设备及系统 |
FR3028071B1 (fr) * | 2014-11-05 | 2016-11-04 | Oberthur Technologies | Appareil electronique et procede mis en œuvre dans un tel appareil electronique |
US9536080B2 (en) | 2015-05-29 | 2017-01-03 | Apple Inc. | Method for validating dynamically loaded libraries using team identifiers |
US11809571B2 (en) * | 2021-06-14 | 2023-11-07 | Cisco Technology, Inc. | Vulnerability analysis using continuous application attestation |
US20220100906A1 (en) * | 2021-12-08 | 2022-03-31 | Intel Corporation | Software library integrity verification mechanism |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6182279B1 (en) * | 1997-08-12 | 2001-01-30 | International Business Machines Corporation | Method and apparatus for storing templates in a component system |
CN1545243A (zh) * | 2003-11-24 | 2004-11-10 | 华中科技大学 | 一种身份认证的方法和系统 |
CN1691579A (zh) * | 2004-04-22 | 2005-11-02 | 微软公司 | 根据多个链式数字证书在内容保护系统中呈现数字内容 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6233577B1 (en) * | 1998-02-17 | 2001-05-15 | Phone.Com, Inc. | Centralized certificate management system for two-way interactive communication devices in data networks |
US7096497B2 (en) | 2001-03-30 | 2006-08-22 | Intel Corporation | File checking using remote signing authority via a network |
JP4145118B2 (ja) * | 2001-11-26 | 2008-09-03 | 松下電器産業株式会社 | アプリケーション認証システム |
EP1542112A4 (en) * | 2002-07-09 | 2008-04-09 | Fujitsu Ltd | UCT RESISTANT TO OPEN-TYPE UNIVERSAL ATTACKS, AND ASSOCIATED APPLICATION SYSTEM |
US7401219B2 (en) | 2003-01-14 | 2008-07-15 | International Business Machines Corporation | Method and apparatus for protecting external call references |
US7891008B2 (en) * | 2004-06-12 | 2011-02-15 | Microsoft Corporation | Profile protection |
US7590867B2 (en) | 2004-06-24 | 2009-09-15 | Intel Corporation | Method and apparatus for providing secure virtualization of a trusted platform module |
-
2006
- 2006-02-23 US US11/361,230 patent/US8020001B2/en active Active
-
2007
- 2007-02-23 JP JP2008556564A patent/JP5173844B2/ja active Active
- 2007-02-23 WO PCT/US2007/062749 patent/WO2007101126A2/en active Application Filing
- 2007-02-23 CN CN2007800058123A patent/CN101385033B/zh active Active
- 2007-02-23 KR KR1020087023086A patent/KR101033620B1/ko active IP Right Grant
- 2007-02-23 EP EP07757434A patent/EP1987464A2/en not_active Ceased
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6182279B1 (en) * | 1997-08-12 | 2001-01-30 | International Business Machines Corporation | Method and apparatus for storing templates in a component system |
CN1545243A (zh) * | 2003-11-24 | 2004-11-10 | 华中科技大学 | 一种身份认证的方法和系统 |
CN1691579A (zh) * | 2004-04-22 | 2005-11-02 | 微软公司 | 根据多个链式数字证书在内容保护系统中呈现数字内容 |
Non-Patent Citations (1)
Title |
---|
说明书第[0023]-[0030]段、附图3,5. |
Also Published As
Publication number | Publication date |
---|---|
JP5173844B2 (ja) | 2013-04-03 |
EP1987464A2 (en) | 2008-11-05 |
CN101385033A (zh) | 2009-03-11 |
WO2007101126A2 (en) | 2007-09-07 |
US8020001B2 (en) | 2011-09-13 |
JP2009528596A (ja) | 2009-08-06 |
KR101033620B1 (ko) | 2011-05-11 |
WO2007101126A3 (en) | 2007-10-25 |
KR20080097230A (ko) | 2008-11-04 |
US20070198841A1 (en) | 2007-08-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101385033B (zh) | 可信代码群组 | |
CN102279760B (zh) | 利用初始保护组件来进行设备引导 | |
DK1479187T4 (en) | MANAGEMENT OF ACCESS LEVELS IN PHONES USING CERTIFICATES | |
CN102521548B (zh) | 一种管理功能使用权限的方法及移动终端 | |
US7797545B2 (en) | System and method for registering entities for code signing services | |
CN102420902B (zh) | 一种分类管理功能使用权限的方法及移动终端 | |
JP5037422B2 (ja) | 画像形成装置、アクセス制御方法、及びアクセス制御プログラム | |
CA2561608C (en) | System and method for registering entities for code signing services | |
CN103620556A (zh) | 将应用绑定到设备能力 | |
CN111066016A (zh) | 应用证书 | |
US8312431B1 (en) | System and computer readable medium for verifying access to signed ELF objects | |
CN109117605B (zh) | 一种鉴权方法及其装置、设备和存储介质 | |
KR20170089352A (ko) | 가상화 시스템에서 수행하는 무결성 검증 방법 | |
CN115499163A (zh) | 一种基于区块链的边缘设备授权存证方法 | |
CN112866235B (zh) | 一种数据处理方法、装置及设备 | |
US10367644B2 (en) | Methods for managing content, computer program products and secure element | |
US11687656B2 (en) | Secure application development using distributed ledgers | |
KR20150030047A (ko) | 애플리케이션 인증 방법 및 그 시스템 | |
JP2006079223A (ja) | アプリケーションプログラム管理装置及びそれに用いる管理方法並びにそのプログラム | |
WO2023084561A1 (ja) | インストール制御装置、インストール制御方法、共有システム、共有方法及び記憶媒体 | |
Rauter et al. | Development and production processes for secure embedded control devices | |
Kalutarage et al. | A certification process for android applications | |
KR20060125077A (ko) | 다운로드된 응용 프로그램의 변조 판단 시스템 | |
CN117040762A (zh) | 一种镜像全周期安全方法及系统 | |
Schwaighofer et al. | Extending Cloud Build Systems to Eliminate Transitive Trust |
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 |