• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      USB移動存儲設備密級保護系統(tǒng)的設計與實現(xiàn)

      2014-04-29 00:00:00李永強譚立清馬同茂張迪周高磊何旭
      計算機光盤軟件與應用 2014年13期

      摘 要:隨著USB技術的快速發(fā)展,各種移動存儲設備給人們的生活帶來許多便利,同時USB移動存儲設備的安全問題也日益嚴重。本文設計了一種管理USB移動存儲設備的方法,基于MFC平臺使用C++語言設計實現(xiàn)了USB移動存儲設備密級保護管理系統(tǒng),對USB移動存儲設備進行授權管理,從而緩解USB移動存儲設備帶來的諸多安全問題。

      關鍵詞:USB移動存儲設備;密級保護;安全問題;授權管理

      中圖分類號:TP309

      現(xiàn)代生活中,USB移動存儲介質因其使用靈活、快捷、方便的特點迅速得到普及。但同時也帶來了諸如數(shù)據(jù)拷貝不受限、數(shù)據(jù)傳輸不受限、內外網交叉使用等安全問題,對數(shù)據(jù)安全產生嚴重威脅[1],因此安全威脅是移動存儲介質應用急需解決的問題。

      USB移動存儲設備帶來的安全性問題主要有以下幾個方面:第一,信息文件的盜竊。在現(xiàn)在的企業(yè)中,由于信息安全的需要,每個企業(yè)都制定各種保密制度,并采取一定的安全防護措施,例如防火墻應用、入侵檢測等措施,但這些措施只能防范企業(yè)外網的攻擊,而對于企業(yè)內網起不到任何的防范作用。據(jù)中國信息安全組織提供有關調查顯示,在眾多計算機安全的事件中,發(fā)生頻率最高事件是主機信息泄露,并且這些事件中有95%是單位內部人員通過內網主機完成[2],比如,一些惡意人員可以拷取企業(yè)主機上文件并帶走,給企業(yè)帶來了極大的安全隱患。第二,病毒傳播。由于其廣泛應用,USB移動存儲設備成為了眾多病毒攻擊對象[3]。一些電腦病毒可以感染USB移動存儲設備,并通過該設備把病毒傳播到其它的電腦、筆記本上,從而造成病毒的大肆傳播。第三,USB移動存儲設備的丟失。許多人把資料拷貝到移動存儲設備中隨身攜帶,而當移動存儲設備丟失時,造成嚴重的信息泄漏。

      目前,解決USB移動存儲設備安全威脅方式有兩種,一種是人為禁止USB移動存儲設備使用,另一種是采用技術手段控制USB移動存儲設備使用,即在計算機內部部署解決方案對設備進行實時監(jiān)控。解決方案主要分為驅動級編程和Windows應用程序兩種,本文主要介紹的是Windows應用程序這種方案的實現(xiàn)。文章中我們將介紹USB移動存儲設備密級保護系統(tǒng)的設計與實現(xiàn),通過對USB移動存儲設備信息的提取來進行授權管理,從而保護主機信息安全。

      1 系統(tǒng)原理分析

      USB移動存儲設備密級保護系統(tǒng)主要管理外圍存儲設備的使用權限,該系統(tǒng)主要涉及到兩種技術,分別為USB移動存儲設備插拔的監(jiān)聽技術和信息提取技術。

      USB移動存儲設備插拔的監(jiān)聽技術可以監(jiān)聽到USB移動存儲設備的插拔活動情況,系統(tǒng)只有監(jiān)聽到這些活動,才能對USB移動存儲設備的物理信息進行提取和管理。在Windows系統(tǒng)中,當PC機上添加或者刪除一個即插即用設備時,將觸發(fā)系統(tǒng)WM_DEVICECHANGE消息。我們可以利用WM_DEVICECHANGE向應用程序的主窗口提供監(jiān)聽到的設備的活動信息,然后添加響應函數(shù)BOOL OnDeviceChange(UINT nEventType,DWORD wData)即可捕捉到USB移動存儲設備的插拔情況。其中nEventType變量主要傳遞USB移動存儲設備的活動狀態(tài),其取值包括以下6個變量值:DBT_DEVICEARRIVAL、DBT_DEVICEQUERYREMOVE、DBT_DEVICETYPESPECIFIC、DBT_DEVICEQUERYREMOVEFAILED、DBT_DEVICEREMOVECOMPLETE、DBT_DEVICEREMOVEPENDING,這6個變量值代表了USB移動存儲設備插入或拔出的情況。

      USB移動存儲設備在生產時廠家在設備上標注了物理編號(序列號SeriaNumber),這種編號具有終生不變、只能讀取不能寫入的特點,所以可以被提取出進行授權[4]。通常把能夠惟一標識USB設備的標識信息稱惟一性標志[5],該唯一性標志通常由VID(廠家ID)、PID(產品ID)和硬件序列號組成,所以USB移動存儲設備密級保護系統(tǒng)將提取USB移動存儲設備的VID、PID和SeriaNumber這三個信息值,通過對這三個信息值進行授權來對USB移動存儲設備進行管理,并將這三個數(shù)據(jù)信息保存到數(shù)據(jù)庫中,其在數(shù)據(jù)庫中保存形式如表1所示。

      表1 數(shù)據(jù)庫中數(shù)據(jù)存儲形式

      VID(廠家ID)PID(產品ID)SeriaNumber

      在提取USB移動存儲設備的信息,將用到USB設備的句柄,

      HANDLE hDrive=CreateFile(pDetail->DevicePath,0,F(xiàn)ILE_SHARE_READ | FILE_SHARE_WRITE,NULL,OPEN_EXISTING,NULL,NULL);通過使用該句柄可以獲取USB移動存儲設備的信息。

      2 系統(tǒng)需求與總體功能

      通過需求分析,得到了USB移動存儲設備密級保護系統(tǒng)所應該具備的功能,該系統(tǒng)主要包括授權管理、刪除數(shù)據(jù)、修改密碼、插入數(shù)據(jù)、預覽數(shù)據(jù)、設備彈出等功能模塊。系統(tǒng)總體功能框圖如圖1所示。

      圖1 USB移動存儲設備密級保護系統(tǒng)總體功能

      該系統(tǒng)采用訪問控制技術,該技術是一種靜態(tài)的安全技術,常用一張訪問控制表定義用戶訪問的權限[6]。因此系統(tǒng)將建立一張權限控制表來管理USB移動存儲設備的使用權限。該系統(tǒng)主要在Windows平臺上運行,通過對USB移動存儲設備狀態(tài)的監(jiān)聽對USB移動存儲設備進行授權管理。當移動存儲設備插入到主機上,該系統(tǒng)就會監(jiān)聽到該設備插入的消息并提取設備的信息,通過與數(shù)據(jù)庫中信息對比,來判斷該移動存儲設備是否已經得到授權,如果已經得到授權運行,該USB移動存儲設備就可以在主機上正常運行,如果未被授權,可以通過授權功能對該設備授權,否則該設備將會被彈出。通過授權管理,系統(tǒng)只允許得到授權運行的USB移動存儲設備在主機上使用,從而防止惡意人員非法拷貝主機上的信息文件。USB密級保護系統(tǒng)的工作流程圖如圖2所示。

      圖2 USB移動存儲設備密級保護系統(tǒng)工作流程圖

      3 系統(tǒng)功能實現(xiàn)

      USB移動存儲設備密級保護系統(tǒng)使用基于MFC平臺的C++語言來搭建軟件的框架并進行內部實現(xiàn),使用嵌入式數(shù)據(jù)庫Sqlite3進行數(shù)據(jù)存儲和處理,整個系統(tǒng)將在Windows系統(tǒng)下運行。

      USB移動存儲設備密級保護系統(tǒng)的運行主界面如圖3所示,該界面顯示了系統(tǒng)的大部分功能,其中點擊預覽時,會在USB列表中顯示目前主機上允許運行的USB移動存儲設備。點擊刷新,在左下部分的列表上顯示目前正在運行的USB移動存儲設備的盤符和名稱,選中列表的USB移動存儲設備,點擊彈出,設備將會被安全彈出。其中插入數(shù)據(jù)、刪除數(shù)據(jù)、密碼修改、關閉等操作都需要密碼驗證。對于該系統(tǒng)的授權管理功能模塊,只有在新的USB移動存儲設備插入到主機時,該功能才能被觸發(fā),對該設備進行信息讀取和授權管理。

      圖3 USB移動存儲設備密級保護系統(tǒng)主界面

      下面將詳細介紹部分主要功能模塊的實現(xiàn)及相應的核心代碼。

      授權功能模塊是該軟件系統(tǒng)的核心模塊,USB移動存儲設備只有得到授權后才可以在主機上使用。授權功能模塊主要通過USB移動存儲設備插拔的監(jiān)聽技術和USB移動存儲設備信息提取技術來實現(xiàn)。當對USB移動存儲設備信息提取后,將對該設備進行權限分級,主要分為只讀權限和正常使用權限。其中只讀權限只能讀取USB移動存儲設備中的文件而不能把主機中文件拷貝到移動存儲設備中。USB移動存儲設備插拔監(jiān)聽的實現(xiàn)首先在BEGIN_MESSAGE_MAP(CUSBDlg,CDialog)中添加ON_WM_DEVICECHANGE()語句,隨后實現(xiàn)監(jiān)聽函數(shù),監(jiān)聽函數(shù)如下:

      BOOL OnDeviceChange(UINT nEventType,DWORD wData){

      switch(nEventType)

      {

      case DBT_DEVICEARRIVAL:

      //USB移動存儲設備插入消息

      MatchDevInfo();

      //判斷USB移動存儲設備是否已經授權

      break;

      case DBT_DEVICEQUERYREMOVE:

      //USB移動存儲設備請求移出消息

      ::MessageBox(NULL,_T(\"移動存儲設備安全移除!\"),_T(\"USB\"),MB_OK);

      break;

      case DBT_DEVICEREMOVECOMPLETE:

      //USB移動存儲設備已經彈出消息

      ::MessageBox(NULL,_T(\"移動存儲設備安全移除!\"),_T(\"USB\"),MB_OK);

      break;

      default:break;

      }

      return TRUE;

      }

      以上代碼實現(xiàn)USB移動存儲設備監(jiān)控,當插入新的USB移動存儲設備時,將會執(zhí)行case DBT_DEVICEARRIVAL,對于MatchDevInfo()函數(shù)將實現(xiàn)USB移動存儲設備信息讀取并且判斷該設備是否已經得到授權,如果未授權就轉到授權界面,如果已經授權就可以正常在主機上使用,以下簡單講MatchDevInfo()中主要代碼段。獲得USB移動存儲設備的ID的代碼

      char chID[MAX_PATH*2]=\"\";

      CM_Get_Parent(spdd.DevInst,spdd.DevInst,0);

      DWORD dwEr=CM_Get_Device_ID(spdd.DevInst,chID,sizeof(chID),0);

      if(dwEr==CR_SUCCESS)

      {

      if(GetAbcPid(chID))

      {

      HANDLE hDrive=CreateFile(pDetail->DevicePath,0,F(xiàn)ILE_SHARE_READ | FILE_SHARE_WRITE,NULL,OPEN_EXISTING,NULL,NULL);//定義USB移動存儲設備句柄

      if (hDrive!=INVALID_HANDLE_VALUE)

      {STORAGE_DEVICE_NUMBER sdn;

      DWORD dwBytesReturned=0;

      BOOL res=eviceIoControl(hDrive,//設備句柄IOCTL_STORAGE_GET_DEVICE_NUMBER,NULL,0,sdn,sizeof(sdn),dwBytesReturned,NULL);//獲取設備號temp_DeviceNumber.Format(\"%d\",sdn.DeviceNumber);//數(shù)據(jù)轉換獲得定義規(guī)格字符串pszDevicePath=temp_DeviceNumber+chID;}

      ::CloseHandle(hDrive);//釋放句柄

      }

      }

      通過以上兩種技術就可以獲得USB移動存儲設備的固定信息,接下來就是把數(shù)據(jù)進行權限分級,然后插入到數(shù)據(jù)庫中,這里使用的數(shù)據(jù)庫是Sqlite3。Sqlite3是一款穩(wěn)定、開源的輕型數(shù)據(jù)庫,遵守ACID的關聯(lián)式數(shù)據(jù)庫管理系統(tǒng),能夠執(zhí)行大部分的SQL命令,具有ODBC接口[7]。先對Sqlite3進行編譯得到Sqlite3.lib然后動態(tài)調用,系統(tǒng)中數(shù)據(jù)庫的連接代碼為

      sqlite3 *db=NULL;//定義數(shù)據(jù)庫指針變量

      int flag;

      flag=sqlite3_open(\"USB.db\",db);

      if(flag){

      AfxMessageBox(_T(\"打不開USB.db\"));

      sqlite3_close(db);}

      else

      {AfxMessageBox(_T(\"打開USB.db\"));}

      連接成功后就可以通過SQL語句進行數(shù)據(jù)插入、刪除等操作。

      對于自制的按鈕的實現(xiàn),比如后臺運行和最小化是通過添加如下代碼實現(xiàn)

      ShowWindow(SW_MINIMIZE);//最小化

      ShowWindow(SW_HIDE);//后臺運行

      可以在自制的按鈕中添加一些判斷條件,比如密碼驗證,就可以增強按鈕的功能性,從而增加系統(tǒng)的安全性。

      軟件質量是一個軟件企業(yè)成功的必要條件,其重要性無論怎樣強調都不過分。為了保證軟件的質量,將會對軟件進行測試。其目的就是能夠找出軟件中存在的一些錯誤,并加以改正[8]。通過軟件測試運行,該系統(tǒng)具有較好的可靠性和穩(wěn)定性,對數(shù)據(jù)庫的操作比較穩(wěn)定,滿足軟件質量的諸多要求。

      4 結束語

      本文主要介紹了USB移動存儲設備的應用帶來的安全性問題,并且提出一種Windows平臺上開發(fā)應用程序的解決方案。本文詳細描述USB移動存儲設備密級保護系統(tǒng)的設計和實現(xiàn),并摘錄部分功能的核心代碼。該系統(tǒng)的創(chuàng)新點如下:系統(tǒng)專注于對USB移動存儲設備進行管理,對USB移動存儲設備進行授權操作,得到授權運行的USB移動存儲設備才可以在主機上按照權限等級運行。同時,該系統(tǒng)的數(shù)據(jù)插入、數(shù)據(jù)刪除、密碼修改和關閉軟件等操作都需要密碼驗證,防止其它人員對該系統(tǒng)的惡意操作,使主機上的信息更加安全。從運行測試結果看,該系統(tǒng)可靠性強,運行穩(wěn)定,具有良好的實際應用價值。

      參考文獻:

      [1]俞衛(wèi)華,路松峰.移存儲介質信息安全系統(tǒng)的研究與實現(xiàn)[J].計算機工程,2009(19):135-137.

      [2]李金長.企業(yè)內網信息安全防護系統(tǒng)設計與實現(xiàn)[D].電子科技大學,2010.

      [3]楊思燕.USB可移動存儲設備監(jiān)控軟件研究與實現(xiàn)[J].計算機技術與發(fā)展ISTIC,2013(12):151-154+160.

      [4]彭棟,凌捷.移動存儲設備安全管理技術的研究與實現(xiàn)[J].計算機與現(xiàn)代化,2009(10):188-190.

      [5]廖洪其,凌捷,郝彥軍.USB移動存儲設備的惟一性識別方法研究[J].計算機工程與設計,2010(12):2778-2780.

      [6]許祖娥.信息安全產品測試管理系統(tǒng)的設計與實現(xiàn)[D].中國海洋大學,2013.

      [7]段昌平.SQLite3數(shù)據(jù)庫在工業(yè)測量中的應用[J].信息與電腦(理論版),2013(01):56.

      [8]羅凱.計算機軟件測試技術分析[J].電子技術與軟件工程,2014(05):91.

      作者簡介:李永強(1990-),男,江蘇邳州人,學生,本科,主要研究方向:信息安全;譚立清(1994-),男,本科,主要研究方向:信息安全;馬同茂(1993-),男,本科,主要研究方向:軟件工程;張迪(1992-),男,本科,主要研究方向:軟件工程;周高磊(1991-),男,本科,主要研究方向:信息安全;何旭(1991—)男,本科,主要研究方向:軟件工程。

      作者單位:中國石油大學(華東) 計算機與通信工程學院,山東青島 266580

      基金項目:本文由中國石油大學(華東)國家級大學生創(chuàng)新實驗計劃(基于detours的USB密級保護系統(tǒng),項目編號:201310425051)資助。

      达拉特旗| 保定市| 赤城县| 河津市| 弋阳县| 新兴县| 介休市| 丽水市| 新邵县| 西盟| 旌德县| 鲁甸县| 涪陵区| 佛冈县| 探索| 沧源| 珠海市| 凤山市| 娱乐| 关岭| 镇坪县| 囊谦县| 察隅县| 清流县| 芮城县| 麟游县| 宁南县| 潮州市| 棋牌| 柞水县| 安化县| 郯城县| 龙口市| 阿巴嘎旗| 明星| 营口市| 年辖:市辖区| 田林县| 镇平县| 凤城市| 柳州市|