专利名称:为电子装置提供可信软件的方法
技术领域:
本发明涉及软件分发领域,更具体地涉及建立对在经由通用计算机发送到电子装置的软件更新的来源和可靠性的信任。
背景技术:
为个人计算机分发软件更新的过程已从其中新版软件在诸如磁盘或光盘的物理数据存储介质上传递到用户的物理传递模式演化到其中新版本可以从网络资源下载的基于网络的模式。在基于网络的模式中,开始更新的主动权可以在于用户或者在于软件提供商。Donohue [US 6199204B (D0N0HUE, SEAMUS) 2001-03-06]公开了一种基于网络的软件更新机制,其中,用户运行更新器代理,该代理检查相关软件更新的可用性,并且如果需要则装载软件更新。随着用户可能不再物理地检验软件更新提供商的身份,基于网络的模式使得在被下载软件的来源和可靠性方面建立信任的问题更加突出。该问题可以通过加密方法来解决。更具体地,公钥加密可以用于利用软件提供商的私钥对软件发布进行数字地签名,允许用户利用软件提供商的容易使用的公钥来检验发布的来源和可靠性。公钥加密还可以用于检验针对除了个人计算机之外的电子装置而电子分发的软件的来源和可靠性。一旦装置由最终用户管理,则这关系到该装置的固件以及可以添加或更新的任何应用程序。例如,Wysocki 等人的[US 20070028120A(WYS0CKI, CHRISTOPHER R.)]公开了一种升级便携式电子装置上的软件的方法,在其中特别包括以下操作在便携式电子装置处接收加密的软件模块,在电子装置处对加密的软件模块进行解密,认证解密的软件模块,以及在所述解密和所述认证成功完成后将该软件模块装载到便携式电子装置上。所引用的申请进一步描述了可以通过检验数字签名来执行认证。本发明旨在提供一种对电子装置的预备软件更新的改进方法,具体地提供了一种装置,该装置被期望以安全地方式进行操作并且该装置受最终用户的控制。
发明内容
技术问题通过检验软件模块中的程序代码(或者根据程序代码计算出的散列值)上的加密签名(优选地使用公钥加密生成的签名),来更好地解决对软件模块的来源和可靠性的检验。这种签名必须利用软件提供商的私钥来生成,并且可以利用软件提供商的对应公钥进行检验,该公钥应当被提供给电子装置并认证给电子装置,或者预先装载到电子装置中。通过与签名的数据一起提供一组证书来实现对公钥的认证,这组证书中的每一个证书均包括特定公钥属于所陈述的签署人的陈述。这组证书必须形成完整的链条,使得实际用于签署该软件模块的密钥的可靠性可以在一步或更多步中追踪回到最终认证授权,该最终认证授权的公钥被预先加载在电子装置中。当这种安全范例被应用于简单的电子装置中时出现了几个技术问题。
诸如密钥、签名和证书的加密资料作为表示数据容器的位串进行数字互换,其结构和编码必须被资料的发送者和接收者所了解。因此,采用几种适当的数据结构,并且特别地以 RSA Laboratories' PKCS#7 标准[RSALaboratories. PKCS#7 加密消息语法标准 1. 5 版.Redwood市RSA实验室,1993]来标准化这些互换。在XML签名语法和处理规范[万维网协会.XML签名语法和处理,第二版,由EASTLAKE,Donald等人编辑,W3C,2008]中找到基于XML的替换说明。
为了方便标准化和实现,以形式语言描述了诸如在PKCS#7中图示示出的标准化数据结构。为了实现此目的的最广泛使用的形式语言为抽象语法标记一(ASN. 1),其以规范 X. 208以及其后续的ITU-T规范X. 680 [ITU-T. X. 680-信息技术-抽象语法标记一(ASN. 1) 基本标记的说明.07/2002版.日内瓦国际电信联盟,2003]中的CCITT进行开发并标准化。如果数据结构的ASN. 1描述确定哪个元素必须或可以被呈现,以及它们应当属于哪个类型,则不能强迫对该数据进行特定的二进制表示。然而,非常重要地,数据的发送者和接收者也同意这种表示。几种编码标准解决协调二进制表示的问题,最恰当的二进制表示已知为基于CCITT规范X. 209及其后续的ITU-T规范X. 690 [ITU-T. X. 690-信息技术-基本编码规则(BER)的说明,规范编码规则(CER)和唯一编码规则(DER). 07/2002版。日内瓦 国际电信联盟,2003]的基本编码规则(BER)、规范编码规则(CER)和唯一编码规则(DER)。 DER提供了数据的含糊二进制表示,其包括八位字节形式的关于其数据类型以及其长度的每个对象信息,因此单个变量可以被看作以标签长度值(TLV)实体进行编码。为了灵活地应对可能在数据源处或在传送期间产生的误差,处理以复杂数据结构进行编码的对象的任何过程,例如作为本发明的目的的软件更新过程,应当检验所接收数据是否符合期望的标准化结构,以及TLV实体是否内在地一致。这种检验根据数据结构的复杂性将要求相当大量的存储和处理,这可能超过一些仍需要安全下载数据的低成本电子装置的能力。因此,本发明的第一目的在于提高检验过程的效率。通常发布具有清楚有效期限的证书。当私钥有时会遭到损坏时,在其有效期之前密钥和证书还将被吊销。吊销可以通过证书吊销列表(CRL)来通知公钥的预期用户,通常经由网络可获得该CRL,且应该在每次使用附属于第三方公钥的证书之前进行协商。可选地,可以经由在线证书状态协议(OCSP)在线查找特定证书的状态。因此,本发明的另一目的在于提供一种在目标的安全软件更新过程中考虑有效期和吊销信息的方式。Wysocki等人的方法适用于高端便携式电子装置,例如便携式媒体播放器和移动电话,其具有足够的处理能力来对所接收的软件模块执行所有所需的操作,包括对软件模块的内容的有效性和一致性执行所有所需的检验。可以期望具有用于电子装置的同等安全的软件更新方法,该电子装置由于对其生产成本的经济约束而限制了其处理能力、没有内部时钟或者没有内部连接性。低成本电子装置的一个目标分类包括认证装置,更具体地包括安全智能卡读卡机,该读卡机通常用于在电子商务和电子银行网站上检验用户。在智能卡的多变的世界中,经常发明新的功能。智能卡读卡机难以保证可以无限支持未知的未来智能卡。因此,可升级生是智能卡读卡机的关键特征,从而该应用功能可以被添加到该安全读卡机中。该可升级性必须保证读卡机的可信性,以及该过程不应将较重的负载施加到读卡机中的(有限)存储器上。进一步可以期望安全软件更新方法提供对验证多级证书链而不是仅验证签名的支持。
技术方案本发明基于可以在通用计算机(后文中具有附接至其的电子装置的主机)以及电子装置本身之间有利地划分检验用于电子装置的软件模块的来源和可靠性所需的操作的考虑。更具体地,存储和诸如语法检查的处理密集任务在主机处执行,而诸如加密检验的安全关键任务在在电子装置处执行到电子装置能够执行的程度。尽管优选地通过电子装置执行所有与安全相关的任务,但本发明提供了由主机执行特定安全任务的可能性。有利地在主机处执行的第一组安全任务包括超过电子装置能力的这些任务。虽然从安全的角度来看是次优的,但本方法对于不在执行这些安全任务来说是优选的。有利地在主机处执行的第二组安全任务包括通常也可以在电子装置处执行但优选地在主机处运行的任务,以这种方式可以避免预先已知其将被电子装置拒绝的软件模块被传送到电子装置。这在如果不适当的有效载荷被允许下载则电子装置将以劣化或“成块的”状态结束的情况下是特别感兴趣的。这可以是在资源非常有限的装置情况,数据存储空间不足迫使利用新固件重写现存固件,从而一旦成功完成安全检查则仅激活新固件。如果后者不成功,则不激活新固件,而旧固件将不再可用。因此,本发明用于更新电子装置上的软件的方法包括两组检验,一组在主机上,一组在电子装置上。主机用于获得和存储用于电子装置的软件模块,其包括有效载荷(其可以包括实际程序代码、固件图像、将被电子装置执行的命令、配置参数、用于认证的要素、或可以影响电子装置的信任等级的数据的任意其他主体)、有效载荷上的签名、和可选地属于用于生成和检验有效载荷上的签名的密钥的可靠性的一组证书。优选地,根据标准化格式来建立软件模块。一组证书可以包括一个或更多个证书,如果仅存在一个证书,则应当认证用于有效载荷上的签名的密钥,并通过其公钥被预先加载到电子装置中的认证授权来进行签名。如果未提供证书,则应当通过其公钥被预先加载在电子装置中的实体来生成软件模块上的签名。公钥在电子装置中的预先加载可以在电子装置到最终用户的分发之前进行,并且尤其稍后可以通过可根据本发明的方法下载的特定“管理应用程序”来替换密钥。管理应用程序从主机或从其应用代码本身检索新公钥,并且在将新公钥存储到电子装置中之前该管理应用程序执行任何适当的安全性、环境、或其他检查和/或用户交互。主机可以是台式个人计算机、笔记本电脑、手持计算机等。其可以具有网络连接,以从网络资源获得软件模块,或者可选地其可以从可移动存储介质检索软件模块。主机应当具有足够的存储和处理能力,以不仅发起和保护软件模块获取过程,而且还关注软件模块的译码;即,其执行还包括ASN. 1-定义结构的译码和验证的结构检验。 如果通过主机的检验成功,则优选地在请求电子装置的最终用户的允许之后,实际有效载荷数据(例如,电子装置的程序代码或中间检验密钥)可以被下载到电子装置。电子装置将依次从来自主机的数据结构中检索组分,并在其安全环境中执行签名检验和证书检验(如果有的话)。除评估证书(链)的加密正确性之外,电子装置还评估提供软件模块(其身份被认证)的实体实际上是否被授权以为可疑的电子装置提供软件模块。加密认证过程必须在电子装置中执行,以不必折衷证书(链)和数据的完整性。然而, 通过可以作为存储器和/或处理加强器的主机执行的结构认证,无需被电子装置复制。一旦电子装置中的认证成功,则可以安装有效载荷程序,并且可以通过在主机和/或电子装置上显示的消息来通知最终用户。在电子装置处显示消息被理解为包括将信息传达至用户的任意形式,例如,通过文本或图形显示、合成语音、蜂鸣声等。在主机上显示消息被理解为包括将信息传达至计算机用户或执行程序的操作系统环境的任意形式,例如,通过在监视器上的文本或图形显示、合成语音、蜂鸣声、程序出口代码等。
除解析和检验数据结构的属性之外,可以在主机处有利地执行其他步骤。一个这种步骤为,如果存在则检验包括在软件模块中的证书是否有效,即,检验它们是否符合预期格式(例如,X. 509v3、RFC5280、RFC2528或本领域技术人员已知的其他格式)和/或根据包括在证书中的陈述和/或公钥检验它们是否包括来自认证授权的加密声音签名。另一个这种步骤为例如通过重新布置项目的顺序,通过将特定的最大尺寸应用于将传送的每个项目,或者通过从数据结构中去除冗余信息,来重新打包软件模块的内容,以将其以更加可管理的形式呈现给电子装置。再一个这种步骤为通过完成在线证书状态协议(OCSP)查询,或者检查证书吊销列表(CRL),来检查在软件模块中提供的证书是否被吊销;这与主机经由诸如互联网的网络访问外部资源的情况存在特定相关性,这将与电子装置本身无关。又一个这种步骤为检查在软件模块中提供的证书是否在限制其有效性的日期范围内使用,这与电子装置不具有以精确且可信的方式跟踪当前日期的系统时钟的情况存在特定相关性。主机还可以有利地检验在软件模块中提供的签名。为了执行加密验证,主机必须访问与用于生成签名的密钥相关的公钥。如果软件模块中存在证书,或者可选地可以从诸如网络资源的不同来源处获得证书,则可以在证书之一中发现公钥。在后一种情况中,主机应使用与预先存储在电子装置中的公钥相同的公钥。主机可以了解哪个公钥被预先存储在电子装置中,或者可选地主机可以查询电子装置,以了解预先加载了哪个公钥。电子装置对该查询的响应可以包括其自身的公钥、根据该公钥计算的散列或指纹、或者明确标识对电子装置上的软件行使最终授权的实体(例如,电子装置的制造商、提供商或拥有者)的任意其他表示。主机可以执行其他有用的检查,例如,检验用于生成软件模块中的加密资料的算法是否是电子装置所支持的算法,以及在程序代码的情况下检验有效载荷的特征,例如,其是否对应于具有正确标题、版本号、大小或其他特征的程序。本发明因此提供一种用于以可信方式更新电子装置中的软件的方法,其中,在连接到电子装置的主机系统以及电子装置本身之间划分检验步骤。因此,本发明还提供了包括用于主机系统的程序的存储介质,使得该主机系统能够关于用于附接电子装置的软件更新执行检验步骤,并与所述电子装置适当交互。有益效果本发明允许简单的电子装置能够通过以下步骤在用于更新固件、数据或功能性的软件模块中达到更高等级的可信度与访问外部资源的主机系统合作,在主机和目标电子装置之间有效地划分检验该软件模块所需的步骤。作为主机的资源-包括存储、处理能力、 网络访问和系统时钟-这些在目标电子装置中不存在,之前不能在目标电子装置内实施的检查现在可以在将软件模块传送到目标电子装置之前在主机处执行。因此,大大降低了在目标电子装置中安装流氓更新的风险。
如在附图中示出的,根据以下对本发明的几个实施例的更具体描述,本发明的以上和其他特征 和优点将是明显的。图1示出了连接至主机101的电子装置100,主机101可以访问存储软件模块的资源 102。图2是示出本发明的方法的流程图,其表示在每个步骤处动作是在主机处执行还是在电子装置处执行。图3示例性地示出了包括在软件模块301中的数据结构如何被翻译,以访问在主机101处的各个组件302-304 (其提取数据的功能通过符号示出)。图4是示出了根据本发明的作为存储在计算机可读存储介质上的程序的流程图。
具体实施例方式在优选实施例中,通过使主机101具体化的个人计算机以及使电子装置100具体化的安全智能卡读卡机来实现该方法。优选地,安全智能卡读卡机通过USB连接103连接到个人计算机。该方法包括使用个人计算机从服务器102下载201软件模块301,该软件模块包括含有用于安全智能卡读卡机的新的或更新的应用程序或固件的有效载荷302、签名303以及可选的一组证书304。该方法进一步包括在个人计算机101处根据软件模块的内容层次检验202所述软件模块301,该软件模块优选为以DERTLV实体编码的符合PKCS#7 的消息。如果检验成功203,则个人计算机101可选地重新打包205软件模块301并将其 (或将其重新打包的提取的组件302-304)传送206至安全智能卡读卡机100。在第二检验 207中,安全智能卡读卡机100检验在有效载荷302上的签名303,并且可选地检验在逐渐引导至预先存储的根公钥的证书链304中的每个密钥。一旦成功检验208,则安装210有效载荷302。更普通地,本发明的方法包括在主机101处获得201软件模块301,所述软件模块 301包括有效载荷302和签名303 ;在所述主机101处检验202所述软件模块301 ;—旦成功检验203,则将所述软件模块301从所述主机101传送206到电子装置100 ;在所述电子装置100处检验207所述签名303 ;如果所述第二检验成功208,则在所述电子装置100处对所述有效载荷302进行操作。如果所述第一检验不成功203,则过程失败204。如果所述第二检验不成功208,则过程失败209。在本发明的一个实施例中,所述第一检验包括检查所述软件模块的内部结构的正确性。在更具体的实施例中,对照以ASN. 1定义标准化的一组语法规则,或者更具体地对照 PKCS#7消息语法,来检查所述内部结构。在其他更具体的实施例中,对照XML签名规范来检查所述内部结构。在另一具体实施例中,对照编码规则,或者更具体地对照基本编码规则或唯一编码规则,来检查所述内部结构。在本发明的一个实施例中,所述第一检验包括检查所述签名的有效性。在更具体的实施例中,根据本发明的方法还包括在所述主机处从在所述电子装置中获得公钥被预先加载在所述电子装置中的表示。在本发明的一组实施例中,所述软件模块进一步包括属于用于生成所述签名的密钥的一组证书,以及所述第二检验进一步包括检验所述一组证书。在一个这种实施例中,所述第一检验包括检查所述一组证书中至少一个证书的有效性,具体地通过检查是否通过验证授权正确地签署了关于公钥进行的陈述。在另一这种实施例中,所述第一检验包括检查证书的格式。在又一这 种实施例中,所述第一检验包括访问关于所述一组证书中的至少一个证书的证书吊销列表。在再一这种实施例中,所述第一认证包括完成关于所述一组证书中的至少一个证书的OCSP查询。在再一实施例中,所述第一检验包括对所述一组证书中的至少一个证书检查当前日期是否在所述至少一个证书的有效期内。本发明的一些实施例还包括在所述主机处将所述软件模块重新打包为一个或更多个组件。当多个组件得自所述重新打包时,可以以预定顺序或者在所述电子装置的请求下被传送到电子装置。在本发明的一个实施例中,所述传送经由有线网络进行。更具体地,有线网络可以包括通用串行总线链接。在本发明的另一实施例中,所述传送经由无线网络进行。更具体地,所述无线网络可以包括蓝牙链接。在本发明的一组实施例中,所述电子装置为智能卡读卡机。在本发明的一个实施例中,所述第二检验包括确定所述一组证书中的第一证书是否签署有私钥,该私钥的对应公钥被预先安装在所述电子装置中。在具体实施例中,所述有效载荷为用一个不同公钥来代替所述预先安装的公钥的固件图像。 在本发明的一个实施例中,所述方法还包括在所述装载之前在所述电子装置处显示确认消息并获取用户同意表示。在本发明的一组实施例中,对所述有效载荷的所述操作包括装载程序代码。在本发明的另一实施例中,对所述有效载荷的所述操作包括激活固件图像。在本发明的又一实施例中,对所述有效载荷的所述操作包括执行命令。在本发明的再一实施例中,对所述有效载荷的所述操作包括将公钥存储在所述电子装置中。在根据本发明的计算机可读存储介质的普通实施例中,介质包括用于计算机的程序,当该程序被执行时使计算机能够检验401所述计算机能够访问的软件模块,所述软件模块至少包括有效载荷、属于所述有效载荷的签名、以及符合用于生成所述签名的密钥的一组证书;并且一旦成功检验402,则将所述软件模块传送405至电子装置。如果所述第一检验402不成功403,则不需要其他步骤。在介质的一组实施例中,所述程序进一步使所述计算机获得406属于所述签名以及所述一组证书的、表示通过所述电子装置进行第二检验的信息;以及显示407表示所述检验的信息。在本发明的一个实施例中,所述第一检验包括检查所述软件模块的内部结构的正确性。在更具体的实施例中,对照以ASN. 1定义来标准化的一组语法规则,或者更具体地对照PKCS#7消息语法,来检查所述内部结构。在其他更具体的实施例中,对照XML签名推荐的语法来检查所述内部结构。在又一具体实施例中,对照编码规则,或者更具体地对照基本编码规则和唯一编码规则来检查所述内部结构。在计算机可读存储介质的一个实施例中,所述第一检验包括检查所述签名的有效性。在更具体的实施例中,所述介质上所包含的程序进一步使计算机从所述电子装置获得公钥被预先加载在所述电子装置中的表示。在计算机可读存储介质的一组实施例中,所述软件模块还包括属于用于生成所述签名的密钥的一组证书。在一个这种实施例中,所述第一检验包括检查所述一组证书中至少一个证书的有效性,具体地通过检查认证授权是否正确签署了关于公钥进行的陈述。在另一个这种实施例中,所述第一检验包括检查证书的格式。在再一个这种实施例中,所述第一检验包括访问关于所述一组证书中的至少一个证书的证书吊销列表。在又一个实施例中,所述第一检验包括完成关于所述一组证书中的至少一个证书的OCSP查询。在其他实施例中,所述第一检验包括针对所述一组证书中的至少一个证书检查当前日期是否位于所述至少一个证书的有效期内。 计算机可读存储介质的一些实施例进一步包括在所述主机处将所述软件模块重新打包为一个或更多个组件。当多个组件得自所述重新打包时,这些组件可以以预定的顺序或者在所述电子装置的请求下传送到电子装置。在介质的一个实施例中,所述传送经由有线网络进行。更具体地,有线网络可以包括通用串行总线链接。在本发明的另一实施例中,所述传送经由无线网络进行。更具体地, 所述无线网络可以包括蓝牙链接。在本发明的一组实施例中,所述电子装置为智能卡读卡机。虽然以上描述了本发明的各个实施例,但应当理解其仅以示例性的方式而非限制进行示出。因此,本发明的宽度和范围不被以上描述的示例性实施例中的任何实施例所限制,仅根据以下权利要求及其等同物来限定。
权利要求
1.一种用于更新电子装置上的软件的方法,包括在主机处获得软件模块,所述软件模块至少包括有效载荷、以及属于所述有效载荷的签名;在所述主机处执行所述软件模块的第一检验;如果所述第一检验成功,则将所述软件模块从所述主机传送到电子装置;在所述电子装置处执行所述软件模块的第二检验,所述第二检验包括使用所述电子装置中的公钥来验证所述签名;以及如果所述第二检验成功,则在所述电子装置处对所述有效载荷进行操作。
2.根据权利要求1所述的方法,其中,所述第一检验包括检查所述软件模块的内部结构的正确性。
3.根据权利要求2所述的方法,其中,对照以ASN.1定义来标准化的一组语法规则来检查所述内部结构。
4.根据权利要求3所述的方法,其中,所述语法规则为PKCS#7消息语法的子集。
5.根据权利要求2所述的方法,其中,对照基于XML签名格式的一组语法规则来检查所述内部结构。
6.根据权利要求2所述的方法,其中,对照编码规则来检查所述内部结构。
7.根据权利要求6所述的方法,其中,所述编码规则基于基本编码规则、规范编码规则或唯一编码规则。
8.根据权利要求1所述的方法,其中,所述第一检验包括检查所述签名的有效性。
9.根据权利要求8所述的方法,进一步包括在所述主机处从所述电子装置获得公钥被预先加载在所述电子装置中的表示。
10.根据权利要求1所述的方法,其中,所述软件模块进一步包括属于用于生成所述签名的密钥的一组证书,并且其中,所述第二检验进一步包括验证所述一组证书。
11.根据权利要求10所述的方法,其中,所述第一检验包括检查所述一组证书中的至少一个证书的有效性。
12.根据权利要求10所述的方法,其中,所述第一检验包括检查所述一组证书中的至少一个证书的格式。
13.根据权利要求10所述的方法,其中,所述第一检验包括访问关于所述一组证书中的至少一个证书的证书吊销列表。
14.根据权利要求10所述的方法,其中,所述第一检验包括完成关于所述一组证书中的至少一个证书的OCSP查询。
15.根据权利要求10所述的方法,其中,所述第一检验包括针对所述一组证书中的至少一个证书来检查当前日期是否位于所述至少一个证书的有效期内。
16.根据权利要求1所述的方法,进一步包括在所述主机处将所述软件模块重新打包为一个或更多个组件。
17.根据权利要求1所述的方法,其中,所述传送经由有线网络进行。
18.根据权利要求17所述的方法,其中,所述有线网络包括至少一个通用串行总线链接。
19.根据权利要求1所述的方法,其中,所述传送经由无线网络进行。
20.根据权利要求19所述的方法,其中,所述无线网络包括至少一个蓝牙链接。
21.根据权利要求1所述的方法,其中,所述电子装置包括智能卡读卡机。
22.根据权利要求10所述的方法,其中,所述第二检验包括确定所述一组证书中的第一证书是否签署有私钥,所述私钥的对应公钥被预先装载在所述电子装置中。
23.根据权利要求1所述的方法,进一步包括在对所述有效载荷进行操作之前在所述电子装置处显示确认消息并获取用户同意表示。
24.根据权利要求1所述的方法,其中,所述有效载荷包括程序代码,以及所述对所述有效载荷进行操作包括安装所述程序代码。
25.根据权利要求1所述的方法,其中,所述有效载荷包括固件图像,以及所述对所述有效载荷进行操作包括激活所述固件图像。
26.根据权利要求1所述的方法,其中,所述有效载荷包括命令,以及所述对所述有效载荷进行操作包括执行所述命令。
27.根据权利要求1所述的方法,其中,所述有效载荷包括公钥,以及所述对所述有效载荷进行操作包括将所述公钥存储在所述电子装置中。
28.—种包括程序的计算机可读存储介质,所述程序在被执行时使计算机执行对所述计算机可访问的软件模块的第一检验,所述软件模块至少包括有效载荷、 以及属于所述有效载荷的签名;以及如果所述第一检验成功,则将所述软件模块传送到电子装置。
29.根据权利要求28所述的介质,其中,所述程序进一步使计算机获得表示所述电子装置对所述软件模块的第二检验的信息,所述第二检验包括使用所述电子装置中的公钥来验证所述签名;以及显示表示所述第二检验的消息。
30.根据权利要求28所述的介质,其中,所述第一检验包括检查所述软件模块的内部结构的正确性。
31.根据权利要求30所述的介质,其中,对照以ASN.1定义来标准化的一组语法规则来检查所述内部结构。
32.根据权利要求31所述的介质,其中,所述语法规则为属于PKCS#7消息语法的子集。
33.根据权利要求30所述的介质,其中,对照基于XML签名格式的一组语法规则来检查所述内部结构。
34.根据权利要求30所述的介质,其中,对照编码规则来检查所述内部结构。
35.根据权利要求34所述的介质,其中,所述编码规则基于基本编码规则、规范编码规则或唯一编码规则。
36.根据权利要求28所述的介质,其中,所述第一检验包括检查所述签名的有效性。
37.根据权利要求36所述的介质,其中,进一步使所述计算机从所述电子装置获得公钥被预先加载在所述电子装置中的表示。
38.根据权利要求28所述的介质,其中,所述软件模块进一步包括属于用于生成所述签名的密钥的一组证书。
39.根据权利要求38所述的介质,其中,所述第一检验包括检查所述一组证书中的至少一个证书的有效性。
40.根据权利要求38所述的介质,其中,所述第一检验包括检查所述一组证书中的至少一个证书的格式。
41.根据权利要求38所述的介质,其中,所述第一检验包括访问关于所述一组证书中的至少一个证书的证书吊销列表。
42.根据权利要求38所述的介质,其中,所述第一检验包括完成关于所述一组证书中的至少一个证书的OCSP查询。
43.根据权利要求38所述的介质,其中,所述第一检验包括针对所述一组证书中的至少一个证书来检查当前日期是否位于所述至少一个证书的有效期内。
44.根据权利要求28所述的介质,其中,进一步使所述计算机将所述软件模块重新打包为一个或更多个组件。
45.根据权利要求28所述的介质,其中,所述传送经由有线网络进行。
46.根据权利要求45所述的介质,其中,所述有线网络包括至少一个通用串行总线链接。
47.根据权利要求28所述的介质,其中,所述传送经由无线网络进行。
48.根据权利要求47所述的介质,其中,所述无线网络包括至少一个蓝牙链接。
49.根据权利要求28所述的介质,其中,所述电子装置包括智能卡读卡机。
全文摘要
可以在具有附接至其的电子装置的通用计算机(主机)和电子装置本身之间有利地划分检验用于电子装置的软件模块的来源和可靠性的操作。更具体地,在主机处完成诸如语法检查的存储和处理密集任务,而在电子装置处完成诸如加密检验的安全关键任务。本发明提供了一种以可信方式更新电子装置上的软件的方法,其中,在连接到电子装置的主机系统和电子装置本身之间划分检验步骤。本发明进一步提供了包含用于主机系统的程序的存储介质,使主机系统对用于附接的电子装置的软件更新执行验证步骤,并适当地与电子装置交互。
文档编号G06F9/44GK102171652SQ200980139467
公开日2011年8月31日 申请日期2009年9月1日 优先权日2008年9月2日
发明者哈尔姆·布拉姆斯 申请人:威斯科数据安全国际有限公司