一種通過smi中斷實現(xiàn)對usb存儲設備進行可信認證的方法
【專利摘要】本發(fā)明提供一種通過SMI中斷實現(xiàn)對USB存儲設備進行可信認證的方法,通過BIOS對USB控制器寄存器的設置,USB存儲設備在插入USB接口時,可產(chǎn)生PME事件,通過對PCH橋片寄存器的設置,可將USB的PME事件轉(zhuǎn)換成SMI中斷或者SCI中斷,將其設置為產(chǎn)生SCI中斷,在BIOS的ACPI代碼中添加SCI中斷處理代碼,查詢是否為USB產(chǎn)生的SCI中斷,如果是USB控制器產(chǎn)生的SCI中斷,則通過ASL代碼寫SMI軟中斷命令,產(chǎn)生一個SMI中斷,在BIOS的SMI中斷處理程序中,查詢USB控制器的端口狀態(tài)位,若有效,則說明USB接口有設備接入。
【專利說明】—種通過SM I中斷實現(xiàn)對USB存儲設備進行可信認證的方法
【技術領域】
[0001]本發(fā)明涉及計算機應用【技術領域】,具體地說是一種通過SMI中斷實現(xiàn)對USB存儲設備進行可信認證的方法。
【背景技術】
[0002]USB存儲設備是計算機系統(tǒng)中使用較為頻繁的一種設備,若考慮到信息的安全,USB接口通常需要被保護或者通過一種方法對其進行可信認證。信息安全技術的發(fā)展除了建立在操作系統(tǒng)級別上的安全機制,還進一步延伸到了固件層。固件B1S處于計算機系統(tǒng)的底層,通過B1S實現(xiàn)對USB存儲設備的可信認證可以較好地保護計算機系統(tǒng)的資料安全。
[0003]通過B1S對插入的USB存儲設備進行識別和認證,只有通過認證的USB存儲設備,才能夠被操作系統(tǒng)識別。若插入的為不可信任的USB存儲設備,B1S從底層斷開此設備,操作系統(tǒng)將無法識別該設備,因此不能進行數(shù)據(jù)的傳輸,從而較好地保護了系統(tǒng)的信息安全。本文將闡述該方法的實現(xiàn)過程,描述B1S通過SMI中斷實現(xiàn)對USB存儲設備進行可信認證的方法。
【發(fā)明內(nèi)容】
[0004]本發(fā)明的目的是提供一種通過SMI中斷實現(xiàn)對USB存儲設備進行可信認證的方法。
[0005]本發(fā)明的目的是按以下方式實現(xiàn)的,具體步驟如下:
1)通過B1S對USB控制器寄存器的設置,USB存儲設備在插入USB接口時,可產(chǎn)生PME事件,通過對PCH橋片寄存器的設置,將USB的PME事件轉(zhuǎn)換成SMI中斷或者SCI中斷,將其設置為產(chǎn)生SCI中斷,在B1S的ACPI代碼中添加SCI中斷處理代碼,查詢是否為USB產(chǎn)生的SCI中斷,如果是USB控制器產(chǎn)生的SCI中斷,則通過ASL代碼寫SMI軟中斷命令,產(chǎn)生一個SMI中斷;
2)在B1S的SMI中斷處理程序中,查詢USB控制器的端口狀態(tài)位,若有效,則說明USB接口有設備接入,然后讀取設備描述符,根據(jù)USB設備所返回的設備描述符中的配置描述符個數(shù),來逐一讀取設備的配置描述符,B1S分兩次讀取配置描述符,第一次讀取配置描述符,第二次將配置描述符,接口描述符和端口描述符一并讀出,通過接口描述符的內(nèi)容判定是哪種USB設備插入;
3)如果是USB大容量存儲設備,則B1S加載USB存儲設備協(xié)議和驅(qū)動,然后對該USB存儲設備進行訪問,讀取其根目錄下secure, cfg文件的內(nèi)容,如果secure, cfg文件不存在,則返回錯誤碼,否則將secure, cfg文件中的內(nèi)容讀出放在一塊內(nèi)存區(qū)域,作為該USB存儲設備的簽名;
4)在B1S的NVST0RAGE區(qū)域中添加對USB存儲設備的簽名進行解密的私鑰,B1S在獲得USB存儲設備上的secure, cfg文件的內(nèi)容后,再讀取NVSTORAGE區(qū)域中的私鑰,利用該私鑰對USB存儲設備的secure, cfg文件簽名進行解密,如果解密后的簽名是可信任的,那么B1S將正常返回;
5)如果未獲得信任,B1S將清除USB控制器的端口狀態(tài)位,清除PME狀態(tài)位,SCI狀態(tài)位,同時將USB設備從控制器端口刪除,這樣操作系統(tǒng)將無法識別USB存儲設備,因此不能對USB存儲設備進行數(shù)據(jù)傳輸操作;
6)如果USB存儲設備獲得B1S的可信認證,B1S將正常返回,操作系統(tǒng)將將正常識別該USB存儲設備,如果B1S的SMI處理程序發(fā)現(xiàn)插入的不是大容量存儲設備則正常返回,操作系統(tǒng)將仍正常識別該USB設備;
7)B1S的NVSTORAGE中存儲的私鑰和USB存儲設備中保存的簽名能夠互換,在B1S設置菜單中添加設置私鑰或簽名的菜單,可進行手動修改私鑰或簽名,方便用戶的使用,通過在B1S設置菜單中設置B1S密碼,防止他人查看私鑰和簽名。
[0006]本發(fā)明的有益效果是:通過B1S對插入的USB存儲設備進行識別和認證,只有通過認證的USB存儲設備,才能夠被操作系統(tǒng)識別。若插入的為不可信任的USB存儲設備,B1S從底層斷開此設備,操作系統(tǒng)將無法識別該設備,因此不能進行數(shù)據(jù)的傳輸,從而較好地保護了系統(tǒng)的信息安全。本文將闡述該方法的實現(xiàn)過程,描述B1S通過SMI中斷實現(xiàn)對USB存儲設備進行可信認證的方法。
【專利附圖】
【附圖說明】
[0007]圖1是可/[目認證流程圖。
【具體實施方式】
[0008]參照說明書附圖對本發(fā)明的可信認證方法作以下詳細地說明。
[0009]通過B1S對USB控制器寄存器的設置,USB存儲設備在插入USB接口時,可產(chǎn)生PME事件。通過對PCH橋片寄存器的設置,可將USB的PME事件轉(zhuǎn)換成SMI中斷或者SCI中斷。我們將其設置為產(chǎn)生SCI中斷。在B1S的ACPI代碼中添加SCI中斷處理代碼,查詢是否為USB產(chǎn)生的SCI中斷,如果是USB控制器產(chǎn)生的SCI中斷,則通過ASL代碼寫SMI軟中斷命令,產(chǎn)生一個SMI中斷。在B1S的SMI中斷處理程序中,查詢USB控制器的端口狀態(tài)位,若有效,則說明USB接口有設備接入。然后讀取設備描述符,根據(jù)USB設備所返回的設備描述符中的配置描述符個數(shù),來逐一讀取設備的配置描述符。B1S分兩次讀取配置描述符,第一次讀取配置描述符,第二次將配置描述符,接口描述符和端口描述符一并讀出。通過接口描述符的內(nèi)容可以判定是哪種USB設備插入。如果是USB大容量存儲設備則B1S加載USB存儲設備協(xié)議和驅(qū)動,然后對該USB存儲設備進行訪問,讀取其根目錄下secure,cfg文件的內(nèi)容。如果secure, cfg文件不存在,貝U返回錯誤碼,否則將secure, cfg文件中的內(nèi)容讀出放在一塊內(nèi)存區(qū)域,作為該USB存儲設備的簽名。
[0010]在B1S的NVSTORAGE區(qū)域中添加對USB存儲設備的簽名進行解密的私鑰。B1S在獲得USB存儲設備上的secure, cfg文件的內(nèi)容后,再讀取NVSTORAGE區(qū)域中的私鑰,利用該私鑰對USB存儲設備的secure, cfg文件簽名進行解密,如果解密后的簽名是可信任的,那么B1S將正常返回。如果未獲得信任,B1S將清除USB控制器的端口狀態(tài)位,清除PME狀態(tài)位,SCI狀態(tài)位,同時將USB設備從控制器端口刪除。這樣操作系統(tǒng)將無法識別USB存儲設備,因此不能對USB存儲設備進行數(shù)據(jù)傳輸操作。如果USB存儲設備獲得B1S的可信認證,B1S將正常返回,操作系統(tǒng)將可以正常識別該USB存儲設備。如果B1S的SMI處理程序發(fā)現(xiàn)插入的不是大容量存儲設備則正常返回,操作系統(tǒng)將可以正常識別該USB設備。
[0011]B1S的NVSTORAGE中存儲的私鑰和USB存儲設備中保存的簽名可以互換。在B1S設置菜單中添加設置私鑰或簽名的菜單,可進行手動修改私鑰或簽名,方便用戶的使用。通過在B1S設置菜單中設置B1S密碼,防止他人查看私鑰和簽名。
實施例
[0012]1.在B1S源代碼中添加針對USB存儲設備的SMI中斷處理程序、相關ACPI代碼和B1S設置菜單的代碼,編譯B1S源代碼產(chǎn)生可執(zhí)行的ROM文件;
2.更新剛編譯的B1S文件到系統(tǒng)Firmware中;
3.在B1S設置菜單中添加USB存儲設備的簽名或密鑰;
4.在USB存儲設備中添加secure,cfg文件,在文件中添加簽名或密鑰;
5.開機啟動系統(tǒng),進入操作系統(tǒng),插入USB存儲設備,查看是否被識別;刪除USB存儲設備中的secure, cfg文件,重新插拔USB存儲設備,看系統(tǒng)是否可以識別設備;修改USB存儲設備中secure, cfg文件的內(nèi)容,重新插拔USB存儲設備,看系統(tǒng)是否可以識別設備。
[0013]除說明書所述的技術特征外,均為本專業(yè)技術人員的已知技術。
【權利要求】
1.一種通過311中斷實現(xiàn)對舊8存儲設備進行可信認證的方法,其特征在于具體步驟如下: 1)通過8103對舊8控制器寄存器的設置,舊8存儲設備在插入舊8接口時,可產(chǎn)生事件,通過對?⑶橋片寄存器的設置,將舊8的事件轉(zhuǎn)換成311中斷或者中斷,將其設置為產(chǎn)生中斷,在8103的八0?1代碼中添加301中斷處理代碼,查詢是否為…8產(chǎn)生的中斷,如果是舊8控制器產(chǎn)生的中斷,則通過八1代碼寫311軟中斷命令,產(chǎn)生一個311中斷; 2)在8103的311中斷處理程序中,查詢…8控制器的端口狀態(tài)位,若有效,則說明…8接口有設備接入,然后讀取設備描述符,根據(jù)舊8設備所返回的設備描述符中的配置描述符個數(shù),來逐一讀取設備的配置描述符,8103分兩次讀取配置描述符,第一次讀取配置描述符,第二次將配置描述符,接口描述符和端口描述符一并讀出,通過接口描述符的內(nèi)容判定是哪種[38設備插入; 3)如果是[38大容量存儲設備,則8103加載…8存儲設備協(xié)議和驅(qū)動,然后對該口38存儲設備進行訪問,讀取其根目錄下86(31^6.(3?文件的內(nèi)容,如果86(31116.(3?文件不存在,則返回錯誤碼,否則將此⑶代.(3?文件中的內(nèi)容讀出放在一塊內(nèi)存區(qū)域,作為該…8存儲設備的簽名; 4)在8103的附310狀⑶區(qū)域中添加對…8存儲設備的簽名進行解密的私鑰,8108在獲得…8存儲設備上的0?文件的內(nèi)容后,再讀取附310狀⑶區(qū)域中的私鑰,利用該私鑰對…8存儲設備的0?文件簽名進行解密,如果解密后的簽名是可信任的,那么8103將正常返回; 5)如果未獲得信任,8103將清除舊8控制器的端口狀態(tài)位,清除狀態(tài)位,301狀態(tài)位,同時將。58設備從控制器端口刪除,這樣操作系統(tǒng)將無法識別舊8存儲設備,因此不能對舊8存儲設備進行數(shù)據(jù)傳輸操作; 6)如果…8存儲設備獲得8103的可信認證,8103將正常返回,操作系統(tǒng)將將正常識別該…8存儲設備,如果8103的311處理程序發(fā)現(xiàn)插入的不是大容量存儲設備則正常返回,操作系統(tǒng)將仍正常識別該[38設備; 7)8108的附310狀⑶中存儲的私鑰和…8存儲設備中保存的簽名能夠互換,在8103設置菜單中添加設置私鑰或簽名的菜單,可進行手動修改私鑰或簽名,方便用戶的使用,通過在8103設置菜單中設置8103密碼,防止他人查看私鑰和簽名。
【文檔編號】G06F21/44GK104361280SQ201410598154
【公開日】2015年2月18日 申請日期:2014年10月31日 優(yōu)先權日:2014年10月31日
【發(fā)明者】鄢建龍, 陳乃闊 申請人:山東超越數(shù)控電子有限公司