第二章 文獻探討
2.4 技術背景
Broadband Forum(前身為 DSL Forum)於 2004 年 5 月提出了一個遠程控制使用 者終端設備的通訊協定 CWMP(CPE WAN Management Protocol),編號為 TR-069
(Technical Report 069),又稱為 TR-069 協定,其網路架構如圖 2.1。CWMP 中,CPE
(Customer Premises Equipment)和 ACS(Auto-Configuration Server)之間是透過一個 或多個遠端程序呼叫(Remote Procedure Call,簡稱 RPC)方法(Methods)來進行溝通,
RPC Methods 如表 2.2,透過方法的組成來完成欲進行的遠端管理任務,使用 SOAP 透過 HTTP 傳輸,CPE 可藉由這個協定完成服務的開通、功能設定、檔案上傳下載、
系統檢測等基本功能。
RPC Methods 的編碼方式採用可延伸標記式語言(eXtensible Markup Language,簡 稱 XML)為基礎的 SOAP 協定,其中,CWMP 協定建議使用 SOAP 1.1 版本,而 SOAP 的傳輸是使用 HTTP1.1 的版本,透過 TCP/IP 通訊協定傳送,傳輸的過程中則利用安 全資料傳輸層(Secure Sockets Layer,SSL)或傳輸層安全標準(Transport Layer Security,
TLS)來進行資料的加密保護。CWMP 在傳輸安全中,規範兩種安全技術的使用時機,
第一種為直接透過 TCP/IP 傳送資料,使用 HTTP 基本認證(HTTP Authentication)安全 技術,第二種則考慮資料的安全性,使用 SSL/TLS 對資料加密保護,再透過 TCP/IP 傳送資料,此方法則選擇性使用 HTTP 基本認證安全技術,其協定堆疊如圖 2.2。
‧ 國
立 政 治 大 學
‧
N a tio na
l C h engchi U ni ve rs it y
12
圖 2.1 CWMP 網路基本架構圖(圖片來源:CWMP 規格書)
圖 2.2 CWMP 協定堆疊(圖片來源:CWMP 規格書)
‧
Method name CPE requirement ACS requirement
CPE methods Responding Calling
GetRPCMethods REQUIRED OPTIONAL SetParameterValues REQUIRED REQUIRED GetParameterValues REQUIRED REQUIRED GetParameterNames REQUIRED REQUIRED SetParameterAttributes REQUIRED OPTIONAL GetParameterAttributes REQUIRED OPTIONAL
AddObject REQUIRED OPTIONAL
DeleteObject REQUIRED OPTIONAL
Reboot REQUIRED OPTIONAL
Download REQUIRED REQUIRED
ScheduleDownload OPTIONAL OPTIONAL
Upload OPTIONAL OPTIONAL
FactoryReset OPTIONAL OPTIONAL GetQueuedTransfers(DEPRECATED) OPTIONAL OPTIONAL ScheduleInform OPTIONAL OPTIONAL ChangeDUState OPTIONAL OPTIONAL SetVouchers(DEPRECATED) OPTIONAL OPTIONAL GetOptions(DEPRECATED) OPTIONAL OPTIONAL
ACS methods Calling Responding
GetRPCMethods OPTIONAL REQUIRED
Inform REQUIRED REQUIRED
TransferComplete REQUIRED REQUIRED AutonomousTransferComplete OPTIONAL REQUIRED DUStateChangeComplete OPTIONAL OPTIONAL AutonomousDUStateChangeComplete OPTIONAL OPTIONAL RequestDownload OPTIONAL OPTIONAL Kicked(DEPRECATED) OPTIONAL OPTIONAL
‧
會對此連線請求進行身分驗證,驗證通過後,CPE會主動發起 HTTP POST連線至 ACS,
而 ACS 收到連線後,也會進行身分驗證,雙方互相驗證成功後,即可開始進行連線會 話。
主要功能
(1) Auto-Configuration and Dynamic Service Provisioning
提供 CPE 能夠自動向遠端的 ACS 連接與自動配置 CPE 的參數設定,連接方式可 分為兩種:(1) CPE 透過發送 Inform 自動連接 ACS、(2) ACS 也可以在任何時候自動 向 CPE 發起連接請求(Connected Request),通過 CPE 的認證後,即可與 CPE 建立連接。
CPE 與 ACS 連接後,ACS 能根據 CPE 的使用者名稱,自動下發配置給使用者的 CPE,
主要的設定包含:配置文件(ConfigFile)、ACS 地址(ACS URL)、Inform 週期發送 時間間隔(PeriodicInformTime)、CPE 用戶名稱(CPE RequestUsername)及用戶密 碼(CPE RequestPassword)等等,未來若使用者購買新的服務,也可透過 ACS 動態 重新設定 CPE 上的參數。
(2) Software/Firmware Image Management
支援 CPE 進行遠端更新 Software/Firmware,當 ACS 發現 CPE 設備之某個文件的 版本有更新,將會通知 CPE 進行下載。CPE 能夠根據 ACS 提供的下載地址和文件名,
自動到指定的文件服務器進行文件下載並將下載結果(成功與否)回饋給 ACS。同樣 地,CPE 也可以進行文件的上傳,CPE 將根據 ACS 的要求將當前的文件上傳到指定 的服務器。
‧
(3) Software Module Management提供 ACS 管理模組化的軟體和 CPE 上的執行環境,包含安裝、更新及解除安裝 應用程式,且這些執行動作的結果(成功或失敗)皆會回饋給 ACS。
(4) Status and Performance Monitoring
支援 ACS 對與其相連接的 CPE 進行狀態和性能的監控,由 CPE 向 ACS 提供狀 態與性能的統計數據,透過 Inform 的方法告知 ACS,作為分析數據。CWMP 也允許 網路管理人員自定義監控參數並通過 ACS 獲取這些參數,以便了解 CPE 的狀態和統 計訊息。
(5) Diagnostics
支援 CPE 設備診斷功能,經由長期的狀態監控,CPE 可將診斷訊息回覆給 ACS,
Authorization Server:認證伺服器,用來認證 Resource Owner 與處理 Resource Owner 的授權,核發 access token 的伺服器。
Resource Owner:資源擁有者,也就是使用者,擁有授權給第三方存取受保護資訊的 權利。
‧ 國
立 政 治 大 學
‧
N a tio na
l C h engchi U ni ve rs it y
16
Resource Server :存放 Resource Owner 資源的伺服器,其可以與 Authorization Server 為同一台伺服器,也可以為不同台伺服器。
Client:透過授權令牌,可代表使用者去存取受保護的資源。
驗證流程
1. 使用者(Resource Owner)使用應用程式(Client),應用程式要求使用者授權,
存取使用者的特定個人資訊。
2. 使用者登入自己的帳號,驗證自己(授權人身份),並同意授權給 Client。
3. 應用程式透過使用者的同意授權向認證伺服器申請令牌。
4. 認證伺服器對應用程式進行認證,認證無誤後,發放授權令牌。
5. 應用程式使用授權令牌向資源伺服器申請獲取使用者資源。
6. 資源伺服器確定令牌無誤後,同意向應用程式開放資源存取。
驗證流程步驟如圖 2.3。
圖 2.3 OAuth 驗證流程
‧
2.4.3 PerSAM/PSMP
智慧家庭由眾多的資訊家電、感測器與軟體服務應用程式所構成,在 PerSAM 中 將這些最基本的元素稱為 PerNode 𝑝 ∈ 𝑃或簡稱為 Node。每個 Node 永遠處於三種狀 態(state),其中𝑠𝑡𝑎𝑡𝑒 ∈ {𝐼𝑁𝑆𝑇𝐴𝐿𝐿𝐸𝐷, 𝐷𝑂𝑅𝑀𝐴𝑁𝑇,𝐴𝐶𝑇𝐼𝑉𝐸},利用𝑠𝑡𝑎𝑡𝑒 (𝑝)能夠取得 Node 𝑝的狀態。
PerNode 分成 Manager Node 與 Worker Node 兩類,Worker node 𝑤 ∈ 𝑊其代表實 際執行服務工作的節點,又可分為感測器(Sensor Node)、智慧家電(Actuator Node) 或邏輯元件(Logic Node)等三個子類別,每一個 Worker Node 屬於一種型別𝜏 ∈ T,利 用𝑡𝑦𝑝𝑒(𝑤)可以取得 Worker Node 的型別。而 Manager Node 可以分成 Pervasive Service Manager(PSM)與 Pervasive Host Manager(PHM)兩個子類別,負責服務管理機制的執行、
服務維修及修復等工作。
在 PerSAM 系統中,多個 PerNodes 可以組成一個 Pervasive Service 𝑝𝑠,當一個 𝑝𝑠 所需要的 Worker Node 類型足夠,便能夠組成一個服務,其中,Pervasive Service 的 成員,在 PerSAM 定義 Service Template 𝑆𝑇𝑝𝑠 ∈ 2𝜏,用來表示此服務 𝑝𝑠 所需要的 Worker Node 類型。為了要組成服務 𝑝𝑠,其 PSM 必須依據𝑆𝑇𝑝𝑠尋找合適類型的 Worker Node。此外,在一個智慧空間中,PerNodes 所在的裝置(Host)稱為 Pervasive Host 𝑝ℎ,
而每一個 𝑝ℎ 上都有一個 PHM,𝑊𝑝ℎ 則代表目前在 𝑝ℎ 上所有 Worker Nodes 的集合。
在智慧家庭中,同時存在著許多 Pervasive Service,其各由一個 PSM 來管理。PSM 主要負責在服務啟動時,透過服務發現機制(Service Discovery),𝑆𝑇𝑝𝑠中所需的 Worker Node 都能找到,當所需的 Worker Node 齊全,服務啟動後,必須由特定的 Failure Detection 程序來確保 Worker Node 皆存在且正常地在工作。一旦有 Worker Node 發生 異常,此時便啟動錯誤回復程序,透過 PHM 將發生異常的 Node 關閉,並重新找尋相 同類型的可替代 Node。
‧
在 UPnP 網路中,CPE 可視為一個控制點(Control Point),因此,此架構在 PerSAM 系統中加入了 BootStrapping Node(簡稱 BN)的角色,並由 CPE 來扮演 BN,架構如圖 3.1 所示。透過 BN 作為家庭端與營運端的樞紐,使用者便能透過 BN 到 Home Service Store( 類似 App Store) 的網站 購買各 式各樣 的智慧 家庭服 務的相 關軟硬 體模組及 Pervasive Service Manager(PSM),例如:使用者想要使用電視媒體服務,此服務所 需的模組包含 TV 及 Home Media Server,而這兩項付費模組在 CWMP 協定中皆視為
(即 BootStrapping Node,稱作 BN)在 Home Service Store 上購買、(3)假設使用者