CN1474273A - 基于计算机pci总线的i/o端口的监控方法及装置 - Google Patents

基于计算机pci总线的i/o端口的监控方法及装置 Download PDF

Info

Publication number
CN1474273A
CN1474273A CNA021380791A CN02138079A CN1474273A CN 1474273 A CN1474273 A CN 1474273A CN A021380791 A CNA021380791 A CN A021380791A CN 02138079 A CN02138079 A CN 02138079A CN 1474273 A CN1474273 A CN 1474273A
Authority
CN
China
Prior art keywords
port
pci bus
monitored
supervising
address
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.)
Pending
Application number
CNA021380791A
Other languages
English (en)
Inventor
尹启凤
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Individual
Original Assignee
Individual
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Individual filed Critical Individual
Priority to CNA021380791A priority Critical patent/CN1474273A/zh
Publication of CN1474273A publication Critical patent/CN1474273A/zh
Pending legal-status Critical Current

Links

Images

Abstract

本发明是一种对基于计算机PCI总线的I/O端口进行监控的方法及装置。挂接在计算机PCI总线(1)上的目标设备(3),其I/O端口在PCI总线上具有独占的地址;本发明的方法是在PCI总线上挂接一个监控装置(2),具有与被监控I/0端口相同的端口地址,本身不实现I/O端口的数据输入输出,而只是监控处于同一地址的被监控I/O端口所进行的I/O操作;该装置在检测到指定条件时,抢在被监控I/O端口进行数据传输前,向发起本次操作的PCI主设备(4)发出目标失败信号,强行取消本次操作,从而实现有目的地监控。

Description

基于计算机PCI总线的I/O端口的监控方法及装置
本发明涉及一种基于计算机PCI总线的I/O端口的监控方法及装置,尤其是对挂接在PCI总线上的设备的I/O端口进行监控,并对被监控的I/O端口进行有条件的操作限制的一种方法及监控装置。
众所周知,计算机中的很多设备都是挂接在计算机系统总线上的,例如挂接在PCI总线上的网卡、显卡、数据保护卡,另外,当前计算机芯片组中的南桥芯片已经集成了PC机的很多外围I/O设备,例如RTC实时时钟和CMOS RAM、IDE控制器、定时器、DMA控制器等,虽然被集成在南桥芯片内部,但实际上这类设备仍然相当于挂接在系统总线上。以VIA威盛公司的南桥芯片VT82C686B为例,其集成了RTC、CMOS RAM、IDE等设备,整个南桥芯片挂接在PCI总线上,处理器CPU则通过北桥芯片VT82C694X与PCI总线通讯,当程序需要存取CMOS RAM时,处理器通过北桥芯片在PCI总线上发出I/O操作命令,此时所有挂接在PCI总线上的设备均可以接受到该命令,而只有南桥芯片中的CMOS RAM在接受到该命令时,在PCI总线上作出回应并被北桥芯片传递给处理器。Intel英特尔公司的一些南桥芯片,例如I82801BA则通过HUB Interface专用接口与北桥芯片I82815通讯,北桥芯片不直接连接PCI总线,处理器通过北桥芯片、再通过专用接口、最后通过南桥芯片与PCI总线通讯,当处理器存取IDE控制器时,南桥芯片有可能直接作出回应,而不再将操作发送到PCI总线上,但对于存取CMOS RAM的操作,南桥芯片将该I/O操作命令发送到PCI总线上,当然,最后还是南桥芯片集成的CMOS RAM自己作出回应。
在实际应用中,有时我们需要监控某个设备的I/O操作甚至限制其中的一些操作。例如,当前的CMOS主要用于保存计算机的参数设置,包括工作方式、系统密码等,这些参数比较重要,通常情况下,操作系统只是读取参数,而BIOS则可以读取或者改写参数,但在学校等公用机房中的计算机上,个别操作者有可能修改CMOS,甚至加上开机密码,使得其它人无法正常使用,所以有必要锁定CMOS中的数据,即在设定好CMOS数据后禁止未授权的修改;对于硬盘及硬盘中的数据也存在类似的情况,费时费力安装好的软件很容易被实验者和恶意破坏者损坏,所以要对硬盘中的数据加以保护,当然,只要对硬盘局部的数据例如操作系统部分加以保护就可以了,而不必完全防止数据写入。目前针对上述问题的解决主要有一些软件方案,例如数据保护卡、硬盘还原卡,对于CMOS的保护,可以设定一个定时中断,每隔几十毫秒读取CMOS数据,与备份数据比较看是否被修改,如果被修改则恢复,很明显这样的方式效率很低,影响了系统性能,并且不能防止在禁止中断后的修改以及修改后立即复位的情况;对于硬盘数据保护,如果破坏者使用硬盘IO操作命令对IDE端口直接进行控制,因为没有办法事先对这类非授权IO操作加以阻拦,所以就很难加以防范。考虑到这类非授权IO操作的实际情况,管理人员希望有一种方法能够监控并且有条件地阻止IO端口操作,作为上述软件方案的替代方法或者辅助方法。
本发明的目的是,提供一种基于PCI总线的监控I/O端口操作的方法及装置。
本发明的技术构思主要基于PCI总线规范(PCI Local Bus Specification):考虑到一般的PCI设备为中速译码(Medium DEVSEL#timing,Medium Decode),即在发起操作的主设备(Master)发出操作命令、PCI总线地址周期后隔一个时钟周期,与该地址相匹配的PCI设备才通过有效DEVSEL#来声明自己被选中(Device Select),然后进行相应的操作,所以我们可以在与被监控I/O端口相同的端口地址上进行监听,并且采用快速译码方式,抢在中速译码的被监控I/O端口执行操作前,强行取消非授权的I/O端口操作,取消操作的方法可以采用PCI总线规范中所定义的目标失败(Target Abort)。
实现本发明的技术方案是:将一个硬件监控装置挂接在PCI总线上,该装置内部使用快速译码(Fast DEVSEL#Decode Timing)方式;该装置在与被监控I/O端口相同的端口地址上对I/O操作进行监听;该装置对被监控I/O端口的当前I/O操作进行筛选,如果检测到未经授权的I/O操作,则立即产生目标失败(Target Abort)信号,否则忽略当前的I/O操作。
上述方案中的硬件监控装置,具有一个标准PCI总线I/O设备所应该有的PCI总线状态机、地址译码、命令译码等部分,但不需要I/O设备的执行部分。该监控装置与PCI总线相连接的引脚至少包括:RST#,CLK,AD[31∶0],C/BE[3∶0]#,FRAME#,STOP#,其中,RST#和CLK为系统复位信号和时钟信号,AD为地址或数据的复用信号,C/BE为命令或字节使能信号,FRAME#用于指示一个操作周期的起始,STOP#为用于产生目标失败信号;在实际应用时,通常还需要下列引脚:PAR,IRDY#,TRDY#,DEVSEL#,IDSEL,这些引脚主要用于系统通过PCI总线识别并配置该硬件监控装置。在该监控装置内部设定对所监听的I/O端口地址使用PCI总线规范所定义的快速译码,也就是在检测到FRAME#变为有效时,对C/BE引脚上的操作命令进行命令译码,过滤掉非I/O操作,并对AD引脚上的地址进行地址译码,确定当前I/O操作的端口地址是否与被监控的I/O端口地址相匹配;如果地址匹配则该硬件装置进入一个伪I/O操作状态,但不驱动DEVSEL#和TRDY#及其它任何信号,在伪I/O操作状态中对当前的I/O操作进行具体过滤,筛选出未经授权的I/O操作。例如事先设定对CMOS数据端口71H进行写保护,则在进入71H端口写操作的伪I/O操作状态后立即产生目标失败;如果事先设定IDE命令端口1F7H不对数据30H作出反应(30H是IDE硬盘的写命令代码),则在进入1F7H端口写操作的伪I/O操作状态后,在IRDY#有效时对AD上的数据进行比较,如果是30H则产生目标失败或重试,否则忽略当前操作。
上述方案中的目标失败(Target Abort),根据PCI总线规范,是指有效STOP#信号而无效DEVSEL#和TRDY#信号,指示本次I/O操作的目标设备无法完成本次操作。理论上,目标失败是由目标设备根据需要自行发出的,本发明的精髓之处,就是通过独立的监控装置监听目标设备的I/O操作,并根据需要强行替目标设备发出目标失败信号。因为PCI总线的STOP#是总线上各设备共用的,所以发起本次I/O操作的主设备(Master)不知道这是另一个设备发出的信号,在检测到目标失败后,主设备决定放弃本次操作;虽然目标失败不是I/O端口被监控的真实I/O目标设备发出的,但按照PCI总线规范,因为主设备无效FRAME#和IRDY#以放弃一个操作,目标设备也只能被动放弃操作,从而取消了一次未经授权的I/O操作。为了能够产生目标失败,监控装置应该使用快速译码,使得如果需要有效STOP#信号时,能够先于被监控I/O端口有效DEVSEL#信号;如果STOP#信号未能先于DEVSEL#信号有效,则目标失败信号变为重试信号,即要求主设备重试,这样有可能在重试计数结束后放弃操作,也有可能一直重试下去,但都能阻止未经授权的I/O操作。
在具体实施上,上述技术方案体现在一个集成的PCI总线I/O监控芯片中,或对标准的PCI总线控制芯片进行修改,使之对与被监控I/O端口相同的端口地址作译码匹配,可以是固化的监控I/O端口地址,或者是可设定的地址,芯片具有STOP#信号引脚,使之能够发出目标失败信号,芯片具有DEVSEL#、TRDY#、IRDY#、IDSEL等信号引脚,用于系统识别和配置,但在被监控I/O端口的操作过程中,决不声明除STOP#以外的上述信号。
基于本发明的技术方案,可以方便地对某些I/O设备进行有条件的操作限制,作为数据保护装置的替代方案或者辅助方案,避免了软件方案的不完善和低效率。
下面结合附图对本发明作进一步的说明。
图1为本发明的应用环境的示意图。
图2为本发明技术方案的PCI总线的时序图。
图3为本发明技术方案的I/O端口监控的流程图。
图4为基于本发明技术方案的PCI总线I/O监控装置的电路组成框图。
见图1,发起操作的主设备(4)、被监控的目标设备(3)以及监控装置(2)都挂接在PCI总线(1)上,主设备与目标设备在PCI总线上进行通讯,监控装置能够从PCI总线上监听到由主设备发起的对目标设备的所有I/O操作。因为这些设备都是以并联方式挂接到PCI总线上的(并不是所有信号线都是公用的,例如IDSEL信号线,但与本发明没有直接关系,不需要考虑),所以如果主设备发起操作后接收到回应,它并不能直接判断是由目标设备返回的还是监控装置返回的。
见图2,PCI总线以CLK的上升沿进行同步操作,C/BE#和FRAME#、IRDY#由主设备驱动,DEVSEL#和TRDY#由目标设备驱动,STOP#由监控装置驱动,有些目标设备也有STOP#引脚,但通常只在译码完成或操作进行后驱动,AD由主设备或目标设备驱动。
见图2,时钟周期11至16为进行授权的I/O读操作时的时序图。在时钟周期11,主设备决定发起操作;在时钟周期12,主设备驱动命令数据到C/BE#和地址数据到AD,同时驱动FRAME#有效,目标设备和监控装置都检测到主设备发起的操作,经命令译码和地址译码,监控装置确定是指向目标设备的已授权的I/O读操作,所以忽略;在时钟周期13,经命令译码和地址译码,目标设备确定是指向自身的I/O读操作;在时钟周期14,目标设备驱动DEVSEL#有效,同时检测到主设备驱动的IRDY#有效,准备进行数据传输;在时钟周期15,目标设备驱动数据到AD,同时驱动TRDY#有效,主设备接收到这个I/O读操作返回的数据;在时钟周期16,目标设备驱动奇偶校验信号到PAR,图中被略去。
见图2,时钟周期21至25为进行未授权的I/O写操作时的时序图。在时钟周期21,主设备决定发起操作;在时钟周期22,主设备驱动命令数据到C/BE#和地址数据到AD,同时驱动FRAME#有效,目标设备和监控装置检测到主设备发起的操作,经命令译码和地址译码,监控装置确定是指向目标设备的未授权的I/O写操作;在时钟周期23,监控装置驱动STOP#有效,以发出目标失败信号,此时主设备已经驱动待写数据到AD,但检测到STOP#有效,确定是目标失败,同时,经命令译码和地址译码,目标设备确定是指向自身的I/O写操作;在时钟周期24,主设备无效IRDY#,以放弃本次操作,监控装置无效STOP#,同时,目标设备驱动DEVSEL#有效,但因为检测到主设备已经无效IRDY#,所以决定放弃本次操作;在时钟周期15,主设备、目标设备以及监控设备均已放弃本次操作。
见图3,这是I/O端口监控的流程图,其中步骤61是对I/O操作进行最终匹配,如果事先设定是对被监控I/O端口完全写保护,则仅比较I/O方向(实际上对I/O方向的检测在命令译码阶段完成,即锁存PCI总线的C/BE[0]#信号),如果确定是写操作则比较结果为匹配,从而声明目标失败。实际情况中,监控装置由硬件构成,所以该流程图主要用于控制PCI总线状态机。
见图4,在这个电路组成框图中,PCI总线状态机(51)参考了图3中所描述的流程图,根据输入的FRAME#、IRDY#以及I/O端口操作控制信号、特征比较匹配信号,确定当前总线状态和操作状态;命令译码(52)译出I/O操作命令,地址译码(53)根据被监控I/O端口的特征(55)译出I/O端口地址匹配信号,两者经与门(54)后输出对I/O端口操作的控制信号,使PCI总线状态机(51)进入伪I/O操作状态;特征比较(56)根据被监控I/O端口的特征(55)比较当前I/O操作的方向、数据等,如果特征匹配,则PCI总线状态机(51)控制与门(57)输出有效的STOP#信号,声明目标失败。因为STOP#信号定义为低电平有效,所以这里的与门(57)实际上应该是一个“与非门”。
见图4,以监控CMOS的数据端口,防止向CMOS写入数据为例,命令译码(52)译出I/O操作命令,地址译码(53)译出71H端口地址(实际应用中,还要同时监控CMOS数据端口地址71H的所有别名地址73H、75H、77H,以防止通过别名地址执行未授权操作),与门(54)输出CMOS数据端口的写操作信号,特征比较(56)如果检测到当前操作为I/O写操作,则PCI总线状态机(51)控制与门(57)输出有效的STOP#信号,以指示目标失败。作为进一步的应用,可以对CMOS中某部分区域进行写保护,例如保护CMOS数据单元中40H地址以下的区域,方法是,在I/O监控过程中,同时记忆最近一次CMOS地址索引端口70H中的内容,并在CMOS数据端口的伪I/O操作状态下,对CMOS地址索引端口的内容进行特征比较,如果地址索引值小于40H则对CMOS数据端口写操作声明目标失败,否则允许写操作,从而保护40H地址以下的CMOS数据。另外,为了允许临时授权的I/O操作,可以在监控装置中设定一个密码校验电路和控制单元,在授权密码校验正确时,控制单元禁止目标失败动作,或者禁止I/O监控,而在密码校验错误时允许目标失败。这些都是基于本发明的应用,并且在具体实施上可以在本发明技术方案的框架下作一些局部的改动,或针对某个被监控I/O设备作出更简洁的监控装置。

Claims (6)

1、基于PCI总线的I/O端口的一种监控方法,其特征是:
将监控装置与I/O端口被监控的目标设备一起并联挂接在PCI总线上;
该装置在与被监控I/O端口相同的端口地址上对I/O操作进行监听;
该装置通过目标失败或重试信号取消对被监控I/O端口的未经授权的I/O操作。
2、根据权利要求1所述的监控方法,其特征是:监控装置对被监控的I/O端口地址使用快速译码方式。
3、根据权利要求1所述的监控方法,其特征是:监控装置通过驱动PCI总线的STOP#到有效,而指示一个目标失败信号。
4、根据权利要求1所述的监控方法,其特征是:目标设备是CMOS RAM,被监控的I/O端口是CMOS RAM的数据端口,其地址为71H(别名地址73H、75H、77H)。
5、根据权利要求1至4中任一项所述的监控方法,其特征是:主设备发起一个新的I/O操作时,目标设备和监控装置在命令译码和地址译码均匹配后,目标设备进入真正的I/O操作状态,而监控装置则进入伪I/O操作状态,在此状态下,监控装置不驱动除STOP#外的任何PCI总线的信号。
6、基于PCI总线的I/O端口的一种监控装置,其特征是:
监控装置与I/O端口被监控的目标设备一起并联挂接在PCI总线上;
监控装置在与被监控I/O端口相同的端口地址上对I/O操作的地址进行译码:
监控装置具有STOP#引脚,内部包括PCI总线状态机、命令译码、地址译码、特征比较,STOP#引脚是下述4个状态的“与”:PCI总线状态机的伪I/O操作状态、命令译码的I/O操作状态、地址译码的地址匹配状态、特征比较的匹配状态,即在上述4个状态有效时,监控装置驱动STOP#信号有效。
CNA021380791A 2002-08-08 2002-08-08 基于计算机pci总线的i/o端口的监控方法及装置 Pending CN1474273A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CNA021380791A CN1474273A (zh) 2002-08-08 2002-08-08 基于计算机pci总线的i/o端口的监控方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CNA021380791A CN1474273A (zh) 2002-08-08 2002-08-08 基于计算机pci总线的i/o端口的监控方法及装置

Publications (1)

Publication Number Publication Date
CN1474273A true CN1474273A (zh) 2004-02-11

Family

ID=34147136

Family Applications (1)

Application Number Title Priority Date Filing Date
CNA021380791A Pending CN1474273A (zh) 2002-08-08 2002-08-08 基于计算机pci总线的i/o端口的监控方法及装置

Country Status (1)

Country Link
CN (1) CN1474273A (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8032745B2 (en) 2005-12-20 2011-10-04 International Business Machines Corporation Authentication of I2C bus transactions
CN103810074A (zh) * 2012-11-14 2014-05-21 华为技术有限公司 一种片上系统芯片及相应的监控方法
CN112527205A (zh) * 2020-12-16 2021-03-19 江苏国科微电子有限公司 一种数据安全防护方法、装置、设备及介质

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8032745B2 (en) 2005-12-20 2011-10-04 International Business Machines Corporation Authentication of I2C bus transactions
CN103810074A (zh) * 2012-11-14 2014-05-21 华为技术有限公司 一种片上系统芯片及相应的监控方法
US9952963B2 (en) 2012-11-14 2018-04-24 Huawei Technologies Co., Ltd. System on chip and corresponding monitoring method
CN112527205A (zh) * 2020-12-16 2021-03-19 江苏国科微电子有限公司 一种数据安全防护方法、装置、设备及介质

Similar Documents

Publication Publication Date Title
US9542557B2 (en) Snoop-based kernel integrity monitoring apparatus and method thereof
TW200949685A (en) Apparatus and method for precluding execution of certain instructions in a secure execution mode microprocessor
CN101826143B (zh) 用于在安全执行期间资源的无死锁总线保护的系统和方法
Serhane et al. PLC code-level vulnerabilities
CN101535957A (zh) 用于共享可信平台模块的系统和方法
CN100590599C (zh) 一种flash的写操作处理方法、系统及设备
CN1474273A (zh) 基于计算机pci总线的i/o端口的监控方法及装置
BRPI0903816A2 (pt) processo de proteção de código secreto e um aparelho de computação
CN101226571B (zh) 一种信息安全计算机
US10552646B2 (en) System and method for preventing thin/zero client from unauthorized physical access
CN1243312C (zh) 嵌入式安全模块
CN104361298A (zh) 信息安全保密的方法和装置
CN106250764A (zh) 一种计算机终端控制系统
CN102214279A (zh) 通过外接存储设备控制主机用户权限的方法和装置
CN1297908C (zh) 对cmos数据进行备份保护的方法
CN109635596B (zh) 一种用于多媒体触控一体机的安全保护系统及其保护方法
US6718381B1 (en) Removal notification for a computer system
CN101226572B (zh) 一种保护基本输入输出系统安全的信息安全计算机
CN110874495B (zh) 一种基于自动锁定写保护功能的固态硬盘及防篡改方法
KR20020091340A (ko) 리눅스 커널 기반의 실시간 침입탐지 시스템
WO2014142659A1 (en) Data storage device and computer system comprising such data storage device
CN103778366A (zh) 一种面向操作系统和外部设备的安全维护方法
JP2004054583A (ja) セキュリティ装置およびセキュリティ装置の動作復帰方法
CN116305334B (zh) 一种计算机软件加密保护装置
KR20030081439A (ko) 전력-오프 수면 상태에 진입하거나 그 상태로부터 복구할때 암호 부시스템의 리셋 방지

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C02 Deemed withdrawal of patent application after publication (patent law 2001)
WD01 Invention patent application deemed withdrawn after publication