发明名称 一种通过SMI中断实现对USB存储设备进行可信认证的方法
摘要 本发明提供一种通过SMI中断实现对USB存储设备进行可信认证的方法,通过BIOS对USB控制器寄存器的设置,USB存储设备在插入USB接口时,可产生PME事件,通过对PCH桥片寄存器的设置,可将USB的PME事件转换成SMI中断或者SCI中断,将其设置为产生SCI中断,在BIOS的ACPI代码中添加SCI中断处理代码,查询是否为USB产生的SCI中断,如果是USB控制器产生的SCI中断,则通过ASL代码写SMI软中断命令,产生一个SMI中断,在BIOS的SMI中断处理程序中,查询USB控制器的端口状态位,若有效,则说明USB接口有设备接入。
申请公布号 CN104361280A 申请公布日期 2015.02.18
申请号 CN201410598154.5 申请日期 2014.10.31
申请人 山东超越数控电子有限公司 发明人 鄢建龙;陈乃阔
分类号 G06F21/44(2013.01)I 主分类号 G06F21/44(2013.01)I
代理机构 济南信达专利事务所有限公司 37100 代理人 姜明
主权项 一种通过SMI中断实现对USB存储设备进行可信认证的方法, 其特征在于具体步骤如下:1)通过BIOS对USB控制器寄存器的设置,USB存储设备在插入USB接口时,可产生PME事件,通过对PCH桥片寄存器的设置,将USB的PME事件转换成SMI中断或者SCI中断,将其设置为产生SCI中断,在BIOS的ACPI代码中添加SCI中断处理代码,查询是否为USB产生的SCI中断,如果是USB控制器产生的SCI中断,则通过ASL代码写SMI软中断命令,产生一个SMI中断;2)在BIOS的SMI中断处理程序中,查询USB控制器的端口状态位,若有效,则说明USB接口有设备接入,然后读取设备描述符,根据USB设备所返回的设备描述符中的配置描述符个数,来逐一读取设备的配置描述符,BIOS分两次读取配置描述符,第一次读取配置描述符,第二次将配置描述符,接口描述符和端口描述符一并读出,通过接口描述符的内容判定是哪种USB设备插入;3)如果是USB大容量存储设备,则BIOS加载USB存储设备协议和驱动,然后对该USB存储设备进行访问,读取其根目录下secure.cfg文件的内容,如果secure.cfg文件不存在,则返回错误码,否则将secure.cfg文件中的内容读出放在一块内存区域,作为该USB存储设备的签名;4)在BIOS的NVSTORAGE区域中添加对USB存储设备的签名进行解密的私钥,BIOS在获得USB存储设备上的secure.cfg文件的内容后,再读取NVSTORAGE区域中的私钥,利用该私钥对USB存储设备的secure.cfg文件签名进行解密,如果解密后的签名是可信任的,那么BIOS将正常返回;5)如果未获得信任,BIOS将清除USB控制器的端口状态位,清除PME状态位,SCI状态位,同时将USB设备从控制器端口删除,这样操作系统将无法识别USB存储设备,因此不能对USB存储设备进行数据传输操作;6)如果USB存储设备获得BIOS的可信认证,BIOS将正常返回,操作系统将将正常识别该USB存储设备,如果BIOS的SMI处理程序发现插入的不是大容量存储设备则正常返回,操作系统将仍正常识别该USB设备;7)BIOS的NVSTORAGE中存储的私钥和USB存储设备中保存的签名能够互换,在BIOS设置菜单中添加设置私钥或签名的菜单,可进行手动修改私钥或签名,方便用户的使用,通过在BIOS设置菜单中设置BIOS密码,防止他人查看私钥和签名。
地址 250100 山东省济南市高新区孙村镇科航路2877号