黃文斌,鄭傳權,黃雄京,劉博生
(東莞市厚街醫院 1.院辦;2.信息科;3.設備科,廣東 東莞 523945)
對于醫院而言,電腦中存儲著大量的病人檢查數據以及治療方案,所以保證電腦的安全性是至關重要的,一旦電腦感染了病毒導致數據丟失損害帶來的損失是巨大的。在醫院中使用到的很多醫療設備比如動態心電記錄器都需要通過讀卡器讀取SD 存儲卡(secure digital memory card)中的數據。因此,研制一款防病毒的讀卡器十分重要[1]。
SD 存儲卡通過讀卡器連接到電腦后,若電腦已經感染了病毒木馬,則SD 存儲卡等存儲設備有很大可能性會感染病毒木馬。如果SD 存儲卡感染了病毒木馬,連接電腦后也同樣會導致電腦中毒。SD 存儲卡等存儲設備的病毒一般是兩個文件,一個是病毒文件,一個是文本文件。病毒文件是一個可執行的病毒,文本文件是寫有打開病毒方式的文本,名稱為autorun,擴展名為.inf。當SD 存儲卡連接到電腦上,系統會自動掃描,判斷SD 存儲卡中是否有名為autorun.inf 的文本文件,如果有此文件,就會按照autorun.inf 文本文件中所寫的內容進行操作。這時寫在文本中的病毒就啟動了,電腦就會感染病毒,令人防不勝防。
本研究中的防病毒讀卡器由3 部分電路組成[2]。分別為USB 控制器電路、SD 存儲卡電路和電源電路。其中USB 控制器電路采用USB 3.0 芯片,型號為CYUSB3035。結合CYUSB3035 芯片和計算機中特定的應用程序接口(application programming interface,API)函數構成的私有通信協議,使得計算機通過讀卡器對記錄醫療數據的SD存儲卡進行讀取時,不通過FAT 等文件系統訪問SD 存儲卡數據,而是使用API 函數通過對讀卡器進行操作[3],從而避免SD 存儲卡感染病毒,并且電腦不會被SD 存儲卡感染病毒。
防病毒讀卡器的設計框架見圖1[4]。

圖1 防病毒讀卡器的設計框圖
1.3.1 USB 控制器電路 USB3.0 芯片CYUSB3035通過USB3.0 接口連接計算機[5];通過SDIO 接口連接SD 存儲卡。計算機的數據可以通過USB3.0接口傳入芯片CYUSB3035,再通過SDIO 將數據傳入SD 存儲卡中。見圖2。

圖2 USB 控制器電路
1.3.2 SD 存儲卡電路 SD 存儲卡電路采用支持4 位SD 模式的SD 存儲卡接口,型號為1775059_B1_AMP;存儲卡接口的信號線SD-DATA0、SDDATA1、SD-DATA2、SD-DATA3L 為4 位數據傳輸線,其分別連接USB3.0 芯片CYUSB3035 的CHO33、CHO34、CHO35、CHO36 引腳;存儲卡接口的SD-CLK 信號線為SD 存儲卡的時鐘信號傳輸線,其連接USB3.0 芯片CYUSB3035 的CHO41引腳,每個時鐘周期在每一數據傳輸線上傳輸1 位命令或數據;存儲卡接口的SD-CMD 信號線為SD 存儲卡的雙向命令/響應信號線,其連接USB3.0 芯 片 CYUSB3035 的 CHO42 引腳。見圖3。

圖3 SD 存儲卡電路
1.3.3 電源電路 電源電路有兩部分,即5 V 轉3.3 V 和5 V 轉1.2 V。
3.3 V 電源電路:采用的線性穩壓芯片U3 的型號為NCP1117DT33RKG,通過線性穩壓芯片NCP1117DT33RKG 將5 V 的VBUS 電壓轉化為3.3 V 直流電源提供給各電路模塊。見圖4。

圖4 3.3 V 電源電路
1.2 V 電源電路:采用的線性穩壓芯片U7 的型號為SC189CDKTRT,通過線性穩壓芯片SC189CDKTRT 將5 V 的VBUS 電壓轉化為1.2 V直流電源提供給 USB 3.0 芯片 CYSB3035。見圖5。

圖5 1.2 V 電源電路
防病毒讀卡器實質就是使用API 函數構成的私有通信協議,使得計算機通過讀卡器對SD 存儲卡進行讀取時,不通過FAT 等文件系統訪問SD數據,而是使用API 函數對讀卡器進行操作,從而阻斷了SD 存儲卡和計算機之間的病毒傳播,起到了防病毒的作用[6]。SD 存儲卡在很多行業都被廣泛應用,防病毒讀卡器也受到越來越多的關注,其具有體積小,便攜且應用簡單的優點,具有很好的發展前景。實際測試效果良好,證明方案設計合理可行。該項目已經獲得實用新型專利授權,專利號:ZL202020336041.9。
本研究的創新之處:使用API 函數通過讀卡器直接對SD 存儲卡的邏輯地址進行讀寫操作,根據私有通信協議對SD 存儲卡中數據進行校驗判斷,若校驗通過則讀取SD 存儲卡中數據,并存儲到計算機中,從而阻斷了SD 存儲卡和計算機之間的病毒傳播,起到了防病毒的作用。
在醫院的安全信息系統中,目前預制十多個醫療設備的SD 存儲卡協議,在實際使用中沒有出現由SD 存儲卡引起的病毒感染事件實際測試效果良好,證明方案設計合理可行[7]。該項目已經獲得實用新型專利授權,專利號 :ZL202020336041.9。
但該設計仍存在一些弊端,如圖6 所示,要支持醫療設備的SD 存儲卡,需提前知道文件的開始地址和結束地址,同時數據在SD 存儲卡中的地址必須是連續的,這就需要醫療設備存儲數據時嚴格按照這個標準寫入數據。下一步需要考慮通過FAT 表獲取文件的開始地址和結束地址,同時通過FAT 的鏈路表或者數據邏輯地址,然后按照獲取的地址讀取數據,再通過私有協議進行校驗。

圖6 讀取數據流程
綜上所述,本文研制一款防病毒的讀卡器,通過預制私有通信協議對SD 存儲卡數據進行校驗,繞開Windows 文件系統,隔絕電腦與SD 存儲卡之間的病毒傳播,應用在醫院的安全信息系統中測試效果良好,下一步結合FAT 表進行深入研究。