諸堅(jiān)彬 秦會(huì)斌 崔佳冬 秦利紅 曹曙光
1(杭州電子科技大學(xué)電子信息學(xué)院 浙江 杭州 310000)2(浙江和惠照明科技有限公司 浙江 余姚 315408)
?
基于組播技術(shù)的信息傳遞
諸堅(jiān)彬1秦會(huì)斌1崔佳冬1秦利紅1曹曙光2
1(杭州電子科技大學(xué)電子信息學(xué)院浙江 杭州 310000)2(浙江和惠照明科技有限公司浙江 余姚 315408)
針對(duì)在局域網(wǎng)中,發(fā)送方無法傳遞信息給不在同一局域網(wǎng)內(nèi)的第三方。提出一種通過組播技術(shù)傳遞信息給第三方的方法。在這種方法中,發(fā)送方將信息隱藏于組播包的MAC地址中,然后把這些組播包通過WiFi發(fā)送出去,第三方使用無線網(wǎng)絡(luò)抓包技術(shù)得到這些組播包,通過分析組播包的MAC地址解析出原始信息。該方法能夠?qū)崿F(xiàn)類似TI(Texas Instruments)的smart config技術(shù)。在實(shí)驗(yàn)中,通過與TI使用的方法作對(duì)比,表明這種方法明顯減少了所用網(wǎng)絡(luò)數(shù)據(jù)包的數(shù)量,耗時(shí)也大大減少,同時(shí)使信息易于解析,效率得到了很大的提高。
用戶名密碼組播MAC地址抓包解析
隨著“智能家居”概念的提出,WiFi的普及和物聯(lián)網(wǎng)技術(shù)的飛速發(fā)展,越來越多的家庭向往高效、安全、環(huán)保、舒適的家居生活[1]。
之前的智能設(shè)備在與家庭路由器連接時(shí),需要通過操作設(shè)備的按鍵和屏幕 ,輸入路由器的帳戶名和密碼。僅為了實(shí)現(xiàn)連接路由器這一操作就配備按鍵和屏幕,不但提高了硬件成本,設(shè)備體積也相對(duì)較大。為此,TI推出了smart config技術(shù)。它通過一方將用戶名與密碼編碼成不同長度的UDP數(shù)據(jù)包,然后發(fā)送出去。另一方在無線環(huán)境中抓取這些UDP包,并將長度信息還原成用戶名與密碼,進(jìn)而連接到路由器。這種技術(shù)通過手機(jī)APP軟件的操作,就可以使智能設(shè)備在不集成屏幕和鍵盤的情況下,讓智能設(shè)備連接上用戶指定的路由器。
但在這種方法中,單個(gè)數(shù)據(jù)包攜帶的信息量少,占用帶寬多,實(shí)現(xiàn)復(fù)雜和不易解析。本文提出了一種使用組播技術(shù)傳遞信息的方法,發(fā)送方將信息隱藏于組播包的MAC地址中,然后把這些組播包通過WiFi發(fā)送出去,第三方使用無線網(wǎng)絡(luò)得到這些組播包,分析其中的MAC地址解析出原始信息。這種方法提高了單個(gè)數(shù)據(jù)包攜帶的信息量,減少了帶寬占用,實(shí)現(xiàn)相對(duì)簡單,并易于解析。
目前主流路由器都具備加密功能,它們一般都支持WPA、WPA2、WPA-PSK、WPA2-PSK和WEP這些認(rèn)證類型[2,3]。不同的認(rèn)證類型又可以采用不同的加密算法。比如WPA認(rèn)證類型有AES和TKIP這兩個(gè)不同的加密算法[4]。打開路由器WiFi加密功能后,用戶發(fā)出的WiFi網(wǎng)絡(luò)數(shù)據(jù)包被加密成密文,只有擁有密鑰的擁有者才可以解析出原始數(shù)據(jù)[5]。在本文中,假定A是數(shù)據(jù)包的發(fā)送者,B是數(shù)據(jù)包的截獲者。如果網(wǎng)絡(luò)數(shù)據(jù)包的原始數(shù)據(jù)被加密了,B即使截獲了A發(fā)出的數(shù)據(jù)包,也不能解析出原始數(shù)據(jù)。這增加了我們?cè)谀承┣闆r下傳遞信息給第三方的難度。
2.1原理介紹
采用不同加密方式的WiFi環(huán)境,網(wǎng)絡(luò)數(shù)據(jù)包在加密前與加密后的長度存在不同的對(duì)應(yīng)關(guān)系。在特定的某一種加密方式下,假定用戶發(fā)送的數(shù)據(jù)包在加密前的長度是X,加密后的長度是Y,M是基于該加密方式的某一固定長度,并且是可以預(yù)知的。那么它們之間存在式(1)的線性關(guān)系。基于這種線性關(guān)系,在已知Y和M的情況下,我們可以推算出X的準(zhǔn)確值。
Y=X+M
(1)
整個(gè)過程是:A與B事先對(duì)X的長度作出某種約定,然后A將用戶名與密碼按約定計(jì)算,得到一串長度的序列,最后A將得到的這串序列按UDP數(shù)據(jù)包長度的形式通過WiFi發(fā)送出去。B接收后按原先與A的約定,解出攜帶的用戶名與密碼,就可以得到正確的用戶名和密碼,進(jìn)而連接到該路由器。
2.2舉例說明
因?yàn)闊o線抓包存在丟包現(xiàn)象,不能保證一次就能抓到完整的序列,需要通過重復(fù)抓包來補(bǔ)全抓到的這串序列。在這種情況下,序列的次序就會(huì)被打亂,進(jìn)而無法解析出正確的用戶名與密碼。因此數(shù)據(jù)需要一些冗余,來標(biāo)識(shí)正確的順序。下面介紹一種可用的方法。
X取值范圍從0到127(用不到這么多,因?yàn)槁酚善鞯挠脩裘艽a只是一些可顯字符),與ASCII對(duì)應(yīng)。將X的ASCII碼值分成前后兩部分。比如字符‘N’的ASCII碼為0x4E,那么它的高4位為0x4,低4位為0xE。
最終我們可以通過已知的帳戶名和密碼得到一串序列,該序列的序列號(hào)表示為2×i和2×i+1。將序列中的每個(gè)值放在一個(gè)字節(jié)中的低4位,該字節(jié)的高4位放序列號(hào)的調(diào)制值。得到一串序列如表1所示。
表1 UDP數(shù)據(jù)包的長度序列
為了區(qū)別用戶名和密碼,我們可以在用戶名和密碼序列之間插入特殊長度的數(shù)據(jù)包。這個(gè)特殊的數(shù)據(jù)包的長度必須在編碼結(jié)果取值范圍之外。比如長度為500。因?yàn)榫W(wǎng)絡(luò)傳輸?shù)臄?shù)據(jù)包有最小長度限制,不足的由TCP/IP協(xié)議棧填充,所以我們?yōu)槊總€(gè)數(shù)據(jù)包加入一個(gè)長度的基數(shù),比如取值100。這樣可以避免長度過小的數(shù)據(jù)包被TCP/IP協(xié)議棧填充成TCP/IP協(xié)議中要求的最小長度,從而對(duì)我們的信息造成破壞。
按照以上定義,假如用戶名是“myhome”,密碼是“12345678”,(下面僅以用戶名詳細(xì)舉例計(jì)算)得到的序列如表2所示。
表2 UDP技術(shù)的編碼過程
最終的用戶名和密碼編碼序列如表3所示。
表3 UDP技術(shù)的最終長度序列
3.1原理介紹
IP網(wǎng)絡(luò)數(shù)據(jù)傳輸可分單播、組播和廣播三種方式[6]。組播在發(fā)送者和接收者之間實(shí)現(xiàn)一點(diǎn)對(duì)多點(diǎn)的網(wǎng)絡(luò)連接。組播IP地址標(biāo)識(shí)一個(gè)IP組播組。IANA把D類地址空間分配給IP組播,其范圍是從224.0.0.0到239.255.255.255。組播IP地址與數(shù)據(jù)鏈路層的MAC地址存在一種映射關(guān)系:MAC地址前24位固定為0x01005E,第25位固定為0,后23位與組播IP地址的后23位相同[7,8]。基于上述映射關(guān)系,可以將用戶名與密碼按約定構(gòu)成不同的組播IP地址,把它們隱藏在最終發(fā)送出去的數(shù)據(jù)包的MAC地址中。這樣,每個(gè)包可以攜帶23位有效二進(jìn)制數(shù)據(jù)的信息。
3.2舉例說明
IP地址共有4個(gè)字節(jié)組成,十進(jìn)制表示為:X1.X2.X3.X4。每個(gè)X位置都對(duì)應(yīng)一個(gè)字節(jié)。
在這個(gè)例子中,X2用來作出一定的標(biāo)識(shí),X3,X4用來傳遞真實(shí)信息。我們需要X1固定為224到239之間的任一值,表示此為組播包。X2對(duì)應(yīng)的8 bit中最高2 bit不用,置零。接下來的2 bit,稱之為flag位。最后4 bit稱為serial位。整個(gè)X2部分如圖1所示。flag位中,二進(jìn)制00表示X3,X4攜帶的是帳戶名;二進(jìn)制01表示X3,X4攜帶的是密碼。serial位表示數(shù)據(jù)包的順序,依次可以表示0到15,共16個(gè)數(shù)據(jù)包,因?yàn)槊總€(gè)包攜帶2個(gè)字節(jié),剛好滿足路由器用戶名或密碼不超過32個(gè)字符的規(guī)則。
圖1 X2共8bit的含義定義
假如用戶名是“myhome”,密碼是“12345678”固定X1為225,得到的序列如表4所示。
表4 組播技術(shù)的最終IP序列
4.1實(shí)驗(yàn)結(jié)果
實(shí)驗(yàn)采用相同的設(shè)備和環(huán)境,使用Linux的libpcap[9]函數(shù)庫進(jìn)行抓包。
基于UDP數(shù)據(jù)包長度傳遞信息的實(shí)驗(yàn)結(jié)果如表5所示。
表5 基于UDP技術(shù)實(shí)驗(yàn)結(jié)果
基于組播技術(shù)傳遞信息的實(shí)驗(yàn)結(jié)果如表6所示。
表6 基于組播技術(shù)實(shí)驗(yàn)結(jié)果
由表5和表6的實(shí)驗(yàn)數(shù)據(jù),得到兩種技術(shù)的網(wǎng)絡(luò)數(shù)據(jù)包的數(shù)量對(duì)比如圖2所示,消耗時(shí)間的對(duì)比如圖3所示。
圖2 網(wǎng)絡(luò)數(shù)據(jù)包的數(shù)量對(duì)比圖
圖3 消耗時(shí)間的對(duì)比
4.2結(jié)果分析和結(jié)論
通過圖2可以發(fā)現(xiàn),傳輸相同字符數(shù)時(shí),UDP技術(shù)所需要的數(shù)據(jù)包的數(shù)量大于組播技術(shù)。還可以發(fā)現(xiàn),兩種技術(shù)在各自的曲線上比較接近滿足一種線性關(guān)系。UDP技術(shù)的曲線較組播技術(shù)的曲線更加陡峭。所以被傳遞的字符數(shù)的數(shù)量增加時(shí),兩者之間的數(shù)量差距進(jìn)一步擴(kuò)大。
通過圖3可以發(fā)現(xiàn),傳輸相同字符數(shù)時(shí),UDP技術(shù)所消耗的時(shí)間遠(yuǎn)高于組播技術(shù)。當(dāng)傳輸?shù)淖址麛?shù)增加時(shí),兩者之間消耗的時(shí)間有進(jìn)一步擴(kuò)大的趨勢。這主要是因?yàn)?,?dāng)傳輸?shù)木W(wǎng)絡(luò)數(shù)據(jù)包的數(shù)量增加時(shí),抓包過程中丟包的概率也會(huì)相應(yīng)的增大。這就要求抓包的設(shè)備通過重復(fù)抓包來補(bǔ)全丟失的數(shù)據(jù)包,從而使消耗的時(shí)間進(jìn)一步增加。
通過兩種方法的實(shí)驗(yàn)結(jié)果對(duì)比,可以發(fā)現(xiàn):無論在需要的網(wǎng)絡(luò)數(shù)據(jù)包的數(shù)量上,還是在消耗的時(shí)間上,組播技術(shù)都明顯優(yōu)于UDP技術(shù)。比較兩種技術(shù)的原理可以發(fā)現(xiàn),UDP技術(shù)的算法實(shí)現(xiàn)比較復(fù)雜,不易實(shí)現(xiàn)。相比之下,組播技術(shù)的實(shí)現(xiàn)過程更為簡潔,效率也比較高。
本文提出了一種基于組播技術(shù)實(shí)現(xiàn)智能配對(duì)的方法。這種方法不僅可以用在智能配對(duì)上,還可以用在其他需要傳遞信息的場合。與采用UDP技術(shù)的智能配對(duì)相對(duì)比,該方法采用的組播技術(shù)的智能配對(duì),在速度、占用帶寬、和實(shí)現(xiàn)過程這幾個(gè)方面都要優(yōu)于之前的UDP技術(shù)。本文例子中使用的算法只是可以實(shí)現(xiàn)的方法中的其中一種,比如我們還可以使用字符壓縮算法,來縮短被傳遞的字符的數(shù)量。其他更加快速、有效的算法還需
要進(jìn)一步探討。隨著“智能家居”的興起,該方法在智能家居領(lǐng)域會(huì)有廣闊的應(yīng)用前景。
[1] 袁曉平,馬滿福.基于ARM11 的家電遠(yuǎn)程控制系統(tǒng)[J].計(jì)算機(jī)應(yīng)用與軟件,2013,30(10):288-292.
[2] 蔣福德,譚彬,鐘誠,等.中小型WLAN網(wǎng)絡(luò)安全防范探討[J].信息安全與通信保密,2012(8):106-115.
[3] 盛仲飆.WiFi 無線網(wǎng)絡(luò)技術(shù)及安全性研究[J].電子設(shè)計(jì)工程,2012,20(16):1-3.
[4] 吳一塵.WPA/WPA2-PSK 的安全性分析與改進(jìn)[J].計(jì)算機(jī)與現(xiàn)代化,2013,30(1):153-157.
[5] 孟清, 劉運(yùn) ,鄺月娟.無線局域網(wǎng)通信安全機(jī)制研究[J].現(xiàn)代電子技術(shù),2011,34(9):102-104.
[6] 成衛(wèi)青,王雪梅,豆仁福,等.三種基本網(wǎng)絡(luò)傳送模式的編程實(shí)現(xiàn)與分析[J].計(jì)算機(jī)技術(shù)與發(fā)展,2011,21(7):132-137.
[7] W.Richard Stevens.TCP/IP Illustrated, Volume 1[M].Boston:Addison-Wesley Professional,1993.
[8] 包懷忠.IP 組播關(guān)鍵技術(shù)研究[J].計(jì)算機(jī)技術(shù)與發(fā)展,2009,19(4):138-142.
[9] 賈榮來,葉建偉.高性能網(wǎng)絡(luò)協(xié)議還原平臺(tái)的研究[J].計(jì)算機(jī)應(yīng)用與軟件,2013,30(1):253-255,266.
INFORMATION TRANSMISSION BASED ON MULTICAST TECHNOLOGY
Zhu Jianbin1Qin Huibin1Cui Jiadong1Qin Lihong1Cao Shuguang2
1(CollegeofElectronicsandInformation,HangzhouDianziUniversity,Hangzhou310000,Zhejiang,China)2(ZhejiangHowellIlluminateTechnologyCo.,Ltd.,Yuyao315408,Zhejiang,China)
We proposed a method that transfers information to a third party using multicast technology, thus solves the problem that the sender in a local area network (LAN) cannot pass the information onto a third party not in same LAN. In this method, the sender hides the information in MAC address of multicast packets, and then sends these multicast packets out through WiFi, the third party gets these multicast packets by wireless network packet capture, and figures out the original information by analysing the MAC address of multicast packets. This method can implement the technique similar to smart config of TI (Texas Instruments). In experiment, by comparing it with the method the TI using, we found that this one noticeably decreased the amount of packets used in the network and reduced the time consumption as well, meanwhile it also made the information easy to be figured out, and greatly improved the efficiency.
UsernamePasswordMulticastMACPacket captureParse
2015-04-13。諸堅(jiān)彬,碩士生,主研領(lǐng)域:基于嵌入式Linux的智能家居開發(fā)。秦會(huì)斌,副教授。崔佳冬,副教授。秦利紅,碩士生。曹曙光,助理研究員。
TP393
A
10.3969/j.issn.1000-386x.2016.08.038