版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、封面隨著網(wǎng)絡(luò)時(shí)代的到來,互聯(lián)網(wǎng)的觸角已經(jīng)深入到中國的每一個(gè)角落。在網(wǎng)絡(luò)化的同時(shí),有關(guān)網(wǎng)絡(luò)信息安全的問題也日益突出。絕大多數(shù)的企業(yè)、學(xué)校、政府機(jī)構(gòu)把內(nèi)網(wǎng)的安全重點(diǎn)放在防范來自外部的攻擊,依賴于防火墻、防病毒軟件。然而對(duì)一系列計(jì)算機(jī)犯罪統(tǒng)計(jì)數(shù)字分析的結(jié)果,促使人們更多地關(guān)注來自內(nèi)部人員的安全威脅。其中計(jì)算機(jī)系統(tǒng)的外部設(shè)備泄密是信息泄露事件發(fā)生的一大重要根源。如今越來越多的敏感信息、秘密數(shù)據(jù)和檔案資料被存貯在計(jì)算機(jī)里,大量的秘密文件和資料變?yōu)榇判越橘|(zhì)、光學(xué)介質(zhì),存貯在無保護(hù)的介質(zhì)里,外設(shè)的泄密隱患相當(dāng)大,內(nèi)部員工可以通過光驅(qū)、軟驅(qū)、usb等外設(shè)非法拷貝敏感信息和涉密信息,這些行為造成嚴(yán)重的后果和不可
2、彌補(bǔ)的損失。本文旨在對(duì)主機(jī)設(shè)備管理技術(shù)進(jìn)行研究,建立一個(gè)主機(jī)設(shè)備管理系統(tǒng)。該系統(tǒng)具有身份認(rèn)證、在線主機(jī)掃描、主機(jī)設(shè)備監(jiān)控等功能。本文首先分析了現(xiàn)階段主機(jī)設(shè)備管理的研究背景及現(xiàn)狀,然后從需求分析入手,分析了系統(tǒng)的層次結(jié)構(gòu),接下來結(jié)合現(xiàn)有的技術(shù),設(shè)計(jì)了一個(gè)主機(jī)設(shè)備管理系統(tǒng),最后對(duì)該系統(tǒng)進(jìn)行了實(shí)現(xiàn)和測試。課題的最終成果為:設(shè)計(jì)了一個(gè)主機(jī)設(shè)備管理模塊,并依據(jù)該模塊實(shí)現(xiàn)了一個(gè)主機(jī)設(shè)備管理系統(tǒng)。實(shí)踐證明,該系統(tǒng)具備良好的實(shí)際應(yīng)用價(jià)值。關(guān)鍵詞:防水墻,主機(jī)設(shè)備管理,網(wǎng)絡(luò)安全,信息安全67abstractabstractnetwork has been popular in china when the ne
3、twork age is coming, but the problem of information security becomes more and more serious. most of enterprises, schools and governments focus on external attack depending on fireware and anti-virus. while a series of statistic result of computer crime indicates that people should attend the securit
4、y threat of interior personnel. the one of the reasons of blowing the gaff is the computer device, because more and more sensitive information、private data and archives are saved in the computer, a mass of files and datum are changed into magnetic medium and optical medium so that the possibility of
5、 blowing the gaff is big owing to interior personnel copying information through cd-rom, floppy drive and usb.in this thesis, the conceptual architecture of such a system was described, and our experience with its initial implementation was addressed as well. this system consists of identity authent
6、ication, on-line computer scan and device management.the achievements of this thesis include the design and implementation of a device management system. the requirement analysis was finished. also the modules of the system and some key technologies were described. the system was implemented and tes
7、ted as well. in conclusion, the device management system has good performance and we can ensure that the information is not blabed through the device.key words:waterbox, host device management, network security,information security目錄目 錄第一章 引 言11.1背景以及國內(nèi)外現(xiàn)狀11.2主要內(nèi)容11.3論文章節(jié)安排1第二章 需求分析32.1系統(tǒng)需求32.2功能需求3
8、2.3性能需求42.4硬件環(huán)境52.5 軟件環(huán)境及開發(fā)環(huán)境52.6 小結(jié)6第三章 總體設(shè)計(jì)73.1 系統(tǒng)總體結(jié)構(gòu)簡介73.2 子系統(tǒng)總體設(shè)計(jì)83.2.1 驗(yàn)證模塊模塊93.2.2 系統(tǒng)主控平臺(tái)93.2.3 掃描在線主機(jī)模塊93.2.4 主機(jī)設(shè)備管理模塊103.3 系統(tǒng)基本處理流程103.3.1 主機(jī)設(shè)備管理系統(tǒng)的數(shù)據(jù)流設(shè)計(jì)6103.3.2 驗(yàn)證模塊的流程圖113.3.3 系統(tǒng)主控平臺(tái)的流程圖123.3.4 在線主機(jī)掃描模塊的流程圖133.3.5 主機(jī)設(shè)備管理模塊的流程圖153.4 小結(jié)18第四章 詳細(xì)設(shè)計(jì)194.1 權(quán)限驗(yàn)證模塊194.1.1 權(quán)限驗(yàn)證ipo圖194.1.2 權(quán)限驗(yàn)證模塊的界面
9、設(shè)計(jì)194.1.3 權(quán)限驗(yàn)證模塊的實(shí)現(xiàn)204.2 系統(tǒng)主控平臺(tái)214.2.1 主控平臺(tái)界面設(shè)計(jì)214.2.2 主控平臺(tái)的實(shí)現(xiàn)214.3 基于udp的網(wǎng)段掃描模塊7224.3.1 設(shè)計(jì)思路224.3.2 編程原理 udp與tcp簡介 csocket類中的udp相關(guān)函數(shù) 事件函數(shù)和線程創(chuàng)建函數(shù)254.3.3 實(shí)例祥解2 初始化例程2 啟動(dòng)掃描2 掃描線程2 獲得掃描結(jié)果2 保存掃描結(jié)果2 雙擊動(dòng)作2 退出掃描304.4 主機(jī)設(shè)備的管理
10、304.4.1 概述30 對(duì)于控制光驅(qū)接口,我們可以通過若干方法來實(shí)現(xiàn)230 對(duì)于控制usb接口,我們可以通過若干方法來實(shí)現(xiàn)33 其他設(shè)備的管理354.4.2 client/server模式3 概述3 套接字調(diào)用的流程3 winsock編程原理40 系統(tǒng)中c/s模式的實(shí)現(xiàn)454.4.3 控制主機(jī)設(shè)備的關(guān)鍵技術(shù)50 簡述ddk450 主機(jī)設(shè)備控制的實(shí)現(xiàn)504.5 小結(jié)55第五章 測試565.1 系統(tǒng)集成測試565.2 主機(jī)設(shè)備模塊測試575.2.1 測試環(huán)境575
11、.2.2 功能測試585.2.3 性能測試585.3 小結(jié)59第六章 結(jié)論及展望60參考文獻(xiàn)61致 謝63外文資料原文65翻譯文稿67第一章 引言第一章 引 言1.1背景以及國內(nèi)外現(xiàn)狀本課題來源于四川省青年軟件創(chuàng)新工程資助項(xiàng)目“waterbox防水墻系統(tǒng)”的子系統(tǒng)waterbox防水墻系統(tǒng)的主機(jī)設(shè)備管理,項(xiàng)目編號(hào)為621。waterbox是由“water”和“box”組成的合成詞,“water”得名于安全技術(shù)的一個(gè)名詞,它的意思和防火墻剛好相反,傳達(dá)出阻止外流的意思,“box”這個(gè)詞則是象征性地表達(dá)了安全的意義,整個(gè)詞意是為了防止內(nèi)部信息未經(jīng)授權(quán)的泄露。我們知道,防火墻、ids 和漏洞掃描僅僅
12、解決了內(nèi)網(wǎng)安全理論的一個(gè)方面,但不能解決內(nèi)部用戶攻擊和威脅?;趦?nèi)網(wǎng)安全理論的防水墻waterbox,將會(huì)給出了政府、民營企業(yè)的內(nèi)網(wǎng)安全解決方案。在國外,spectorcne、vontu protect、employee-monitor的用途是提高員工工作效率,對(duì)員工的工作行為進(jìn)行約束,這些產(chǎn)品的功能主要是通過網(wǎng)絡(luò)途徑來實(shí)現(xiàn)的。如:email、web、web mail、chat、install messaging、ftp、telnet、pop、imap、p2p、smb等方式。在國內(nèi),也有一些公司做出了關(guān)于內(nèi)網(wǎng)安全的產(chǎn)品,比如中軟的waterbox、衛(wèi)士通的一key通等。總之,從目前國內(nèi)外研究現(xiàn)
13、狀來看,還沒有一個(gè)完整有效的內(nèi)網(wǎng)安全解決方案,缺乏系統(tǒng)有效的內(nèi)網(wǎng)安全產(chǎn)品。1.2主要內(nèi)容作為waterbox防水墻系統(tǒng)的一個(gè)子系統(tǒng)“主機(jī)設(shè)備管理”,其主要功能就是通過實(shí)現(xiàn)對(duì)光驅(qū)、軟驅(qū)、usb、com口、打印機(jī)等外設(shè)的監(jiān)控和管理,防止內(nèi)部用戶通過計(jì)算機(jī)或者計(jì)算機(jī)網(wǎng)絡(luò)的外部設(shè)備或終端設(shè)備將組織內(nèi)部的秘密信息有意識(shí)或無意識(shí)泄漏出去,堵住任何一個(gè)可能泄漏的途徑,保證信息能夠安全可靠地保存和管理,從而最大限度地降低信息泄密的風(fēng)險(xiǎn)。1.3論文章節(jié)安排第一章 闡述課題背景、國內(nèi)外發(fā)展現(xiàn)狀、主要內(nèi)容以及論文的章節(jié)安排。第二章 簡單論述了系統(tǒng)的需求分析以及系統(tǒng)開發(fā)所需的環(huán)境,包括系統(tǒng)需求、功能需求和性能需求以及
14、硬件環(huán)境、軟件環(huán)境和開發(fā)環(huán)境。第三章 在分析系統(tǒng)總體結(jié)構(gòu)的基礎(chǔ)上,討論了主機(jī)設(shè)備管理子系統(tǒng)的總體設(shè)計(jì)。第四章 實(shí)現(xiàn)了主機(jī)設(shè)備管理系統(tǒng)。具體是各個(gè)模塊的設(shè)計(jì)和實(shí)現(xiàn),包括權(quán)限驗(yàn)證模塊、系統(tǒng)主控平臺(tái)、掃描在線主機(jī)模塊以及主機(jī)設(shè)備管理模塊。第五章 介紹了waterbox系統(tǒng)的測試方法以及主機(jī)設(shè)備管理系統(tǒng)的測試環(huán)境、測試方法和具體的測試結(jié)果。第六章 對(duì)全文和本人的工作做了總結(jié),提出了未來的研究方向。第二章 需求分析第二章 需求分析本章簡要介紹了系統(tǒng)的需求分析以及系統(tǒng)開發(fā)所需的環(huán)境。首先是需求分析,包括系統(tǒng)需求、功能需求和性能需求,接下來介紹了系統(tǒng)開發(fā)所需的環(huán)境,包括硬件環(huán)境、軟件環(huán)境以及開發(fā)環(huán)境。2.1
15、系統(tǒng)需求waterbox防水墻系統(tǒng)主要分為數(shù)據(jù)分析與查詢子系統(tǒng)、內(nèi)網(wǎng)監(jiān)管子系統(tǒng)、進(jìn)程監(jiān)控子系統(tǒng)、認(rèn)證與加密子系統(tǒng)、主機(jī)設(shè)備監(jiān)管子系統(tǒng)。其中主機(jī)設(shè)備監(jiān)管子系統(tǒng)開發(fā)時(shí)應(yīng)考慮以下需求:1) 能夠保證系統(tǒng)的安全,防止非管理員非法使用該系統(tǒng);2) 能夠獲得當(dāng)前在線主機(jī),并對(duì)其實(shí)現(xiàn)監(jiān)管;3) 滿足對(duì)目標(biāo)內(nèi)網(wǎng)用戶主機(jī)的cd-rom、usb、1394接口等設(shè)備的禁用;4) 滿足內(nèi)網(wǎng)用戶在授權(quán)的情況下合法使用主機(jī)的cd-rom、usb、網(wǎng)卡接口等設(shè)備。2.2功能需求基于對(duì)主機(jī)設(shè)備監(jiān)管子系統(tǒng)的系統(tǒng)需求,該系統(tǒng)需要實(shí)現(xiàn)一下基本功能:1) 身份認(rèn)證:管理系統(tǒng)操作人員,設(shè)計(jì)管理員口令和權(quán)限。由于waterbox防水墻系
16、統(tǒng)是一款保護(hù)用戶敏感信息不被非法泄露的系統(tǒng),只有系統(tǒng)管理員才有權(quán)限使用其來監(jiān)控內(nèi)網(wǎng)的安全,所以只有輸入合法的防水墻用戶名和口令才可以登錄該系統(tǒng)。由于該功能不是系統(tǒng)的主要功能,所以暫時(shí)只有簡單的身份認(rèn)證,還沒有添加用戶、修改密碼等功能。2) 掃描在線主機(jī):waterbox防水墻系統(tǒng)是一款對(duì)局域網(wǎng)中的合法機(jī)器或非法機(jī)器進(jìn)行監(jiān)控的系統(tǒng),我們需要知道實(shí)時(shí)監(jiān)控時(shí)局域網(wǎng)中的客戶機(jī)是否在線,只有客戶機(jī)在線才能對(duì)其進(jìn)行管理。當(dāng)前掃描方法有多種,包括基于tcp的掃描、基于udp的掃描、基于icmp的掃描等等,但是在掃描在線主機(jī)這個(gè)模塊中,我們主要利用udp協(xié)議的掃描技術(shù)來得到某一網(wǎng)段內(nèi)所有在線主機(jī)的ip、機(jī)器名
17、、工作組、用戶名以及mac地址,因?yàn)榇四K希望快速得到同網(wǎng)段機(jī)器的信息,而并不是需要特別可靠的連接確認(rèn)機(jī)制,故采用udp來實(shí)現(xiàn)。3) 軟驅(qū)的禁用/啟動(dòng):計(jì)算機(jī)系統(tǒng)的外部設(shè)備泄密是信息泄露事件發(fā)生的一大重要根源。作為外設(shè)之一的軟驅(qū),內(nèi)部人員完全可以憑借軟盤將機(jī)密信息拷走,造成一定的損失,所以waterbox防水墻系統(tǒng)中要實(shí)現(xiàn)這個(gè)功能,即對(duì)軟驅(qū)能夠?qū)崿F(xiàn)控制,在授權(quán)的情況下客戶可以使用,否則禁止用戶使用。4) cd-rom的禁用/啟動(dòng):計(jì)算機(jī)系統(tǒng)的外部設(shè)備泄密是信息泄露事件發(fā)生的一大重要根源。作為外設(shè)之一的cd-rom,內(nèi)部人員完全可以憑借可察寫光盤將機(jī)密信息拷走,造成一定的損失,所以waterbo
18、x防水墻系統(tǒng)中要實(shí)現(xiàn)這個(gè)功能,即對(duì)cd-rom能夠?qū)崿F(xiàn)控制,在授權(quán)的情況下客戶可以使用,否則禁止用戶使用。5) usb設(shè)備的禁用/啟動(dòng):內(nèi)部用戶還可以通過計(jì)算機(jī)的usb移動(dòng)存儲(chǔ)器將敏感信息和重要資料拷貝出去。為防止這種情況的發(fā)生,waterbox需要對(duì)計(jì)算機(jī)的usb接口進(jìn)行管理。內(nèi)部用戶還可以對(duì)個(gè)人用戶數(shù)據(jù)加密,整個(gè)內(nèi)網(wǎng)的數(shù)據(jù)需有一定的訪問控制策略,重要信息也要加密。6) 網(wǎng)卡的禁用/啟動(dòng):網(wǎng)絡(luò)是信息泄漏事件發(fā)生的又一根源,內(nèi)部員工可以通過網(wǎng)絡(luò),包括e-mail、bbs等將信息泄漏出去。盡管waterbox防水墻系統(tǒng)有專門的模塊實(shí)現(xiàn)對(duì)網(wǎng)絡(luò)的監(jiān)控、郵件的還原和網(wǎng)頁的還原,但是仍然需要對(duì)網(wǎng)卡進(jìn)行監(jiān)
19、控,一旦發(fā)現(xiàn)用戶通過網(wǎng)絡(luò)進(jìn)行非法操作,就實(shí)行禁用網(wǎng)卡,最大限度地降低信息泄密的風(fēng)險(xiǎn)。7) 其他外設(shè)的禁用/啟動(dòng):計(jì)算機(jī)系統(tǒng)的外部設(shè)備泄密是信息泄露事件發(fā)生的一大重要根源。通過主機(jī)的其他設(shè)備,比如com口、打印機(jī)等等,內(nèi)部人員完全可以泄漏內(nèi)部的重要信息,造成一定的損失,所以waterbox防水墻系統(tǒng)中要實(shí)現(xiàn)這個(gè)功能,即對(duì)其他外設(shè)能夠?qū)崿F(xiàn)控制,在授權(quán)的情況下客戶可以使用,否則禁止用戶使用。2.3性能需求主機(jī)設(shè)備管理系統(tǒng)的優(yōu)點(diǎn)是能夠掃描在線主機(jī),并對(duì)主機(jī)設(shè)備進(jìn)行監(jiān)控,其主要性能指標(biāo)如下:1) 掃描在線主機(jī)性能規(guī)定a. 能夠掃描在線主機(jī),在主機(jī)臺(tái)數(shù)為4的情況下時(shí)間不高于1s;b. 誤報(bào)率不高于1%;2
20、) 軟驅(qū)的禁用/啟用時(shí)間不超過3s;3) 光驅(qū)的禁用/啟用時(shí)間不超過20s;4) usb的禁用/啟用時(shí)間不超過20s;5) 網(wǎng)卡的禁用/啟用時(shí)間不超過20s;6) com口的禁用/啟用時(shí)間不超過20s;7) 打印機(jī)的禁用/啟用時(shí)間不超過20s。2.4硬件環(huán)境在最低配置的情況下,系統(tǒng)的性能往往不盡如人意,現(xiàn)在的硬件性能已經(jīng)相當(dāng)出色,而且價(jià)格也非常便宜,因此通常給系統(tǒng)配置高性能硬件,包括cpu、內(nèi)存、硬盤等。如表2-1所示:表2-1系統(tǒng)的硬件環(huán)境機(jī)器型號(hào)應(yīng)用名稱數(shù)量硬件配置pc server數(shù)據(jù)庫服務(wù)器11個(gè)cpu,512m內(nèi)存,80g硬盤pc系統(tǒng)管理員機(jī)器11個(gè)cpu,512m內(nèi)存pc客戶端機(jī)器
21、若干1個(gè)cpu,256m內(nèi)存2.5 軟件環(huán)境及開發(fā)環(huán)境waterbox防水墻系統(tǒng)由數(shù)據(jù)庫服務(wù)器、系統(tǒng)管理員機(jī)器、客戶端機(jī)器組成,操作系統(tǒng)為microsoft的windows,包括windows server 2000和windows xp,數(shù)據(jù)庫是microsoft sql server 2000。如表2-2所示:表2-2系統(tǒng)的軟件環(huán)境應(yīng)用服務(wù)器操作系統(tǒng)其它軟件及版本數(shù)據(jù)庫服務(wù)器windows server 2000microsoft sql server 2000系統(tǒng)管理員機(jī)器windowsmicrosoft sql server 2000客戶端機(jī)器windowsmicrosoft sql
22、server 2000為了統(tǒng)一開發(fā)平臺(tái)、開發(fā)語言,整個(gè)項(xiàng)目組統(tǒng)一在windows xp使用visual c+ 6.0作為界面開發(fā),底層用純c開發(fā),數(shù)據(jù)庫為microsoft sql server 2000。如表2-3所示。表2-3系統(tǒng)的開發(fā)環(huán)境開發(fā)平臺(tái)windows xp開發(fā)語言visual c+ 6.0、c、winddk、msdn數(shù)據(jù)庫管理系統(tǒng)microsoft sql server 20002.6 小結(jié)本章首先介紹了一下系統(tǒng)的需求,然后簡述了系統(tǒng)的功能需求、性能需求,最后概述了系統(tǒng)的硬件環(huán)境、軟件環(huán)境以及開發(fā)環(huán)境。下一章將介紹主機(jī)設(shè)備管理系統(tǒng)的總體設(shè)計(jì),包括系統(tǒng)總體結(jié)構(gòu)簡介、子系統(tǒng)總體設(shè)計(jì)
23、和基本設(shè)計(jì)概念即處理流程。第三章 總體設(shè)計(jì)第三章 總體設(shè)計(jì)本章在分析系統(tǒng)總體結(jié)構(gòu)的基礎(chǔ)上,討論了主機(jī)設(shè)備管理子系統(tǒng)的總體設(shè)計(jì)。然后根據(jù)第二章的功能需求,并結(jié)合實(shí)際的需求,設(shè)計(jì)了一個(gè)使用的主機(jī)設(shè)備管理系統(tǒng),對(duì)該系統(tǒng)的各個(gè)模塊作了闡述和說明,同時(shí)介紹了系統(tǒng)的處理流程。3.1 系統(tǒng)總體結(jié)構(gòu)簡介首先介紹一下整個(gè)waterbox系統(tǒng)。waterbox系統(tǒng)是網(wǎng)絡(luò)監(jiān)控模塊、非法接入模塊、主機(jī)設(shè)備管理模塊、系統(tǒng)監(jiān)控模塊,其中網(wǎng)絡(luò)監(jiān)控模塊主要是對(duì)內(nèi)網(wǎng)通過網(wǎng)關(guān)或代理服務(wù)器流向internet的數(shù)據(jù)包,系統(tǒng)進(jìn)行全面的截取、解析和過濾,系統(tǒng)按照網(wǎng)絡(luò)協(xié)議劃分,將部分?jǐn)?shù)據(jù)包保存記錄在數(shù)據(jù)庫中,以便管理人員察看同時(shí)系統(tǒng)需要
24、還原郵件和文件;非法接入模塊對(duì)內(nèi)網(wǎng)中未經(jīng)授權(quán)的主機(jī)進(jìn)行隔離,阻止它與其他主機(jī)的通,內(nèi)網(wǎng)中的每臺(tái)主機(jī)實(shí)時(shí)監(jiān)測與本機(jī)通信的其他主機(jī)的信息,發(fā)出身份認(rèn)證請(qǐng)求,然后將非法主機(jī)的信息報(bào)告給系統(tǒng)管理服務(wù)器做后續(xù)處理;主機(jī)設(shè)備管理模塊對(duì)主機(jī)的cd-rom、usb、com口等設(shè)備進(jìn)行管,內(nèi)網(wǎng)中的用戶在管理員授權(quán)的情況下才能使用這些設(shè)備;系統(tǒng)監(jiān)控模塊包括管理模塊、通信模塊和進(jìn)程監(jiān)控模塊。系統(tǒng)總體結(jié)構(gòu)圖如圖3-1所示:網(wǎng)絡(luò)監(jiān)控模塊非法接入模塊設(shè)備管理模塊系統(tǒng)監(jiān)控模塊截獲、解析模塊數(shù)據(jù)庫管理模塊驗(yàn)證模塊通信模塊通信管理模塊過濾模塊還原、記錄模塊設(shè)備管理模塊硬件接口模塊進(jìn)程監(jiān)控模塊通信模塊通信模塊管理模塊公共出錯(cuò)信息
25、處理模塊圖3-1系統(tǒng)總體結(jié)構(gòu)圖如上圖所示,系統(tǒng)管理實(shí)現(xiàn)方式為應(yīng)用程序,安裝在管理員計(jì)算機(jī)上。完成系統(tǒng)初始化、數(shù)據(jù)包監(jiān)控模塊管理、合發(fā)計(jì)算機(jī)信息表管理、遠(yuǎn)程主機(jī)設(shè)備啟用認(rèn)證、日志記錄功能。數(shù)據(jù)包監(jiān)控模塊管理調(diào)用數(shù)據(jù)庫管理實(shí)現(xiàn)管理員對(duì)數(shù)據(jù)包、文件、郵件記錄的查看等功能。合法計(jì)算機(jī)信息表管理調(diào)用數(shù)據(jù)庫管理實(shí)現(xiàn)對(duì)信息表的增、刪、改、查等功能。同時(shí)作為整個(gè)系統(tǒng)的通信平臺(tái)的服務(wù)端完成通信規(guī)范中定義的通信內(nèi)容。3.2 子系統(tǒng)總體設(shè)計(jì)本人主要負(fù)責(zé)主機(jī)設(shè)備管理模塊,主要對(duì)主機(jī)的cd-rom、usb、com口等設(shè)備進(jìn)行管,內(nèi)網(wǎng)中的用戶在管理員授權(quán)的情況下才能使用這些設(shè)備。其中管理員交互界面在系統(tǒng)的顯示層,設(shè)備管理
26、以及c/s通信在系統(tǒng)的處理層,系統(tǒng)與機(jī)器的接口在系統(tǒng)層。根據(jù)第二章的功能需求,主機(jī)設(shè)備管理系統(tǒng)的總體結(jié)構(gòu)比較簡單,共分為驗(yàn)證模塊、系統(tǒng)主控模塊、掃描在線主機(jī)模塊和主機(jī)設(shè)備管理模塊等。根據(jù)主機(jī)設(shè)備管理的基本要求,我們設(shè)計(jì)了一個(gè)系統(tǒng)總體結(jié)構(gòu),如圖3-2所示:主機(jī)設(shè)備管理界面系統(tǒng)接口公共出錯(cuò)信息處理模塊顯示層系統(tǒng)層處理層客戶端設(shè)備管理與客戶端通信usbcd-rom軟驅(qū)本地驗(yàn)證遠(yuǎn)程驗(yàn)證com掃描在線主機(jī)界面系統(tǒng)主控平臺(tái)界面驗(yàn)證模塊界面圖3-2主機(jī)設(shè)備管理總體結(jié)構(gòu)圖如上圖所示,系統(tǒng)基本的流程是:管理員登陸-系統(tǒng)主控平臺(tái)界面-掃描在線主機(jī)-選擇對(duì)主機(jī)設(shè)備的禁用或啟用。下面將詳細(xì)闡述主機(jī)設(shè)備管理總體結(jié)構(gòu)。3
27、.2.1 驗(yàn)證模塊模塊此模塊主要用于限制非法人員操作系統(tǒng)。由于waterbox防水墻系統(tǒng)是一款保護(hù)用戶敏感信息不被非法泄露的系統(tǒng),只有系統(tǒng)管理員才有權(quán)限使用其來監(jiān)控內(nèi)網(wǎng)的安全,所以只有輸入合法的防水墻用戶名和口令才可以登錄該系統(tǒng)。3.2.2 系統(tǒng)主控平臺(tái)此模塊主要是界面的顯示,主要功能包括:1) 啟動(dòng)掃描在線主機(jī);2) 啟動(dòng)主機(jī)設(shè)備管理;充分考慮界面易于操作的系統(tǒng)需求,主控制平臺(tái)使用簡單和直觀的布局設(shè)計(jì),提供菜單和工具欄兩種操作方式,其中下拉菜單和工具欄是一一對(duì)應(yīng)關(guān)系。而且該界面還具有向后兼容的特點(diǎn),并為整個(gè)waterbox防水墻系統(tǒng)其他子系統(tǒng)提供了接口,包括非法外聯(lián)子系統(tǒng)、通信子系統(tǒng)、網(wǎng)絡(luò)監(jiān)
28、控子系統(tǒng),為系統(tǒng)的集成打下了良好的基礎(chǔ)。3.2.3 掃描在線主機(jī)模塊此模塊主要掃描在線主機(jī),并對(duì)在線主機(jī)準(zhǔn)備監(jiān)控。當(dāng)前掃描方法有多種,包括基于tcp的掃描、基于udp的掃描、基于icmp的掃描等等,但是由于此模塊希望快速得到同網(wǎng)段機(jī)器的信息,而并不需要特別可靠的連接確認(rèn)機(jī)制在掃描在線主機(jī)這個(gè)模塊中,所以我們就選擇了udp協(xié)議的掃描技術(shù)來得到某一網(wǎng)段內(nèi)所有在線主機(jī)的ip、機(jī)器名、工作組、用戶名以及mac地址。而且該模塊是基于對(duì)話框的,所以需要添加必要的控件。首先要有ip地址控件,用來輸入搜索的ip范圍;還應(yīng)有l(wèi)ist box控件,用來顯示已經(jīng)查詢的ip情況;中間的是list control控件,
29、用來顯示對(duì)應(yīng)每個(gè)ip的機(jī)器信息,從左到右分別顯示ip地址、工作組、機(jī)器名、用戶名和mac地址。在這個(gè)模塊中,主要由初始化例程、啟動(dòng)掃描、掃描線程、掃描結(jié)果、雙擊動(dòng)作、退出掃描等部分組成。在初始化例程中,主要將一些信息初始化,然后在啟動(dòng)掃描過程中創(chuàng)建掃描線程,并把掃描結(jié)果顯示在列表框中,最后退出掃描,同時(shí)雙擊動(dòng)作可以引出主機(jī)設(shè)備管理界面。3.2.4 主機(jī)設(shè)備管理模塊此模塊主要實(shí)現(xiàn)對(duì)主機(jī)設(shè)備的監(jiān)控,控制其是啟用還是禁用。當(dāng)前幾乎所有企業(yè)對(duì)于網(wǎng)絡(luò)安全的重視程度一下子提高了,紛紛采購防火墻等設(shè)備希望堵住來自internet的不安全因素。然而,intranet內(nèi)部的攻擊和入侵卻依然猖狂。事實(shí)證明,公司內(nèi)
30、部的不安全因素遠(yuǎn)比外部的危害更恐怖,尤其是通過主機(jī)外設(shè)泄漏機(jī)密。大多企業(yè)重視提高企業(yè)網(wǎng)的邊界安全,但是大多數(shù)企業(yè)網(wǎng)絡(luò)的核心內(nèi)網(wǎng)還是非常脆弱的。企業(yè)也對(duì)內(nèi)部網(wǎng)絡(luò)實(shí)施了相應(yīng)保護(hù)措施,如安裝動(dòng)輒數(shù)萬甚至數(shù)十萬的網(wǎng)絡(luò)防火墻、入侵檢測軟件等,并希望以此實(shí)現(xiàn)內(nèi)網(wǎng)與internet的安全隔離,然而,情況并非如此!企業(yè)中經(jīng)常會(huì)有人私自通過光驅(qū)、軟驅(qū)、usb等偷竊機(jī)密信息及資料,而這些機(jī)器通常又置于企業(yè)內(nèi)網(wǎng)中,這種情況的存在給企業(yè)網(wǎng)絡(luò)帶來了巨大的潛在威脅,從某種意義來講,企業(yè)耗費(fèi)巨資配備的防火墻已失去意義。實(shí)踐證明,很多成功防范企業(yè)網(wǎng)邊界安全的技術(shù)對(duì)保護(hù)企業(yè)內(nèi)網(wǎng)卻沒有效用。于是網(wǎng)絡(luò)維護(hù)者開始大規(guī)模致力于增強(qiáng)內(nèi)網(wǎng)
31、的防衛(wèi)能力。當(dāng)前有多種方法可以禁用主機(jī)設(shè)備,包括在注冊表里修改選項(xiàng)、在bios中修改等等,但是都有一定的缺陷。我選擇了通過調(diào)用ddk函數(shù)控制設(shè)備使用,采用服務(wù)器/客戶端模式來共同來完成一個(gè)應(yīng)用任務(wù),即主機(jī)設(shè)備管理。這種方法在某種程度上能夠有效的控制內(nèi)部員工對(duì)主機(jī)設(shè)備的訪問,并且能夠?qū)徲?jì)追蹤,一旦出現(xiàn)事故將追究相關(guān)人士的責(zé)任,包括刑事責(zé)任。3.3 系統(tǒng)基本處理流程在本節(jié),首先簡單介紹一下主機(jī)設(shè)備管理系統(tǒng)的數(shù)據(jù)流設(shè)計(jì),然后再分模塊詳細(xì)闡述各模塊的基本處理流程。3.3.1 主機(jī)設(shè)備管理系統(tǒng)的數(shù)據(jù)流設(shè)計(jì)6數(shù)據(jù)流是軟件工程中的概念,它表示處于運(yùn)動(dòng)中的數(shù)據(jù)。數(shù)據(jù)流和數(shù)據(jù)流圖是無法分割的,軟件工程中利用數(shù)據(jù)
32、流土描述系統(tǒng)的邏輯模型,任何軟件都可以用數(shù)據(jù)流圖表示。畫數(shù)據(jù)流圖的基本目的是利用它作為交流信息的工具,它通過簡單的圖形符號(hào)描述數(shù)據(jù)的運(yùn)動(dòng)情況,圖中某一任何具體的物理元素,只是描繪信息在系統(tǒng)中流動(dòng)和處理的情況。特別要注意程序框圖和數(shù)據(jù)流圖的區(qū)別:程序框圖是從對(duì)數(shù)據(jù)進(jìn)行加工的角度描述系統(tǒng)的,其箭頭是控制流,表示的是對(duì)數(shù)據(jù)進(jìn)行加工的次序,它用于描述怎樣解決問題;而數(shù)據(jù)流圖則是從數(shù)據(jù)的角度來描述系統(tǒng)的,其箭頭是數(shù)據(jù)流,表示的是數(shù)據(jù)的流動(dòng)方向,它用于描述是什么問題。主機(jī)設(shè)備管理系統(tǒng)的數(shù)據(jù)流如圖3-3所示:服務(wù)器上層應(yīng)用程序客戶端上層應(yīng)用程序服務(wù)器網(wǎng)絡(luò)層客戶端網(wǎng)絡(luò)層監(jiān)控外設(shè)udp數(shù)據(jù)控制信息規(guī)則庫響應(yīng)信息
33、圖3-3 主機(jī)設(shè)備管理系統(tǒng)數(shù)據(jù)流程示意圖從圖3-3中我們可以得知,數(shù)據(jù)的主要流動(dòng)為以下幾個(gè)方面。l 服務(wù)器向指定范圍的ip發(fā)數(shù)據(jù),首先它向一個(gè)ip發(fā)數(shù)據(jù),然后等待響應(yīng)。收到響應(yīng)后,繼續(xù)對(duì)下一個(gè)ip發(fā)數(shù)據(jù),如此循環(huán)。l 客戶端收到服務(wù)器的數(shù)據(jù)后,將響應(yīng)信息發(fā)回服務(wù)器。l 服務(wù)器從響應(yīng)信息中取出對(duì)應(yīng)的機(jī)器工作組、機(jī)器名、用戶名、mac地址并顯示出來。l 服務(wù)器根據(jù)掃描結(jié)果,將控制主機(jī)設(shè)備的控制信息發(fā)給在線主機(jī)。l 客戶端收到信息后,匹配規(guī)則庫,做出相應(yīng)的動(dòng)作。3.3.2 驗(yàn)證模塊的流程圖驗(yàn)證模塊主要用于限制非法人員操作系統(tǒng)。由于waterbox防水墻系統(tǒng)是一款保護(hù)用戶敏感信息不被非法泄露的系統(tǒng),只
34、有系統(tǒng)管理員才有權(quán)限使用其來監(jiān)控內(nèi)網(wǎng)的安全,所以只有輸入合法的防水墻用戶名和口令才可以登錄該系統(tǒng)。該模塊的流程圖如圖3-4所示:圖3-4 驗(yàn)證模塊過程示意圖如上圖所示,當(dāng)進(jìn)入主機(jī)設(shè)備管理系統(tǒng)時(shí),需要對(duì)用戶的身份進(jìn)行驗(yàn)證。若用戶名和密碼一致,則進(jìn)入系統(tǒng)主控平臺(tái),否則返回驗(yàn)證模塊。3.3.3 系統(tǒng)主控平臺(tái)的流程圖系統(tǒng)主控平臺(tái)主要用于系統(tǒng)界面的顯示,以及用來啟動(dòng)掃描在線主機(jī)和啟動(dòng)主機(jī)設(shè)備管理。另外,該平臺(tái)還是waterbox防水墻系統(tǒng)中其它子系統(tǒng)包括網(wǎng)絡(luò)監(jiān)控子系統(tǒng)、非法接入子系統(tǒng)、系統(tǒng)監(jiān)控子系統(tǒng)等的系統(tǒng)接口,保持了很好的擴(kuò)展及兼容。所以充分考慮界面易于操作的系統(tǒng)需求,主控制平臺(tái)使用簡單和直觀的布局設(shè)
35、計(jì),提供菜單和工具欄兩種操作方式。該模塊的流程圖如圖3-5所示:圖3-5 系統(tǒng)主控平臺(tái)過程示意圖如上圖所示,若系統(tǒng)通過了驗(yàn)證模塊的驗(yàn)證,則進(jìn)入系統(tǒng)的主控界面。在主控界面上有一些選項(xiàng),若點(diǎn)擊“掃描在線主機(jī)”則進(jìn)入掃描在線主機(jī)模塊;若點(diǎn)擊“主機(jī)設(shè)備管理”則進(jìn)入主機(jī)設(shè)備管理模塊。3.3.4 在線主機(jī)掃描模塊的流程圖此模塊主要掃描在線主機(jī),返回在線主機(jī)的一些信息,包括ip地址、機(jī)器工作組、機(jī)器名、用戶名、mac地址等。在此模塊中,我們需要先設(shè)定系統(tǒng)的掃描范圍,再把掃描結(jié)果存放在列表框中。由于此模塊希望快速得到同網(wǎng)段機(jī)器的信息,而并不是需要特別可靠的連接確認(rèn)機(jī)制,所以采用udp來實(shí)現(xiàn)。該模塊的流程圖如圖
36、3-6所示:圖3-6 掃描在線主機(jī)處理過程示意圖如上圖所示,在系統(tǒng)主控界面上點(diǎn)擊“掃描在線主機(jī)”,則進(jìn)入掃描在線主機(jī)界面。設(shè)置要掃描主機(jī)的ip范圍,若ip范圍不合法,則調(diào)用onbtnexit()退出掃描線程;否則sendto()函數(shù)循環(huán)對(duì)要查詢的ip發(fā)數(shù)據(jù)。當(dāng)客戶端接收到數(shù)據(jù)后,返回響應(yīng)信息。此時(shí)服務(wù)器則調(diào)用receivefrom()接收響應(yīng)信息,將數(shù)據(jù)報(bào)保存在buf,ip存儲(chǔ)在strip中,并根據(jù)數(shù)據(jù)報(bào)規(guī)則取出相應(yīng)的信息存放在列表框中。若要進(jìn)入下一模塊-主機(jī)設(shè)備管理模塊,則需調(diào)用ondblclklistview()即雙擊列表框中的某行。由于局域網(wǎng)的廣播特性,即在同一網(wǎng)段內(nèi)(ip地址的前三級(jí)地
37、址一樣),若ip地址為1的計(jì)算機(jī)發(fā)送數(shù)據(jù)給2,該數(shù)據(jù)也同時(shí)被發(fā)送給了網(wǎng)段內(nèi)的其他計(jì)算機(jī)(192.168.0.*),只是它們接收到這些數(shù)據(jù)時(shí)發(fā)現(xiàn)不是發(fā)給自己的,而將其丟棄。因此,可以編程讓計(jì)算機(jī)不丟棄這些數(shù)據(jù),而是接收它們,并將其解包,從而可以編制出功能更為強(qiáng)大的同時(shí)也是非??膳碌木W(wǎng)段掃描器,它可以監(jiān)視網(wǎng)段內(nèi)其他計(jì)算機(jī)通過網(wǎng)絡(luò)傳輸?shù)乃行畔?。這正是該系統(tǒng)以后的努力目標(biāo)之一。3.3.5 主機(jī)設(shè)備管理模塊的流程圖此模塊主要實(shí)現(xiàn)對(duì)主機(jī)設(shè)備的監(jiān)控,控制其是啟用還是禁用。作為整個(gè)系統(tǒng)最為主要的一個(gè)部分,該模塊的主要內(nèi)容就是通過實(shí)現(xiàn)對(duì)光驅(qū)、軟驅(qū)、usb、com口、
38、打印機(jī)等外設(shè)的監(jiān)控,防止內(nèi)部用戶通過計(jì)算機(jī)或者計(jì)算機(jī)網(wǎng)絡(luò)的外部設(shè)備或終端設(shè)備將組織內(nèi)部的秘密信息有意識(shí)或無意識(shí)泄漏出去,堵住任何一個(gè)可能泄漏的途徑,保證信息能夠安全可靠地保存和管理,從而最大限度地降低信息泄密的風(fēng)險(xiǎn)。由于現(xiàn)在越來越多的敏感信息、秘密數(shù)據(jù)和檔案資料被存貯在計(jì)算機(jī)里,大量的秘密文件和資料變?yōu)榇判越橘|(zhì)、光學(xué)介質(zhì),存貯在無保護(hù)的介質(zhì)里,外設(shè)的泄密隱患相當(dāng)大,一旦造成國家機(jī)密信息泄漏,將勢必造成嚴(yán)重的后果和不可彌補(bǔ)的損失,所以我們應(yīng)當(dāng)努力做好這個(gè)模塊,在保護(hù)內(nèi)網(wǎng)不受外來攻擊破壞的同時(shí),盡可能的保障內(nèi)網(wǎng)的安全,防止內(nèi)部用戶的泄密。該模塊的流程圖如圖3-7、3-8所示:圖3-7 主機(jī)設(shè)備管理
39、中的c/s通信過程示意圖圖3-8 主機(jī)設(shè)備管理中的客戶機(jī)處理過程示意圖如圖3-7所示,主機(jī)設(shè)備管理模塊可以有兩條進(jìn)入路徑,一是直接有主控平臺(tái)進(jìn)入,二是在掃描在線主機(jī)后進(jìn)入。服務(wù)器端和客戶端分別定義消息和它的消息映射,再分別調(diào)用wsastartup()函數(shù)初始化windows socket dll,并檢查版本號(hào)。客戶端調(diào)用socket()建立套接字連接,然后調(diào)用wsaasynselect()函數(shù),提名fd_connect事件。再接著,獲得ip地址,調(diào)用connect()函數(shù)于服務(wù)器的某端口建立連接。最后收到消息um_sock后,便按照定義的消息映射,調(diào)用onrecv()進(jìn)行處理。onrecv()
40、首先判斷該消息是由什么網(wǎng)絡(luò)事件引起的,再做出不同的處理:如果是是由fd_connect引起的,表明與服務(wù)器的連接已經(jīng)成功。于是將閥值編輯框中的值發(fā)送給服務(wù)器。然后調(diào)用wsaasynselect()函數(shù),提名fd_read和fd_close事件。當(dāng)套接字可發(fā)送數(shù)據(jù)時(shí)以及當(dāng)連接被關(guān)閉時(shí),對(duì)話框會(huì)收到winsock dll發(fā)送的um_sock消息。服務(wù)器端收到該閥值后,到規(guī)則庫中匹配規(guī)則,并進(jìn)行相應(yīng)的處理,具體處理流程見圖3-8。如圖3-8所示,這個(gè)流程圖主要是當(dāng)服務(wù)器收到客戶端發(fā)來的閥值后進(jìn)行相應(yīng)的操作。首先我們從注冊表中得到主機(jī)設(shè)備包括cd-rom、軟驅(qū)、usb、com口、網(wǎng)卡、打印機(jī)等的gui
41、d,然后調(diào)用api setupdigetclassdevs訪問系統(tǒng)的硬件庫,再調(diào)用setupdigetclassdevs()函數(shù)遍歷所有的硬件,最后我們調(diào)用函數(shù)changestatus(dword newstatus, dword selecteditem, hdevinfo hdevinfo) 來執(zhí)行改變控制來確定是“啟用”還是“禁用”,其中newstatus有兩種情況,一種是dics_enable,表示啟用設(shè)備;一種是dics_disable,表示禁用設(shè)備,i代表所選的設(shè)備,hdevinfo是由setupdigetclassdevs()函數(shù)返回的句柄。在這個(gè)函數(shù)中,我們先通過setupdi
42、enumdeviceinfo(hdevinfo, selecteditem, &deviceinfodata)函數(shù)枚舉指定設(shè)備信息集合的成員,并將數(shù)據(jù)放在deviceinfodata中,然后設(shè)置propchangeparams結(jié)構(gòu),再通過函數(shù)setupdisetclassinstallparams()為設(shè)備信息集設(shè)置或清空類安裝參數(shù),最后通過setupdicallclassinstaller()函數(shù)調(diào)用classinstaller執(zhí)行改變控制來確定是“啟用”還是“禁用”。3.4 小結(jié)本章主要介紹了waterbox系統(tǒng)及其主機(jī)設(shè)備管理子系統(tǒng)的總體設(shè)計(jì)。首先概述了系統(tǒng)的總體結(jié)構(gòu),然后介紹了子系統(tǒng)的
43、總體設(shè)計(jì),最后闡述了系統(tǒng)的基本設(shè)計(jì)概念及處理流程。下一章將介紹主機(jī)設(shè)備管理系統(tǒng)的詳細(xì)設(shè)計(jì),包括驗(yàn)證模塊、系統(tǒng)平臺(tái)、掃描在線主機(jī)模塊和主機(jī)設(shè)備管理模塊的設(shè)計(jì)與實(shí)現(xiàn)。第四章 詳細(xì)設(shè)計(jì)第四章 詳細(xì)設(shè)計(jì)基于系統(tǒng)需求分析與系統(tǒng)總體設(shè)計(jì)的結(jié)論,本系統(tǒng)采用visual c+6.0實(shí)現(xiàn)各模塊的功能,下面按照模塊的劃分來闡述系統(tǒng)的詳細(xì)設(shè)計(jì)和實(shí)現(xiàn)。4.1 權(quán)限驗(yàn)證模塊根據(jù)需求分析和總體設(shè)計(jì),此模塊主要是根據(jù)用戶輸入的用戶名和密碼,驗(yàn)證用戶身份并決定其操作權(quán)限。4.1.1 權(quán)限驗(yàn)證ipo圖輸入:用戶名和密碼處理:1) 管理員登陸對(duì)話框啟動(dòng);2) 管理員輸入用戶名并輸入密碼;3) 從系統(tǒng)中檢查是否有相應(yīng)的用戶名和密碼
44、;4) 如果用戶名或密碼錯(cuò)誤,進(jìn)行提示;5) 如果輸入的用戶名和相應(yīng)的密碼正確,則進(jìn)入主控制平臺(tái);輸出:主控制平臺(tái)4.1.2 權(quán)限驗(yàn)證模塊的界面設(shè)計(jì)該模塊通過登陸對(duì)話框?yàn)橛脩籼峁┎僮鹘缑妫缑娴脑O(shè)計(jì)效果如圖4-1所示。 圖4-1權(quán)限驗(yàn)證模塊的界面設(shè)計(jì)圖4.1.3 權(quán)限驗(yàn)證模塊的實(shí)現(xiàn)根據(jù)權(quán)限驗(yàn)證的ipo圖,通過定義clogindlg類來實(shí)現(xiàn)權(quán)限驗(yàn)證模塊的功能。下面介紹clogindlg類的設(shè)計(jì)和實(shí)現(xiàn)。處理過程:從系統(tǒng)中查找與所輸入的用戶名匹配的密碼,如果有則登陸主控制平臺(tái),否則提示登陸錯(cuò)誤信息。其代碼如下:void clogindlg:onok() / todo: add extra valid
45、ation hereupdatedata(true);/讀取輸入信息if(m_struser=admin)&(m_strpassword=admin)cdialog:oncancel();afxmessagebox(密碼輸入正確,歡迎您!,mb_iconinformation);elseafxmessagebox(密碼輸入錯(cuò)誤,請(qǐng)重新輸入!,mb_iconinformation);m_struser=;m_strpassword=;updatedata(false);4.2 系統(tǒng)主控平臺(tái)4.2.1 主控平臺(tái)界面設(shè)計(jì)充分考慮界面易于操作的系統(tǒng)需求,主控制平臺(tái)使用簡單和直觀的布局設(shè)計(jì),提供菜單和工
46、具欄兩種操作方式。主控平臺(tái)的界面設(shè)計(jì)如圖4-2所示。圖4-2 主控平臺(tái)圖4.2.2 主控平臺(tái)的實(shí)現(xiàn)1) 主體框架:使用mfc appwizard創(chuàng)建一個(gè)單文檔結(jié)構(gòu)的應(yīng)用程序工程,建立起系統(tǒng)主體框架,生成應(yīng)用程序類(cwaterboxapp)文檔類(cwaterboxdoc)、視圖類(cwaterboxview)和主框架類(cmainframe)。2) 菜單和工具欄:根據(jù)系統(tǒng)總體設(shè)計(jì)中功能模塊的劃分,使用資源編輯器創(chuàng)建系統(tǒng)菜單和工具欄。3) 背景圖:通過修改系統(tǒng)視圖類draw事件處理函數(shù)ondraw()來實(shí)現(xiàn)加載背景圖。其具體代碼如下:int b=bmp.loadbitmap(idb_bitma
47、p_bg);/將位圖取出dcmem.createcompatibledc(pdc);/創(chuàng)建兼容設(shè)備上下文dcmem.selectobject(&bmp);dcmem.setmapmode(pdc-getmapmode();getobject(bmp.m_hobject,sizeof(bitmap),(lpstr)&bm);/加載視圖到設(shè)備上下文中pdc-stretchblt(rectbmp.left,rectbmp.top,rectbmp.right,rectbmp.bottom,&dcmem,0,0,bm.bmwidth,bm.bmheight,srccopy);dcmem.deletedc
48、();/除設(shè)備上下文4.3 基于udp的網(wǎng)段掃描模塊74.3.1 設(shè)計(jì)思路程序運(yùn)行界面如圖4-3所示:圖4-3 程序運(yùn)行界面圖4.3.2 編程原理 udp與tcp簡介 tcp和udp是tcp/ip協(xié)議中的兩個(gè)傳輸層協(xié)議,它們使用ip路由功能把數(shù)據(jù)包發(fā)送到目的地,從而為應(yīng)用程序及應(yīng)用層協(xié)議(包括http、smtp、snmp、ftp和telnet)提供網(wǎng)絡(luò)服務(wù)。tcp提供的是面向連接的、可靠的數(shù)據(jù)流傳輸,而udp提供的是非面向連接的、不可靠的數(shù)據(jù)流傳輸。面向連接的協(xié)議在任何數(shù)據(jù)傳輸前就建立好了點(diǎn)對(duì)點(diǎn)的連接。atm和幀中繼是面向連接的協(xié)議,但它們工作在數(shù)據(jù)鏈路層,而不是在傳輸層。普通的
49、音頻電話也是面向連接的??煽康膫鬏攨f(xié)議可避免數(shù)據(jù)傳輸錯(cuò)誤。其實(shí)現(xiàn)方式是:在構(gòu)造數(shù)據(jù)包時(shí)在其中設(shè)置校驗(yàn)碼,到達(dá)目的地后采用一定的算法重新計(jì)算校驗(yàn)碼,通過比較,就可以找到被破壞的數(shù)據(jù)。因?yàn)樾枰匕l(fā)被破壞的和已經(jīng)丟失的數(shù)據(jù),所以在需要重發(fā)數(shù)據(jù)時(shí),協(xié)議必須能夠使目的地給出源頭的一個(gè)確認(rèn)信號(hào)。有些數(shù)據(jù)包不一定按照順序到達(dá),所以協(xié)議必須能夠探測出亂序的包,暫存起來,然后把它們按正確的順序送到應(yīng)用層去。另外,協(xié)議還必須能夠找出并丟棄重復(fù)發(fā)送的數(shù)據(jù)。一組定時(shí)器可以用戶限制針對(duì)不同確認(rèn)的等待時(shí)間,這樣就可以開始重新發(fā)送或重新連接。tcp不能在一個(gè)包內(nèi)以字節(jié)或位為單位構(gòu)造數(shù)據(jù),它只負(fù)責(zé)傳輸未經(jīng)構(gòu)造的8位字符串。非
50、面向連接的傳輸協(xié)議在數(shù)據(jù)傳輸之前不建立連接,而是在每個(gè)中間節(jié)點(diǎn)對(duì)非面向連接的包和數(shù)據(jù)包進(jìn)行路由。非面向連接的協(xié)議,如udp,是不可靠的連接。當(dāng)一個(gè)udp數(shù)據(jù)包在網(wǎng)絡(luò)中移動(dòng)時(shí),發(fā)送過程并不知道它是否到達(dá)目的地,除非應(yīng)用層已經(jīng)確認(rèn)了它已到達(dá)的事實(shí)。非面向連接的協(xié)議也不能探測重發(fā)和亂序數(shù)據(jù)包。在現(xiàn)代的網(wǎng)絡(luò)中,udp并不易于導(dǎo)致傳輸失敗,但是也不能肯定地說它時(shí)可靠的。與tcp協(xié)議相同,udp的源端口數(shù)也都支持一臺(tái)主機(jī)上的多個(gè)應(yīng)用。一個(gè)16位的udp包包含了一個(gè)字節(jié)長的頭部和數(shù)據(jù)的長度,校驗(yàn)碼域使其可以進(jìn)行整體校驗(yàn)。許多應(yīng)用只支持udp,如多媒體數(shù)據(jù)流,這種傳輸不產(chǎn)生任何額外的數(shù)據(jù),即使知道有破壞的包也
51、不進(jìn)行重發(fā)。在數(shù)據(jù)傳輸時(shí)間很短,以至于此前的連接過程成為整個(gè)流量主題的情況下,udp是一個(gè)好的選擇,如dns交換。把snmp建立在udp上的部分原因是設(shè)計(jì)者認(rèn)為當(dāng)發(fā)生網(wǎng)絡(luò)阻塞時(shí),udp較低的開銷使其有更好的機(jī)會(huì)去傳送管理數(shù)據(jù)。此模塊希望快速得到同網(wǎng)段機(jī)器的信息,而并不是需要特別可靠的連接確認(rèn)機(jī)制,故采用udp來實(shí)現(xiàn)。 csocket類中的udp相關(guān)函數(shù)vc+中的csocket類提供了udp的實(shí)現(xiàn),在創(chuàng)建套接字的函數(shù)creat里通過指定套接字類型為sock_stream,就可以實(shí)現(xiàn)udp的傳輸.下面介紹一下程序中要用到的幾個(gè)2csocket成員函數(shù)./創(chuàng)建特定類型的套接字bool
52、create(uint nsocketport=0,/斷口int nsockettype,/套接字類型lpctstr lpszsocketaddress=null/ip地址)套接字類型如下所示:sock_stream:流式套接字,提供一個(gè)面向連接,可靠的數(shù)據(jù)傳輸服務(wù),數(shù)據(jù)無差錯(cuò),無重復(fù)的發(fā)送,且按發(fā)送順序接受。內(nèi)設(shè)流量控制,避免數(shù)據(jù)流超限;數(shù)據(jù)被看作是字節(jié)流,無長度限制。文件傳送協(xié)議使用的是流式套接字.sockdgram:數(shù)據(jù)報(bào)式套接字,提供一個(gè)無連接服務(wù).數(shù)據(jù)包以獨(dú)立包形式被發(fā)送,不提供無錯(cuò)保證,數(shù)據(jù)可能丟失或重復(fù),并且接受順序混亂.網(wǎng)絡(luò)文件系統(tǒng)使用的是數(shù)據(jù)報(bào)式套接字.int sendto/
53、將數(shù)據(jù)寫到某種類型的socket,發(fā)送到指定地址(const void* lpbuf,/發(fā)送的數(shù)據(jù)int nbufflen,/數(shù)據(jù)長度uint nhostport,/目的端口lpctstr lpszhostaddress=null,/目的地址int nflags=0/調(diào)用方法);int receivefrom/接收數(shù)據(jù)(void* lpbuf,/接受的數(shù)據(jù)int nbufflen,/數(shù)據(jù)長度csring& rsocketaddress,/發(fā)送數(shù)據(jù)的機(jī)器ip unit&rsocketport,/斷口intnflags=0/調(diào)用方法);void onreceive/受到消息(int nerrorc
54、ode/錯(cuò)誤代碼); 事件函數(shù)和線程創(chuàng)建函數(shù)為了防止在查詢信息過程中界面不響應(yīng),例程中將查詢的代碼放到一個(gè)線程里單獨(dú)實(shí)現(xiàn)。為了控制線程的執(zhí)行,還引入了事件對(duì)象event,下面介紹一下相關(guān)函數(shù)。handle createevent/創(chuàng)建事件對(duì)象(lpsecurity_attributes lpeventattributes,/事件對(duì)象及成屬性bool bmanulreset,/明確重置類型,如果為true,則要用resetevent來重置bool binitialstate,/初始狀態(tài)lpcestr lpname;/對(duì)象名字);bool resetevent(handle heve
55、nt/事件地句柄);bool setevent(handle hevent/事件地句柄);dword waitforsingleobject/檢查現(xiàn)成的狀態(tài)(handle hhandle,/對(duì)象句柄 dword dwmilliseconds/超時(shí)間隔 );cwinthread* afxbeginthread/創(chuàng)建啟動(dòng)線程(afx_threadproc pfnthreadproc,/工作函數(shù)指針lpvoid pparam,/工作函數(shù)參數(shù)指針int npriority=thread_priority_normal,/線程優(yōu)先級(jí)uint nstacksize=0,/線程的堆大小dword dwcreateflags=0,/明確現(xiàn)成的附加屬性lpsecurity_attribute lpsecurityattrs=null/線程的安全屬性);4.3.3 實(shí)例祥解 初始化例程本章例程是基于對(duì)話框的。首先需要添加必要
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 《供配電技術(shù)》第1章 教案
- 綜合實(shí)踐的心得體會(huì)范文
- 文員的實(shí)習(xí)報(bào)告
- 青春的三分鐘演講稿范文(33篇)
- 房屋轉(zhuǎn)讓合同
- 少先隊(duì)緬懷先烈活動(dòng)方案
- DB12-T 1090-2021 1:500 1:2000基礎(chǔ)地理信息要素?cái)?shù)據(jù)庫技術(shù)規(guī)范
- 2024年心電圖機(jī)項(xiàng)目資金籌措計(jì)劃書代可行性研究報(bào)告
- 財(cái)務(wù)報(bào)表分析 教案 項(xiàng)目六 財(cái)務(wù)報(bào)表綜合分析
- 2023-2024學(xué)年廣東省深圳市華附集團(tuán)八年級(jí)(下)期中英語試卷
- 三級(jí)動(dòng)物疫病防治員職業(yè)鑒定理論考試題庫-下(判斷題)
- 印刷服務(wù) 投標(biāo)方案(技術(shù)方案)
- 三級(jí)公立醫(yī)院績效考核微創(chuàng)手術(shù)目錄(2022版)
- HJ 704-2014 土壤 有效磷的測定 碳酸氫鈉浸提-鉬銻抗分光光度法
- 責(zé)任保險(xiǎn)行業(yè)市場調(diào)研分析報(bào)告
- 中醫(yī)護(hù)理三基理論知識(shí)試題庫及參考答案
- 醫(yī)院信息化建設(shè)管理制度
- 2024年醫(yī)學(xué)高級(jí)職稱-普通外科學(xué)(醫(yī)學(xué)高級(jí))筆試考試歷年高頻考點(diǎn)試題摘選含答案
- 生鮮配送操作規(guī)范
- 教師心理健康B證心得體會(huì)7篇
- 同底數(shù)冪的乘法練習(xí)
評(píng)論
0/150
提交評(píng)論