用于执行应用程序的方法技术

技术编号:8082150 阅读:174 留言:0更新日期:2012-12-14 15:13
本方面描述了一种用于执行应用程序(A)的方法,所述应用程序(A)包括可执行的本地或可解释的代码并调用操作系统(BS)的函数,其中所述操作系统(BS)将相应函数调用(f1)的结果发送到所述应用程序(A)。根据本发明专利技术的所述方法的特征在于以下事实:所述应用程序(A)关于篡改而检查相应函数调用的结果,以便检测攻击。

【技术实现步骤摘要】
【国外来华专利技术】
本专利技术涉及一种,所述应用程序包括可执行的本地或可解释的代码并调用操作系统的函数(function),由此,所述操作系统将相应的函数调用的结果发送到所述应用程序。本专利技术还涉及便携式数据载体,具体地涉及芯片卡或安全模块。
技术介绍
在芯片卡领域,已经知道所谓的错误诱导攻击,其操纵芯片卡的程序顺序或存储器的存储内容。例如,当攻击时,可以借助于微分故障分析(DFA)来尝试通过选择性地散布错误的计算来窥探出密钥。借助于轻型攻击,尝试以有针对性的方式改变芯片卡的安全状态,从而读出保密数据,否则,所述保密数据将仅当存在验证时是可读的。针对这样的攻击,开发了各种基于软件措施和硬件措施二者的防御机制。这里,通过芯片卡的操作系统、或者 通过可以由芯片卡上的应用程序调用的操作系统的函数,定期实行攻击检測。在具有调用操作系统的函数并包含可执行本地或可解释代码的应用程序的便携式数据载体中,可以通过攻击(例如,轻型攻击)篡改函数调用的结果,而应用程序不能检测到该篡改。
技术实现思路
因此,本专利技术的目的是详细说明ー种当执行应用程序时可以进ー步提高安全性的方法。本专利技术的另外的目的是详细说明ー种当执行应用程序时已经提高了安全性的便携式数据载体。通过根据本专利权利要求I的特征的方法、以及根据本专利权利要求11的特征的便携式数据载体来实现这些目的。从从属权利要求得到有利的实施例。本专利技术产生,所述应用程序包括可执行的本地或可解释的代码并且调用操作系统的函数,由此,操作系统将相应函数调用的结果发送到应用程序。根据本专利技术,应用程序对于篡改而检查相应函数调用的結果,从而检测攻击。通过根据本专利技术的进行,可以提高来自操纵的安全性。与现有技术不同,对于操纵的检查不是由操作系统实行,而是由应用程序本身实行,所述应用程序调用操作系统的函数。特别地,在这样的应用程序中产生安全性的提高,其中操作系统仅对应用程序提供布尔变量作为結果。这是例如当验证签名时的情況。这里,每个不等于零的结果值被应用程序解释为真。这里,对由操作系统发送到应用程序的结果值的成功攻击的概率大大增カロ,因为每个篡改的结果导致无效签名的成功验证。根据本专利技术,由应用程序自身实行对发送到应用程序的结果的检查,由此,在检测到攻击的情况下可以采取适当的对策。特别地,在便携式数据载体(特别是芯片卡或安全模块)上执行根据本专利技术的方法。方便地,为了检查相应函数调用的结果,由应用程序调用操作系统的另ー个函数。特别地,其中规定了 由应用程序对操作系统的相应函数的调用经由第一接ロ而进行,并且,由应用程序对另ー个函数的调用经由第二接ロ(特别是专有接ロ)而进行。经由第二接ロ,可以以简单的方式检查在先的安全性相关处理的結果,而不会影响第一接ロ的工作和机能的模式。因此,通过由第二接ロ的扩展,对由操作系统发送的结果的检查也可以在这样的经标准化的且不可变的环境中进行。又一实施例规定了 执行对不同函数调用的相应结果的集中(central)统ー的检查。特别地,规定了进行对上ー个函数调用的检查。通过该检查,可以确知(ascertain)所调用的函数是否被实际执行、以及接收的返回值是否符合实际結果。以这种方式,可以以高概率检测到攻击。又ー实施例规定为了检查相应函数调用的結果,由操作系统确定并被发送到应用程序的结果被发送到操作系统并且由操作系统验证。这里,优选地,经由第二接ロ进行结果从应用程序到操作系统的发送,由此,不需要改变或扩展关于在应用程序和操作系统之间经由第一接ロ的通信的现有标准。 以有利的方式,便携式数据载体的另外的行为可以由应用程序依赖于检查结果而控制。对便携式数据载体的另外的行为的控制包括时间延迟和/或数据载体的关闭。相应地选择的反应可以依赖于应用程序的检查的结果而进行。对于函数调用的攻击可能已经改变所调用的函数。进ー步的保护可能来自错误函数(即,除了由应用程序调用的函数之外的函数)的(正确)結果。除函数调用的结果之外,应用程序还可以验证所调用的函数是否被实际执行。应用程序将检查參数发送到识别所调用的函数的操作系统。操作系统存储了用于(上次)所调用的函数的參考參数、并且针对检查參数而检查所述參考參数。优选地,将參数与结果一起发送到操作系统,并且在对结果的检查的框架内检查參数。因此,如果除了所调用的函数之外的函数提供結果,则这会在检查的框架内被检测到。优选地,所检查的函数调用应该是上ー个函数调用。然而,应用程序的所有函数调用并非都必须是安全性相关函数。然而,如这里暗示的,进ー步的函数调用不被保护,因此它们的结果不被操作系统存储用于检查。特别地,可以对于上ー个安全性相关函数调用而相应地进行对结果的检查。仅可以检查安全性相关函数调用的結果。另外的(非安全性相关)函数调用可以在安全性相关函数的调用和上一个由应用程序调用的安全性相关函数的结果的检查之间进行。在具体实施例中,使用Java卡小应用程序(applet)作为应用程序,并且使用Java卡VM (虚拟机)作为操作系统。优选地,运行应用程序和操作系统的数据载体是Java卡。根据本专利技术的以芯片卡或安全模块的形式配置的数据载体被配置为执行根据本专利技术的上述方法。附图说明在下文中将參考附图而更严密地描述本专利技术。附图被描述如下图I是根据本专利技术的方法的示意顺序,以及图2是根据本专利技术的便携式数据载体的示意表示。具体实施方式本专利技术从调用操作系统BS的函数的应用程序A开始进行。用于此目的的应用程序A包含可执行的本地或可解释的代码。尽管通常可以将本专利技术应用于在操作系统上运行的任何应用程序,但以下描述的示例性实施例从作为便携式数据载体的Java卡开始进行,虚拟机在Java卡上处理Java小应用程序的函数调用。应用程序A可以经由两个接ロ ST1、ST2访问Java卡CC的操作系统BS (比较图2)。经由第一个接ロ ST1,由应用程序A调用操作系统BS的函数。第一个接ロ STl例如是Java卡API。第二个接ロ ST2 (特别地,其具有专有性质)将适合于提高安全性的附加函数提供至应用程序。特别地,在函数调用之后,该应用程序可以通过接ロ ST2验证由操作系统BS发送到应用程序A的結果。附加的第二个接ロ ST2的提供弥补了安全性关键弱点,诸如,存在在SunMicrosystems (太阳微系统公司)的Java卡API中。通过命令“verify PIN (验证PIN)”的例外(其中,修改可以由应用程序从操作系统查询(query)的状态),Java卡API将布尔值提供回应用程序A。因此,关于安全性相关函数(诸如签名验证),作为返回,仅使用返回到应 用程序的布尔值。真实的是,所述值被内部扩展以形成2字节值。然而,每个不等于零的值被解释为真。因此对返回值的成功攻击的概率大大增加,因为每个篡改的结果导致无效签名的成功验证,而应用程序A无法检测到这样的攻击。通过第二个专有接ロ ST2,可以增加来自操纵的安全性,因为检查由操作系统BS提供回应用程序A的結果。依赖于检查结果,如果需要的话,则可以将Java卡设置为安全状态。第二个接ロ ST2允许使得新函数可用于检查在先的安全性相关处理的結果。为此目的,独立于经由第一个接ロ STl由操作系统BS返回到应用程序A的结果值,可以内部地保持另ー个结果值,可以在程序顺序中本文档来自技高网...

【技术保护点】

【技术特征摘要】
【国外来华专利技术】...

【专利技术属性】
技术研发人员:M乔尔林D西尔默L霍尔特曼J特雷格I弗拉迪
申请(专利权)人:德国捷德有限公司
类型:
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1