諸堅彬 秦會斌 崔佳冬 秦利紅 曹曙光
1(杭州電子科技大學電子信息學院 浙江 杭州 310000)2(浙江和惠照明科技有限公司 浙江 余姚 315408)
?
基于組播技術的信息傳遞
諸堅彬1秦會斌1崔佳冬1秦利紅1曹曙光2
1(杭州電子科技大學電子信息學院浙江 杭州 310000)2(浙江和惠照明科技有限公司浙江 余姚 315408)
針對在局域網中,發送方無法傳遞信息給不在同一局域網內的第三方。提出一種通過組播技術傳遞信息給第三方的方法。在這種方法中,發送方將信息隱藏于組播包的MAC地址中,然后把這些組播包通過WiFi發送出去,第三方使用無線網絡抓包技術得到這些組播包,通過分析組播包的MAC地址解析出原始信息。該方法能夠實現類似TI(Texas Instruments)的smart config技術。在實驗中,通過與TI使用的方法作對比,表明這種方法明顯減少了所用網絡數據包的數量,耗時也大大減少,同時使信息易于解析,效率得到了很大的提高。
用戶名密碼組播MAC地址抓包解析
隨著“智能家居”概念的提出,WiFi的普及和物聯網技術的飛速發展,越來越多的家庭向往高效、安全、環保、舒適的家居生活[1]。
之前的智能設備在與家庭路由器連接時,需要通過操作設備的按鍵和屏幕 ,輸入路由器的帳戶名和密碼。僅為了實現連接路由器這一操作就配備按鍵和屏幕,不但提高了硬件成本,設備體積也相對較大。為此,TI推出了smart config技術。它通過一方將用戶名與密碼編碼成不同長度的UDP數據包,然后發送出去。另一方在無線環境中抓取這些UDP包,并將長度信息還原成用戶名與密碼,進而連接到路由器。這種技術通過手機APP軟件的操作,就可以使智能設備在不集成屏幕和鍵盤的情況下,讓智能設備連接上用戶指定的路由器。
但在這種方法中,單個數據包攜帶的信息量少,占用帶寬多,實現復雜和不易解析。本文提出了一種使用組播技術傳遞信息的方法,發送方將信息隱藏于組播包的MAC地址中,然后把這些組播包通過WiFi發送出去,第三方使用無線網絡得到這些組播包,分析其中的MAC地址解析出原始信息。這種方法提高了單個數據包攜帶的信息量,減少了帶寬占用,實現相對簡單,并易于解析。
目前主流路由器都具備加密功能,它們一般都支持WPA、WPA2、WPA-PSK、WPA2-PSK和WEP這些認證類型[2,3]。不同的認證類型又可以采用不同的加密算法。比如WPA認證類型有AES和TKIP這兩個不同的加密算法[4]。打開路由器WiFi加密功能后,用戶發出的WiFi網絡數據包被加密成密文,只有擁有密鑰的擁有者才可以解析出原始數據[5]。在本文中,假定A是數據包的發送者,B是數據包的截獲者。如果網絡數據包的原始數據被加密了,B即使截獲了A發出的數據包,也不能解析出原始數據。這增加了我們在某些情況下傳遞信息給第三方的難度。
2.1原理介紹
采用不同加密方式的WiFi環境,網絡數據包在加密前與加密后的長度存在不同的對應關系。在特定的某一種加密方式下,假定用戶發送的數據包在加密前的長度是X,加密后的長度是Y,M是基于該加密方式的某一固定長度,并且是可以預知的。那么它們之間存在式(1)的線性關系。基于這種線性關系,在已知Y和M的情況下,我們可以推算出X的準確值。
Y=X+M
(1)
整個過程是:A與B事先對X的長度作出某種約定,然后A將用戶名與密碼按約定計算,得到一串長度的序列,最后A將得到的這串序列按UDP數據包長度的形式通過WiFi發送出去。B接收后按原先與A的約定,解出攜帶的用戶名與密碼,就可以得到正確的用戶名和密碼,進而連接到該路由器。
2.2舉例說明
因為無線抓包存在丟包現象,不能保證一次就能抓到完整的序列,需要通過重復抓包來補全抓到的這串序列。在這種情況下,序列的次序就會被打亂,進而無法解析出正確的用戶名與密碼。因此數據需要一些冗余,來標識正確的順序。下面介紹一種可用的方法。
X取值范圍從0到127(用不到這么多,因為路由器的用戶名跟密碼只是一些可顯字符),與ASCII對應。將X的ASCII碼值分成前后兩部分。比如字符‘N’的ASCII碼為0x4E,那么它的高4位為0x4,低4位為0xE。
最終我們可以通過已知的帳戶名和密碼得到一串序列,該序列的序列號表示為2×i和2×i+1。將序列中的每個值放在一個字節中的低4位,該字節的高4位放序列號的調制值。得到一串序列如表1所示。

表1 UDP數據包的長度序列
為了區別用戶名和密碼,我們可以在用戶名和密碼序列之間插入特殊長度的數據包。這個特殊的數據包的長度必須在編碼結果取值范圍之外。比如長度為500。因為網絡傳輸的數據包有最小長度限制,不足的由TCP/IP協議棧填充,所以我們為每個數據包加入一個長度的基數,比如取值100。這樣可以避免長度過小的數據包被TCP/IP協議棧填充成TCP/IP協議中要求的最小長度,從而對我們的信息造成破壞。
按照以上定義,假如用戶名是“myhome”,密碼是“12345678”,(下面僅以用戶名詳細舉例計算)得到的序列如表2所示。

表2 UDP技術的編碼過程
最終的用戶名和密碼編碼序列如表3所示。

表3 UDP技術的最終長度序列
3.1原理介紹
IP網絡數據傳輸可分單播、組播和廣播三種方式[6]。組播在發送者和接收者之間實現一點對多點的網絡連接。組播IP地址標識一個IP組播組。IANA把D類地址空間分配給IP組播,其范圍是從224.0.0.0到239.255.255.255。組播IP地址與數據鏈路層的MAC地址存在一種映射關系:MAC地址前24位固定為0x01005E,第25位固定為0,后23位與組播IP地址的后23位相同[7,8]。基于上述映射關系,可以將用戶名與密碼按約定構成不同的組播IP地址,把它們隱藏在最終發送出去的數據包的MAC地址中。這樣,每個包可以攜帶23位有效二進制數據的信息。
3.2舉例說明
IP地址共有4個字節組成,十進制表示為:X1.X2.X3.X4。每個X位置都對應一個字節。
在這個例子中,X2用來作出一定的標識,X3,X4用來傳遞真實信息。我們需要X1固定為224到239之間的任一值,表示此為組播包。X2對應的8 bit中最高2 bit不用,置零。接下來的2 bit,稱之為flag位。最后4 bit稱為serial位。整個X2部分如圖1所示。flag位中,二進制00表示X3,X4攜帶的是帳戶名;二進制01表示X3,X4攜帶的是密碼。serial位表示數據包的順序,依次可以表示0到15,共16個數據包,因為每個包攜帶2個字節,剛好滿足路由器用戶名或密碼不超過32個字符的規則。

圖1 X2共8bit的含義定義
假如用戶名是“myhome”,密碼是“12345678”固定X1為225,得到的序列如表4所示。

表4 組播技術的最終IP序列
4.1實驗結果
實驗采用相同的設備和環境,使用Linux的libpcap[9]函數庫進行抓包。
基于UDP數據包長度傳遞信息的實驗結果如表5所示。

表5 基于UDP技術實驗結果
基于組播技術傳遞信息的實驗結果如表6所示。

表6 基于組播技術實驗結果
由表5和表6的實驗數據,得到兩種技術的網絡數據包的數量對比如圖2所示,消耗時間的對比如圖3所示。

圖2 網絡數據包的數量對比圖

圖3 消耗時間的對比
4.2結果分析和結論
通過圖2可以發現,傳輸相同字符數時,UDP技術所需要的數據包的數量大于組播技術。還可以發現,兩種技術在各自的曲線上比較接近滿足一種線性關系。UDP技術的曲線較組播技術的曲線更加陡峭。所以被傳遞的字符數的數量增加時,兩者之間的數量差距進一步擴大。
通過圖3可以發現,傳輸相同字符數時,UDP技術所消耗的時間遠高于組播技術。當傳輸的字符數增加時,兩者之間消耗的時間有進一步擴大的趨勢。這主要是因為,當傳輸的網絡數據包的數量增加時,抓包過程中丟包的概率也會相應的增大。這就要求抓包的設備通過重復抓包來補全丟失的數據包,從而使消耗的時間進一步增加。
通過兩種方法的實驗結果對比,可以發現:無論在需要的網絡數據包的數量上,還是在消耗的時間上,組播技術都明顯優于UDP技術。比較兩種技術的原理可以發現,UDP技術的算法實現比較復雜,不易實現。相比之下,組播技術的實現過程更為簡潔,效率也比較高。
本文提出了一種基于組播技術實現智能配對的方法。這種方法不僅可以用在智能配對上,還可以用在其他需要傳遞信息的場合。與采用UDP技術的智能配對相對比,該方法采用的組播技術的智能配對,在速度、占用帶寬、和實現過程這幾個方面都要優于之前的UDP技術。本文例子中使用的算法只是可以實現的方法中的其中一種,比如我們還可以使用字符壓縮算法,來縮短被傳遞的字符的數量。其他更加快速、有效的算法還需
要進一步探討。隨著“智能家居”的興起,該方法在智能家居領域會有廣闊的應用前景。
[1] 袁曉平,馬滿福.基于ARM11 的家電遠程控制系統[J].計算機應用與軟件,2013,30(10):288-292.
[2] 蔣福德,譚彬,鐘誠,等.中小型WLAN網絡安全防范探討[J].信息安全與通信保密,2012(8):106-115.
[3] 盛仲飆.WiFi 無線網絡技術及安全性研究[J].電子設計工程,2012,20(16):1-3.
[4] 吳一塵.WPA/WPA2-PSK 的安全性分析與改進[J].計算機與現代化,2013,30(1):153-157.
[5] 孟清, 劉運 ,鄺月娟.無線局域網通信安全機制研究[J].現代電子技術,2011,34(9):102-104.
[6] 成衛青,王雪梅,豆仁福,等.三種基本網絡傳送模式的編程實現與分析[J].計算機技術與發展,2011,21(7):132-137.
[7] W.Richard Stevens.TCP/IP Illustrated, Volume 1[M].Boston:Addison-Wesley Professional,1993.
[8] 包懷忠.IP 組播關鍵技術研究[J].計算機技術與發展,2009,19(4):138-142.
[9] 賈榮來,葉建偉.高性能網絡協議還原平臺的研究[J].計算機應用與軟件,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。諸堅彬,碩士生,主研領域:基于嵌入式Linux的智能家居開發。秦會斌,副教授。崔佳冬,副教授。秦利紅,碩士生。曹曙光,助理研究員。
TP393
A
10.3969/j.issn.1000-386x.2016.08.038