设备控制器、控制设备的方法及其程序的制作方法

文档序号:6558992阅读:177来源:国知局
专利名称:设备控制器、控制设备的方法及其程序的制作方法
技术领域
本发明涉及一种控制连接到计算机的设备的设备控制器、一种控制设备的方法及其程序。
对2005年5月23日提交的日本专利申请No.2005-149746要求优先权,该申请的内容结合于此用作参考。
背景技术
已经使用设备驱动器来控制与计算机相连接的设备。计算机上运行的操作系统(OS)对各种设备驱动器提供通用接口。利用接口,当开发了新设备时,通过安装支持新设备的设备驱动器,从执行对象(例如应用程序或OS)可用这种设备。设备的制造商提供设备驱动器,并且OS提供能够利用系统调用叫来控制设备的应用程序。
OS的系统调用采用消息作为参数(argument),将消息传送到设备驱动器。设备驱动器根据传送的消息来操作设备。例如,为了以C语言编写用于控制设备的程序,使用诸如open()、close()、read()、write()、ioctl()等系统调用。这种系统调用根据消息来进行控制,即,打开设备、关闭设备、从设备读取、或向设备写入。这种系统调用(即,函数)可以在各种OS上提供类似功能,尽管函数的名称可能根据OS或执行环境而改变。当调用系统调用时,调用OS的内核的服务。
图7是示出了传统设备控制器的方框图。设备55由设备驱动器562来操作,设备驱动器562链接到OS 561。应用程序571利用高级应用编程接口(API)572,其执行系统调用574。OS 561提供系统调用574和高级API 572。
这种传统设备驱动器的接口定义了针对设备驱动器的消息以及向设备驱动器和从设备驱动器交换消息的过程,为了实现设备所支持的功能,这种接口已可公用。另外,已经对消息接口进行标准化,从而可以对不同制造商制造的设备执行相同程序,而不需要修改程序,这有助于设备的广泛使用。
当通常通过定义比系统调用更高级别的高级API来实现消息接口的标准化时,OS提供高级API作为库或动态链接库(DLL)。当执行对象调用高级API时,高级API调用系统调用,以向设备驱动器发送消息。
一般而言,设备驱动器的单个实例针对单个设备而存在,并且高级API的多个实例针对每一应用程序而存在。改编针对每一设备驱动器的这种单个实例,以便实现独占访问控制,其中当多个应用程序试图同时控制设备时检测到冲突。
市面上已经可获得这样的便携式电话装置其运行这种通用OS,从而利用OS的有用功能,并且OS上运行的各种有用应用程序可以连接到便携式电话的无线网络并利用该网络。
在这种装置中,支持无线电话或数据通信的设备连接到运行OS的便携式计算机,并且提供该设备和OS之间的接口作为设备驱动器。这种技术提供了许多优点。示例包括提供了从OS和应用程序控制设备的公知方式,以及在具有存储器保护特征(将用户空间与内核空间分离)的OS中可用这种存储器保护特征。另外,便携式电话制造商可以提供复杂的功能,同时减少OS的开发成本。另外,OS的开发者可以消除将OS或应用程序移植到不同设备中的额外劳动,由此使得可用最新的高性能设备(见日本待审专利申请,第一公开No.H09-218844)。
设备制造商和便携式电话制造商希望允许OS或信任的软件程序访问设备的某些功能,而限制不信任的软件程序(例如,用户应用程序)进行访问,这利用设备控制器或者用于利用传统设备控制器控制设备的方法来实现。即,如果允许执行程序使用诸如open()、close()、read()、write()、ioctl()等系统调用,即使不信任的软件程序也可以操作设备。例如,虽然应该限制经由不信任软件程序进行的可能干扰设备操作的操作、对用户收费的操作、或者读取用户个人信息的操作,但是难以实现这种选择性限制。
当设备驱动器和执行对象之间的消息接口被标准化时,对于OS,可以限制特定消息的使用。然而,当利用设备专有功能而同时限制其使用时,OS应该处理各种条件,这在许多情形中需要修改OS。OS开发者为了限制对设备的访问而修改OS不是切实可行的解决方案。

发明内容
本发明的目的是提供一种适当提高由设备控制器对设备设置对应用程序的访问控制的灵活性同时确保消息接口的通用性的解决方案。
为了解决上述问题,本发明的第一方面提供了一种用于控制设备的设备控制器,包括发送部分,向操作部分发送来自执行对象的消息;以及控制部分,响应于消息,根据预先设置的与消息相对应的过程,控制设备,其中发送部分包括评估部分,响应于从执行对象接收到消息,生成指示执行对象的可靠性的指示;以及指示附加部分,向接收到的消息附加指示,存储部分,存储与指示相对应的多个过程,并且控制部分被配置为响应于接收到消息,检查指示,并执行存储部分中存储的多个过程中的特定过程。
本发明的第二方面在上述设备控制器中提供了一种设备控制器,其中发送部分还可以包括认证附加部分,其向发送到操作部分的消息附加认证,并且控制部分可以响应于从发送部分接收到消息,确定认证的有效性,并且在没有确定认证的有效性时保护不受执行对象影响。
另外,本发明的第三方面提供了一种控制设备的方法,包括响应于从执行对象接收到消息,获得指示执行对象的可靠性的指示;以及发送附加了所述指示的消息;响应于接收到附加了指示的消息,查找指示;以及根据执行对象的可靠性,从多个过程中选择要执行的过程。
另外,本发明的第四方面提供了一种控制设备的程序,所述程序使计算机执行步骤从执行对象接收与设备的操作相关的消息;获得指示发送消息的执行对象的可靠性的指示;向接收到的消息附加指示;以及向设备发送消息。
另外,本发明的第五方面提供了一种控制设备的程序,所述程序使计算机执行步骤接收执行对象发送的与设备操作相关的消息,其中向所述消息附加了指示发送所述消息的执行对象的可靠性的指示;查找指示,并且针对每一消息,从根据执行对象的可靠性设置的多个操作过程中选择操作过程;以及根据所选择的操作过程来操作设备。
根据本发明,在向操作设备的操作部分发送从执行对象接收到的消息时,获得指示执行对象的可靠性的指示,并且将其附加到消息。操作部分被配置为通过查找指示,根据可靠性选择操作过程。因此,通用OS可以有利地嵌入到计算机中,并且设备驱动器可以实现为利用该OS的系统。
即,至于发送部分的优点,因为向发送部分提供用于获得上述指示的功能就足够了,所以执行与设备特性无关的标准化过程就足够了,并且可以使用具有执行对象和设备驱动器的标准化接口的OS来有利地配置发送部分。另外,至于操作部分的优点,操作部分可以选择处理过程,而不受执行对象或发送部分的控制,并且操作部分在选择处理过程时可以查找指示执行对象的可靠性的指示。有利地,因此可以使用操作部分建立设备驱动器,并且仅利用对设备驱动器的操作来采取灵活的应对措施,以避免从外部未经授权访问设备。
根据上述方面,可以这对每一消息获得作为消息发送者的执行对象的可靠性,并且设备驱动器可以确定是否提供设备的功能。另外,在提供功能时,设备驱动器可以选择详细的操作。由于该特征,可以仅向信任的执行对象提供设备的功能,限制向不信任的执行对象提供功能,并且适当修改功能。因为功能的这种限制或修改由设备驱动器确定,所以变得可以基于由设备和/或设备驱动器的制造商所采用的策略来控制设备,而不用做出修改OS的请求。
另外,可以向从发送部分发送到操作部分的消息附加电子认证,由此提高针对未授权访问等的保护。如果没有确定来自发送部分的消息的有效性,操作部分可以采取特定的保护措施,例如通过忽略消息而不响应消息、当在设备驱动器等中设置了安全等级时提高安全等级,提示发送部分(即,OS等)加强保护。
上述配置对于建立这样的系统是有利的在该系统中,设备驱动器可以检测到通过模仿来自OS的消息来恶意操作设备的意图。响应于检测到这种攻击,设备驱动器可以转移到更高的安全模式,同时向OS通知攻击,以提示OS加强其安全。


图1是根据本发明的设备控制器的详细方框图;图2是根据本发明的设备控制器的概要方框图;图3是示出了根据本发明一个实施例的便携式电话的电路配置示例的方框图;图4是示出了根据本发明一个实施例的OS的主流程的流程图;图5是示出了设备驱动器的进程流程的流程图;图6是示出了图5所示的第一至第四进程的流程的具体示例的流程图;以及图7是传统设备控制器的方框图。
具体实施例方式
后文,将参考附图描述本发明的多个实施例。
图3是示出了其中应用了本发明一个实施例的便携式电话的电路配置示例的方框图。该便携式电话装置具有这样的配置,其具有控制装置的整体操作的中央处理单元(CPU)101以及各种功能块,其中每个功能块经由内部总线201连接到CPU 101。存储器102包括随机访问存储器(RAM)和只读存储器(ROM),并且构成CPU 101的主存储器。定时器103被配置为根据来自CPU 101的指令执行各种操作,例如在指定时间开始。
天线301被配置为发送或接收用于通信的无线电波。无线单元302被配置为使用天线301执行通信。数字信号处理器(DSP)303被配置为执行各种操作,例如对所发送或接收信号的调制和解调操作。数模(D/A)转换器304被配置为将从DSP 303输出的数字音频信号或铃声转换为模拟音频信号,并将其发送到扬声器305。数模(D/A)转换器306被配置为将从麦克风307输入的模拟音频信号转换为数字音频信号,并将其提供给DSP 303。麦克风307被配置为输入呼叫者等的语音。
键操作单元401包括键,例如数字键、摘机键、挂机键、接通电源键、快门(shutter release)按钮、功能选择键(功能键),并且被配置为捕获键的键操作。显示单元402例如包括液晶显示面板或液晶触摸面板,并且被配置为与通信相关的各种指示、消息、菜单屏幕、或者各种应用程序的执行屏幕。
具有上述配置的便携式电话装置除了与典型的便携式电话装置一样操作语音呼叫模式之外,还能够操作应用程序执行模式。在应用程序执行模式中,可以开始并执行由用户安装的任意应用程序。
图1是根据本发明一个实施例的设备控制器的详细方框图。在该图中,标号5表示设备。虽然只图示了一个设备,但是可以使用多个设备。参考数字6表示控制设备5的设备控制器,并且参考数字7表示向设备5发送消息的执行对象。通过硬件资源(例如,图3所示的CPU 101和存储器102)和软件资源(例如OS、OS实现的设备驱动程序以及OS中安装的应用程序)之间的协同操作来实现设备控制器6或执行对象7。
操作系统(OS)61生成执行应用程序71的进程,如图1所示。应用程序71链接到高级应用程序接口(API)72,并链接到在运行时间下载处下载的外部执行对象73。高级API 72还链接到系统调用74。系统调用74是用于调用内核服务的标准函数,并且在链接到应用程序71的进程同时存在。应用程序71、高级API 72、执行对象73以及系统调用74形成了执行对象7,作为应用程序71的进程实例。
这里所使用的术语“执行对象”是指一组可执行程序。执行对象可以是用户或软件制造商写入的应用程序、OS提供的库或DLL、或者经由网络或介质获得的对象。例如,执行对象可以是应用程序、在运行时间动态链接的对象或DLL、在解译器上执行的程序或脚本、或者在虚拟机上执行的字节代码的对象。另外,链接到这种对象的用户进程或内核进程可以被视为执行对象。
当应用程序71调用高级API 72时,高级API 72通过指定用于向设备驱动器62发送的适当消息作为参数来调用系统调用74。系统调用74是一组函数,包括open()、close()、read()、write()、ioctl()等,并且通过ioctl()函数向OS 61发送消息。OS(内核)61包括在向设备驱动器62发送消息之前评估执行对象7的评估单元611。
在评估时,确定执行对象7是用户进程还是OS 61的内核进程。然后,确定该进程是已知进程还是未知进程。通过确定进程的操作模式来缩小此确定的范围。
当进程为已知的内核进程时,通过预定其评估值来立即做出确定。评估值是无符号的16位值,其中高8位代表类,并且低8位代表类内的详细评估值。定义了四种类型的类“已知对象”、“带有数字签名的未知对象”、“未知安全对象”及“其他对象”。除了这四类之外的其他评估值的高8位的值是预留的,并且是非法的。
当进程为未知进程时,评估单元611检查进程实例此时链接到的所有执行对象,并且将执行对象的评估值中最低的评估值设置为执行对象7的评估值。在该示例中,因为应用程序71、高级API 72、动态链接的执行对象73及系统调用74已经链接,所以检查它们的评估值,并且确定最低值。因为高级API 72和系统调用74是OS 61提供的DLL,所以它们是已知的可靠对象,具有属于第1类的较高评估值。第1类意味着已知对象。已知对象是与OS 61捆绑的执行对象,并且由OS 61确保其可靠性。
应用程序71具有正常条件之下的低评估值,因为其是未知的。然而,在可以附加创作者或供应商的签名以增加可靠性的某些情形中,可以设置属于第2类的略高值作为其评估值。第2类意味着具有数字签名的未知对象。虽然这种具有数字签名的未知对象对于OS 61是未知的,但是提供了数字签名,并且对象是由OS 61验证其签名并确认其可靠性的执行对象。
已经下载并动态链接的执行对象73被视为不安全,并且其评估值是属于第4类的低值。第4类意味着篡改的执行对象或者基于特定确定标准被确定为不安全的执行对象。第4类的对象是由于验证其数字签名而被确定为已经被篡改、或者基于确定标准被确定为不安全的执行对象。第3类对象是没有数字签名的未知安全对象,并且是基于特定确定标准被确定为安全的执行对象。
评估单元611使用执行对象73的评估值作为执行对象7的评估值。在从网络下载所需对象用于执行的面向网络的执行对象的情形中,不进行链接,直至其被实际调用。在这种执行环境中,动态改变所链接的对象。因为不可能评估所有正被链接的对象的所有评估值,所以向执行对象赋予属于第4类的低值。
附加单元612在向消息附加指示之后,向设备驱动器62发送消息。设备驱动器62包括根据附加到消息的指示来选择过程的选择单元621以及针对每一消息对设备5执行操作的操作单元622。操作单元622被配置为查找其中存储了处理的过程的区域6221。例如,假设存在四类消息,将该区域划分为四个过程类别与每一消息类型相对应的第I至IV类别。在每一过程类别中,存储了与评估值相对应的多个过程6221-1、6221-2、…。
选择单元621查找指示,并根据指示修改实际过程。如果指示表明执行对象7是内核进程,并且如果执行对象7是已知的,则设备驱动器62提供多种功能。当执行对象7是内核进程,但是为未知进程时,其功能受限。例如,当设备驱动器调用另一设备驱动器时,这是未知内核进程。指示表明执行对象7是用户进程,根据评估值的大小修改对设备5的实际操作,并且所提供的功能受限。例如,通过返回错误代码同时忽略与消息相对应的、对设备5的所有操作,防止设备5控制执行对象7。
图4是示出了根据本发明一个实施例的OS的主流程的流程图。参考图1和4,执行用于向OS 61发送执行对象7将其寻址到设备驱动器62的消息的过程(步骤S 101)。这通过调用由OS 61向应用程序提供的ioctl()系统调用来实现。ioctl()系统调用是这样的函数其获取打开设备的描述符、消息、输入数据的指针、输出数据的指针,作为参数,并且在访问时返回“0”,而在发生错误时返回“-1”。应该注意,在执行图4所示的主流程之前已经打开了设备5,并且已经获得了设备的有效描述符。在ioctl()中,调用OS 61的内核的服务,并且流程前进至步骤S102。
在步骤S102中,OS 61中包括的评估单元611评估作为消息发起者的对象7,并且生成指示。OS 61查找此时正在执行的进程,并且确定其正在内核模式执行还是在用户模式中执行。另外,确定正在执行的进程是否为已知内核进程,并且如果是已知进程,则参考预定指示。如果正在执行的进程是未知进程,则生成与该进程相对应的指示。此时确定是否附加了数字签名,并且如果附加了数字签名,则确定数字签名是否有效且未被篡改。对于没有数字签名的未知进程,基于特定的公知确定标准来做出确定。基于这种确定,将对象分类为安全执行对象和其他执行对象。在指示中,包括了指示进程的执行模式的标记、评估值、标识信息以及确定该进程中评估值的执行对象的可靠性信息。
然后,流程前进到步骤S103。在步骤S103中,OS 61执行用于向设备驱动器62发送消息和指示的过程。OS 61具有已经登记了设备驱动器的管理表,并且能够调用由根据设备5的指示符指定的设备驱动器62。
然后,流程前进到步骤S104。在步骤S104中,设备驱动器62在基于消息和指示修改操作的同时,对设备5执行操作。图5是示出了设备驱动器的进程流程的流程图。参考图1和5,设备驱动器62首先根据作为参数指定的消息,选择给定过程(S201)。如果参数中的消息是消息1,执行第一过程(S201-1)。如果参数中的消息是消息2,执行第二过程(S201-2)。如果参数中的消息是消息3,执行第三过程(S201-3)。如果参数中的消息是消息4,执行第四过程(S201-4)。可以使用控制设备所需的任意数目的消息及任意数目的过程。
在第一至第四过程(S201-1~S201-4)中,如后文详细所述,在基于指示修改操作的同时操作设备5。当第一至第四过程(S201-1~S201-4)之一返回时,执行步骤S203。在步骤S203中,将第一至第四过程(S201-1~S201-4)之一的返回值设置为图5所示的过程的结果。当没有出现错误时返回值是“0”,并且在出现错误时返回值是“-1”。
图6是示出了图5所示的第一至第四过程的流程的具体示例的流程图。参考图6,检查指示中包括的评估值的类,并且执行分支操作(步骤S301)。因为评估值的高8位代表类,所以可以容易地确定类。在本示例中,根据评估值,流程进一步分支为四类过程之一。即,如果评估值的类为第1类,则执行第一过程(S302-1)。如果评估值的类为第2类,则执行第二过程(S302-2)。如果评估值的类为第3类,则执行第三过程(S302-3)。如果评估值的类为第4类,则执行第四过程(S302-4)。
因为第1类是已知对象,所以在第一过程(S302-1)中可以从指示中提取信息以确定对象的身份,并分支到适当的过程。因为第2类是带有数字签名的未知对象,所以在第二过程(S302-2)中,当签名的创立者是设备的制造商时,只允许对设备进行读取操作。如果签名的创立者是信任的相关公司,则只允许对设备的状态进行读取操作。如果创立者是除此之外的其他方,则只允许对公开的有限状态进行读取操作。因为第3类是未知的安全对象,所以在第三过程(S302-3)中,只允许对公开的有限状态进行读取操作,因为对象的源是未知的,或者根据特定确定标准将该对象确定为安全。
因为第4类是已经被确定为被篡改或者不安全的执行对象,所以在第四过程(S302-4)中,拒绝大多数功能。在某些情形中,可以向设备5通知其经历不安全的执行对象,并且使设备5转移到任何合适的保护状态。当设备5转变为保护状态时,可以采取各种措施,例如禁止访问可能收取昂贵费用的特定服务,或者禁止读取用户的个人信息。
根据这种配置,基于设备驱动器62的判断,根据指示,与消息相对应地修改实际操作变为可能。结果,设备的制造商可以基于与OS开发者独立的设备制造商所设置的标准,限制设备的功能或拒绝对特定功能的访问。
返回参考图1,在上述实施例中,没有确定要发送到设备驱动器62的消息以及指示是否确实是由评估单元611和OS 61创建的。因此,看起来恶意应用程序能够通过直接链接作为DLL的设备驱动器62来操作设备。然而,OS 61的内核首先链接设备驱动器62,并且随后链接的设备驱动器实例可以认识到其不是第一实例,并可以拒绝其操作。
另外,进一步确保安全是重要的,并且在OS 61向设备驱动器62发送消息和指示的步骤S103中(见图4),可以附加指示其由评估单元611和OS 61创建并且未被篡改的数字签名。设备驱动器62可以验证事实。在这种情形中,OS 61可以向消息和指示附加连续号码或伪随机号码,创建这三个信息的散列,并且在利用OS 61的私钥加密后(通过认证附加部分)将它们发送到设备驱动器62。设备驱动器创建接收到的信息的散列,使用OS 61的公钥解密接收到的加密数据,并且通过匹配散列来比较它们,以验证没有篡改(通过确定部分)。如果接收到的消息被篡改,设备驱动器62转移到保护模式,因为极有可能设备经受未授权的攻击以操作设备(通过保护部分)。在保护模式中,来自执行对象的消息都被忽略,并且可以提供安全等级设置。另外,可以提示OS 61采取保护措施。应该注意,当存储OS 61的私钥同时利用另一密钥来加密时,可以减少私钥被恶意应用程序窃取的风险。
另外,根据本发明的程序可以记录在计算机可读记录介质中并分发,并且可以以这样的方式来分发仅实现一部分功能。例如,本发明的程序可以作为与计算机系统中已经记录的现有系统结合能够实现特定功能的差别程序来分发。
另外,上述计算机可读记录介质除了存储介质(例如,便携式磁盘、磁光盘)之外,还包括存储装置,例如硬盘和其他非易失性存储装置等。另外,本发明的程序可以经由任何传输介质(例如,因特网或任何其他网络)提供给另一计算机系统。在这种情形中,术语“计算机可读介质”包括在传输介质上在特定时间段内包含程序的任何介质,例如充当主机或客户计算机的计算机系统的易失性存储器。
虽然上面已经描述并图示了本发明的优选实施例,但是应该理解,这些是本发明的示例,而不应认为是限制。在不脱离本发明的精神或范围的前提下,可以做出添加、省略、替换和其他修改。因此,本发明不应理解为受限于前面的描述,而是仅由所附权利要求限定。
例如,虽然某些嵌入式设备具有不具备任何存储器保护特征(例如用户模式或内核保护模式)的操作系统,但是本发明也可以应用于这种情形。另外,某些OS不具有多进程功能。然而,即使在这种情形中,因为这种OS将执行对象作为执行单元来管理以执行应用程序,所以根据每个OS特有的管理方案,通过在执行对象内查找组件对象组,可以有效地应用本发明。
权利要求
1.一种用于控制设备的设备控制器,包括发送部分,向操作部分发送来自执行对象的消息;以及控制部分,响应于消息,根据预先设置的与消息相对应的过程,控制设备,其中发送部分包括评估部分,响应于从执行对象接收到消息,生成指示执行对象的可靠性的指示;以及指示附加部分,向接收到的消息附加指示,存储部分,存储与指示相对应的多个过程,并且控制部分被配置为响应于接收到消息,检查指示,并执行存储部分中存储的多个过程中的特定过程。
2.根据权利要求1所述的设备控制器,其中发送部分还包括认证附加部分,其向发送到操作部分的消息附加认证,并且控制部分响应于从发送部分接收到消息,确定认证的有效性,并且在没有确定认证的有效性时保护不受执行对象的影响。
3.一种控制设备的方法,包括响应于从执行对象接收到消息,获得指示执行对象的可靠性的指示;以及发送附加了所述指示的消息;响应于接收到附加了指示的消息,查找指示;以及根据执行对象的可靠性,从多个过程中选择要执行的过程。
4.一种控制设备的程序,所述程序使计算机执行步骤从执行对象接收与设备的操作相关的消息;获得指示发送消息的执行对象的可靠性的指示;向接收到的消息附加指示;以及向设备发送消息。
5.一种控制设备的程序,所述程序使计算机执行步骤接收执行对象发送的与设备操作相关的消息,其中向所述消息附加了指示发送所述消息的执行对象的可靠性的指示;查找指示,并且针对每一消息,从根据执行对象的可靠性设置的多个操作过程中选择操作过程;以及根据所选择的操作过程来操作设备。
全文摘要
一种用于控制设备的设备控制器包括发送部分,向操作部分发送来自执行对象的消息;以及控制部分,响应于消息,根据预先设置的与消息相对应的过程,控制设备。其中发送部分包括评估部分,响应于从执行对象接收到消息,生成指示执行对象的可靠性的指示;以及指示附加部分,向接收到的消息附加指示;存储部分,存储与指示相对应的多个过程,并且控制部分被配置为响应于接收到消息,检查指示,并执行存储部分中存储的多个过程中的特定过程。
文档编号G06F13/10GK1869927SQ200610084869
公开日2006年11月29日 申请日期2006年5月23日 优先权日2005年5月23日
发明者远藤隆史 申请人:京瓷株式会社
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1