国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

UPnP設(shè)備權(quán)限控制及安全協(xié)議的研究與設(shè)計*

2011-06-09 07:23:38孟祥宇王純李煒
關(guān)鍵詞:序列號控制點消息

孟祥宇,王純,李煒

(1 北京郵電大學(xué)網(wǎng)絡(luò)與交換技術(shù)國家重點實驗室,北京 100876;2 東信北郵信息技術(shù)有限公司,北京 100191)

通用即插即用(UPnP,Universal Plug and Play)是各種各樣的智能設(shè)備、無線設(shè)備和個人電腦等實現(xiàn)遍布全球的對等網(wǎng)絡(luò)連接(P2P)的結(jié)構(gòu)[1,2]。UPnP是一種分布式的,開放的網(wǎng)絡(luò)架構(gòu),它可以充分發(fā)揮TCP/IP和網(wǎng)絡(luò)技術(shù)的功能,不但能對類似網(wǎng)絡(luò)進行無縫連接,而且還能夠控制網(wǎng)絡(luò)設(shè)備及在它們之間傳輸信息。

一個完整的UPnP系統(tǒng)是由設(shè)備、服務(wù)和控制點3部分所構(gòu)成。UPnP設(shè)備是一個能夠提供一種或多種UPnP服務(wù)的服務(wù)器,控制點是一個控制器,它可以檢索設(shè)備和服務(wù)描述,發(fā)送動作到設(shè)備,查詢設(shè)備服務(wù)的狀態(tài)和從設(shè)備接收事件。UPnP的工作過程包括設(shè)備尋址、設(shè)備發(fā)現(xiàn)、設(shè)備描述、設(shè)備控制、事件通知和設(shè)備展示幾個部分。UPnP使用的協(xié)議包括簡單服務(wù)發(fā)現(xiàn)協(xié)議(SSDP,Simple Service Discovery Protocol)、簡單對象訪問協(xié)議(SOAP,Simple Object Access Protocol)、通用事件通知體系(GENA,Generic Event Notification Architecture)等[3]。

UPnP的應(yīng)用范圍非常廣泛,可以更加方便的實現(xiàn)家庭智能網(wǎng)絡(luò)中各種終端相互調(diào)用服務(wù)能力的新需求方案,但是應(yīng)用UPnP設(shè)備同時也存在許多安全隱患。如傳輸加密問題、服務(wù)隱藏問題、重發(fā)攻擊問題、緩沖區(qū)溢出問題等,在解決UPnP安全問題的方向上,相關(guān)的解決方案很少,UPnP論壇上也只是提出了一個有關(guān)安全控制臺的規(guī)范[4]。

1 UPnP的組成和工作過程

1.1 UPnP的組成

UPnP設(shè)備架構(gòu)采用如圖1所示的協(xié)議棧[3]。在最高一層,消息在邏輯上僅僅包含關(guān)于廠商設(shè)備的UPnP廠商特定信息。移至下一層協(xié)議后,協(xié)議內(nèi)容由UPnP論壇工作委員會定義和提供。來自以上各層的消息存儲在UPnP特定協(xié)議中,以上消息通過采用SSDP協(xié)議、GENA協(xié)議和SOAP協(xié)議來進行格式化。然后消息通過運行于UDP上的HTTPMU(Multicast UDP HTTP Messages)或HTTPU(Unicast UDP HTTP Messages),或是運行于TCP上的標(biāo)準HTTP進行傳輸。最終,以上所有消息均通過IP進行傳輸。

圖1 UPnP協(xié)議棧

1.2 UPnP的工作過程

整個UPnP的工作過程如圖2所示,由以下幾個過程構(gòu)成[3,5,6]。

圖2 UPnP的工作過程

簡要介紹下UPnP的工作流程:設(shè)備加入網(wǎng)絡(luò)后通過設(shè)備尋址就可自動獲得IP地址,通過設(shè)備發(fā)現(xiàn),控制點就可知道網(wǎng)絡(luò)上存在哪些設(shè)備,通過設(shè)備描述控制點就可知道設(shè)備詳細信息以及設(shè)備提供哪些服務(wù),通過設(shè)備控制控制點可以使用設(shè)備的服務(wù),通過設(shè)備事件設(shè)備就可以將其狀態(tài)變化及時告訴給感興趣的控制點,通過設(shè)備表征過程控制點可以用瀏覽器察看設(shè)備狀態(tài)和控制設(shè)備。通過上述的6個方面,UPnP設(shè)備可以做到在“零配置”的前提下提供聯(lián)網(wǎng)設(shè)備之間的自動發(fā)現(xiàn)、自動聲明、直接信息交換和互操作等功能,真正實現(xiàn)“設(shè)備即插即用”。

UPnP的工作流程圖如圖3所示[7]。

圖3 UPnP的工作流程圖

2 UPnP存在的安全問題

2.1 設(shè)備發(fā)現(xiàn)過程存在的安全問題

如果某個具備UPnP功能的設(shè)備引導(dǎo)成功并連接到網(wǎng)絡(luò)上,就會立刻向網(wǎng)絡(luò)發(fā)出廣播,向網(wǎng)絡(luò)上的UPnP控制點通知自己已經(jīng)準備就緒(即Notify消息),并且此消息包含設(shè)備的URL(Universal Resource Locator)。該廣播將被同一局域網(wǎng)的所有控制點聽到,以備控制點隨后進行控制之用。類似地,如果某個控制點剛剛連接到網(wǎng)絡(luò)上,也會向網(wǎng)絡(luò)發(fā)出廣播,表示自己準備就緒,可以控制網(wǎng)絡(luò)上的設(shè)備(即M-Search消息),該廣播也將被同一局域網(wǎng)的所有設(shè)備聽到。

UPnP的設(shè)備安全問題大部分就是在上述的一播一聽之間出現(xiàn)了問題。如果外部的攻擊者向某個用戶系統(tǒng)發(fā)送一個Notify消息,用戶的控制點就會收到這個消息,并且根據(jù)設(shè)備提供的虛假URL,連接到一個特定虛假服務(wù)器上,用戶的控制點接著向相應(yīng)的虛假服務(wù)器請求下載服務(wù),下載將要執(zhí)行的服務(wù)內(nèi)容,服務(wù)器當(dāng)然會響應(yīng)這個請求。UPnP系統(tǒng)將解釋這個設(shè)備的描述部分,發(fā)現(xiàn)設(shè)備提供的服務(wù)會讓控制點請求發(fā)送更多的文件,虛假服務(wù)器又需要響應(yīng)這些請求。這樣,就構(gòu)成一個“請求響應(yīng)”的循環(huán),大量占用系統(tǒng)資源,造成UPnP系統(tǒng)服務(wù)速度變慢,服務(wù)調(diào)用的混亂,甚至停止。所以外部的攻擊者控制UPnP控制點就會成為可能。而現(xiàn)在大量的網(wǎng)絡(luò)報道證明這已經(jīng)成為現(xiàn)實[8]。

2.2 設(shè)備控制過程存在的安全問題

UPnP設(shè)備通過SSDP廣播自己和提供服務(wù),而控制點通過SOAP來調(diào)用此服務(wù)。SOAP接口代表另一種可能的安全漏洞,因為這些軟件API可能會暴露功能。例如一個打包應(yīng)用程序可能有成百上千的關(guān)鍵操作被暴露,而所有這些都可以通過某個端口讀取;攻擊者可以得到更多他可以使用的標(biāo)準信息。Web服務(wù)描述語言(WSDL)文件、通用描述、檢測和整合(UDDI)等這些條目提供了關(guān)于服務(wù)的詳細信息,例如如何調(diào)用它,希望發(fā)送和接收什么樣的參數(shù)等,這些為黑客提供了登錄所使用的信息。SOAP信息和WSDL文件都是XML格式的,這種格式是自描述的,它清楚地顯示了數(shù)據(jù)元素和數(shù)據(jù)結(jié)構(gòu)。擁有這些信息,黑客能夠了解信息格式,并充分利用它。由于SOAP控制信息和回復(fù)沒有進行檢查和限制,這就會造成黑客進行監(jiān)聽,角色扮演和重播攻擊,以及弄虛作假、串改、偽造、歪曲數(shù)據(jù)[8]。

3 UPnP的安全問題解決方案

圖4 UPnP的三元結(jié)構(gòu)圖

由于UPnP設(shè)備在設(shè)備發(fā)現(xiàn),設(shè)備控制流程進行明文傳輸,并且對調(diào)用權(quán)限不做任何控制,帶來了很多安全隱患。下面提供作者設(shè)計的一種具有權(quán)限控制和安全檢測的UPnP安全協(xié)議流程,可以在一定程度上解決上面提到的安全隱患。此協(xié)議流程的應(yīng)用場景是在構(gòu)建一個家庭智能網(wǎng)絡(luò)的情況下使用到的,與原來傳統(tǒng)的控制點調(diào)用設(shè)備服務(wù)的二元關(guān)系不同,采用第三方認證鑒權(quán)的方式[9],引入了一個類似安全控制臺[4](SC,Security Console)的概念,安全控制臺進行密鑰管理,角色管理,證書管理的三元結(jié)構(gòu),如圖4所示。

3.1 設(shè)備初始化

在每一個設(shè)備加入家庭網(wǎng)絡(luò)前,如果想得到家庭網(wǎng)絡(luò)內(nèi)設(shè)備互聯(lián)互通的功能,首先要進行初始化階段,即必須要向SC進行登記信息,控制點(或者設(shè)備)向SC提供自己的設(shè)備唯一標(biāo)識(UUID,Universally Unique Identifier)和公鑰,然后SC向登記的控制點(或者設(shè)備)發(fā)放SC的自簽名證書,并且將控制點(或者設(shè)備)的UUID和公鑰簽名并制作證書發(fā)放給控制點(或者設(shè)備),SC登記控制點(或者設(shè)備)的角色信息,并將角色信息加入到訪問控制列表里,角色是SC確定控制點(或者設(shè)備)的安全級別的一個標(biāo)識。

圖5 初始化流程

初始化流程圖如圖5所示。

3.2 安全設(shè)備發(fā)現(xiàn)

當(dāng)控制點(或者設(shè)備)通過SSDP消息發(fā)現(xiàn)新的設(shè)備(或者控制點)加入到網(wǎng)絡(luò)中,雙方首先交換證書,如果證明對方證書是合法的,就將對方加入到信任的安全列表里,流程如圖6所示。

圖6 設(shè)備安全發(fā)現(xiàn)

3.3 安全下載設(shè)備描述文檔

在下載設(shè)備描述階段,當(dāng)控制點要進行設(shè)備描述文檔和服務(wù)描述文檔下載時,首先控制點要進行一次附帶請求序列號的下載請求,每次發(fā)送請求序列號要遞增,控制點對請求消息連同請求序列號用散列函數(shù)生成摘要,然后將請求消息、請求序列號、摘要用設(shè)備的公鑰加密后傳輸。

設(shè)備在接到請求消息時,首先進行解密,然后通過摘要對消息完整性進行驗證,通過請求序列號對重發(fā)性進行驗證,驗證無誤后返回描述文檔的內(nèi)容。整個流程如圖7所示。

3.4 設(shè)備安全控制

設(shè)備安全控制控制點調(diào)用請求和應(yīng)答與下載描述文檔請求和應(yīng)答相似,唯一不同的地方就是要連同控制點的角色信息一起做摘要,然后進行加密傳輸。

圖7 描述文檔下載流程

設(shè)備收到請求時執(zhí)行的流程圖如圖8所示。

圖8 設(shè)備安全控制調(diào)用流程

4 總結(jié)

控制點和設(shè)備使用非對稱加密算法進行通信,雙方只有交換經(jīng)過SC頒發(fā)的證書后才能夠通信,之所以使用非對稱加密算法,是因為公鑰是不怕被第三方截取的;通信雙方接到對方的公鑰后就可以使用對方的公鑰加密信息進行通信,只有擁有相應(yīng)私鑰的通信對象才能夠解密,這樣就可以使通信的消息安全到達對方,并且使用非對稱密鑰可以進行防抵賴驗證[10]。

防重發(fā)攻擊是通過請求序列號實現(xiàn)的[4],請求序列號每次請求時都要遞增,遞增到最大值時重新從0開始計算,請求序列號連同請求消息進行摘要運算,并且進行加密傳輸,所以,請求序列號的傳輸安全性是有保證的。信息傳遞前,將對方的請求序列號加一并與將要傳遞的消息構(gòu)建新的數(shù)據(jù)分組并做摘要然后加密傳輸給對方,這樣對方就可以根據(jù)得到是數(shù)據(jù)分組中的請求序列號判斷是否是新的請求,如果不是就丟棄并等待正確的消息的到來。這樣保證了通信雙方一次連接的消息傳遞的抗重發(fā)攻擊能力,從而保證了一次連接的抗干擾能力。

設(shè)備需要對非法的控制點或者認證中心實現(xiàn)服務(wù)隱藏,而服務(wù)隱藏是通過去SC做身份認證才能實現(xiàn)的,控制點或認證中心要想獲得設(shè)備的設(shè)備描述文檔就需要發(fā)送GET命令,GET命令里的描述信息是通過加密以及攜帶請求序列號傳輸?shù)模@樣很好的保證了設(shè)備描述信息的隱藏,隱藏了設(shè)備描述信息就可以避免服務(wù)描述信息被非法獲取,從而保護了服務(wù)信息。

因為使用了加密算法和摘要運算,此安全協(xié)議在時間性能上比原協(xié)議有所下降,但是由于UPnP消息長度較小,并且新協(xié)議的安全性有很大提高,所以性能的下降在可以接受的范圍內(nèi)。

[1] 范新運. 基于UPnP的家庭智能系統(tǒng)研究與是實踐[D]. 西安:西北工業(yè)大學(xué),2005,3-10.

[2] UPnP,http://baike.baidu.com/view/27925.htm[EB/OL].

[3] UPnP Forum UPnP Device Architecture 1.1 Document Revision[Z].October 2008.

[4] UPnP Forum. UPnP? Security Ceremonies Design Document for UPnP Device Architecture 1.0[Z]. October 3, 2003.

[5] 王增軍. 基于Intel UPnP SDK的UPnP協(xié)議編程[M]. 北京:北京理工大學(xué),2005,1-4.

[6] Abdullah Al Hasib, Prof. Dr. M. A. Mottalib, Vulnerability analysis and protection schemes of universal plug and play protocol[A]. 2010 13th IEEE International Conference on Computational Science and Engineering[C].222-228.

[7] Intel SDK for UPnP Devices Version 1.2.1. November 2002, UPNP編程指南[Z]. 7-8.

[8] 劉武明. UPnP設(shè)備安全服務(wù)的設(shè)計與實現(xiàn)[D]. 北京:北京大學(xué),9-17.

[9] 張磊,廖建新,陳俊亮. 基于簽約信息的智能業(yè)務(wù)鑒權(quán)系統(tǒng)的設(shè)計與實現(xiàn)[J]. 北京郵電大學(xué)學(xué)報, 27(增刊):98-101.

[10] 鹿曉文,陳援非,朱珍民,劉向前,王加連. UPnP-Sec:一種安全UPnP協(xié)議的設(shè)計與實現(xiàn)[R]. 北京:中國科學(xué)院計算機研究所,2-8.

猜你喜歡
序列號控制點消息
一張圖看5G消息
recALL
NFFD控制點分布對氣動外形優(yōu)化的影響
基于風(fēng)險管理下的項目建設(shè)內(nèi)部控制點思考
相似材料模型中控制點像點坐標(biāo)定位研究
SDCORS在基礎(chǔ)地理信息控制點補測中的應(yīng)用
消息
消息
消息
PP助手教你辨別翻新iPhone5小白不再中招
特克斯县| 合川市| 繁昌县| 涞水县| 镇宁| 西充县| 徐州市| 满洲里市| 南岸区| 孝义市| 高青县| 札达县| 句容市| 庆云县| 观塘区| 靖安县| 清新县| 盐源县| 千阳县| 神木县| 沙雅县| 湘阴县| 多伦县| 宁晋县| 梓潼县| 灵丘县| 昌都县| 浏阳市| 卢龙县| 台前县| 南涧| 溆浦县| 旬阳县| 阜平县| 南昌县| 永寿县| 竹北市| 靖宇县| 石城县| 崇义县| 丰台区|