黃文斌,鄭傳權(quán),黃雄京,劉博生
(東莞市厚街醫(yī)院 1.院辦;2.信息科;3.設(shè)備科,廣東 東莞 523945)
對于醫(yī)院而言,電腦中存儲著大量的病人檢查數(shù)據(jù)以及治療方案,所以保證電腦的安全性是至關(guān)重要的,一旦電腦感染了病毒導(dǎo)致數(shù)據(jù)丟失損害帶來的損失是巨大的。在醫(yī)院中使用到的很多醫(yī)療設(shè)備比如動態(tài)心電記錄器都需要通過讀卡器讀取SD 存儲卡(secure digital memory card)中的數(shù)據(jù)。因此,研制一款防病毒的讀卡器十分重要[1]。
SD 存儲卡通過讀卡器連接到電腦后,若電腦已經(jīng)感染了病毒木馬,則SD 存儲卡等存儲設(shè)備有很大可能性會感染病毒木馬。如果SD 存儲卡感染了病毒木馬,連接電腦后也同樣會導(dǎo)致電腦中毒。SD 存儲卡等存儲設(shè)備的病毒一般是兩個文件,一個是病毒文件,一個是文本文件。病毒文件是一個可執(zhí)行的病毒,文本文件是寫有打開病毒方式的文本,名稱為autorun,擴(kuò)展名為.inf。當(dāng)SD 存儲卡連接到電腦上,系統(tǒng)會自動掃描,判斷SD 存儲卡中是否有名為autorun.inf 的文本文件,如果有此文件,就會按照autorun.inf 文本文件中所寫的內(nèi)容進(jìn)行操作。這時寫在文本中的病毒就啟動了,電腦就會感染病毒,令人防不勝防。
本研究中的防病毒讀卡器由3 部分電路組成[2]。分別為USB 控制器電路、SD 存儲卡電路和電源電路。其中USB 控制器電路采用USB 3.0 芯片,型號為CYUSB3035。結(jié)合CYUSB3035 芯片和計算機中特定的應(yīng)用程序接口(application programming interface,API)函數(shù)構(gòu)成的私有通信協(xié)議,使得計算機通過讀卡器對記錄醫(yī)療數(shù)據(jù)的SD存儲卡進(jìn)行讀取時,不通過FAT 等文件系統(tǒng)訪問SD 存儲卡數(shù)據(jù),而是使用API 函數(shù)通過對讀卡器進(jìn)行操作[3],從而避免SD 存儲卡感染病毒,并且電腦不會被SD 存儲卡感染病毒。
防病毒讀卡器的設(shè)計框架見圖1[4]。
圖1 防病毒讀卡器的設(shè)計框圖
1.3.1 USB 控制器電路 USB3.0 芯片CYUSB3035通過USB3.0 接口連接計算機[5];通過SDIO 接口連接SD 存儲卡。計算機的數(shù)據(jù)可以通過USB3.0接口傳入芯片CYUSB3035,再通過SDIO 將數(shù)據(jù)傳入SD 存儲卡中。見圖2。
圖2 USB 控制器電路
1.3.2 SD 存儲卡電路 SD 存儲卡電路采用支持4 位SD 模式的SD 存儲卡接口,型號為1775059_B1_AMP;存儲卡接口的信號線SD-DATA0、SDDATA1、SD-DATA2、SD-DATA3L 為4 位數(shù)據(jù)傳輸線,其分別連接USB3.0 芯片CYUSB3035 的CHO33、CHO34、CHO35、CHO36 引腳;存儲卡接口的SD-CLK 信號線為SD 存儲卡的時鐘信號傳輸線,其連接USB3.0 芯片CYUSB3035 的CHO41引腳,每個時鐘周期在每一數(shù)據(jù)傳輸線上傳輸1 位命令或數(shù)據(jù);存儲卡接口的SD-CMD 信號線為SD 存儲卡的雙向命令/響應(yīng)信號線,其連接USB3.0 芯 片 CYUSB3035 的 CHO42 引腳。見圖3。
圖3 SD 存儲卡電路
1.3.3 電源電路 電源電路有兩部分,即5 V 轉(zhuǎn)3.3 V 和5 V 轉(zhuǎn)1.2 V。
3.3 V 電源電路:采用的線性穩(wěn)壓芯片U3 的型號為NCP1117DT33RKG,通過線性穩(wěn)壓芯片NCP1117DT33RKG 將5 V 的VBUS 電壓轉(zhuǎn)化為3.3 V 直流電源提供給各電路模塊。見圖4。
圖4 3.3 V 電源電路
1.2 V 電源電路:采用的線性穩(wěn)壓芯片U7 的型號為SC189CDKTRT,通過線性穩(wěn)壓芯片SC189CDKTRT 將5 V 的VBUS 電壓轉(zhuǎn)化為1.2 V直流電源提供給 USB 3.0 芯片 CYSB3035。見圖5。
圖5 1.2 V 電源電路
防病毒讀卡器實質(zhì)就是使用API 函數(shù)構(gòu)成的私有通信協(xié)議,使得計算機通過讀卡器對SD 存儲卡進(jìn)行讀取時,不通過FAT 等文件系統(tǒng)訪問SD數(shù)據(jù),而是使用API 函數(shù)對讀卡器進(jìn)行操作,從而阻斷了SD 存儲卡和計算機之間的病毒傳播,起到了防病毒的作用[6]。SD 存儲卡在很多行業(yè)都被廣泛應(yīng)用,防病毒讀卡器也受到越來越多的關(guān)注,其具有體積小,便攜且應(yīng)用簡單的優(yōu)點,具有很好的發(fā)展前景。實際測試效果良好,證明方案設(shè)計合理可行。該項目已經(jīng)獲得實用新型專利授權(quán),專利號:ZL202020336041.9。
本研究的創(chuàng)新之處:使用API 函數(shù)通過讀卡器直接對SD 存儲卡的邏輯地址進(jìn)行讀寫操作,根據(jù)私有通信協(xié)議對SD 存儲卡中數(shù)據(jù)進(jìn)行校驗判斷,若校驗通過則讀取SD 存儲卡中數(shù)據(jù),并存儲到計算機中,從而阻斷了SD 存儲卡和計算機之間的病毒傳播,起到了防病毒的作用。
在醫(yī)院的安全信息系統(tǒng)中,目前預(yù)制十多個醫(yī)療設(shè)備的SD 存儲卡協(xié)議,在實際使用中沒有出現(xiàn)由SD 存儲卡引起的病毒感染事件實際測試效果良好,證明方案設(shè)計合理可行[7]。該項目已經(jīng)獲得實用新型專利授權(quán),專利號 :ZL202020336041.9。
但該設(shè)計仍存在一些弊端,如圖6 所示,要支持醫(yī)療設(shè)備的SD 存儲卡,需提前知道文件的開始地址和結(jié)束地址,同時數(shù)據(jù)在SD 存儲卡中的地址必須是連續(xù)的,這就需要醫(yī)療設(shè)備存儲數(shù)據(jù)時嚴(yán)格按照這個標(biāo)準(zhǔn)寫入數(shù)據(jù)。下一步需要考慮通過FAT 表獲取文件的開始地址和結(jié)束地址,同時通過FAT 的鏈路表或者數(shù)據(jù)邏輯地址,然后按照獲取的地址讀取數(shù)據(jù),再通過私有協(xié)議進(jìn)行校驗。
圖6 讀取數(shù)據(jù)流程
綜上所述,本文研制一款防病毒的讀卡器,通過預(yù)制私有通信協(xié)議對SD 存儲卡數(shù)據(jù)進(jìn)行校驗,繞開Windows 文件系統(tǒng),隔絕電腦與SD 存儲卡之間的病毒傳播,應(yīng)用在醫(yī)院的安全信息系統(tǒng)中測試效果良好,下一步結(jié)合FAT 表進(jìn)行深入研究。