國 立 交 通 大 學
資 訊 工 程 學 系
碩 士 論 文
利用資料分享方法以增進網路電話之安全性
A Data Sharing Approach for Secure
VoIP Delivery
指導教授:蔡文能 教授
研 究 生:羅京城
利用資料分享方法以增進網路電話之安全性
A Data Sharing Approach for Secure VoIP Delivery
指導教授:蔡文能 Advisors:Wen-Nung Tsai
研 究 生:羅京城 Student:Ching-Cheng Lo
國 立 交 通 大 學
資 訊 工 程 研 究 所
碩 士 論 文
A Thesis Submitted to
Institute of Computer Science and Information Engineering
College of Electrical Engineering and Computer Science
National Chiao Tung University
in Partial Fulfillment of the Requirements
for the Degree of Master
in
Computer Science and Information Engineering
July 2004
Hsinchu, Taiwan, Republic of China
中 華 民 國 九 十 三 年 七 月
授權書
(博碩士論文)
本授權書所授權之論文為本人在 交 通 大學(學院) 資 訊 工 程 系所 組 九十二 學年度第 二 學期取得 碩 士學位之論文。 論文名稱: 利用資料分享方法以增進網路電話之安全性 A Data Sharing Approach for Secure VoIP Delivery
1.□同意 □不同意 本人具有著作財產權之論文全文資料,授予行政院國家科學委員會科學技術資料 中心、國家圖書館及本人畢業學校圖書館,得不限地域、時間與次數以微縮、光 碟或數位化等各種方式重製後散布發行或上載網路。 本論文為本人向經濟部智慧財產局申請專利的附件之一,請將全文資料延後兩年 後再公開。(請註明文號: ) 2.□同意 □不同意 本人具有著作財產權之論文全文資料,授予教育部指定送繳之圖書館及本人畢業 學校圖書館,為學術研究之目的以各種方法重製,或為上述目的再授權他人以各 種方法重製,不限地域與時間,惟每人以一份為限。 上述授權內容均無須訂立讓與及授權契約書。依本授權之發行權為非專屬性發行權利。 依本授權所為之收錄、重製、發行及學術研發利用均為無償。上述同意與不同意之欄位 若未鉤選,本人同意視同授權。 指導教授姓名: 蔡文能 研究生簽名: 學號: 9117587 (親筆正楷) (務必填寫) 羅京城 日期:民國 93 年 7 月 15 日 1. 本授權書請以黑筆撰寫並影印裝訂於書名頁之次頁。 2. 授權第一項者,所繳的論文本將由註冊組彙總寄交國科會科學技術資料中心。 3. 本授權書已於民國 85 年 4 月 10 日送請內政部著作權委員會(現為經濟部智慧財產 局)修正定稿。 4. 本案依據教育部國家圖書館 85.4.19 台(85)圖編字第 712 號函辦理。
國家圖書館博碩士論文電子檔案上網授權書
本授權書所授權之論文為本人在__交 通 _大學(學院)_資 訊 工 程_系所 _______組__九十二_學年度第_二_學期取得_碩_士學位之論文。 論文名稱:__利用資料分享方法以增進網路電話之安全性____________ 指導教授:__蔡文能____________________________ □同意 □不同意 本人具有著作財產權之上列論文全文(含摘要),以非專屬、無償授權國家圖書館,不限 地域、時間與次數,以微縮、光碟或其他各種數位化方式將上列論文重製,並得將數位 化之上列論文及論文電子檔以上載網路方式,提供讀者基於個人非營利性質之線上檢 索、閱覽、下載或列印。 上述授權內容均無須訂立讓與及授權契約書。依本授權之發行權為非專屬性發行權利。 依本授權所為之收錄、重製、發行及學術研發利用均為無償。上述同意與不同意之欄位 若未鉤選,本人同意視同授權。 研究生簽名: 學號:9117587 (親筆正楷) (務必填寫) 羅京城 日期:民國 93 年 7 月 15 日 1. 本授權書請以黑筆撰寫,並列印二份,其中一份影印裝訂於附錄三之一(博 碩士論文授權書)之次頁﹔另一份於辦理離校時繳交給系所助理,由圖書館 彙總寄交國家圖書館。利用資料分享方法以增進網路電話之安全性
學生:羅京城
指導教授:蔡文能 教授
國立交通大學資訊工程學系﹙研究所﹚碩士班
摘 要
近年來,由於網路傳輸的速率加快,許多需要即時(Real-Time)傳輸的應用程式開始 盛行,最明顯的是網路電話(Voice over IP,VoIP)的崛起。VoIP 運用網路傳輸的優點,
大幅降低了成本,所以頗受供應商以及用戶的好評。但是原本IP 網路傳輸的本質為“盡
最大努力傳送”(Best effort),對於傳輸的品質是很大的挑戰,而且近年來越來越多的網 路攻擊行為,如:阻斷攻擊(Deny of Service)、中間攻擊者程式(Man-In-Middle attack)、 竊聽程式(Wiretap)…等,傳輸的安全性也因此受到很大的考驗。
傳統用來保護傳輸安全的方法,例如加解密,需要花費較多的時間在對明文加、解 密上,並且對於用來加密的金鑰(Key)需要額外的保護,不適合用於時間敏感度高(Time sensitive)的應用上。本篇論文將視覺加密法(Visual cryptography)和資料分享(Data sharing)
的概念運用於 VoIP 傳輸上,希望藉此達到防止他人中途竊聽。在不影響聲音品質下減
少延遲時間,並且去除掉傳統加解密方法中,金鑰建立與傳送的手續。加上運用互斥多 路徑路由(Disjoint multi-path routing)於分享資料(Share data)上的傳送,提高網路使用效 能,以減少網路擁塞的發生,間接減少傳輸延遲,以利於即時應用(Real-time application) 的傳遞。
A Data Sharing Approach for Secure VoIP Delivery
student:Ching-Cheng Lo
Advisors:Dr. Wen-Nung Tsai
Institute of Computer Science and Information Engineering
National Chiao Tung University
ABSTRACT
In recent years, because the speed of network transmission increases, a lot of time-sensitive applications begin to prevail. The most obvious example is the network telephone (Voice over IP). The advantages of voice over IP network are lower cost and flexible. The IP network transmits packet using the “best effort” method, so the quality of VoIP should be taken in consideration by the supplier. More and more network attacks are discovered in recent years, like Deny of Service (DoS), Man-In-Middle attack, and the eavesdropping program (Wiretap).In this thesis, we will focus on the security of voice data in public IP network.
Traditional methods used for secure transmission, such as encryption, spend too much time in data encryption and decryption. Those encryption methods also spend much time in key establishment, key exchange and protection. When using visual cryptography and data sharing methods, we can reduce the influence of those problems that mentioned above. Therefore we use this concept in voice data transmission over Internet to prevent from the wiretap attack, and to transit the voice data through the network more efficiently. In addition, we utilize the disjoint multipath routing algorithm to send data, so we can reduce the occurrence of network hot-spot.
致 謝
在兩年的努力之下,終於完成了我的畢業論文,中間經過了許多的困難與問題, 也受到許多人的幫助,在此一一感謝。首先要感謝的是我的指導教授—蔡文能教授, 在碩士班的兩年之間,他給我許多方面得指導,讓我受益良多,也成長了不少,在此 十分的感謝。還有感謝我的父母,他們給我一個平穩的環境,讓我能夠在專心的學習, 才有今天的我,感謝他們。接著要感謝的是實驗室的學長姐,感謝他們總是在我有疑 惑時,給我忠告與建議,謝謝他們。接著感謝實驗室的同學與學弟們,大家一起工作、 學習,互相幫忙,讓我有個難忘的碩士回憶,十分的感謝他們。最後,要感謝的人很 多,如兩年來的寢室室友們、以前大學的好朋友們...等,在我沮喪或難過時,他們都能 即時的給我幫助與支持,謝謝他們。 許多的感覺無法用言語形容,對於上面提到的所有人,在此致上我最深的謝意, 謝謝你們。目 錄
摘 要 ...i 致 謝 ...iii 目 錄 ...iv 表 目 錄 ...vi 圖 目 錄 ...vii 一、 緒論 ...1 1. 1. 簡介...1 1. 2. 動機與目的...2 1. 3. 論文架構...2 二、 背景介紹 ...32. 1. 網路電話(Voice over IP)...3
2. 1. 1. 網路電話簡介...3
2. 1. 2. 網路電話通訊協定...5
2. 1. 3. Session Initial Protocol (SIP)...7
2. 1. 3. 1. SIP架構...7 2. 1. 3. 2. SIP訊息傳遞...9 2. 2. 聲音編碼(Voice codec)...9 2. 2. 1. 聲音編碼簡介...10 2. 2. 2. ITU-T G系列 Codec...11 2. 2. 2. 1. G.711...11 2. 2. 2. 2. G.723.1...12 2. 2. 2. 3. G.726...14 2. 2. 2. 4. G.729...15 2. 3. 加密演算法(Encryption algorithm)...16 2. 3. 1. 密碼系統(Cryptography system)簡介...16 2. 3. 2. 常見的加密演算法...18 2. 3. 2. 1. DES與triple DES...18
2. 3. 2. 2. Advanced Encryption Standard (AES)...19
2. 3. 2. 3. RSA...21
2. 4. 網路安全與IPSec協定...21
2. 4. 1. 安全關聯(Security Association)...22
2. 4. 3. 安全協定(Security Protocol)...23 三、 相關研究 ...25 3. 1. VoIP效能需求...25 3. 2. 使用IPSec傳輸VoIP...27 3. 2. 1. 使用IPSec傳輸VoIP分析研究...27 3. 2. 2. 壓縮IPSec(cIPSec)...29 3. 3. 視覺加密(Visual cryptography)...31
3. 4. 互斥多路徑路由演算法(Disjoint multi-path routing algorithm)...33
四、 多路由資料分享VoIP安全架構 ...36 4. 1. 系統簡介與假設...37 4. 2. SIP代理伺服器...40 4. 3. 系統流程與訊息交換...45 4. 4. 聲音封包分割方法...46 4. 5. 互斥多重路徑選擇演算法...45 五、 模擬結果 ...49 5. 1. 模擬環境...49 5. 2. 聲音分割結果測試...49 5. 3. 加密處理所需時間比較...51 5. 4. 網路傳輸模擬...55 六、 結論...57 6. 1. 討論與結論...57 6. 2. 未來工作...58 參考文獻 ...59
表 目 錄
表 1 G.711 編碼表...12
表 2 8kbit/s CS-ACELP 演算法的位元配置表 (10 ms frame)...15
表 3 AES列位移表(Shift row table)...20
表 4 各種聲音編碼法的負載大小(Payload size)與編碼延遲列表...26 表 5 每個像素使用1位元分割的視覺加密法(Visual crytography)...31 表 6 每個像素使用4位元分割的視覺加密法(Visual crytography)...32 表 7 AND、OR真值表...45 表 8 資料分享方法...45 表 9 加密環境列表...51 表 10 加密演算法參數列表...52 表 11 資料加密時間比較表...52 表 12 加密環境列表 – 2...53 表 13 資料加密時間比較表 – 2...54 表 14 網路模擬環境列表...55 表 15 網路模擬結果...56
圖 目 錄
圖 1 網路電話演進圖...3
圖 2 世界網路電話市場成長預測圖(Advanced VoIP service Revenue World Market).5 圖 3 亞洲網路電話成長預測圖...5
圖 4 各個VoIP通訊協定運作分工情形...6
圖 5 SIP代理伺服器(SIP proxy server)...7
圖 6 SIP位置轉向伺服器(SIP redirect server)...8
圖 7 SIP註冊伺服器(SIP register server)...8
圖 8 SIP使用者代理人(SIP user agent)...8
圖 9 簡易SIP通話訊息交換圖...9 圖 10 聲音取樣示意圖(Voice sampling)...10 圖 11 各種聲音編碼方法的位元率(Bit rate)對聲音品質的影響圖...11 圖 12 G.723.1編碼與解碼架構方塊圖...13 圖 13 G.726編碼架構方塊圖...14 圖 14 G.729編碼架構方塊圖...15 圖 15 單向雜湊函數使用範例...17 圖 16 對稱金鑰密碼系統...17 圖 17 非對稱金鑰密碼系統...18 圖 18 DES加密流程圖...19 圖 19 ESP傳輸模式與隧道模式封包標頭示意圖...24 圖 20 AH傳輸模式與隧道模式封包標頭示意圖...24 圖 21 單向Mouth-to-ear延遲示意圖...25 圖 22 封包遺失對不同聲音編碼方式的影響...26 圖 23 使用IPSec於VoIP封包的標頭成長示意圖...28 圖 24 封包延遲與網路流量的關係圖,最右邊的線段為沒有使用IPSec的情形,最左邊 的線段則是使用DES加密於IPSec的情形...28
圖 25 左圖為SIP call setup時間的模擬結果,右圖為模擬傳送聲音封包延遲時間所得到 的結果...29
圖 27 cIPSec用於ESP隧道模式的封包標頭示意圖...30 圖 28 由左到右分別為:一般的聲音封包、使用IPSec、使用cIPSec、2%資料遺失率、 5%資料遺失率,以及10%資料遺失率的頻寬使用大小...31 圖 29 每個像素使用1位元分割的視覺加密法範例...32 圖 30 每個像素使用4位元分割的視覺加密法範例...32 圖 31 運用視覺加密演算法於聲音傳輸的構想圖...33 圖 32 互斥多路徑演算法訊息類別0傳送圖...35 圖 33 互斥多路徑演算法訊息類別1傳送圖...35 圖 34 系統架構圖...36 圖 35 SIP代理伺服器RTP封包處理流程圖...39 圖 36 場景一:使用者註冊訊息交換圖...41 圖 37 場景二:建立連線於區域網路的訊息交換圖...42 圖 38 場景三:建立跨越網路連線的訊息交換圖...43 圖 39 資料分享用於聲音媒體傳送示意圖...44 圖 40 資料分享方法與PSTN網路溝通示意圖...44 圖 41 資料分享方法範例...46 圖 42 互斥多路徑路由演算法步驟一...47 圖 43 互斥多路徑路由演算法步驟二...47 圖 44 互斥多路徑路由演算法步驟三...48 圖 45 5秒的G.711 A-law聲音波型圖...49 圖 46 使用資料分享方法於G.711聲音範例的波型圖...50 圖 47 將每個聲音樣本前四位元設為零之後的波型圖...51 圖 48 資料加密時間比較圖 – 1...53 圖 49 資料加密時間比較圖 – 2...54 圖 50 網路模擬所使用的網路拓樸架構...56 圖 51 網路模擬結果...56
一、 緒論
近年來,隨著網路技術的進步,傳輸的速率以倍數的方式成長,再加上網路的架設 範圍日增,使得許多對時間敏感度較大的應用(Time sensitive application),例如網際網路 電話(Voice over IP,VoIP)、視訊會議(Network meeting)、網路隨選電視(Video on demand, VOD)…等,也開始使用網際網路來當作傳送媒介。利用封包交換式(Packet-switch)的好 處,使數位娛樂生活化的目標更進一步實現。另一方面,因為 IP 網路本身是以盡最大 努力傳送(Best effort),加上一直以來存在著許多個網路攻擊情形不斷發生,要如何順應 即時應用(Real-time application)本身的特性,而能達到品質佳且安全性高的效果,是值 得我們研究的課題。
1.1 簡介
自 1995 年以後,網際網路快速的成長、擴大,由原先數十到數千個節點(Node)相 連的小型網路,快速的成長到幾千萬以上個節點相連的龐大架構。其超越空間限制的特 性,對人類生活造成一次巨大的資訊革命,讓人與人之間的溝通更加的便利與迅速,因 此產生了不少的商機與利益。雖然曾經過度相信利潤的存在,使得 2000 年網路產生一 次泡沫化(Internet bubble)情形,但是之後網路的應用仍然繼續的向四處延伸,至今已經 與每個人的生活息息相關、密不可分了。 一開始,由於技術上的未成熟,傳輸的速率只適合用於對時間延宕不敏感的應用 上,例如網頁的瀏覽(HTTP)、資料的傳輸(FTP)、信件的傳達(SMTP)…等應用,因為時 間的延遲(Delay)與延遲振盪(Delay jitter)並不會對於資料接收產生不良的結果,可用於較 為低速的網路狀況,所以很快的在世界上散佈開來,大量的被人們使用。近幾年來,網 路技術的逐漸成熟,傳輸的速率也從先前的數十Kbps,成長到數 Mbps 或是更快,使得對於時間敏感度高的應用(Time sensitive application)逐漸可被接受在一般使用者上,也因 為使用封包交換式(Packet-Switch)傳輸較原先電路交換式(Circuit-Switch)網路更能充份 的利用到設備與資源(Resource),所以被網路提供業者(Internet Provider, ISP)接受且開始 廣泛的推廣,此類的應用有網際網路電話、網路視訊、網路電視隨選服務…等。 VoIP 是其中一項受到 ISP 注目的應用,可以取代傳統電話的功能,並且讓資料與聲 音在同一個網路上傳輸,減少許多管理上的麻煩,並可以利用到封包交換式網路的好 處,讓同一個時間可以接通的電話(Call)量增加許多,挾帶著諸多的好處,網路電話當 然會成為新的業界寵兒。為了使網路電話能夠運作,兩大組織IETF 與 ITU-T 分別推出 了SIP、H.323、MGCP、MEGACO…等 protocol,H.323 因為是最早制定出來的協定, 所以目前被廣泛的使用,雖然SIP 起步較晚,但是因為簡單與擴充性佳的緣故,備受囑 目,MGCP 與 MEGACO 則是為了與傳統電話相連接而制定的協定。
因為一開始並不是設計用於即時應用,所以被廣泛使用的IP network 是使用『盡最 大努力傳送(Best effort)』的方法,並不是很適合用在即時傳輸的應用上。加上近年來, 跟隨著網路的成長,潛伏在網路上的危機也越愈增多,諸如阻斷攻擊(Deny of Service, Dos)、中間攻擊者程式(Man-In-Middle attack)、竊聽程式(Wiretap)…等,使得傳輸的品 質與安全性遭到重大的考驗。雖然用於非即時傳輸的應用已經有許多的解決方法,但是 因為需要消耗更多的處理時間(Process time),尤其是安全度較高的非對稱加密系統 (Asymmetric cryptography system),所以不太適合於即時的應用上。傳統的加、解密需要 對用來加密或解密的金鑰(Key)做建立、傳輸、保護,以及定期更換的動作,如此一來 需要耗費更多的時間,一旦金鑰被竊取,更是危險,也不利於即時應用上的傳輸,因此 需要一套更有效率,且能達到安全性佳的系統架構,來保障即時應用的傳輸。
1.2 動機與目的
資料分享(Data sharing)與視覺加密(Visual cryptography) [10] 是一系列發展已久,對 資料進行處理後,達到安全傳輸不被破解的方法。因為不需要一開始的溝通步驟,即可 開始傳送處理過的資料,相對於傳統加、解密需要對金鑰建立、傳輸、保護的煩雜步驟 可以省去,所以我們以此為出發點,希望建立一套適合即時傳輸的架構。 因為原先資料分割與視覺加密是運用於非即時傳送資料的應用上,加上對於傳送資 料的性質有所不同,所以我們希望能夠針對聲音的特性,加上資料分割本身上的好處, 發展出一套有利於即時聲音傳送上的架構與方法,來解決對於即時傳輸上安全性的問題 (竊聽…等)。透過運用動態多路徑路由(Dynamic multi-path routing)的方式,由過去許多 的研究結果顯示 [2,3,4],可以達成減低網路擁塞(Network congestion)、並減少傳輸延遲 的情形,更利於傳送即時性高的應用。
1.3 論文架構
本論文將以SIP 為網路電話的基本架構,參考聲音編碼方法(Voice codec)來幫助資
料分享(Data sharing)的方法建立,最後以互斥多路徑路由(Disjoint multi-path routing)的方 式傳送,用來解決上述的時間限制與除去金鑰的限制問題,達到資料快速且安全傳輸的 理想。此論文的組織架構如下:
『第二章、背景介紹』將簡單介紹一些voice over IP 相關的資料與通訊協定,以及聲音
編碼(Voice codec)、傳統加解密,以及網路安全與 IPSec 協定等。『第三章、相關研究』 介紹本論文的相關基礎研究視覺加密與動態路由以及其他的論文研究。『第四章、系統
架構與方法』介紹資料分享(Data sharing)用於網路電話的架構與訊息傳送的細節。『第五
章、模擬結果』顯示運用論文中提及的架構與方法模擬出來的結果與優劣比較。『第六 章、結論與未來發展』介紹論文結論與論文架構未來的擴展可能性與需要增進的部份。
二、背景介紹
在這個章節,我們將介紹這篇論文的背景知識,如:網路電話(VoIP)、聲音編碼(Voice codec)、加密演算法(Encryption algorithm),以及網路安全協定(IPSec)等。
2.1 網路電話 (Voice over IP,VoIP)
將類比式訊號電話系統轉變成數位式訊號電話系統,並且使用封包交換式傳輸網路 來傳送聲音封包是近年來熱門的趨勢,許多歐美網路提供者(ISP)紛紛提出相關的產品。 本節將介紹網路電話的基本知識,以及目前較常用的通訊協定與技術。
2.1.1 網路電話簡介
Voice over IP 簡單來說,即是將聲音數位化之後,以一個個封包的方式,透過 IP(Internet Protocol) 架 構 的 網 路 傳 送 到 收 話 端 [1] , 相 較 於 先 前 的 電 路 交 換 式 (Circuit-Switch)有著網路資源運用更加充分,以達到同時可處理更多通電話連線的好 處,並且成本更加低廉,所以廣受業界的矚目與推廣。 網路電話的演進可以分成三個階段來看(如圖 1 所示): 圖 1 網路電話演進圖 (1) PC to PC:最早被開發出來的網路電話系統,利用軟體在 IP 網路上建立傳送 聲音封包的連線,可說是最簡單且容易的建構方法。第一個這類型的產品是由Vocaltec [38] 於 1995 年 2 月所開發出來的 Internet Phone,這個軟體的需
求配備為486/33-MHz PC、一張音效卡、麥克風,以及調變解調器(Modem),
可以算是 VoIP 的第一個商業軟體。近年來,這類的產品大行其道,許多的
軟體,如Microsoft 的 MSN messager、Yahoo 的 Yahoo 即時通...等都提供有 網路電話的功能。Skype [40] 於 2004 年 2 月推出了第一套以 P2P 為基本架 構的網路電話軟體,以不錯的通話品質獲得廣大的好評。
(2) PC to Phone:由於目前電路交換式的電話系統仍然是分佈最廣泛的系統,所 以如何將兩種不同的網路系統互相溝通,使得使用者可以輕易的使用個人電 腦打電話到一般的公眾交換網路(Public Switch Telephone Network, PSTN)
上,是電話服務業者最為重視的一個部份。這一類的應用最早由 Net2Phone 這家公司於 1995 年 11 月提出 PC-to-Phone 的網路電話計劃 [39]。1997 年 12 月 ITXC 公司開始大量生產交換機伺服器,將 PC-to-Phone 產品商業化。 上一段所提及的Skype [40] 軟體也同樣具有 PC to Phone 的能力。 (3) Phone to Phone:發展網路電話的最終目標是希望能將聲音與資料系統的整 合,以方便管理與控制,所以Phone-to-Phone 系統的開發就是希望能取代傳 統的電路交換式系統。Net2Phone 公司於 1997 年 9 月開始在美國推出 Phone to Phone 透過 IP 網路傳送的服務[39],許多的長途電話也漸漸的改用透過 IP 網路傳送以節省成本,可說是未來的趨勢與主流產品。2002 年 10 月 18 日, 美國知名電話公司AT&T 向 FCC 提出要求,希望 FCC 對 Phone-to-Phone 的 VoIP 規劃出一套合法的管理規則,但是 FCC 認為 VoIP 是一套實驗與發展中 的技術,所以對AT&T 的提議持保留態度[41]。2004 年 2 月 12 日,FCC 開 始注意到現行 VoIP 產品的架構與管理混亂,各家業者的實作方式皆有所不 同,於該日起,開始著手訂定VoIP 相關的架構與管理規則,期望使所有 VoIP 業者的實作有一定的規則,達到公用網路管理的目標[42]。 目前網路電話的服務以歐美國家推出的較多,因為擁有較便宜的特性,頗受消費者 的歡迎,所以每年成長也有一定的幅度,我們可以從Allied Business Intelligent Inc.(ABI) 於2003 年對 VoIP 做的研究與推測(圖 2)中看出,未來 VoIP 市場的成長幅度是樂觀的。
圖 2 世界網路電話市場成長預測圖 (資料來源:Allied Business Intelligence Inc)
同樣的,雖然亞洲的市場因為電信業開放的腳步較為緩慢,網路電話(VoIP)成長的 速度相較於歐美國家來的遲緩,但是許多的調查與研究都顯示亞太地區網路電話的成長 都是可以樂觀預期的,這方面可從 IDC 於 2002 年對亞太地區做的研究與預測(圖 3)可 看出,成長的可能性。 圖 3 亞洲網路電話成長預測圖 (資料來源:IDC)
2.1.2 網路電話通訊協定
為了可以順利的在公眾的 IP 網路上建立連線並傳送聲音的封包,一套公認的通訊協 定(Protocol) 是 必 要 的 。 網 路 上 兩 大 網 路 通 訊 協 定 訂 定 組 織 : ITU (International Telecommunication Union)與 IETF(The Internet Engineering Task Force)分別都訂定了適用 於網路電話連線建立與中斷的通訊協定,到目前為止共有四個較為廣泛使用的通訊協 定,在此做簡單的介紹。
(1) RTP [14]:Real-time Transport Protocol,由 IETF 於 1996 年 1 月定義在 RFC1889, 是一個用來傳送即時應用的通訊協定(包括聲音、影像…等),定義有 RTP 封包 標頭(Packet Header)與所傳送媒體相關的資訊…等。和 RTCP(RTP Control Protocol,RFC1890)搭配使用,是一套專門處裡媒體傳送的通訊協定,藉以和 訊號封包分開傳送。
(2) H.323:Packet-based Multimedia Communications Systems,1995 年 3 月 28 日由 ITU-T 正式訂為標準,是一套包含其他通訊協定的封包式多媒體通訊系統 [31] ~ [33]。因為定義的較早,演化的版本也很多(於 2003 年 7 月出版第五版),所 以許多的系統都採用H.323 的架構開發,如 Microsoft 的 NetMeeting 即是採用 H.323 的架構。H.323 最大的缺點為系統龐大,內部結構複雜。
(3) SIP:Session Initial Protocol,於 1999 年 3 月定義於 RFC 2543,再版定於 RFC 3261。為一套點對點(Peer to peer)以及主從式(Client/Sever)的傳輸架構,與 SDP(Session Description Protocol, RFC 2327) 、 RTSP (Real-Time Streaming Protocol, RFC 2326)、SAP (Session Announcement Protocol, RFC 2974)合為 IETF 多媒體資料與控制架構(Multimedia data and control architecture) [15] ~ [17]。SIP 最大的好處即為簡單、彈性佳,適合用於智慧型掌上產品的開發。
(4) MGCP:Media Gateway Control Protocol,於 1999 年 10 月由 IETF 定義在 RFC 2705,為一套主從式(Master-slave)架構的通訊協定 [1] [19] ,運用於 Media Gateway Controller(MGC)與 Media Gateways(MGs)之間所傳輸的訊息規範上(請 見圖 4)。MGCP 是一套純知識性的通訊協定,需要其他的通訊協定來詳細定 出實作架構,Megaco/H.248 就是根據 MGCP 為基礎所定義出的通訊協定。 (5) Megaco/H.248(Gateway control protocol):為 IETF(MEGACO)與 ITU-T(H.248)
於2000 年 11 月共同研究開發的通訊協定 [20] [34] ,與 MGCP 的用途類似, 用於MGC 與 MGs 的通訊上,亦為主從式(Master-slave)的架構。
以上為目前用於網路電話的五個通訊協定,其中 H.323 與 SIP 主要用在通訊會期 (Session)的建立與中止,以及媒體傳送的管理上。MGCP 與 MEGACO/H.248 主要是幫
助網路電話與原先PSTN 架構的相容性更佳所設計出來的。接下來的章節我們將特別介
紹SIP 架構的細節部份。
2.1.3 Session Initial Protocol (SIP)
Session Initial Protocol,簡稱 SIP [15],是由 IETF 於 1999 年訂定出來的應用層 (Application-layer)通訊協定,主要是為了多媒體通訊的建立、修改與中斷而訂定。其最 大的特點為簡單、靈活度高以及適用於智慧型裝備。底下我們將分架構與訊息交換兩大 部份來介紹SIP。
2.1.3.1 SIP 架構
SIP 為一個主從式(Client-server)的架構,由用戶端(Client)發出需求(Request),伺服 器端(Server)接收到需求後,因情形發出適當的回應(Response)給用戶端,底下我們分別 介紹SIP 架構中的每個實體(Entity):(1) Client:又稱 User agent client,為一個應用程式,用來發出 SIP 訊息給伺服器 或是其他的用戶。
(2) Server:主要用來對用戶端的需求做出正確的回應用,依功能可分成四類。 1. Proxy server:作用就像一般區域網路(LAN)中的代理伺服器(Proxy)一樣,
將從用戶端收到的需求傳到正確的伺服器或用戶,可分成有狀態性(Stateful) 或是無狀態性(Stateless)。
圖 5 SIP 代理伺服器(SIP proxy server)
2. Redirect server:從用戶端收到需求,依據伺服器資料庫內的紀錄,得到用
戶查詢的對應位置,回傳給用戶端,此伺服器無法發出Invite message 給其
圖 6 SIP 位置轉向伺服器(SIP redirect server)
3. Register server:接受從用戶端發出的 register 訊息,讓用戶註冊於伺服器上, 包含用戶端的一些資訊如:位置、暱稱…等,通常會與 proxy server 以及 redirect server 合併在一起使用。
圖 7 SIP 註冊伺服器(SIP register server)
4. User agent server:接收從使用者(User)來的需求,並做出回應(發出需求到 伺服器端,以得到回應),通常與 user agent client 合併成一個裝置(Device), 稱做User agent(UA)。
2.1.3.2 SIP 訊息傳遞
SIP 是一個以文字為基礎(Text-base)的通訊協定,使用 ISO 10646 定義的字元,並使
用UTF-8 的方式編碼,所以 SIP 的訊息看起來類似於 HTTP 的訊息。用文字基礎傳送的 缺點是與使用二進位方式表示的訊息相較,較占傳輸頻寬。 SIP 的需求(Request)訊息可以分為六個基本類型: (1) Invite:用來發出邀請、開起連線的訊息。 (2) ACK:用來確認最後的回應(Response)已經收到。 (3) BYE:用來結束連線用的訊息。 (4) OPTION:用來詢問伺服器的負載量(Capacity)等訊息。 (5) CANCEL:用來停止一個暫時行的需求(Request)。
(6) REGISTER:由 User agent client 發出,做為登入(Login)或是註冊用的訊 息,一個用戶可以對許多的伺服器註冊;對同一個伺服器也可接受同一個 用戶多次的註冊動作。
底下我們用一個簡單的例子來介紹 SIP 建立一通連線的訊息交換:
圖 9 簡易 SIP 通話訊息交換圖
首先由發話端(Caller)送出 INVITE 的訊息給收話端(Callee),當收話端收到訊息後,
會先發出鈴響,並傳回Ringing 的訊息。當收話端拿起話筒回應時,會送出 200 OK 的 訊息,發話端收到後,傳送 ACK 訊息,則通話正式建立。當通話結束時,任一端發出 BYE 訊息,由對方收到並回覆 200 OK 後通話正式結束。
2.2 聲音編碼 (Voice codec)
以往傳送聲音的傳送都是藉由類比訊號(Analog),如果要使用 IP 網路傳送的話,便 必須將類比訊號轉為數位訊號,所以需要一套轉換的方式。聲音的編碼方式因為不同的需求,所以發展出許多的方法,底下我們將針對我們所需要的網路傳輸聲音編碼方法做 進一步的介紹。
2.2.1 聲音編碼簡介
為了要使聲音封包在網路上傳輸更加的方便,所以對於頻寬需求有一定的限制,同 時也要兼顧到聲音品質的好壞。為了有個評斷的標準,ITU-T 在 recommendation P.800 [35] 中提出了MOS(Mean Option Score)的概念,將聲音由好到壞分成 1 到 5 這 5 個等級(MOS 5 品質最佳,MOS 1 品質最差),由至少 30 個人聽過編碼後的聲音,給出分數後平均而 得,是目前對聲音編碼評鑑的一個標準。(通常可以商業化的聲音編碼格式需要有 MOS 4 以上的分數) 將聲音由類比式轉為數位式(Analog to Digital)的方法大致上可分為三類,於底下一 一介紹: (1) Waveform codec:為最簡單的一種聲音編碼方式,使用此編碼方法可得到 不錯的聲音品質,但是需要一定量以上的傳送頻寬。編碼的過程大致上可 分為兩個步驟: 1. Sampling:將輸入的聲音波型從類比方式轉變成為數位表示的過 程,如下圖所示: 圖 10 聲音取樣示意圖(Voice sampling) 至於要每秒要取多少個樣本(Sample)數,目前最廣泛被使用的理論 是Nyquist sampling theorem,這個理論說明取樣頻率(Sampling rate) 需要是原來輸入頻率的兩倍以上,才能在轉回類比時不失去原有的 波型。 2. Quantization:決定要使用多少位元(Bits)來表示一個樣本,因為無 法 完 全 表 示 每 種 樣 本 的 數 值 , 是 故 會 產 生 所 謂 的 量 化 誤 差 (Quantization error),對於振幅越大的聲音,量化誤差影響越小,例 如:樣本值為11.2,量化為 11,則量化誤差比為 , 較樣本值為2.2,量化為 2 的量化誤差比( )來的小。量 化(Quantization)可依據每個量化步驟(Quantization step)的差異分為 % 82 . 1 11 / 2 . 0 ≈ % 10 2 / 2 . 0 ≈
均 勻 量 化(Uniform quantization) 與 非 均 勻 量 化 (Non-uniform quantization)。均勻量化顧名思義就是每一個量化步驟間距都相同。 而非均勻量化在量化步驟較小時會用較小的間距。
(2) Source codec (Vocoders):Source codec 試圖將輸入的訊號,對應到相對的 數學模組,利用聲音被製造的原理來模擬,通常使用線性的聲道預測濾波 器來處理,可以達到很低的位元率(Bit rate),但是聲音普遍聽起來很明顯 的是合成出來的結果,品質並不佳,就算提高位元率(Bit rate)來儲存也不 會有明顯的效果與改善。
(3) Hybrid codec:Hybrid codec 試圖結合上述兩種方法的好處,有 waveform codec 高品質的好處以及 source codec 低頻寬的好處。
下圖表示上面三種 codec 的位元率(Bit rate)與 MOS 的關係圖。
圖 11 各種聲音編碼方法的位元率(Bit rate)對聲音品質的影響圖 (資料來源:[1]) 底下我們將介紹幾種常見用於即時應用於網路傳輸的 voice codec,都是定義在 ITU-T 的 G.7xx 系列中,其中 G.711 與 G.726 的觀念將會應用於論文中資料分享(Data sharing)處理的部份。
2.2.2 ITU-T G 系列 Codec
ITU-T G 系列是定義一些在數位網路上傳送與多媒體部份的組織架構(Transmission systems and media, digital systems and network),而 G.7XX 定義有關聲音編碼方式以及傳 送的相關資訊,底下我們將介紹其中四種:G.711、G.723.1、G.726、G.729 voice codec。2.2.2.1 G.711
G.711 [27] 又稱做脈衝編碼調變(Pulse Code Modulation,PCM),是目前最普遍最常 用的聲音編碼方式,採用waveform codec 方式編碼,MOS 約在 4.3 左右。因為人類說
話的頻率分布在300 到 3800Hz,依照 Nyquist sampling theorem,取樣頻率(Sampling rate) 應該要大於7600Hz 以上,G.711 所採用的取樣頻率為 8000Hz。Sampling 後再做兩階段 的量化(Quantization)處理,先使用 12 bits/sample 的均勻量化(Uniform quantization)處理, 然後在對12 bits 的樣本做非均勻量化(Non-uniform quantization)減化成每個樣本用 8 bits 儲存,所以G.711 的位元率(Bit rate)為 8000 * 8 = 64Kbps。
G.711 按照第二次量化(Quantization)的方法不同,可以分為 A-law 與 µ-law 兩種。 A-law 用在北美與日本等國,而 µ-law 則是被歐洲各國所採用。除了第二次量化 (Quantization)的方法不同之外,A-law 在傳輸時會將資料中的偶數位元(2,4,6,8)反轉 (Invert)。下面為 A-law 與 µ-law 在兩次量化的列表資料:
表 1 G.711 編碼表
(資料來源:[27])
2.2.2.2 G.723.1
G.723.1 [28] 是 ITU-T 於 1999 年所提出的雙位元率(Dual bit rate)聲音編碼方式,可
以產生位元率為5.3 Kbps 或 6.3 Kbps 的編碼方式,位元率較高的編碼方式可以得到較佳
的聲音品質。一般而言,G.723.1 的 MOS 分數大約在 3.8 附近,是種頻寬需求低且聲音 品質不錯的編碼方法。
G.723.1 是對取樣頻率(Sampling rate)為 8000 Hz,16 bits/sample uniform quantization 的PCM 輸入做處理。G.723.1 的編碼器(Encoder)每次處理 240 個樣本的區塊(Block)或框 架(Frame),即每個框架的時間長短為 30 ms,加上 G.723.1 的編碼器會有向前參照 (Look-ahead)的時間延遲 7.5 ms,所以 G.723.1 在聲音編碼上平均會有約 37.5 ms 的延遲。 由於 G.723.1 亦屬於 CELP 編碼一族,它擁有傳統參數編碼法和波形編碼法的優點, 以一線性預測濾波器(Linear Prediction filter)來表示語音訊號的短時距(Short term)特性之
數學模型,並以基頻預測方式 (Pitch prediction)來找出語音訊號的長時距 (Long term)之 類週期,再加上諧波雜訊整型器(Harmonic noise sharping filter),過濾訊號中之雜訊的類 週期性;最後,再以多重脈衝(Multi-pulse)訊號來逼近殘餘訊號,進行量化編碼。 G.723.1 的聲音編碼與解碼方式如圖 12 所示。首先將每個框架經過高通濾波器 (High-pass filter)移除 DC 元素(Component),接著分成四個子框架(Subframe),每個子框
架含有 60 個樣本資料,然後將每個子框架經過數個不同的操作,用來決定適合的過濾
器(Filter)參 數 。 最 後 使 用 算 術 運 算 碼 激 發 線 性 預 測 (Algebraic Code-Excited Linear Prediction,ACELP)得到位元率為 5.3 Kbps 的聲音編碼結果,或是使用多重脈衝最大可 能之量化法(Multi-Pulse Maximum Likelihood Quantization,MP-MLQ)得到位元率為 6.3 Kbps 的聲音編碼結果。
圖 12 G.723.1 編碼與解碼架構方塊圖 (資料來源:[43])
2.2.2.3 G.726
因為Pulse Code Modulation(PCM)編碼後所需要的傳輸頻寬(64Kbps)仍然不讓人滿 意,所以許多方法便被研究發明來減少傳輸需要的頻寬。DPCM(Differential PCM)是將 要傳送的PCM 封包減掉前一個封包後,傳送兩者的差異值,因為連續兩個樣本(Sample) 的差異值通常不大,所以可以用較少的位元(Bit)來表示兩者的差異值,因此減少了傳輸 所需要的頻寬。ADPCM(Adaptive differential PCM)利用前一個 PCM 資料 t-1 推測目前 PCM t 的預測資料t',然後傳送預測的資料與原本的資料差(t−t'),如此一來只要選擇 準確性高的預測演算法,所得到的(t− 't)值較小,即可得到不錯的傳輸頻寬縮減效果。 G.726 [29] 就是採用 ADPCM 的方法來將聲音編碼,他取代了原先的 G.721 編碼方 式(也是使用 ADPCM 的編碼方式)。將輸入的 A-law 或 µ-law 資料,做上述 ADPCM 的 處理後,輸出成四種聲音格式,分別為16、24、32 或 40Kbps(分別為 2 bits/sample、3 bits/sample、4 bits/sample、5 bits/sample)此四類,在 32Kbps 的編碼結果可以得到 MOS 4.0 的效果,可以算不錯的編碼方式。
下圖為G.726 encoder 端的流程圖:
圖 13 G.726 編碼架構方塊圖 (資料來源:[29])
2.2.2.4 G.729
ITU-T Recommendation 中的 G.729 [30] 規定了聲音編碼為 8Kbps,其所使用的是 Conjugate-Structure-Algebraic-Code-Excited Linear Prediction (CS-ACELP)的預測方法,用 以幫助對所需頻寬的壓縮。G.729 的輸入為 16 bits/sample 的 PCM 格式,每次處理為一 個框架(Frame),每個框架(Frame)的時間長短為 10 ms,即每次處理 80 個樣本(取樣頻率 (Sampling rate = 8000Hz),處理每個框架(Frame)所需要的時間約為 15 ms,最後輸出 80 bits/frame,所以 G.729 傳輸所需的位元率(Bit rate)為 80 (Bits/frame) * 10 ms = 8Kbps。表
2 為 G.729 每 的示意圖:
8kbit/s CS- 算法的位 配置表 (10 ms frame)
eword Subf e 1 Subf e 2 Total rame
個框架中,bit 分配的詳細表格,而圖 14 為 G.729 block encoder
表 2 ACELP 演 元
Parameter Cod ram ram per f Line spectrum pairs L0,L1,L2,L3 18 Adaptive-codebook delay P1,P2 8 5 13 Pitch-delay parity P0 1 1 Fixed-codebook index C1,C2 13 13 26 Fixed-codebook sign S1,S2 4 4 8 Codebook gains (Stage 1) GA1,GA2 3 3 6 Codebook gains (Stage 2) GB1,GB2 4 4 8
Total 80
(資料來源:[30])
圖 14 G.729 編碼架構方塊圖 (資料來源:[30])
2.3 加密演算法 (Encryption Algorithm)
自古以來,對於傳送內有重要機密的文件時,為了不讓其他人得知內容,許多的方 法被產生來對文件內容做處理,使得其他人無法從處理過的文件看出原本的資料,尤其 在戰爭時期,用在傳送軍事訊息格外的重要,如何安全不被視破的下達軍事命令,這些 安全上的處理格外的重要,最有名的例子就是凱撒大帝所使用的加密方法。在這個章節 密文件…等,由於這些資料的價值很高,所以也有 屬於密碼系統這類型的範疇。一 般而 金鑰,E:加密演算 法, 合下列三項需求:統大致上可依加密金鑰的類型分成單向雜湊函數(One-Way Hash Function)、 對稱金鑰 一介紹: 1. 者利用寄件者 的公鑰去確認其簽章,來確定其文件是否確實寄件者所寫之內容,這類的 函數常用的有MD5、SHA-1…等,使用情形如下圖所示: 我們將簡介密碼系統以及說明一些近期常用的加密演算法。[36]
2.3.1 密碼系統 (Cryptography System) 簡介
隨著網路的發達,許多資訊的傳輸都藉由網路來傳送,其中不乏許多重要的資訊, 如商業機密、個人基本資料、國家機 不少的人覬覦這些資訊,希望截取這些資訊後從中獲得利益,因此如何達到網路安全的 話題,一直是近年來的重要議題。 將資料加密後傳送,是最常被大家所使用的方法,不論是簡單的對文字亂序排列, 或是使用加密金鑰(Key)的方式對資料處理後傳送,都 言,密碼系統包含五個構成要素(M:明文,C:密文,K:加密 D:解密演算法),並且需要符 1. 加、解密使用的演算法必須有效率的適合各種加密金鑰。 2. 系統必須能簡單的使用。 3. 系統安全性的高低應該只和加密金鑰相關,與加、解密演算法無關。 加密系(Symmetric key)密碼系統、非對稱金鑰(Asymmetric key)密碼系統等,底下將一 單向雜湊函數(One-Way Hash Function):一種可以將原先不論長度有多少 的訊息,經過單向雜湊函數的處理後,得到固定長度的訊息,稱為『訊息
摘要』(Message digest),寄件者把原文的訊息摘要,利用私鑰產生「簽章」
圖 15 單向雜湊函數使用範例 (資料來源:[37])
2. 對稱金鑰(Symmetric key)密碼系統:又稱秘密金鑰(Secret key)加密系統, 傳送資料的雙方事先溝通好所使用的金鑰,稱為秘密金鑰。使用這把秘密 金鑰對要傳送的資料經過加密演算法做加密的動作後,傳送到接收的一 端。最後利用這把金鑰經過解密演算法還原得到原本的資料,如下圖所示: 圖 16 對稱金鑰密碼系統 (資料來源:[37]) 3. 非對稱金鑰(Asymmetric key)密碼系統:又稱做公鑰加密系統,為了用來 解決金鑰傳遞的問題(若秘密金鑰遭劫取,則資料即能被竊取),而發展出 來的系統。使用者擁有一對金鑰,一為公鑰(Public key),另一為私鑰(Private Key),公鑰是公開發佈的,用來對要傳送的資料加密用,只有擁有私鑰的 人才能解回原文,所以只要保護私鑰不被取得即可,加、解密的方法如下
圖: 圖 17 非對稱金鑰密碼系統 (資料來源:[37]) 以上是目前常用的加密系統,依照使用金鑰方式的不同加以分類介紹,接下來的幾 小節中,我們將介紹將拿來與本文所提出方法做比較的幾種常見加密演算法,分別為 DES、triple DES、AES、RSA 等。
2.3.2 常見的加密演算法
在這個小節中,我們將介紹一些常見的加密演算法,例如:對稱加密演算法 (Symmetric encryption algorithm)中的 DES、triple DES、AES,以及非對稱加密演算法 (Asymmetric encryption algorithm)的 RSA 等,做簡單的介紹。2.3.2.1 Data Encryption Standard (DES)與 triple DES
1970 年代中期由美國 IBM 公司發展出來,於 1977 年經過美國國家標準局公布為資 料加密標準的一種區塊加密法(Block Cipher),是一種密鑰加密演算法(對稱加密演算 法)。由於近幾年電腦的運算速度增快,DES 加密過的資料已經可以在有限時間內被解 開,所以才有Triple DES 的出現。
DES 一次加密的區塊大小為 64 bits,其密鑰大小亦為 64 bits,但是其中有 8 bits 是 用來做錯誤較正(Error correct)用,所以實際的金鑰大小為 56 bits。如圖 18 所示,DES
的加密過程有16 個回合(Round),首先需要將使用者輸入的 64 bits 密鑰經過子金鑰的處
理,生成K1,…,K16 等子金鑰。接著將輸入的區塊做初始化排列(Initial permutation)後, 分成L0 與 R0 兩個各 32 bits 的區塊,L0 與子金鑰 K1 經過 f 函數的運算後,再與 R0 做 XOR 的運算得到 R1,而 R0 成為下接段的 L1,如此 16 次運算得到輸出的資料。加密
與解密過程的差異只在於子金鑰的輸入順序相反,其他部份皆相同。至於細節的部份, 如子金鑰的產生、f 函數等,在此不多做說明。
圖 18 DES 加密流程圖
近年來,由於個人電腦的運算能力大幅成長,用暴力法來破解 DES 加密過的資料
已經不是什麼太耗時的事情,所以美國已經宣佈政府機構不再使用DES 為加密的標準,
因此triple DES 順勢而生。實際上 triple DES 並沒有改變原本 DES 的演算法,而是將 DES 的演算法重複執行 3 次,如此達到的安全性可以讓目前的電腦無法在有限時間內計 算出原本的資料。
Triple DES 可依金鑰的不同分為三類:
1. 第一類的 triple DES 使用三把金鑰,分別運用於每次的 DES 回合中,所以金 鑰長度為192 bits(實際大小有用金鑰大小為 168 bits)。
2. 第二類的 triple DES 使用兩把金鑰,第一次 DES 回合使用一把金鑰加密,接
著使用另一把金鑰「解密」,再使用第一把金鑰加密後送出。
3. 第二類的 triple DES 也是使用兩把金鑰,與第二種 triple DES 不同的地方在
於,第二回合的DES 是採用第二把金鑰「加密」,其它部份相同。
2.3.2.2 Advanced Encryption Standard (AES)
由於計算機技術的大幅進步使得電腦的運算能力大幅提昇,對於使用 64 bits 的金
鑰的DES 而言,面臨了極大的考驗與威脅,因此 NIST 徵求下一代的加密標準(Advanced
Rijndael 由十五個候選的方法中被選出,於 2001 年 4 到 6 月間,完成了標準制定與測試, 2001 年 11 月,NIST 將 AES 定為 FIPS197。在未來的三十年內,AES 將會取代 DES 成 為政府及民間企業通用的密碼加密標準,用來保護重要的資料。它的明文密文區塊為 128 bit,而主金鑰的長度可分別有 128/192/256 bit 三種選擇。
Rijndael 是由比利時的 Joan Daemen 和 Vincent Rijmen 發明的,其命名是由兩人各
自的姓取出一部分而來。Rijndael 是以方塊(Square)為基礎發展而來的,原本的設計是區 塊的大小可以有128、192、256 位元三種變化,配上金鑰提供的選擇,可以有九種組合, 但是最後實際應用時也許只有採用NIST 要求的 128 位元。Rijndael 的運算是以位元組 (Byte)為單位的,其區塊和金鑰實際上可以是任何 32 的倍數。 首先,介紹一些基本定義,明文區塊和密鑰都可以表示為 4*n 的陣列,其中每一個 元素都是一個位元組,其中n 與區塊或密鑰的長度有關,n = 長度 / 32。此外,區塊的 n 表示為 Nb,密鑰的 n 表示為 Nk,定義 Nr= max(Nb, Nk)+5,加密所要進行的回合數, 是Nr+1 次。 AES 編碼的過程中的每一回合,除了初始化和最後一回合,均為四個步驟,分別為: Byte Sub、Shift Row、Mix Column,以及與 Add Round Key。
z 在Byte Sub這一步驟中,所作的運算大概是這樣的,考慮這時的區塊 的 陣 列 表 示 元 素 ,
a
ij , 由a
ij *a
ij-1=1 mod m(x) , 其 中 ,算出來的 1 ) ( = 8 + 4 + 3 + + x x x x x ma
ij-1再去作如下的陣列運算,得 到b
ij ,如此對每個元素都一樣運算,就是Byte Sub的變換過程。必 須注意的是,AES演算法中多項式的加和乘是在有限場 上處 理,與一般的代數運算不同。 ) 2 ( 8 GF z 在 Shift Row 這一步中,矩陣的每一列都會有不同位數的左移,左 移數還與區塊長度有關,關係如表 3:表 3 AES 列位移表(Shift row table)
Nb 列一 列二 列三 列四
4 0 1 2 3
6 0 1 2 3
8 0 1 3 4
z 在Mix column中,每列都被視為 上的多項式,多項式與 相乘後取mod(1 ),得到D(x), 這個過程也可表示為D(x)=C(x) ^
a
) 2 ( 8 GF ' 02 ' ' 01 ' ' 01 ' ' 03 ' ) (x = x + x + x+ C 3 2 +x4 ij。z 最後,在Add Round Key這一步中,狀態陣列會和該回合的回合 密鑰作XOR的運算,得到C(x),其中Cij = Aij ♁ Knij,Cij, Aij和Knij
分別為三個陣列的一個元素。這四個步驟,會連續做Nr次,且最 後一次不會做Mix column這一步。初始化只包含了Key expansion 和Add Round Key這兩步。
2.3.2.3 RSA
基於Diffe 和 Hellman 提出的以單向暗門函數(One-way Trapdoor Function)為基礎的 公開金鑰密碼系統,1978 年美國麻省理工學院三位教授 Rivest、Shamir 及 Adleman 首 先提出一種基於分解因數的指數函數為單向暗門函數的公開金鑰密碼系統,稱為RSA。 接下來我們將分兩階段介紹 RSA 系統的細節[36],首先介紹加密用的金鑰產生過 程,接著再說明利用公、私金鑰加密傳送的過程。 RSA 金鑰的產生可以分成下面三個步驟: 1. 使用者 A,任意選出兩個大質數pA與qA,並求出NA = pA×qA。 2. A 求出一任意整數eA,使得GCD(eA,TA)=1,其中(pA −1)×(qA −1)=TA, 則eA與NA為公開金鑰。 3. 計算出dA,使得eA×dA ≡1(modTA),如此dA即為私人金鑰。 有了公鑰以及私鑰之後,接下來就是傳送資料時加、解密的過程了,底下將分成加 密與解密兩個步驟來說明。 1. 加密:當使用者 B 欲傳送資料給使用者 A 時,明文 經過A 的 公開金鑰( , )處理後,得到密文為 。 ) 0 ( m NA m ≤ ≤ A e NA EA(m)=C =meA(modNA) 2. 解密:當 B 將密文 C 傳到 A 後,A 利用其原有的私鑰 執行解密演算法: 。 A d ) (mod ) ( ) ( 1 A KT d e d A C C m m m N D = A = A A = + = 以上即為 RSA 在處理加、解密,以及產生金鑰的過程說明。
2.4 網路安全與 IPSec 協定
網路上有許多攻擊方法是應用從網路層(Network layer)截取資訊,如來源位置 (Source address)、目地位置(Destination address)…等,來對使用者連線做破壞的動作。 為了防止這一類的攻擊,IETF 建立了一套用來保護網路層傳輸傳送的架構,內含許多 的通訊協定 [21] ~ [25],被規定為 IP v6 網路的基本要件之一。
IPSec 可以分成四個主要的元素,安全關聯(Security Association)、金鑰管理(Key management)、安全協定(Security protocol),以及加解密或認證演算法(Encryption or authentication algorithm),除了第四個部份已經在上一小節介紹過之外,其他將一一在下 面的章節介紹。
2.4.1 安全關聯(Security Association)
安全關聯(Security Association,SA)的概念是整個 IPSec 的基礎觀念 [21]。簡單來 說 就 是 一 個 可 以 用 來 承 擔 安 全 服 務(Security service) 在 上 面 傳 送 資 料 的 連 線 (Connection),這裡的安全服務包括將於 2.4.3 節中介紹的 ESP(Encapsulating Security Payload) [22]或是 AH(Authentication Header) [23]。
一個 SA 連線為單向連線,如果需要建立雙向的連線,即需要建立兩條 SA 的連線。
相同的,一條SA 連線只提供一種安全服務,即 ESP 或 AH 兩者其中之一,若是要建立
有 ESP 與 AH 的安全服務,需要建立兩條 SA 連線。因此 SA 也被稱為點對點
(Point-to-Point)的通訊方式,雖然也可以應用於點對多點(Point-to-multipoint)的通訊。每 個SA 連線存在著三個構成要素來唯一定義這個連線,分別為 Security Parameter Index (SPI)、目的地位置(Destination IP address)與安全服務用的通訊協定識別號碼(Security protocol identifier)。
SA 可以分為兩種模式,一種為傳輸模式(Transport mode),另一種為隧道模式(Tunnel mode),底下將分別介紹這兩種模式:
1. 傳輸模式(Transport mode):建立 SA 於兩臺主機(Host)間。在 IP v4 的網路架構 下,傳輸模式會將安全協定標頭(Security protocol header)至於 IP header 與 option 之後,在任何高層通訊協定(如:TCP、UDP…等)之前。在 IP v6 的網路 架構下,安全協定標頭(Security protocol header)會在 IP header 與 extension 之 後,但有可能在destination option 之前。 2. 隧道模式(Tunnel mode):一個隧道模式的 SA 本質上是將 SA 應用於 IP 隧道 (Tunnel)上。如果有一端的端點為安全閘道(Security gateway)的話,這一個 SA 連線一定使用隧道模式,所以無論是SA 介於安全閘道與安全閘道之間或是介 於主機與安全閘道之間,一定都是使用隧道模式。當然主機與主機間亦可使用 隧道模式的SA。
為了能提供最小且適當的管理,SA 提供了兩種資料庫系統來幫助 SA 的建立與管 理,一個為安全方針資料庫(Security Policy Database, SPD),另一個為安全關聯資料庫 (Security Association Database, SAD)。前者主要是規定從主機或是安全閘道送出的所有 IP traffic 要使 inbound 或是 outbound 的規則。後者則是用來儲存關於每個 SA 所需要用 到的參數。以上是對安全關聯做簡單的介紹。
2.4.2 金鑰管理(Key management)
IPsec 系統由於提供十分彈性的封裝機制、安全協定、加解密演算法組合,因此通 訊雙方必須事先「秘密分享」許多安全參數的設定(包含金鑰在內)。讓通訊雙方分享 安全參數的方式有手動設定(Manual keying)與自動協調(Automatic Negotiation)兩種。 而所謂的自動協調則是 IETF 提出的「自動金鑰交換機制」-- Internet Key Exchange(簡稱 IKE,RFC 2409) [24]。以實作的角度來看,IKE 是完全獨立於 IPsec 的應用系統,他會 自動回應 IPsec 對安全參數的需求而與遠端的 IKE 進行安全參數的協調工作。由於多數 廠商對於 IETF 所訂定的 IKE 標準並未達成完全的共識,因此歷年來所舉辦的 VPN 互通 性測試皆是以 IKE 為主。
IKE 是一個複合的通訊協定,結合了 RFC 2408 的 Internet Security Association and Key Management Protocol(ISAKMP) [25]、Oakely 提出的一系列金鑰交換的方法(The Oakely Key Determination Protocol,RFC 2413,稱為 modes)以及一部份的 SKEME 金鑰交換技術。 IKE 用來建立一個認證過的交換金鑰可以分成兩個階段,第一個階段為 IKE peers 建立一個安全且認證通過的通道(使用 ISAKMP 中定義的 parse 1),可以讓 IKE peers 互相 溝通。在第一階段中又可以分成兩種模式,一種為主模式(Main mode),而另一種為主動 模式(Aggressive mode),兩者都是利用 ephemeral Diffie-Hellman 產生認證通過的金鑰材 料,兩者的不同在於,主模式在溝通與傳送的參數上較主動模式來的多,所以花費的時 間也較主動模式多,但是使用起來靈活度較大。第一階段有四種認證方法:預共用密鑰、 數字簽名、公鑰加密、修正的公鑰加密。第二階段則是利用第一階段產生的安全關聯 (Security Association)來溝通通道中所要使用的安全服務(如:IPSec)所需要的金鑰,或是 其他需要設定的參數…等,用來建立 IPSec 的 SA。第二階段只提供一種模式,為快速 模式(Quick mode),因為第一階段所產生的 SA 為雙向通道,所以第二階段快速模式的 發起可由任何一端皆可。
此外,RFC 中還定義了一種名為新群組模式(New Group Mode),規定只能使用於第
一階段,而且要在IKE SA 建立前先進行,用來定義新的群組,但仍在發展中,尚未有
2.4.3 安全協定(Security protocol)
IPSec 中使用了兩種主要的安全協定:ESP (Encapsulating Security Protocol,RFC 2406) [22]以及 AH (Authentication Header,RFC 2042) [23],底下將對兩種安全協定做較 為詳細的介紹。
ESP 主要是結合加密演算法(如 DES、3DES、或 AES)及雜湊函數(Hash function),
對封包內容加密後即可不用擔心封包遭到竊取,同時亦可有類似AH 的驗證能力。但是
ESP 協定對於防止篡改或造假的能力並不如 AH 強大,因此雖然 ESP 亦有類似驗證功
能,仍不可完全取代AH。為了配合 SA 的特性,ESP 同樣也分成兩種模式:傳輸模式
(Transport mode)與隧道模式(Tunnel mode),下圖為兩種不同模式時,封包標頭(Header) 的示意圖(以 IP v4 為例):
圖 19 ESP 傳輸模式與隧道模式封包標頭示意圖
AH 主要透過雜湊函數(Hash function)(例如 MD5 及 SHA-1)的技巧,提供封包來 源的驗證、以及內容一致性的檢查,因此,當IP 封包(包含 IP Header 及 Data Payload)
在網路上遭人篡改或假造都可檢查出來,提供資料的正確性。為了配合SA 的特性,AH
同樣也分成兩種模式:傳輸模式與隧道模式,下圖為兩種不同模式時,封包標頭的示意 圖(以 IP v4 為例):
三、相關研究
本章節將介紹與本論文相關的一些研究。首先是傳輸聲音封包於 IP 網路上的特性
研究,接著是一些使用IPSec 傳送 VoIP 的相關研究與分析,以及 cIPSec 的介紹。最後
是與本論文提出的方法相關的研究:視覺加密(Visual cryptography)與互斥多路徑路由演 算法(Disjoint multipath routing algorithm)。
3.1 VoIP 效能需求
在這個小節中,我們將從過去的研究與試驗中,如 [7] [8] 等,獲得有關於網路上 的參數對於IP 電話的聲音品質影響,藉以用來做為本論文所提出來的論述基礎,也更 進一步了解IP 電話需要克服的問題,提出對應的解決方法。 單向 Mouth-to-ear 延遲相當於聲音由發話端到收話端的延遲,大至上包含三個部 份:將聲音數位化並且編碼與封裝、封包傳送時間,以及接收端消除 jitter 與解回類比 資料的時間,如下圖所示。一般而言,一般的端對端(End to end)VoIP 延遲的範圍在 150 ms 到 400 ms 之間 [7],而根據 [8] 的研究結果,Mouth-to-Ear 延遲時間在 200 ms 以內 的 VoIP 產品即可用於商業用途上。ITU-T 也於 G.114 [26] 標準中提出,單向延遲 (One-way delay)在 150 ms 內電話產品可以得到最佳的聲音品質(G.114 原先是為 PSTN 聲 音品質做測試的標準,同樣的也可以適用於VoIP 聲音品質的測量上)。 圖 21 單向 Mouth-to-ear 延遲示意圖 (資料來源:[8])底下我們將從 [8] 與其它相關 [9] 的研究中,討論上圖中,聲音封包透過 IP 網路 傳送時,會造成延遲的三個部份,與不同聲音編碼法的關係。 首先是聲音數位化與編碼的部份,我們可以從下表中看出,壓縮較佳的聲音編碼方 式,通常需要較多的處理時間,但是可以得到較小的封包,使頻寬的需求量減少。同樣 地,在接收端收到聲音封包後,解碼所需要的時間也和編碼所需時間相同。 表 4 各種聲音編碼法的負載大小(Payload size)與編碼延遲列表 Compression method Bit Rate (Kbps) Payload size (bytes) Encode delay (ms) MOS score G.711 (PCM) 64 160 (default) 0.75 4.1 G.726 ADPCM 32 60 (default) 1 3.85 G.728 LD-CELP 16 40 (default) 3 to 5 3.61 G.729 CS-ACELP 8 20 (default) 10 3.92 G.723.1 MP-MLQ 6.3 24 (default) 37.5 3.9 G.723.1 ACELP 5.3 20 (default) 37.5 3.65 在封包傳送的時間延遲部份,可分為兩類的延遲情形,一種為最小網路延遲時間, 這類延遲主要為傳送延遲(Propagation delay,約傳送每一公里產生 5 microseconds 的延 遲)。另一種為排程延遲(Queuing delay),這部份的延遲主要產生在封包經過路由器 (Router)或是閘道器(Gateway)時,在路由器或是閘道器中等待被處理的延遲,通常需要 視網路當時的流量而定,若是經過的路由器或是閘道器無法再容納更多的交通流量 (Traffic)進入該路由器或是閘道器時,這些封包會被丟棄(Discard),而產生封包遺失的 情形。封包遺失對於每一種聲音編碼方式有著不同的影響,可由下圖中得知: 圖 22 封包遺失對不同聲音編碼方式的影響 (資料來源:[8])
在接收端,因為每個封包傳輸的延遲不同,產生所謂的延遲振盪(Delay jitter),為 了處理振盪(Jitter),通常在接收端會使用消除振盪(Dejittering)的技術來消除振盪對聲音 撥放的影響,最簡單的方法是將收到的封包放置於一個暫存區內(Buffer),然後再按照 撥放的順序依時間撥放。同樣的,使用消除振盪的技術同樣也會使 Mouth-To-Ear 的延 遲增加,所以消除振盪的技術選用也是很重要的課題之一。 以上是對 VoIP 在傳送上的一些特質介紹,之後我們將使用並針對這些特質提出一 套有效的安全方法,來解決本文一開始所提到的問題。
3.2 使用 IPSec 傳輸 VoIP
在這一節中,我們將介紹幾篇有關於運用IPSec 來確保 VoIP 安全傳送的相關研究 與分析[5][6],並且在 3.2.2 小節中介紹[6]所提出的壓縮 IPSec 概念。3.2.1 使用 IPSec 傳輸 VoIP 分析研究
IPSec 是近期被 IETF 提出來,用來保護網路層安全性的一套架構,可以增加 IP 網 路的基本安全性。對於是否適用於對時間極為敏感的即時應用程式,需要以實驗來驗 證,對於這方面的分析與研究可從 [5] [6] 兩篇來看。底下我們將針對這兩篇論文的內 容做介紹,並且在下一節介紹其中一篇論文 [6] 所提出來的方法 — cIPSec。 IPSec 在前面的章節(2.4)介紹過了,是一個透過內部金鑰管理來建立安全連線 (Security Association),接著在 SA 中使用傳輸模式或是隧道模式配合 Encapsulating Security Protocol (ESP)或是 Authentication Header (AH)以達到資料的安全與正確傳輸的 目地。由上一節的結論得知,VoIP 在傳輸上對時間的要求有比較嚴格的限制,所以封 包的大小也會因為這個因素而有所限制,但是使用IPSec 作為安全傳輸的基礎,會在運 用 ESP 或是 AH 時,會使原本的封包增加許多,我們可以由下圖(圖 23)中看出成長的 幅度。 為了了解在 IPSec 的架構下,在網路傳輸聲音封包的影響有多少,這兩篇論文都做 了模擬的環境,借此來了解真實的情形,看看是否IPSec 適合使用來增加 VoIP 的安全 性,得到的結果如下頁圖 23、圖 24,以及圖 25 所示,可以看出有一定程度的影響, 所以在Reberto Barbieri 的研究 [6] 中,提出了 cIPSec(將於下一節介紹)的概念,試圖解圖 23 使用 IPSec 於 VoIP 封包的標頭成長示意圖 (資料來源:[5]) 圖 24 封包延遲與網路流量的關係圖,最右邊的線段為沒有使用IPSec的情形,最左邊 的線段則是使用DES加密於IPSec的情形 (資料來源:[6]) 由於IPSec不對加密與認證方法做限制,所以用不同的加密或是認證方法會對封包 大小有不同的影響,但是不論是那一種組合,都對聲音傳輸有相當的影響,所以底下我 們將介紹cIPSec來改善這個問題。
圖 25 左圖為 SIP call setup 時間的模擬結果,右圖為模擬傳送聲音封包延遲時間所得 到的結果 (資料來源:[5])
3.2.2 壓縮 IPSec(cIPSec)
cIPSec 的概念是來自觀察封包傳送的標頭所得來的,有許多的欄位在通訊過程中根 本不會變化,或是只和前一個封包相差1 個位元的成長,如 sequence number,又或是 某些欄位的值在更上層的通訊協定標頭(Protocol header)中已經存在…等情形,可以加以 縮減,以減少所需要傳送的資料量,此種方法也可以用在低速網路連接上(cSLIP, Low-Speed Serial Links,RFC 1133)。由上面的觀察,在 [6] 這篇論文中打算把隧道模式中 IP/UDP/RTP 的內部標頭壓縮 成4 bytes,方法是將上述的欄位不在網路上傳輸,以減少傳輸的資料量。為了達到上面 的目的,每個連線的兩端點都需要維護一些資訊以及連線內容等,這些資料用來幫助接 收端回復原來完整的封包標頭。 儲存在加密兩端點上的資訊包含下列的幾個部份,主要是 IP header 中的來源與目 的地位址、UDP 中的來源與目的 port 以及 RTP 中的 SSRC 欄位…等,如下所列: z 尚未使用壓縮(cIPSec)前最後一個完整的 IP/UDP/RTP 標頭,使用內部的資訊 來幫助壓縮後的封包重組。
z 尚未使用壓縮(cIPSec)前最後一個 sequence number 的後四位元,用來檢驗封包 遺失於compressor 和 decompressor 之間。
經過壓縮後的內部標頭(Internal header) (IP/UDP/RTP)如下圖所示,各欄位說明見於 圖下所示:
圖 26 cIPSec 標頭(Header) (資料來源:[6])
z Session context ID:共有 16 bits,用來區分同樣兩個端點間,不同連線用,如
此可在兩端點間同時存在65536 通連線。
z Link sequence:8 bits,用來表示 RTP 標頭末 8 位的位元,如此可以讓接收端
追蹤至多連續256 個的封包遺失。
z S、C、R:各為 1 bit,S 與 C bit 分別用來表示是否有 RTP sequence 與 UDP checksum;R bit 用來指出是否需要重送封包並且不經過壓縮。
z UDP checksum 與 RTP sequence:為選擇性存在(Option)的欄位,即為原封包的 UDP checksum 與 RTP sequence。
原封包格式為 2.4.3 節中圖 19 的 ESP 隧道模式,經過 cIPSec 的處理後,將會被轉 換成為下圖的格式: 圖 27 cIPSec 用於 ESP 隧道模式的封包標頭示意圖 經過該論文的實作 cIPSec 與模擬之後,可以得到下圖的結果,很明顯的可以大大 的減少頻寬的使用量。雖然可以減少頻寬的使用量,但是 cIPSec 還是使用需要加解密 的過程並且需要用到金鑰的觀念,所以本篇論文僅將此方法用於訊號(Signals)傳遞的保 護上。
圖 28 由左到右分別為:一般的聲音封包、使用 IPSec、使用 cIPSec、2%資料遺失率、 5%資料遺失率,以及 10%資料遺失率的頻寬使用大小
(資料來源:[6])
3.3 視覺加密(Visual cryptography)
視覺加密法(Visual cryptography) [10],是由 Moni Naor 與 Adi Shamir 兩人於 1995 年所提出,一種藉由人類視覺特性,將書面的材料(如:書面文字、手寫筆記、圖畫… 等)加密的方法,最後直接由人類的視覺系統加以解密。這種加密方式基本上包括一張 密文(以傳真或是郵寄的方式傳送)與一張列印出來的投影片(如同密鑰的功能),收到的 一方將兩者重疊觀看即可得到原本的明文(可能會有一些隨機雜訊的存在),如此即可簡 單與快速的將明文加密,而不需要經過繁複的處理過程。 最早被提出的視覺加密是運用在黑白兩色的圖文上,將原圖分成兩個相等大小分享 資料(Share data)的方法如下表所示,當原圖(明文)上的點為白色時,share-1 與 share-2 皆使用白色;當原圖(明文)上的點為黑色時,share-1 與 share-2 使用 Black 一行中,三種 方法的其中一種(黑白、白黑、黑黑)。這種方法的好處是可以節省空間,但最大的缺點 是可以很容易的從分享資料(Share data)中看出原圖內容,如圖 29 所示。
圖 29 每個像素使用 1 位元分割的視覺加密法範例 由於上述的方法有嚴重的安全缺點,所以經過研究以後,將原本在原圖上的1 個像 素(Pixel)擴充為分享資料(Share data)上的四個像素來表示,對應的表格如下(表 6)所示, 如此一來即可得到像雜訊般的分享資料(Share data),增加安全性。此方法的缺點是,需 要原圖四倍的空間來儲存分享資料,如圖 30 的例子所示。 表 6 每個像素使用 4 位元分割的視覺加密法(Visual crytography) 圖 30 每個像素使用 4 位元分割的視覺加密法範例