亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于傳輸層協(xié)議的網(wǎng)絡(luò)訪問(wèn)控制研究

        2017-03-24 10:30:53劉琦
        關(guān)鍵詞:域名解析

        劉琦

        【摘 要】基于通過(guò)域名解析控制網(wǎng)絡(luò)訪問(wèn)的原理,提出一種設(shè)計(jì)方案。首先運(yùn)用網(wǎng)絡(luò)分析庫(kù)WinPcap構(gòu)建網(wǎng)閘程序,抓取TCP/IP協(xié)議數(shù)據(jù)包,并進(jìn)行分析,篩選出DNS、HTTP等OSI應(yīng)用層協(xié)議的請(qǐng)求數(shù)據(jù)包。在此基礎(chǔ)上由網(wǎng)閘程序根據(jù)不同協(xié)議構(gòu)建響應(yīng)數(shù)據(jù)包回復(fù)這些請(qǐng)求,從而將網(wǎng)絡(luò)訪問(wèn)引導(dǎo)至指定IP地址,實(shí)現(xiàn)網(wǎng)絡(luò)訪問(wèn)控制。該方案的設(shè)計(jì)為相關(guān)技術(shù)的進(jìn)一步研究提供了新的思路和參考。

        【Abstract】Based on the principle of network access through DNS control, a design scheme is put forward. First using WinPcap network analysis library building network gateway program, grabbing the TCP/IP protocol packets, and analyzing it ,selecting the request packet of the OSI application layer protocol such as DNS, HTTP. On this basis, through the network gateway program reply to these requests according to different protocols build response packet, which will lead to specify the IP address, realize the network access control. The scheme design for relevant technology provides a new train of thought and reference for further research.

        【關(guān)鍵詞】TCP/IP協(xié)議;域名解析;DNS劫持;廣告路由器

        【Keywords】TCP/IP protocol; DNS; DNS hijacking; advertising router

        【中圖分類號(hào)】TP393.08 【文獻(xiàn)標(biāo)志碼】A 【文章編號(hào)】1673-1069(2017)03-0073-03

        1 引言

        域名解析是把域名解析到一個(gè)IP地址的過(guò)程,通過(guò)域名解析用戶不再需要記住難記的IP地址,只通過(guò)好記的域名即可訪問(wèn)服務(wù)器,是常見(jiàn)的用戶訪問(wèn)網(wǎng)絡(luò)的行為。而當(dāng)今有許多場(chǎng)景是需要對(duì)網(wǎng)絡(luò)訪問(wèn)進(jìn)行控制的,比如學(xué)校開(kāi)設(shè)的上機(jī)操作課程、公共場(chǎng)所免費(fèi)Wi-Fi信號(hào)的網(wǎng)絡(luò)接入認(rèn)證、對(duì)國(guó)內(nèi)外敏感網(wǎng)站的訪問(wèn)以及特定的內(nèi)部工作網(wǎng)絡(luò)等,都需要對(duì)用戶上網(wǎng)行為進(jìn)行控制。目前,控制用戶網(wǎng)絡(luò)訪問(wèn)的相關(guān)技術(shù)在國(guó)內(nèi)取得長(zhǎng)足進(jìn)展,許多硬件、軟件類產(chǎn)品已投入商業(yè)使用。

        2 目前常見(jiàn)的網(wǎng)絡(luò)訪問(wèn)控制技術(shù)介紹

        ①DNS協(xié)議特征分析技術(shù)。該技術(shù)原理是在網(wǎng)絡(luò)訪問(wèn)鏈路中一個(gè)節(jié)點(diǎn)的網(wǎng)絡(luò)設(shè)備上監(jiān)聽(tīng)DNS端口,根據(jù)DNS協(xié)議特征篩選出該端口上接收到來(lái)自用戶端的DNS查詢請(qǐng)求類數(shù)據(jù)包,并構(gòu)造一個(gè)指向特定IP地址的DNS響應(yīng)數(shù)據(jù)包返回給用戶端,常見(jiàn)的DNS劫持、DNS污染等都屬于該技術(shù)應(yīng)用范疇。該方案優(yōu)點(diǎn)在基于DNS協(xié)議特征進(jìn)行處理,不會(huì)被安全防護(hù)軟件、防火墻等視為網(wǎng)絡(luò)安全威脅。但其局限性在于不能完全阻止用戶的網(wǎng)絡(luò)訪問(wèn)行為,比如用戶可以通過(guò)IP地址直接訪問(wèn)網(wǎng)絡(luò),或者使用VPN上網(wǎng),這些能繞開(kāi)DNS解析。同時(shí),用戶端可以通過(guò)修改本機(jī)Hosts文件的方法設(shè)置域名正確的IP地址,也可以通過(guò)安裝防DNS污染軟件忽視掉不正確的解析結(jié)果,因此該技術(shù)的應(yīng)用效果有限,僅僅能控制通過(guò)域名來(lái)訪問(wèn)網(wǎng)絡(luò)的行為。[1]

        ②ARP欺騙技術(shù)。由于局域網(wǎng)的網(wǎng)絡(luò)流通不是根據(jù)IP地址進(jìn)行,而是根據(jù)MAC地址進(jìn)行傳輸。因此,在用戶端未獲得訪問(wèn)許可時(shí),可以將假網(wǎng)關(guān)設(shè)備的MAC偽裝成網(wǎng)關(guān)設(shè)備的MAC地址發(fā)給用戶端,讓用戶端的所有網(wǎng)絡(luò)訪問(wèn)數(shù)據(jù)包流向假網(wǎng)關(guān)設(shè)備,從而達(dá)到限制用戶端的網(wǎng)絡(luò)訪問(wèn)行為。ARP是地址解析協(xié)議,是一種將IP地址轉(zhuǎn)化成物理地址的協(xié)議,利用ARP協(xié)議就可以實(shí)現(xiàn)上述的技術(shù)方案。ARP的工作原理是:每臺(tái)主機(jī)都會(huì)在自己的ARP緩沖區(qū)中建立一個(gè)ARP列表,以表示局域網(wǎng)內(nèi)IP地址和MAC地址的對(duì)應(yīng)關(guān)系。當(dāng)源主機(jī)需要發(fā)送數(shù)據(jù)包到外網(wǎng)時(shí),是需要將數(shù)據(jù)包發(fā)往網(wǎng)關(guān)設(shè)備IP對(duì)應(yīng)的MAC地址的,因此會(huì)首先檢查自己ARP列表中是否存在網(wǎng)關(guān)IP地址對(duì)應(yīng)的MAC地址,如果有,則直接將數(shù)據(jù)包發(fā)送到這個(gè)MAC地址;如果沒(méi)有,就向局域網(wǎng)內(nèi)發(fā)送一個(gè)ARP請(qǐng)求的廣播包,查詢網(wǎng)關(guān)IP對(duì)應(yīng)的MAC地址。此ARP請(qǐng)求數(shù)據(jù)包里包括源主機(jī)IP地址、源主機(jī)MAC地址、目標(biāo)主機(jī)IP地址,其中源主機(jī)是指發(fā)出該ARP請(qǐng)求數(shù)據(jù)包的用戶端設(shè)備,而目標(biāo)主機(jī)是指源主機(jī)要查詢的IP對(duì)應(yīng)的網(wǎng)絡(luò)主機(jī)。局域網(wǎng)中所有主機(jī)收到這個(gè)ARP請(qǐng)求后,會(huì)檢查數(shù)據(jù)包中的目的IP是否和自己的IP地址一致。如果不一致就忽略此數(shù)據(jù)包;如果相同,該主機(jī)將源主機(jī)的MAC地址和IP地址更新到自己的ARP列表后,給源主機(jī)發(fā)送一個(gè)ARP響應(yīng)數(shù)據(jù)包,里面填寫了該主機(jī)的MAC地址;源主機(jī)收到這個(gè)ARP響應(yīng)數(shù)據(jù)包后,就得到了目標(biāo)主機(jī)的MAC地址,更新ARP列表中關(guān)于目標(biāo)主機(jī)的IP地址和MAC地址后,源主機(jī)就可以利用此信息開(kāi)始數(shù)據(jù)傳輸了。ARP欺騙技術(shù),就是利用ARP協(xié)議的工作原理,在源主機(jī)發(fā)送ARP請(qǐng)求數(shù)據(jù)包查詢網(wǎng)關(guān)IP地址對(duì)應(yīng)的MAC地址時(shí),回復(fù)一個(gè)ARP響應(yīng)數(shù)據(jù)包,將自己的MAC地址偽裝成網(wǎng)關(guān)設(shè)備的MAC地址發(fā)送給源主機(jī),源主機(jī)一旦接收后,則數(shù)據(jù)包將流向這個(gè)偽裝的網(wǎng)關(guān)地址。該技術(shù)方案的優(yōu)點(diǎn)是成功后用戶端的網(wǎng)絡(luò)訪問(wèn)能被完全限制。缺點(diǎn)是容易被針對(duì)。ARP欺騙屬于網(wǎng)絡(luò)安全威脅,因此很多硬件廠商和軟件商都推出很多產(chǎn)品用于防范ARP欺騙技術(shù),比如防ARP的工具軟件、帶ARP防護(hù)功能的路由器?;蛘咄ㄟ^(guò)靜態(tài)綁定、動(dòng)態(tài)不綁定等方法都可以有效防止ARP欺騙。因此并不適合推廣使用。

        ③通過(guò)硬件設(shè)備控制用戶端的網(wǎng)絡(luò)訪問(wèn)。這種技術(shù)也已投入到商業(yè)應(yīng)用中,比如智能Wi-Fi廣告路由器就是代表之一,用戶端需要通過(guò)該設(shè)備認(rèn)證,否則無(wú)法訪問(wèn)網(wǎng)絡(luò)。但是,傳統(tǒng)的智能Wi-Fi廣告路由器價(jià)格比較昂貴,且配置復(fù)雜,需要額外增加硬件,成本的增加和上手不易成為該技術(shù)推廣的最大障礙。

        3 基于TCP/IP協(xié)議的網(wǎng)絡(luò)訪問(wèn)控制技術(shù)

        綜合目前常見(jiàn)網(wǎng)絡(luò)訪問(wèn)控制技術(shù)的不足之處,本文提出了一種基于TCP/IP協(xié)議控制網(wǎng)絡(luò)訪問(wèn)的技術(shù)方案,能有效解決域名解析控制、繞開(kāi)解析管理、配置復(fù)雜、成本過(guò)高等問(wèn)題。通過(guò)本方案為相關(guān)技術(shù)發(fā)展在改進(jìn)網(wǎng)絡(luò)訪問(wèn)控制實(shí)際使用效果和提高技術(shù)推廣的可行性提供方面提供新思路和參考。

        3.1 相關(guān)知識(shí)介紹

        ①TCP/IP協(xié)議,是Internet最基本的協(xié)議,由網(wǎng)絡(luò)層的IP協(xié)議和傳輸層的TCP協(xié)議組成。TCP/IP定義了電子設(shè)備如何接入互聯(lián)網(wǎng),以及數(shù)據(jù)在網(wǎng)絡(luò)中的傳輸標(biāo)準(zhǔn),能將多個(gè)交換網(wǎng)絡(luò)連接起來(lái),實(shí)現(xiàn)源地址和目的地址之間的傳送數(shù)據(jù)。

        ②winpcap,是windows平臺(tái)下的網(wǎng)絡(luò)分析工具,為開(kāi)發(fā)人員提供了完整的網(wǎng)絡(luò)抓包和分析接口。通過(guò)該工具提供的開(kāi)發(fā)庫(kù),可以編寫出網(wǎng)閘程序監(jiān)聽(tīng)流經(jīng)主機(jī)網(wǎng)卡上的數(shù)據(jù)包,并可以通過(guò)該開(kāi)發(fā)庫(kù)構(gòu)建響應(yīng)數(shù)據(jù)包進(jìn)行回復(fù)。

        ③DNS協(xié)議,屬于應(yīng)用層協(xié)議,提供將用戶易于理解的主機(jī)名或域名轉(zhuǎn)換為計(jì)算機(jī)或網(wǎng)絡(luò)可識(shí)別的數(shù)字地址的機(jī)制。DNS端口號(hào)為53。

        ④HTTP協(xié)議,是一個(gè)屬于應(yīng)用層的面向?qū)ο蟮膮f(xié)議,是客戶端瀏覽器或其他程序與WEB服務(wù)器之間的應(yīng)用層通信協(xié)議。HTTP包含指令和傳輸信息,通過(guò)客戶端與服務(wù)器之間請(qǐng)求、應(yīng)答的交互過(guò)程,實(shí)現(xiàn)各類應(yīng)用資源、超媒體的訪問(wèn),是互聯(lián)網(wǎng)應(yīng)用最廣泛的一種網(wǎng)絡(luò)協(xié)議。

        3.2 工作原理

        由于用戶在訪問(wèn)內(nèi)網(wǎng)資源時(shí)數(shù)據(jù)包是不會(huì)經(jīng)過(guò)網(wǎng)關(guān)設(shè)備的,因此要控制用戶的網(wǎng)絡(luò)訪問(wèn)權(quán)限,只需要在網(wǎng)關(guān)設(shè)備上對(duì)源主機(jī)發(fā)來(lái)的數(shù)據(jù)進(jìn)行處理即可。

        通過(guò)winpcap開(kāi)發(fā)庫(kù)編寫一個(gè)網(wǎng)閘程序,并部署在局域網(wǎng)內(nèi)一臺(tái)主機(jī)上,將該主機(jī)設(shè)為網(wǎng)關(guān)。然后啟動(dòng)網(wǎng)閘程序,監(jiān)聽(tīng)網(wǎng)關(guān)主機(jī)上網(wǎng)卡收發(fā)到的數(shù)據(jù)包,篩選出來(lái)自局域網(wǎng)內(nèi)其他主機(jī)訪問(wèn)外網(wǎng)的TCP/IP數(shù)據(jù)包,若屬于DNS查詢請(qǐng)求,構(gòu)建一個(gè)指向特定IP地址的DNS解析結(jié)果數(shù)據(jù)包回復(fù)給源主機(jī);若屬于HTTP請(qǐng)求,構(gòu)建一個(gè)內(nèi)容為跳轉(zhuǎn)至特定URL地址的HTML響應(yīng)數(shù)據(jù)包并回復(fù)給源主機(jī);若屬于其他類型的數(shù)據(jù)包,則不響應(yīng)該數(shù)據(jù)包。通過(guò)網(wǎng)閘程序的處理,訪問(wèn)網(wǎng)站類的請(qǐng)求會(huì)被引導(dǎo)到特定的地址,可以外接驗(yàn)證程序讓用戶獲得上網(wǎng)的授權(quán),而其他非授權(quán)的訪問(wèn)請(qǐng)求則被忽略,達(dá)到限制用戶訪問(wèn)網(wǎng)絡(luò)的目的,通過(guò)軟件方式實(shí)現(xiàn)Wi-Fi廣告路由器的功能。[2]

        3.3 網(wǎng)閘程序關(guān)鍵功能的實(shí)現(xiàn)代碼

        ①監(jiān)聽(tīng)網(wǎng)卡上TCP/IP數(shù)據(jù)包的實(shí)現(xiàn)。

        void init()

        {

        //alldevs為網(wǎng)關(guān)主機(jī)上所有網(wǎng)卡設(shè)備, target為當(dāng)前監(jiān)聽(tīng)網(wǎng)卡設(shè)備

        pcap_if_t *alldevs, *target;

        //設(shè)置監(jiān)聽(tīng)條件,篩選出非網(wǎng)關(guān)主機(jī)的TCP/IP數(shù)據(jù)包

        char packet_filter[] = "ip or arp and ether src not f8:bc:12:93:36:f5";

        struct pcap_pkthdr *header;//抓取到的數(shù)據(jù)長(zhǎng)度信息

        const u_char *packet_data;//抓取到的數(shù)據(jù)包

        //開(kāi)啟監(jiān)聽(tīng),網(wǎng)閘程序?qū)⒆ト∶恳粋€(gè)符合條件的數(shù)據(jù)包

        while((res = pcap_next_ex( adhandle, &header, &pkt_data)) >= 0 && !_stop)

        {

        //處理數(shù)據(jù)包的代碼…

        }

        }

        ②DNS查詢請(qǐng)求處理的實(shí)現(xiàn)。

        void udpHandler(ip_header *ih, unsigned char *sourcePacket, pcap_pkthdr *header)

        {

        udp_header *uh;

        uh = (udp_header *)(sourcePacket + 14 + (ih->ver_ihl & 0xf) * 4);

        u_short dport;//目標(biāo)端口

        dport = ntohs(uh->dport);

        if (dport == 53)

        {

        //篩選出DNS的查詢請(qǐng)求

        if (((dnsh->flag & 0x0080) == 0x0000) && (ntohs(dnsh->qc) > 0))

        {

        dns_header rdnsh;//DNS報(bào)文頭,省略構(gòu)建其過(guò)程

        //開(kāi)始構(gòu)建DNS響應(yīng)報(bào)文

        char rdns_pkt[256];

        memcpy(rdns_pkt, &rdnsh, 12);//DNS報(bào)頭設(shè)置完畢

        u_char *pdns_data;//DNS報(bào)文內(nèi)容,省略其他項(xiàng)的填充

        u_long tmp_address = _dnscapip.ip;//本機(jī)地址,這里是192.168.1.68;

        memcpy(rdns_pkt + 12 + udp_data_q_len + 12, &tmp_address, 4);

        _dns_pkt_len += 16;

        //結(jié)束DNS響應(yīng)報(bào)文的填充

        u_char destPacket[512];//UDP發(fā)送報(bào)文,忽略填充過(guò)程

        //發(fā)送數(shù)據(jù)包至源主機(jī)

        if (pcap_sendpacket(adhandle, destPacket, _dns_pkt_len + 14 + 20 + 8 + 12) != 0)

        fprintf(stderr, "\n發(fā)送DNS報(bào)文失敗,錯(cuò)誤: %s\n", pcap_geterr(adhandle));

        }

        }

        }

        ③HTTPS請(qǐng)求處理的實(shí)現(xiàn)

        void tcpHandler(ip_header* ih, unsigned int ip_len, char *szSource, char *szDest, unsigned char *pkt_data, pcap_pkthdr *header)

        {

        tcp_header *th;

        th = (tcp_header *)((u_char *)ih + ip_len);

        int tcp_packet_len = (th->len >> 4) * 4;// TCP數(shù)據(jù)包頭長(zhǎng)度

        char *tcp_data; //TCP數(shù)據(jù)包

        tcp_data = (char *)th + tcp_packet_len;

        //判斷HTTP,含有HTTP的內(nèi)容為HTTP協(xié)議

        if (strstr(tcp_data, "HTTP/") != NULL)

        {

        //構(gòu)建回復(fù)源主機(jī)的包含HTML內(nèi)容的TCP數(shù)據(jù)包

        char send200[300] = "HTTP/1.1 200 OK\r\nDate: %s\r\nContent-Type: text/html\r\nConnection: Close\r\nContent-Length: %d\r\n\r\nCFailed";//發(fā)送內(nèi)容

        //填充發(fā)送內(nèi)容。包括時(shí)間,http長(zhǎng)度和本機(jī)IP

        sprintf_s(fp, send200, temptimebuff, _tmp_htmlstr_len, _wpc_lip);//_wpc_lip是本機(jī)IP

        //填充TCP數(shù)據(jù)包,省略內(nèi)容填充過(guò)程

        u_char destpacket[1024];

        //發(fā)送報(bào)文:

        if (pcap_sendpacket(adhandle, destpacket, send_len) != 0)

        fprintf(stderr, "\n發(fā)送HTTP報(bào)文失敗,錯(cuò)誤: %s\n", pcap_geterr(adhandle));

        }

        }

        4 結(jié)語(yǔ)

        本技術(shù)方案相比其他技術(shù)方案,具有很多優(yōu)點(diǎn)?;赥CP/IP協(xié)議,合理利用DNS、HTTP、IP等協(xié)議的工作原理實(shí)現(xiàn)網(wǎng)絡(luò)訪問(wèn)的控制,不會(huì)被安全軟件、防火墻等判為網(wǎng)絡(luò)安全威脅;具有良好兼容性。由于運(yùn)行于網(wǎng)關(guān)主機(jī)上,并對(duì)網(wǎng)卡抓取TCP/IP數(shù)據(jù)包,因此不論用戶修改hosts文件,還是直接通過(guò)IP地址訪問(wèn)網(wǎng)絡(luò),都無(wú)法成功繞開(kāi)網(wǎng)閘程序;具有經(jīng)濟(jì)性。本技術(shù)方案屬于純軟件,只需要部署在一臺(tái)能訪問(wèn)網(wǎng)絡(luò)的主機(jī)上即可,不需要額外的硬件設(shè)備。相比硬件技術(shù),本技術(shù)方案具有部署簡(jiǎn)單、運(yùn)營(yíng)成本低、配置方便和擴(kuò)展性靈活等特點(diǎn)。因此,具有良好的推廣前景。

        【參考文獻(xiàn)】

        【1】蘭少華,楊余旺,呂建勇. TCP/IP 網(wǎng)絡(luò)與協(xié)議[M].北京:清華大學(xué)出版社,2006.

        【2】尹惠實(shí). DNS體系結(jié)構(gòu)分析[J].中國(guó)教育網(wǎng)絡(luò),2007(03):89-90.

        猜你喜歡
        域名解析
        基于仿真軟件對(duì)協(xié)議數(shù)據(jù)單元的可視分析
        電子郵件與域名解析實(shí)驗(yàn)在仿真器中的設(shè)計(jì)與實(shí)現(xiàn)
        淺談DNS域名結(jié)構(gòu)及解析過(guò)程
        域名解析服務(wù)管理問(wèn)答
        免費(fèi)動(dòng)態(tài)域名解析軟件
        另類方法為網(wǎng)絡(luò)域名解析加速
        一種去中心化的網(wǎng)絡(luò)域名服務(wù)系統(tǒng)模型
        域名解析實(shí)驗(yàn)在仿真器中的設(shè)計(jì)與實(shí)現(xiàn)
        淺析DNS欺騙攻擊技術(shù)
        基于BIND的局域網(wǎng)動(dòng)態(tài)域名解析智能DNS的實(shí)現(xiàn)
        99热这里只有精品4| 亚洲精品乱码久久久久久| 亚洲香蕉成人av网站在线观看| 美丽的熟妇中文字幕| 91成人午夜性a一级毛片| 国产精品午夜高潮呻吟久久av| 久久久国产精品| 久久久久久人妻毛片a片| 老色鬼永久精品网站| 好看的国内自拍三级网站| 免费在线观看视频播放| 婷婷亚洲久悠悠色悠在线播放| 亚洲日韩一区二区一无码| 国产精品污一区二区三区在线观看| 丝袜美腿亚洲第一免费| 少妇私密会所按摩到高潮呻吟| 97欧美在线| 国产一区二区精品久久呦| 精品日韩一级免费视频| 国产顶级熟妇高潮xxxxx| 国产成人亚洲综合无码精品| 亚洲图文一区二区三区四区| 国产小视频在线看不卡| 精品国产sm捆绑最大网免费站| 日本在线观看不卡| 视频国产一区二区在线| 亚洲va韩国va欧美va| 亚洲色偷偷综合亚洲av伊人| 亚洲色无码中文字幕| 日本免费观看视频一区二区| 亚洲人成色7777在线观看| 国产高中生在线| 亚洲一区有码在线观看| 日本边添边摸边做边爱| 手机在线看永久av片免费| 啊v在线视频| 亚洲国产免费不卡视频| 亚洲日韩一区精品射精| 综合网五月| 成人在线观看视频免费播放| 亚洲人成网线在线播放va蜜芽|