1. sim卡和usim卡卡號上有什麼區別,怎麼通過卡號來看,誰能幫我看一下卡號是89860113498
SIM卡(Subscriber Identity Mole) ,即用戶識別卡,是全球通數字行動電話的一張個人資料卡。它採用A 級加密方法製作,存儲著用戶的數據、鑒權方法及密鑰,可供GSM系統對用戶身份進行鑒別。同時,用戶通過它完成與系統的連接和信息的交換。
行動電話只有裝上SIM卡才能使用。「SIM卡」有大小之分,功能完全相同,分別適用於不同類型的GSM行動電話。SIM卡可以插入任何一部符合GSM規范的行動電話中,而通話費則自動計入持卡用戶的帳單上,與行動電話無關。
SIM卡的使用,有效的防止了盜用、並機和通話被竊聽,使用戶的正常通信得到了可靠的保障。
為了保證您的行動電話丟失後不被盜用,每張SIM卡都可設置一組個人密碼(PIN碼)來對SIM卡上鎖,它是由用戶自己設定的。只有正確輸入密碼後,手機才會進入正常的使用狀態。連續三次輸入錯誤的個人密碼,手機即會將SIM卡鎖住。發生這種情況,請您立即關機並攜機及SIM卡到無線局營業廳解鎖。如果此時您還繼續操作,將引起SIM卡的自動封毀,給您造成不必要的損失。
USIM卡就是第三代手機卡
USIM: Universal Subscriber Identity Mole(全球用戶識別卡)
全球用戶身份模塊(USIM),也叫做升級 SIM ,是在 UMTS 3G 網路的一個構件。
很多人認為在3G時代,絕大部分應用只能由手機實現,卡片上的有限資源只需實現認證功能就可以了。的確,3G的應用十分復雜,大部分的應用都不能通過STK卡來單獨完成。但USIM卡並不是只能做單純的認證功能,事實證明它正在逐步向移動商務平台、乃至最後的多應用平台過渡,在手機上實現電子錢包、電子信用卡、電子票據等其它應用已不再是難事。這一特點使USIM卡成為了不同行業跨領域合作、相互滲透經營的媒介,如銀行可以參與電信的經營,反之亦然。
除能夠支持多應用之外,USIM卡還在安全性方面對演算法進行了升級,並增加了卡對網路的認證功能,這種雙向認證可以有效防止黑客對卡片的攻擊。同時,USIM卡的電話簿功能更為強大,最多可存入500個電話號碼,並且針對每個電話,用戶還可以選擇是否錄入其它信息,如電子郵件、別名、其它號碼等。
盡管步履蹣跚,但3G還是向我們一步步走來。高額的3G牌照費用也許是許多運營商徘徊不前的原因之一,更重要的是它們對3G應用持以觀望的態度。而且實現基於USIM卡上的多應用還有很多問題亟待解決,如相關的規范不夠完善,缺乏支持這種多應用的手機,更重要的是運營商和相關的企業或政府機構的多方協調會加大這種應用的難度。無論怎樣,第三代移動通信卡片在這方面已經做好了技術准備,相信基於USIM卡的多應用也終會在3G時代得到廣泛使用。
TD-SCDMA的USIM卡在非TD-SCDMA手機上的使用問題,我們經過測試,在其它3G手機上,如WCDMA的機型,USIM卡可以作為一張普通的SIM卡使用,進行GSM網路的通話和信息功能,而在非2G手機上,則顯示「SIM卡」注冊失敗。可見USIM卡本身就是一張TD-SCDMA和GSM 的雙模卡(在USIM卡卡身上亦有說明),但是只能使用在3G手機如K850i、E51或有「3G版本」存在的行貨手機如N73、N95上。
WCDMA和GSM之間的國際漫遊分析
【摘要】文章介紹了GSM和WCDMA系統中不同制式的終端和不同類型用戶標識模塊(SIM、USIM、ISIM)之間的兼容關系。主要討論了WCDMA和GSM系統之間實現國際漫遊的兩種不同操作模式,分析了不同模式下具體的呼叫信令流程和不同的加密方式。
【關鍵詞】2G/3G互操作 WCDMA GSM 國際漫遊 鑒權加密
1 引言
我們知道GSM和WCDMA都是基於GSM-MAP核心網,GSM網路可以平滑演進到WCDMA系統。目前歐洲、亞洲、非洲有很多國家已經建立WCDMA系統。所謂的WCDMA和GSM之間的國際漫遊是指GSM(或者WCDMA)用戶漫遊到國外的WCDMA(GSM)網路,利用拜訪地WCDMA(GSM)網路來為其提供業務服務。
由於各個國家發展的情況存在一定的差異,例如有的國家只存在GSM網路(比如中國),而有的國家則只建設了WCDMA網路(例如日本),而沒有GSM網路。為此3GPP TS 22.100規范指出,WCDMA終端應該可以支持通過GSM的SIM卡來訪問WCDMA網路。當然此時WCDMA網路只能為用戶所提供象GSM系統所能提供的那些業務(WCDMA的特有業務,例如視頻、高速數據通信無法提供)。用戶是否可以通過GSM的SIM卡來訪問WCDMA網路由該WCDMA網路運營商控制。同時3GPP TS 22.101規范指出UMTS(Universal Mobile Telecommunications System)系統應該允許WCDMA用戶通過GSM終端來訪問GSM網。下面我們就這個問題來分析一下要在這兩個系統之間實現國際漫遊需要什麼條件以及一些關鍵流程。
2 移動終端中的UICC卡
我們知道在3GPP終端設計中一個重要的環節就是通用集成電路卡(UICC,Universal Integrated Circuit Card)的設計。UICC卡是一種可移動智能卡,它用於存儲用戶信息、鑒權密鑰、電話簿、短消息等信息。
在GSM和3GPP規范中,用戶想正常的使用各種業務都必須依靠終端中的UICC卡。如果終端中沒有UICC卡,那麼用戶只能使用緊急呼叫業務(例如110、119)。
用戶只需要將UICC卡從一部終端取出並插入到另一部終端中便可以輕松的將用戶的簽約信息(包括電話簿)從一部終端轉移到另一部終端中。
UICC是定義了物理特性的智能卡的總稱,UICC和終端的介面都是標準的。
UICC可以包括多種邏輯應用,例如用戶標識模塊(SIM,Subscriber Identity Mole)、通用用戶標識模塊(USIM,Universal Subscriber Identity Mole)、IP多媒體業務標識模塊(ISIM,IP Multimedia Service Identity Mole)。當然UICC還可以包括其它應用(電子錢包等)。
2.1 GSM中的SIM
SIM卡是GSM網路中移動終端所使用的智能卡,它用於存儲各種參數和相關用戶信息,例如用戶簽約信息、鑒權密鑰、用戶的優選信息、以及簡訊息。應當注意的是盡管我們經常會把UICC和SIM這兩個術語互換,其實UICC是指物理卡,而SIM是指UICC卡上存儲GSM用戶簽約信息的一個應用。SIM廣泛應用於GSM系統中。
SIM中包括下列信息:
◆國際移動用戶標識(IMSI,International Mobile Subscriber Identity):用戶身份標識,用於接入鑒權。
◆移動用戶ISDN號碼(MSISDN,Mobile Subscriber ISDN Number):移動用戶的手機號碼。
◆密鑰Ki、加密演算法A3、A8:用於鑒權。
◆移動國家碼(MCC,Mobile Country Code)、歸屬PLMN的移動網路碼(MNC,Mobile Network Code):網路標識。
SIM應用在GSM的早期階段就已經進行了標准化。在3GPP中繼續繼承了這些規范(參閱3GPP TS 11.11和3GPP TS 51.011)。
2.2 WCDMA中的USIM
USIM(參閱3GPP TS 31.102)是UICC卡上的另外一種應用。USIM提供了不同於SIM的另外一組參數,它包括用戶簽約信息、鑒權信息、付費方式、用戶短消息等。USIM用於通用移動通信系統(UMTS,Universal Mobile Telecommunication System)網路中,即WCDMA網路中。
當終端(包括電路交換功能和分組交換功能)要使用WCDMA業務時,必須使用USIM。很明顯,SIM和USIM可以共存於同一張UICC卡中。
除了其它信息外,USIM包括下列信息:
◆國際移動用戶標識(IMSI,International Mobile Subscriber Identity):IMSI是分配給每個用戶的唯一標識,該標識對用戶來說是不可見的,而對網路來說是可見的。IMSI作為用戶標識用於鑒權目的。在IP多媒體子系統(IMS,IP Multimedia Subsystem)中其私有用戶標識等價於IMSI。
◆移動用戶ISDN號碼(MSISDN,Mobile Subscriber ISDN Number):在該域中存儲了分配給用戶的一個或者多個電話號碼。在IMS中其公共用戶標識等價於MSISDN。
◆加密密鑰(CK,Cipher Key)和完整性密鑰(IK,Integrity Key):這些密鑰用於空中介面中數據的加密和完整性保護。USIM單獨存儲在電路域和分組域使用的密鑰。
◆短消息(SMS,Short Message Service):USIM可以存儲短消息以及相關的數據,例如發送者、接收者、狀態等。
◆短消息參數:該域用於存儲與SMS業務有關的配置數據,例如SMS中心地址、支持的協議等等。
◆多媒體消息業務(MMS,Multimedia Message Service)用戶連接性參數:該域用於存儲與MMS業務相關的配置數據,例如MMS伺服器地址、MMS網關地址。
◆MMS用戶優選信息:該域用於存儲與MMS業務有關的用戶優選信息,例如發送報告標志、優先順序、到期信息等。
USIM卡和SIM卡相比有如下特點:
◆相對於SIM卡的單向鑒權(網路鑒權用戶),USIM卡鑒權機制採用雙向鑒權(除了網路鑒權用戶外,用戶也鑒權網路),有很高的安全性。
◆於SIM卡電話薄相比,USIM卡電話薄中每個聯系人可以對應多個號碼或者昵稱。
◆相對SIM卡機卡介面速率,USIM卡機卡介面速率大大提高(230kbps)。
◆相對SIM卡對邏輯應用的支持,USIM可以同時支持4個並發邏輯應用。
2.3 3GPP IMS中的ISIM
在UICC中還可以實現ISIM應用(參閱3GPP TS 31.103)。ISIM僅用於3GPP IMS系統中。它包括了在IMS系統中用於用戶標識、用戶鑒權和終端配置的有關參數。ISIM可以跟單獨與SIM或USIM共存於一張UICC卡上,當然也可以同時與SIM和USIM共存於一張UICC卡上。
在ISIM中包括的主要參數有:
◆私有用戶標識(Private User Identity):在ISIM中只能有一個私有用戶標
◆公共用戶標識(Public User Identity):在ISIM中可以存儲一個或者多個公共用戶標識的SIP(Session Initiation Protocol) URI。
◆歸屬網路域URI:ISIM中存儲了包括歸屬網路域名的SIP URI,用於在注冊過程中找到其歸屬網路的地址。在ISIM中只能存儲一個歸屬網路域名URI。
◆長期加密(Long Term Secret):用於鑒權目的,用於計算終端和網路之間使用的完整性密鑰和加密密鑰。IMS終端利用完整性密鑰來保護IMS終端和代理呼叫會話控制功能(P-CSCF,Proxy-Call Session Control Function)之間SIP信令的完整性。如果信令需要保密,那麼IMS終端將利用加密密鑰來對IMS終端和P-CSCF之間的SIP信令進行加密和解密。
除了ISIM外,使用USIM也可以訪問3GPP IMS網路,但是需要對終端的軟體進行適當的修改。由於SIM應用的安全等級較低,所以3GPP IMS系統不允許通過SIM來訪問。
2.4 小結
目前UICC卡一般同時包括USIM和SIM兩個模塊,此時稱為復合USIM卡(它可以兼容GSM終端和WCDMA終端),如果UICC中只包括USIM模塊,那麼稱為純USIM卡。
WCDMA終端在機卡介面上具備後向兼容性,兼容USIM卡(復合USIM卡和純USIM卡)和GSM的SIM卡。
GSM終端兼容GSM的SIM卡和WCDMA的復合USIM卡,不兼容純USIM卡。
WCDMA雙模終端無論插入SIM卡或者USIM卡(復合USIM卡或者純USIM卡)都可以接入GSM無線網路或者WCDMA無線網路。
GSM終端插入SIM卡或復合USIM卡只能接入GSM無線網路。
SIM卡可以應用於GSM、WCDMA、TD-SCDMA系統中。
USIM卡可以應用於GSM、WCDMA、TD-SCDMA系統中。
如果用戶想使用IMS業務,那麼在UICC卡中必須同時包括USIM和ISIM,如果只有USIM的話,可以通過修改終端中的軟體來實現對IMS的訪問(Release 5),在將來的標准中不排除在UICC卡中只需要ISIM即可訪問IMS。
3 WCDMA和GSM的空中介面
WCDMA是從GSM系統演進而來,它們使用相同的核心網,但是其空中介面部分卻有巨大差別,圖2是WCDMA R4網路結構圖,從圖中可以看出GERAN和UTRAN公用同樣的核心網。
表1列舉了WCDMA和GSM在空中介面上一些最主要的差別:
表1 WCDMA和GSM空中介面關鍵參數對比
WCDMA
GSM
多址方式
CDMA
TDMA
載波帶寬
5MHz
200kHz
調制方式
QPSK(前向)、BPSK(反向)
GMSK
分集方式
多徑分集(RAKE接收機)
慢跳頻
頻率復用因子
1
1~18
語音編碼
AMR
RPE-LTP-LPC
信道編碼
卷積碼、Turbo碼
卷積碼
3.1 多址方式
從表中可以看出WCDMA採用碼分多址方式,用戶和信道都是通過不同的碼子來區分,也就是說不同的用戶可以在相同的頻率、相同的時隙中同時進行通信。GSM系統採用時分多址方式,用戶和信道是通過不同的時隙來區分,也就是說在某一時刻,一個時隙只能分配給一個用戶使用。
在WCDMA中分別用到了信道化碼和擾碼,其信道化碼採用正交可變擴頻因子(OVSF,Orthogonal Variable Spreading Factor)來實現,OVSF具有很好的互相關性,即不同碼子之間是完全正交的。而其擾碼則通過偽隨機序列來實現,偽隨機序列具有良好的自相關性,即同步時會有很大的峰值。
3.2 載波帶寬
在WCDMA中其擴頻碼片速率是3.84Mbps,所以經過調制後其信號帶寬為5MHz。WCDMA是碼分多址(CDMA,Code Division Multiple Access)頻分雙工(FDD,Frequency Division Duplex)系統,所以上下行總共佔用10MHz帶寬。這也是WCDMA稱為寬頻CDMA的原因。對GSM來說,信息經過信道編碼後的最終速率為270.8Kbps,經過高斯最小移頻鍵控(GMSK,Gaussian Minimum Shift Keying)後其信號帶寬為200KHz,GSM是時分多址(TDMA,Time Division Multiple Access)頻分雙工系統,所以上下行總共佔用400KHz的帶寬。
3.3 調制方式
WCDMA系統採用了二進制移相鍵控(BPSK,Binary Phase Shift Keying)和四進制移相鍵控(QPSK,Quadrature Phase Shift Keying),對於BPSK來說就是將每個比特(0或者1)映射成相位0或者π,而QPSK則將兩個比特分別映射成相位0、π/4、π/2、3π/4。此時調制信號的頻率保持不變。
GSM系統採用的是GMSK調制方式,GMSK屬於連續相位調制,是在MSK調制之前加入高斯濾波器,其目的是使調制信號的主瓣滾降的更快。該調制信號的頻率是變化的。
3.4 分集方式
分集(Diversity)是為了提高通信系統的可靠性。在WCDMA系統中,利用CDMA固有的抗多徑衰落能力,將從不同方向反射過來的多徑信號通過RAKE接收機進行最大比合並(MRC,Maximal Ratio Combining),從而將本來對通信可靠性有害(多徑信號會造成多徑衰落,即頻率選擇性衰落)的多徑信號變成對通信有益的信號。
在GSM系統中採用了慢跳頻技術,通俗點說就是將信息分別在不同的頻率上進行傳輸,這樣便可以克服由於某一頻率一直處於深衰落對信號的影響。
3.5 語音編碼和信道編碼
語音編碼和信道編碼一直是資訊理論中研究的重點,語音編碼就是在可以聽懂的基礎上編出盡可能低的比特速率。而信道編碼是通過增加冗餘比特從而保證信息傳輸的可靠性。
WCDMA系統中的語音編碼器採用的是自適應多速率(AMR,Adaptive Multi-Rate)編碼技術。WCDMA系統中的信道編碼包括卷積碼和Turbo(1993年提出)碼,Turbo碼由於具有較大的交織深度(導致傳輸延時增加)和超強糾錯能力,所以通常用在數據通信環境下。
GSM的語音編碼器採用的是規則脈沖激勵長期預測線性預測編碼(RPE-LTP-LPC,Regular Pulse Excited-Long Term Prediction-Linear Predictive Coding)技術。GSM中的信道編碼採用的是卷積碼。
3.6 小結
通過上面的敘述,可以得出很簡單的結論,即當終端處於某種蜂窩網路的覆蓋范圍內時,終端要想正常工作,其前提條件就是終端必須跟基站必須是同一制式。也就是說當終端處於WCDMA基站覆蓋時,該終端必須是WCDMA終端(WCDMA/GSM雙模終端當然沒有問題);當處於GSM基站覆蓋時,該終端必須是GSM終端(WCDMA/GSM雙模終端顯然沒有問題)。
4 WCDMA和GSM實現國際漫遊的兩種方式
目前WCDMA和GSM之間實現國際漫遊的方式主要有兩種:一是在國內辦理租機租卡呼轉漫遊業務;二是自備雙模終端到國外實現GSM和WCDAM之間的自動漫遊。下面我們將分別以中國和日本之間的GSM、WCDMA國際漫遊為例進行分析。
4.1 租機租卡呼轉漫遊
當中國GSM用戶要漫遊到日本時,由於日本是WCDMA網路,所以用戶在國內開通了租機租卡呼轉漫遊業務,在營業廳租用的手機是日本的WCDMA手機,同時將用戶的GSM手機號呼轉到租用的手機上,這種呼轉屬於無條件呼轉。
假設用戶A要去日本,辦理了租機租卡呼轉漫遊業務,其號碼呼轉到了終端B上,當國內用戶C呼叫用戶A。
(1) MSC接收到被叫用戶號碼A後,通過7號信令網向A的HLR發送send_routing_info消息。
(2)在HLR中可以看到用戶A已經呼轉到了終端B上,此時HLR通過send_routing_info消息將B號碼返回給MSC。
(3) MSC分析得知該號碼是國際號碼後通過向TSMC發送IAM消息,並通過ISC、國際話務中轉商送達日本TMSC。
(4) 日本TMSC收到IAM消息後,通過7號信令向終端B的HLR發送send_routing_info消息。
(5)終端B的HLR已知目前為終端B提供服務的MSC,隨後向該MSC發送provide_roaming_num消息獲取終端B的MSRN。
(6) MSC將終端B的MSRN通過provide_roaming_num_ack消息返回給HLR。
(7) 隨後終端B的HLR通過send_routing_num_ack消息將B的MSRN發送給TMSC。
(8) 獲知了終端B的MSRN後,TMSC便通過IAM消息進行隨後的話務接續。
同理可得當日本WCDMA用戶漫遊到中國GSM網路時,也可以在其國內辦理該業務。
4.2 自備WCDMA終端實現GSM到WCDMA的國際漫遊
GSM用戶通過WCDMA終端訪問日本WCDMA網路的簡單鑒權、加密過程:
中國用戶到達日本開機後,首先發起位置更新過程,日本WCDMA MSC收到中國用戶的位置更新請求後,便通過國際7號信令網和中國7號信令網向用戶的HLR發起位置更新請求。隨後HLR通過鑒權請求消息向日本WCDMA MSC發送Triplets(Kc,RAND,SRES)。此時的鑒權過程跟GSM系統的鑒權一樣,即MSC將Kc和RAND下發給終端後,終端利用RAND、Ki通過A3演算法得到SERS,並將該SERS返回給MSC,MSC將比較HLR送來的SERS跟終端送來的是否一致。若一致則鑒權通過,HLR會向日本WCDMA MSC/VLR插入中國用戶的相關數據,同時將這些信息從舊MSC/VLR中刪除。若不一致,則用戶被拒絕。
其實在鑒權完畢後緊接著應該進行空中介面加密過程,不過我們國內沒有採用。在GSM系統中空中介面的加密是通過Kc和A5演算法來完成的,然而當用戶漫遊到日本後,如上圖,對於WCDMA終端和WCDMA MSC都會按照相應的轉換函數將收到的Kc轉換成CK、IK,從而實現加密和完整性保護,可以看出其傳輸的安全性提高了。
4.3 自備GSM終端實現WCDMA到GSM的國際漫遊
日本的WCDMA用戶漫遊到中國後只需更換一部GSM終端就可以了,無需換USIM復合卡。如果用戶使用的是WCDMA/GSM雙模終端則可以實現自動漫遊。我們簡單的看看該場景中的鑒權和加密過程。
當日本用戶漫遊到中國開機後,首先進行位置更新過程,中國GSM MSC收到日本用戶的位置更新請求後,便通過7號信令網向用戶的HLR發起位置更新請求。注意此時日本的HLR是WCDMA HLR,其存儲的是鑒權五元組(Quintets)(RAND,CK,IK,XRES,AUTN),它必須將其轉換為三元組(Triplets),即通過CK、IK計算出Kc,通過XRES計算出SERS。隨後HLR通過鑒權請求消息向中國MSC發送Triplets(Kc,RAND,SRES)。MSC收到Triplets後通過GSM BSS將RAND發送給GSM終端,終端利用該RAND可以計算出CK、IK和RES,隨後終端利用不同的轉換函數分別將CK、IK轉換成KC,將RES轉換成SRES。然後終端將SERS返回給MSC,MSC將從HLR中收到的SRES和從終端收到的SRES進行比較,若一致,則鑒權通過,HLR將用戶相關信息插入到GSM MSC/VLR中,並從舊的VLR中刪除用戶相關信息。完成位置更新過程。若比較結果不一致,則拒絕用戶。雖然我國GSM系統空中介面沒有進行加密,其實在規范中鑒權完畢後由加密過程,即終端和GSM BSS之間通過Kc進行加密操作。
5 結束語
通過上面的分析我們可以看出由於WCDMA和GSM有著相同的核心網,所以只要運營商相互開通WCDMA和GSM之間的業務,用戶只需要更換原來的終端就可以實現自動漫遊,不同的是在空中介面加密過程中需要對鑒權組中的參數進行相應的轉換以適合空中介面的需要。
2. 畢業設計 SIP協議的實現
我們先進行一個簡單的純SIP信令(不帶語音連接建立)的UAC的SIP終端的程序開發的試驗(即一個只能作為主叫不能作為被叫的的SIP軟電話模型),我們創建一個MFC應用程序,對話框模式,照上面的說明,設置工程包含我們上面得到的oSIP的相關開發庫及SDK的一些開發庫,並且由於默認LIBC的沖突,需要排除MSVCRT[D]開發庫(其中D代表Debug模式下,沒有D表示Release模式下),直接使用eXosip的幾個主要函數就可以創建一個基本的SIP軟電話模型。
其主要流程為:
初始化eXosip庫-啟動事件監聽線程-向SIP Proxy注冊-向某SIP終端(電話號碼)發起呼叫-建立連接-結束連接
初始化代碼:
int ret = 0;
ret = eXosip_init ();
eXosip_set_user_agent("##YouToo0.1");
if(0 != ret)
{
AfxMessageBox("Couldn't initialize eXosip!\n");
return false;
}
ret = eXosip_listen_addr (IPPROTO_UDP, NULL, 0, AF_INET, 0);
if(0 != ret)
{
eXosip_quit ();
AfxMessageBox("Couldn't initialize transport layer!\n");
return false;
}
啟動事件監聽線程:
AfxBeginThread(sip_uac,(void *)this);
向SIP Proxy注冊:
eXosip_clear_authentication_info();
eXosip_add_authentication_info(uname, uname, upwd, "md5", NULL);
real_send_register(30); /* 自定義函數代碼請見源碼 */
發起呼叫(構建假的SDP描述,實際軟電話使用它構建RTP媒體連接):
osip_message_t *invite = NULL; /* 呼叫發起消息體 */
int i = eXosip_call_build_initial_invite (&invite, dest_call, source_call, NULL, "## YouToo test demo!");
if (i != 0)
{
AfxMessageBox("Intial INVITE failed!\n");
}
char localip[128];
eXosip_guess_localip (AF_INET, localip, 128);
snprintf (tmp, 4096,
"v=0\r\n"
"o=josua 0 0 IN IP4 %s\r\n"
"s=conversation\r\n"
"c=IN IP4 %s\r\n"
"t=0 0\r\n"
"m=audio %s RTP/AVP 0 8 101\r\n"
"a=rtpmap:0 PCMU/8000\r\n"
"a=rtpmap:8 PCMA/8000\r\n"
"a=rtpmap:101 telephone-event/8000\r\n"
"a=fmtp:101 0-11\r\n", localip, localip, "9900");
osip_message_set_body (invite, tmp, strlen(tmp));
osip_message_set_content_type (invite, "application/sdp");
eXosip_lock ();
i = eXosip_call_send_initial_invite (invite);
eXosip_unlock ();
掛斷或取消通話:
int ret;
ret = eXosip_call_terminate(call_id, dialog_id);
if(0 != ret)
{
AfxMessageBox("hangup/terminate Failed!");
}
3. sip協議是什麼,sip協議的功能及其應用
SIP是一個應用層的信令控制協議。用於創建、修改和釋放一個或多個參與者的會話。這些會話可以好似Internet多媒體會議、IP電話或多媒體分發。會話的參與者可以通過組播(multicast)、網狀單播(unicast)或兩者的混合體進行通信。
SIP是類似於HTTP的基於文本的協議。SIP可以減少應用特別是高級應用的開發時間。由於基於IP協議的SIP利用了IP網路,固定網運營商也會逐漸認識到SIP技術對於他們的深遠意義。
使用 SIP,服務提供商可以隨意選擇標准組件。不論媒體內容和參與方數量,用戶都可以查找和聯系對方。SIP 對會話進行協商,以便所有參與方都能夠就會話功能達成一致以及進行修改。它甚至可以添加、刪除或轉移用戶。
SIP它既不是會話描述協議,也不提供會議控制功能。為了描述消息內容的負載情況和特點,SIP 使用 Internet 的會話描述協議 (SDP) 來描述終端設備的特點。SIP 自身也不提供服務質量 (QoS),它與負責語音質量的資源保留設置協議 (RSVP) 互操作。它還與若干個其他協議進行協作,包括負責定位的輕型目錄訪問協議 (LDAP)、負責身份驗證的遠程身份驗證撥入用戶服務 (RADIUS) 以及負責實時傳輸的 RTP 等多個協議。
SIP 的一個重要特點是它不定義要建立的會話的類型,而只定義應該如何管理會話。有了這種靈活性,也就意味著SIP可以用於眾多應用和服務中,包括互動式游戲、音樂和視頻點播以及語音、視頻和 Web 會議。SIP消息是基於文本的,因而易於讀取和調試。新服務的編程更加簡單,對於設計人員而言更加直觀。SIP如同電子郵件客戶機一樣重用 MIME 類型描述,因此與會話相關的應用程序可以自動啟動。SIP 重用幾個現有的比較成熟的 Internet 服務和協議,如 DNS、RTP、RSVP 等。不必再引入新服務對 SIP 基礎設施提供支持,因為該基礎設施很多部分已經到位或現成可用。
對 SIP 的擴充易於定義,可由服務提供商在新的應用中添加,不會損壞網路。網路中基於 SIP 的舊設備不會妨礙基於 SIP 的新服務。例如,如果舊 SIP 實施不支持新的 SIP 應用所用的方法/標頭,則會將其忽略。
SIP 獨立於傳輸層。因此,底層傳輸可以是採用 ATM 的 IP。SIP 使用用戶數據報協議 (UDP) 以及傳輸控制協議 (TCP),將獨立於底層基礎設施的用戶靈活地連接起來。SIP 支持多設備功能調整和協商。如果服務或會話啟動了視頻和語音
4. sip alg是什麼
SIP ALG(SIP Application Layer Gateways):SIP應用層網關。
其主要作用就是幫助NAT下的私網終端設備,在不做任何改動的情況下能夠與公網上的SIP軟交換進行正常的數據交互。
由於其僅是簡單的消息數據修改,類似於一種透明代理,並沒有事務層相關概念,同時在現網使用中兼容性等問題,導致ALG在解決NAT私網穿越方面並沒有得到很好的應用。
SIP,H323,RTSP都是通信協議,可以查看RFC或者3GPP。l2tp是網協,ipsec是網加密的一種。
(4)sip信令加密需要網關標識和密鑰擴展閱讀
通信協議是指雙方實體完成通信或服務所必須遵循的規則和約定。協議定義了數據單元使用的格式,信息單元應該包含的信息與含義,連接方式,信息發送和接收的時序,從而確保網路中數據順利地傳送到確定的地方。
通信協議主要由以下三個要素組成:
語法:即如何通信,包括數據的格式、編碼和信號等級(電平的高低)等。
語義:即通信內容,包括數據內容、含義以及控制信息等。
定時規則(時序):即何時通信,明確通信的順序、速率匹配和排序。
特點
通信協議具有層次性、可靠性和有效性。
5. 如何在voip中使用rc4對udp收發函數進行加密
qutecom 一個開源的voip客戶端
asterisk 開源的ippbx
rc4加密演算法簡單,快速,據說是比DES演算法快10倍。sip 信令本身就屬於明文方式傳輸的,之所以要加密,是為了防止運營商的干擾,使用一個弱的加密演算法,是要能防止串改就滿足要求了。
rc4 演算法可以google原來,用密鑰來生成一個256長度的box, 然後box與明文異或操作得到密文,密文再次異或就恢復明文。
下面實現了 qutecom 到asterisk 信令的當向加密,反向的目前還沒弄完,等完工了在來補充。
rc4.h
/*
*RC4 functions for HTMLDOC.
*
* Original code by Rob Earhart
* Copyright 1999 by Carnegie Mellon University, All Rights Reserved
*
* Permission to use, , modify, and distribute this software and its
* documentation for any purpose and without fee is hereby granted,
* provided that the above right notice appear in all copies and that
* both that right notice and this permission notice appear in
* supporting documentation, and that the name of Carnegie Mellon
* University not be used in advertising or publicity pertaining to
* distribution of the software without specific, written prior
* permission.
*
* CARNEGIE MELLON UNIVERSITY DISCLAIMS ALL WARRANTIES WITH REGARD TO
* THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
* FITNESS, IN NO EVENT SHALL CARNEGIE MELLON UNIVERSITY BE LIABLE FOR
* ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
* WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
* ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT
* OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
*/
#ifndef _RC4_H_
# define _RC4_H_
# ifdef __cplusplus
extern "C" {
# endif /* __cplusplus */
/*
* RC4 context...
*/
typedef struct
{
unsigned char sbox[256]; /* S boxes for encryption */
int i, j; /* Current indices into S boxes */
} rc4_context_t;
/*
* Prototypes...
*/
extern void rc4_init(rc4_context_t *context, const unsigned char *key,
unsigned keylen);
extern void rc4_encrypt(rc4_context_t *context, const unsigned char *input,
unsigned char *output, unsigned len);
# ifdef __cplusplus
}
# endif /* __cplusplus */
#endif /* !_RC4_H_ */
rc4.c
/*
* RC4 functions for HTMLDOC.
*
* Original code by Tim Martin
* Copyright 1999 by Carnegie Mellon University, All Rights Reserved
*
* Permission to use, , modify, and distribute this software and its
* documentation for any purpose and without fee is hereby granted,
* provided that the above right notice appear in all copies and that
* both that right notice and this permission notice appear in
* supporting documentation, and that the name of Carnegie Mellon
* University not be used in advertising or publicity pertaining to
* distribution of the software without specific, written prior
* permission.
*
* CARNEGIE MELLON UNIVERSITY DISCLAIMS ALL WARRANTIES WITH REGARD TO
* THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
* FITNESS, IN NO EVENT SHALL CARNEGIE MELLON UNIVERSITY BE LIABLE FOR
* ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
* WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
* ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT
* OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
*
* Contents:
*
* rc4_init() - Initialize an RC4 context with the specified key.
* rc4_encrypt() - Encrypt the given buffer.
*/
#include "rc4.h"
/*
* 'rc4_init()' - Initialize an RC4 context with the specified key.
*/
void
rc4_init(rc4_context_t *text, /* IO - Context */
const unsigned char *key, /* I - Key */
unsigned keylen) /* I - Length of key */
{
int i, j; /* Looping vars */
unsigned char tmp; /* Temporary variable */
/*
* Fill in linearly s0=0, s1=1, ...
*/
for (i = 0; i < 256; i ++)
text->sbox[i] = i;
for (i = 0, j = 0; i < 256; i ++)
{
/*
* j = (j + Si + Ki) mod 256
*/
j = (j + text->sbox[i] + key[i % keylen]) & 255;
/*
* Swap Si and Sj...
*/
tmp = text->sbox[i];
text->sbox[i] = text->sbox[j];
text->sbox[j] = tmp;
}
/*
* Initialized counters to 0 and return...
*/
text->i = 0;
text->j = 0;
}
/*
* 'rc4_encrypt()' - Encrypt the given buffer.
*/
void
rc4_encrypt(rc4_context_t *text, /* I - Context */
const unsigned char *input, /* I - Input buffer */
unsigned char *output, /* O - Output buffer */
unsigned len) /* I - Size of buffers */
{
unsigned char tmp; /* Swap variable */
int i, j; /* Looping vars */
int t; /* Current S box */
/*
* Loop through the entire buffer...
*/
i = text->i;
j = text->j;
while (len > 0)
{
/*
* Get the next S box indices...
*/
i = (i + 1) & 255;
j = (j + text->sbox[i]) & 255;
/*
* Swap Si and Sj...
*/
tmp = text->sbox[i];
text->sbox[i] = text->sbox[j];
text->sbox[j] = tmp;
/*
* Get the S box index for this byte...
*/
t = (text->sbox[i] + text->sbox[j]) & 255;
/*
* Encrypt using the S box...
*/
*output++ = *input++ ^ text->sbox[t];
len --;
}
/*
* Copy current S box indices back to context...
*/
text->i = i;
text->j = j;
}
修改exosip項目中的 jcallback.c 在函數cb_udp_snd_message 中修改,加入rc4加密部分
....
if( 1 )
{
rc4_context_t context;
char * key = "*****";
unsigned char * out = NULL;
int i=0;
out = osip_malloc (length);
if (out == NULL)
return -1;
rc4_init(&context,key,16);
rc4_encrypt(&context,message,out,length);
rc4_message = osip_malloc(length+4);
if(rc4_message != NULL)
{
rc4_message[0] = 'R';
rc4_message[1] = 'C';
rc4_message[2] = '4';
rc4_message[3] = ':';
for(i=0;i<length;i++)
{
rc4_message[i+4] = out[i];
}
}
osip_free(out);
}
// Really send the packet over network
if(rc4_message == NULL)
{
i = owsip_send (account, (const void*) message, length, 0, address, OWSL_ADDRESS_SIZE);
}
else
{
i = owsip_send (account, (const void*) rc4_message, length+4, 0, address, OWSL_ADDRESS_SIZE);
osip_free(rc4_message);
}
....
在asterisk 中的chan_sip.c 修改函數 sipsock_read, 添加 接受信令rc4解密代碼
.....
if(res>4 && req.data[0]=='R' && req.data[1]=='C' && req.data[2]=='4' && req.data[3]==':')
{
rc4_context_t context;
char * key = "********";
unsigned char * out = NULL;
int i=0;
out = malloc(res-4);
rc4_init(&context,key,16);
rc4_encrypt(&context,req.data+4,out,res-4);
for(i=0;i<res-4;i++)
{
req.data[i] = out[i];
}
free(out);
req.data[res-4] = '/0';
res = res-4;
req.len = res;
}
.....
6. 請問什麼是SIP協議
SIP(Session Initiation Protocol,會話初始協議)是由IETF(Internet Engineering Task Force,網際網路工程任務組)制定的多媒體通信協議。它是一個基於文本的應用層控制協議,用於創建、修改和釋放一個或多個參與者的會話。廣泛應用於CS(Circuit Switched,電路交換)、NGN(Next Generation Network,下一代網路)以及IMS(IP Multimedia Subsystem,IP多媒體子系統)的網路中,可以支持並應用於語音、視頻、數據等多媒體業務,同時也可以應用於Presence(呈現)、Instant Message(即時消息)等特色業務。可以說,有IP網路的地方就有SIP協議的存在。[1-2] SIP是類似於HTTP。SIP可以減少應用特別是高級應用的開發時間。由於基於IP協議的SIP利用了IP網路,固定網運營商也會逐漸認識到SIP技術對於他們的遠意義。中文名會話初始化協議外文名Session Initiation Protocol出現時間二十世紀九十年代中期發布機構IETF發布時間1999年目錄1會話協議
▪ 壓縮機制▪ 應用
2發展歷程
3通信要求
4會話構成
▪ 用戶代理▪ 注冊伺服器▪ 代理伺服器▪ 重定向伺服器
5常用消息
6協議比較
▪ 標准應用目標▪ 標准體系結構▪ 系統組成結構▪ 實現難易性▪ 總 結
7相關技術▪ 開源項目▪ 5Java1會話協議SIPSIP(Session Initiation Protocol)是一個應用層的信令控制協議。用於創建、修改和釋放一個或多個參與者的會話。這些會話可以是Internet多媒體會議[3] 、IP電話或多媒體分發。會話的參與者可以通過組播(multicast)、網狀單播(unicast)或兩者的混合體進行通信。SIP與負責語音質量的資源預留協議(RSVP) 互操作。它還與若干個其他協議進行協作,包括負責定位的輕型目錄訪問協議(LDAP)、負責身份驗證的遠程身份驗證撥入用戶服務 (RADIUS) 以及負責實時傳輸的 RTP 等多個協議。SIP 的一個重要特點是它不定義要建立的會話的類型,而只定義應該如何管理會話。有了這種靈活性,也就意味著SIP可以用於眾多應用和服務中,包括互動式游戲、音樂和視頻點播以及語音、視頻和 Web 會議。SIP消息是基於文本的,因而易於讀取和調試。新服務的編程更加簡單,對於設計人員而言更加直觀。SIP如同電子郵件客戶機一樣重用 MIME 類型描述,因此與會話相關的應用程序可以自動啟動。SIP 重用幾個現有的比較成熟的 Internet 服務和協議,如 DNS、RTP、RSVP 等。不必再引入新服務對 SIP 基礎設施提供支持,因為該基礎設施很多部分已經到位或現成可用。對 SIP 的擴充易於定義,可由服務提供商在新的應用中添加,不會損壞網路。網路中基於 SIP 的舊設備不會妨礙基於 SIP 的新服務。例如,如果舊 SIP 實施不支持新的 SIP 應用所用的方法/標頭,則會將其忽略。SIP 獨立於傳輸層。因此,底層傳輸可以是採用 ATM 的 IP。SIP 使用用戶數據報協議(UDP) 以及傳輸控制協議(TCP),將獨立於底層基礎設施的用戶靈活地連接起來。SIP 支持多設備功能調整和協商。如果服務或會話啟動了視頻和語音,則仍然可以將語音傳輸到不支持視頻的設備,也可以使用其他設備功能,如單向視頻流傳輸功能。通信提供商及其合作夥伴和用戶越來越渴求新一代基於 IP 的服務。如今有了 SIP(The Session Initiation Protocol 會話啟動協議),一解燃眉之急。SIP 是不到十年前在計算機科學實驗室誕生的一個想法。它是第一個適合各種媒體內容而實現多用戶會話的協議,如今已成了 Internet 工程任務組 (IETF) 的規范。今天,越來越多的運營商、CLEC(競爭本地運營商)和 ITSP(IP 電話服務商)都在提供基於 SIP 的服務,如市話和長途電話技術、在線信息和即時消息、IP Centrex/Hosted PBX、語音簡訊、push-to-talk(按鍵通話)、多媒體會議等等。獨立軟體供應商 (ISV) 正在開發新的開發工具,用來為運營商網路構建基於 SIP 的應用程序以及 SIP 軟體。網路設備供應商 (NEV) 正在開發支持 SIP 信令和服務的硬體。如今,有眾多 IP 電話、用戶代理、網路代理伺服器、VOIP網關、媒體伺服器和應用伺服器都在使用 SIP。SIP 從類似的權威協議--如 Web超文本傳輸協議(HTTP) 格式化協議以及簡單郵件傳輸協議(SMTP) 電子郵件協議--演變而來並且發展成為一個功能強大的新標准。但是,盡管 SIP 使用自己獨特的用戶代理和伺服器,它並非自成一體地封閉工作。SIP 支持提供融合的多媒體服務,與眾多負責身份驗證、位置信息、語音質量等的現有協議協同工作。SIP 較為靈活,可擴展,而且是開放的。它激發了 Internet 以及固定和移動 IP 網路推出新一代服務的威力。SIP 能夠在多台 PC 和電話上完成網路消息,模擬 Internet 建立會話。與存在已久的國際電信聯盟(ITU) SS7 標准(用於呼叫建立)和 ITU H.323 視頻協議組合標准不同,SIP 獨立工作於底層網路傳輸協議和媒體。它規定一個或多個參與方的終端設備如何能夠建立、修改和中斷連接,而不論是語音、視頻、數據或基於 Web 的內容。SIP 大大優於現有的一些協議,如將 PSTN 音頻信號轉換為 IP 數據包的媒體網關控制協議(MGCP)。因為 MGCP 是封閉的純語音標准,所以通過信令功能對其進行增強比較復雜,有時會導致消息被破壞或丟棄,從而妨礙提供商增加新的服務。而使用 SIP,編程人員可以在不影響連接的情況下在消息中增加少量新信息。例如,SIP 服務提供商可以建立包含語音、視頻和聊天內容的全新媒體。如果使用 MGCP、H.323 或 SS7 標准,則提供商必須等待可以支持這種新媒體的協議新版本。而如果使用 SIP,盡管網關和設備可能無法識別該媒體,但在兩個大陸上設有分支機構的公司可以實現媒體傳輸。而且,因為 SIP 的消息構建方式類似於 HTTP,開發人員能夠更加方便便捷地使用通用的編程語言(如 Java)來創建應用程序。對於等待了數年希望使用 SS7 和高級智能網路(AIN) 部署呼叫等待、主叫號碼識別以及其他服務的運營商,現在如果使用 SIP[4] ,只需數月時間即可實現高級通信服務的部署。這種可擴展性已經在越來越多基於 SIP 的服務中取得重大成功。Vonage 是針對用戶和小企業用戶的服務提供商。它使用 SIP 向用戶提供 20,000 多條數字市話、長話及語音郵件線路。Deltathree 為服務提供商提供 Internet 電話技術產品、服務和基礎設施。它提供了基於 SIP 的 PC 至電話解決方案,使 PC 用戶能夠呼叫全球任何一部電話。Denwa Communications 在全球范圍內批發語音服務。它使用 SIP 提供 PC 至 PC 及電話至 PC 的主叫號碼識別、語音郵件,以及電話會議、統一通信、客戶管理、自配置和基於 Web 的個性化服務。某些權威人士預計,SIP 與 IP 的關系將發展成為類似 SMTP 和 HTTP 與 Internet 的關系,但也有人說它可能標志著 AIN 的終結。迄今為止,3G 界已經選擇 SIP 作為下一代移動網路的會話控制機制。Microsoft 已經選擇 SIP 作為其實時通信策略並在 Microsoft XP、Pocket PC 和 MSN Messenger 中進行了部署。Microsoft 同時宣布 CE dot net 的下一個版本將使用基於 SIP 的 VoIP 應用介面層,並承諾向用戶 PC 提供基於 SIP 的語音和視頻呼叫。另外,MCI 正在使用 SIP 向 IP 通信用戶部署高級電話技術服務。用戶將能夠通知主叫方自己是否有空以及首選的通信方式,如電子郵件、電話或即時消息。利用在線信息,用戶還能夠即時建立聊天會話和召開音頻會議。使用 SIP 將不斷地實現各種功能。壓縮機制SIP 壓縮機制主要是通過改變 SIP 消息的長度來降低時延。典型的 SIP 消息的大小由幾百到幾千位元組,為了適合在窄帶無線信道上傳輸,IMS對SIP進行了擴展,支持SIP消息的壓縮。當無線信道一定時, 一條SIP消息所含幀數 k僅取決於消息大小。從時延模型可以看出,不僅影響 SIP 消息傳輸時延, 還影響SIP重傳的概率, 對自適應的定時器來說,k還成了影響定時器初值的關鍵因素。[5] 應用google 發布世界上首個開源的Html5 sip 客戶端HTML5 SIP客戶端是一款開源的,完全利用JavaScript編寫的集社交(FaceBook,Twitter,Google+),在線游戲,電子商務等應用於一體。無擴展,無插件或是必備的網關,視頻堆棧技術依賴於WebRTC。如同主頁
目前,SIP是類似於HTTP的基於文本的協議。SIP可以減少應用特別是高級應用的開發時間。由於基於IP協議的SIP利用了IP網路,固定網運營商也會逐漸認識到SIP技術對於他們的深遠意義。
市場上幾乎所有的IP語音相關產品都遵循了ITU-T組織所公布的H.323協議。雖然這些產品的開發和製作都將H.323標准作為了實際的製作標准,但是由於H.323主要是是對區域網中的數據傳輸進行了描述,但是其中很少有設計IP電話方面的描述,並且各個廠商在實際的開發與實現過程中,所選取的H.323協議中的內容也並不相同,也就是說雖然各大廠商都遵循H.323協議,但是所遵循的協議並不相同。因此,也導致了各大廠商之間的IP電話並不能夠進行相互之間的通話。導致了企業內部IP語音通信系統在進行設計時就必須選取同一個廠商生產的網關等設備。這對IP語音通信系統的發展產生了很大的制約。目前,大家都己經認識到了這個問題,並且都紛紛要求能夠有一個真正統一的一個標准,並且,各大廠商都進行了一定程度的聯盟,來研究IP語音通信系統真正標準的制定。
7. TCP/IP、SIP協議
TCP/IP協議 (傳輸控制協議/網間協議)
TCP/IP 協議集確立了 Internet 的技術基礎。TCP/IP 的發展始於美國 DOD (國防部)方案。 IAB (Internet 架構委員會)的下屬工作組 IETF (Internet 工程任務組)研發了其中多數協議。 IAB 最初由美國政府發起,如今轉變為公開而自治的機構。IAB 協同研究和開發 TCP/IP 協議集的底層結構,並引導著 Internet 的發展。TCP/IP 協議集記錄在請求註解(RFC)文件中,RFC 文件均由 IETF 委員會起草、討論、傳閱及核准。所有這些文件都是公開且免費的,且能在 IETF 網站上列出的參考文獻中找到。
TCP/IP 協議覆蓋了 OSI 網路結構七層模型中的六層,並支持從交換(第二層)諸如多協議標記交換,到應用程序諸如郵件服務方面的功能。TCP/IP 的核心功能是定址和路由選擇(網路層的 IP/IPV6 )以及傳輸控制(傳輸層的 TCP、UDP)。
IP (網際協議)
在網路通信中,網路組件的定址對信息的路由選擇和傳輸來說是相當關鍵的。相同網路中的兩台機器間的消息傳輸有各自的技術協定。LAN 是通過提供6位元組的唯一標識符(「MAC」地址)在機器間發送消息的。SNA 網路中的每台機器都有一個邏輯單元及與其相應的網路地址。DECNET、AppleTalk 和 Novell IPX 均有一個用來分配編號到各個本地網和工作站的配置。
除了本地或特定提供商的網路地址,IP 為世界范圍內的各個網路設備都分配了一個唯一編號,即 IP 地址。IPV4 的 IP 地址為4位元組,按照慣例,將每個位元組轉化成十進制(0-255)並以點分隔各位元組。IPV6 的 IP 地址已經增加到16位元組。關於 IP 和 IPV6 協議的詳細說明,在相關文件中再另作介紹。
TCP (傳輸控制協議)
通過序列化應答和必要時重發數據包,TCP 為應用程序提供了可靠的傳輸流和虛擬連接服務。TCP 主要提供數據流轉送,可靠傳輸,有效流控制,全雙工操作和多路傳輸技術。可查閱 TCP 部分獲取更多詳細資料。
在下面的 TCP/IP 協議表格中,我們根據協議功能和其在 OSI 七層網路通信參考模型的映射關系將其全部列出。然而,TCP/IP 並不完全遵循 OSI 模型,例如:大多數 TCP/IP 應用程序是直接在傳輸層協議 TCP 和 UDP 上運行,而不涉及其中的表示層和會話層。
主要協議表
IP TCP UDP IPsec HTTP POP3 SNMP MPLS DNS SMTP
應用層(Application Layer)
--------------------------------------------------------------------------------
BOOTP:引導協議 (BOOTP:Bootstrap Protocol)
DCAP:數據轉接客戶訪問協議 (DCAP:Data Link Switching Client Access Protocol)
DHCP:動態主機配置協議 (DHCP:Dynamic Host Configuration Protocol)
DNS:域名系統(服務)系統 (DNS:Domain Name Systems)
Finger:用戶信息協議 (Finger:User Information Protocol)
FTP:文件傳輸協議 (FTP:File Transfer Protocol)
HTTP:超文本傳輸協議 (HTTP:Hypertext Transfer Protocol)
S-HTTP:安全超文本傳輸協議 (S-HTTP:Secure Hypertext Transfer Protocol)
IMAP & IMAP4:信息訪問協議 & 信息訪問協議第4版 (IMAP & IMAP4:Internet Message Access Protocol)
IPDC:IP 設備控制 (IPDC:IP Device Control)
IRCP/IRC:網際網路在線聊天協議 (IRCP/IRC:Internet Relay Chat Protocol)
LDAP:輕量級目錄訪問協議 (LDAP:Lightweighted Directory Access Protocol)
MIME/S-MIME/Secure MIME:多用途網際郵件擴充協議 (MIME/S-MIME/Secure MIME:Multipurpose Internet Mail Extensions)
NAT:網路地址轉換 (NAT:Network Address Translation)
NNTP:網路新聞傳輸協議 (NNTP:Network News Transfer Protocol)
NTP:網路時間協議 (NTP:Network Time Protocol)
POP&POP3:郵局協議 (POP & POP3:Post Office Protocol)
RLOGIN:遠程登錄命令 (RLOGIN:Remote Login in Unix)
RMON:遠程監控 (RMON:Remote Monitoring MIBs in SNMP)
RWhois:遠程目錄訪問協議 (RWhois Protocol)
SLP:服務定位協議 (SLP:Service Location Protocol)
SMTP:簡單郵件傳輸協議 (SMTP:Simple Mail Transfer Protocol)
SNMP:簡單網路管理協議 (SNMP:Simple Network Management Protocol)
SNTP:簡單網路時間協議 (SNTP:Simple Network Time Protocol)
TELNET:TCP/IP 終端模擬協議 (TELNET:TCP/IP Terminal Emulation Protocol)
TFTP:簡單文件傳輸協議 (TFTP:Trivial File Transfer Protocol)
URL:統一資源管理 (URL:Uniform Resource Locator)
X-Window/X Protocol:X 視窗 或 X 協議(X-Window:X Window or X Protocol or X System)
表示層(Presentation Layer)
--------------------------------------------------------------------------------
LPP:輕量級表示協議 (LPP:Lightweight Presentation Protocol)
會話層(Session Layer)
--------------------------------------------------------------------------------
RPC:遠程過程調用協議 (RPC:Remote Procere Call protocol)
傳輸層(Transport Layer)
--------------------------------------------------------------------------------
ITOT:基於TCP/IP 的 ISO 傳輸協議 (ITOT:ISO Transport Over TCP/IP)
RDP:可靠數據協議 (RDP:Reliable Data Protocol)
RUDP:可靠用戶數據報協議 (RUDP:Reliable UDP)
TALI:傳輸適配層介面 (TALI:Transport Adapter Layer Interface)
TCP:傳輸控制協議 (TCP:Transmission Control Protocol)
UDP:用戶數據報協議 (UDP:User Datagram Protocol)
Van Jacobson:壓縮 TCP 協議 (Van Jacobson:Compressed TCP)
網路層(Network Layer)
--------------------------------------------------------------------------------
路由選擇(Routing)
BGP/BGP4:邊界網關協議 (BGP/BGP4:Border Gateway Protocol)
EGP:外部網關協議(EGP:Exterior Gateway Protocol)
IP:網際協議 (IP:Internet Protocol)
IPv6:網際協議第6版 (IPv6:Internet Protocol version 6)
ICMP/ICMPv6:Internet 信息控制協議 (ICMP/ICMPv6:Internet Control Message Protocol)
IRDP:ICMP 路由器發現協議 (IRDP:ICMP Router Discovery Protocol)
Mobile IP: 移動 IP (Mobile IP:IP Mobility Support Protocol for IPv4 & IPv6)
NARP:NBMA 地址解析協議 (NARP:NBMA Address Resolution Protocol)
NHRP:下一跳解析協議 (NHRP:Next Hop Resolution Protocol)
OSPF:開放最短路徑優先 (OSPF:Open Shortest Path First)
RIP/RIP2:路由選擇信息協議 (RIP/RIP2:Routing Information Protocol)
RIPng:路由選擇信息協議下一代 (RIPng:RIP for IPv6)
RSVP:資源預留協議 (RSVP:Resource ReSerVation Protocol)
VRRP:虛擬路由器冗餘協議 (VRRP:Virtual Router Rendancy Protocol)
組播(Multicast)
BGMP:邊界網關組播協議 (BGMP:Border Gateway Multicast Protocol)
DVMRP:距離矢量組播路由協議 (DVMRP:Distance Vector Multicast Routing Protocol)
IGMP:Internet 組管理協議 (IGMP:Internet Group Management Protocol)
MARS:組播地址解析服務 (MARS:Multicast Address Resolution Server)
MBGP:組播協議邊界網關協議 (MBGP:Multiprotocol BGP)
MOSPF:組播OSPF (MOSPF:Multicast OSPF)
MSDP:組播源發現協議 (MSDP:Multicast Source Discovery Protocol)
MZAP:組播區域范圍公告協議 (MZAP:Multicast Scope Zone Announcement Protocol)
PGM:實際通用組播協議 (PGM:Pragmatic General Multicast Protocol)
PIM-DM:密集模式獨立組播協議 (PIM-DM:Protocol Independent Multicast - Dense Mode)
PIM-SM:稀疏模式獨立組播協議 (PIM-SM:Protocol Independent Multicast - Sparse Mode)
MPLS 協議(MPLS Protocols)
CR-LDP:基於路由受限標簽分發協議 (CR-LDP: Constraint-Based Label Distribution Protocol)
GMPLS:通用多協議標志交換協議 (GMPLS:Generalized Multiprotocol Label Switching)
LDP:標簽分發協議 (LDP:Label Distribution Protocol)
MPLS:多協議標簽交換 (MPLS:Multi-Protocol Label Switching)
RSVP-TE:基於流量工程擴展的資源預留協議 (RSVP-TE:Resource ReSerVation Protocol-Traffic Engineering)
數據鏈路層(Data Link Layer)
--------------------------------------------------------------------------------
ARP and InARP:地址轉換協議和逆向地址轉換協議 (ARP and InARP:Address Resolution Protocol and Inverse ARP)
IPCP and IPv6CP:IP控制協議和IPV6控制協議 (IPCP and IPv6CP:IP Control Protocol and IPv6 Control Protocol)
RARP:反向地址轉換協議 (RARP:Reverse Address Resolution Protocol)
SLIP:串形線路 IP (SLIP:Serial Line IP)
SIP
介紹
新一代的服務
歷史回顧
SIP 的優點:類似 Web 的可擴展開放通信
SIP 會話構成
介紹
通信提供商及其合作夥伴和用戶越來越渴求新一代基於 IP 的服務。現在有了 SIP(會話啟動協議),一解燃眉之急。SIP 是不到十年前在計算機科學實驗室誕生的一個想法。它是第一個適合各種媒體內容而實現多用戶會話的協議,現在已成了 Internet 工程任務組 (IETF) 的規范。
今天,越來越多的運營商、CLEC(競爭本地運營商)和 ITSP(IP 電話服務商)都在提供基於 SIP 的服務,如市話和長途電話技術、在線信息和即時消息、IP Centrex/Hosted PBX、語音簡訊、push-to-talk(按鍵通話)、多媒體會議等等。獨立軟體供應商 (ISV) 正在開發新的開發工具,用來為運營商網路構建基於 SIP 的應用程序以及 SIP 軟體。網路設備供應商 (NEV) 正在開發支持 SIP 信令和服務的硬體。現在,有眾多 IP 電話、用戶代理、網路代理伺服器、VOIP 網關、媒體伺服器和應用伺服器都在使用 SIP。
SIP 從類似的權威協議--如 Web 超文本傳輸協議 (HTTP) 格式化協議以及簡單郵件傳輸協議 (SMTP) 電子郵件協議--演變而來並且發展成為一個功能強大的新標准。但是,盡管 SIP 使用自己獨特的用戶代理和伺服器,它並非自成一體地封閉工作。SIP 支持提供融合的多媒體服務,與眾多負責身份驗證、位置信息、語音質量等的現有協議協同工作。
本白皮書對 SIP 及其作用進行了概括性的介紹。它還介紹了 SIP 從實驗室開發到面向市場的過程。本白皮書說明 SIP 提供哪些服務以及正在實施哪些促進發展的方案。它還詳細介紹了 SIP 與各種協議不同的重要特點並說明如何建立 SIP 會話。
返回頁首
新一代的服務
SIP 較為靈活,可擴展,而且是開放的。它激發了 Internet 以及固定和移動 IP 網路推出新一代服務的威力。SIP 能夠在多台 PC 和電話上完成網路消息,模擬 Internet 建立會話。
與存在已久的國際電信聯盟 (ITU) SS7 標准(用於呼叫建立)和 ITU H.323 視頻協議組合標准不同,SIP 獨立工作於底層網路傳輸協議和媒體。它規定一個或多個參與方的終端設備如何能夠建立、修改和中斷連接,而不論是語音、視頻、數據或基於 Web 的內容。
SIP 大大優於現有的一些協議,如將 PSTN 音頻信號轉換為 IP 數據包的媒體網關控制協議 (MGCP)。因為 MGCP 是封閉的純語音標准,所以通過信令功能對其進行增強比較復雜,有時會導致消息被破壞或丟棄,從而妨礙提供商增加新的服務。而使用 SIP,編程人員可以在不影響連接的情況下在消息中增加少量新信息。
例如,SIP 服務提供商可以建立包含語音、視頻和聊天內容的全新媒體。如果使用 MGCP、H.323 或 SS7 標准,則提供商必須等待可以支持這種新媒體的協議新版本。而如果使用 SIP,盡管網關和設備可能無法識別該媒體,但在兩個大陸上設有分支機構的公司可以實現媒體傳輸。
而且,因為 SIP 的消息構建方式類似於 HTTP,開發人員能夠更加方便便捷地使用通用的編程語言(如 Java)來創建應用程序。對於等待了數年希望使用 SS7 和高級智能網路 (AIN) 部署呼叫等待、主叫號碼識別以及其他服務的運營商,現在如果使用 SIP,只需數月時間即可實現高級通信服務的部署。
這種可擴展性已經在越來越多基於 SIP 的服務中取得重大成功。Vonage 是針對用戶和小企業用戶的服務提供商。它使用 SIP 向用戶提供 20,000 多條數字市話、長話及語音郵件線路。Deltathree 為服務提供商提供 Internet 電話技術產品、服務和基礎設施。它提供了基於 SIP 的 PC 至電話解決方案,使 PC 用戶能夠呼叫全球任何一部電話。Denwa Communications 在全球范圍內批發語音服務。它使用 SIP 提供 PC 至 PC 及電話至 PC 的主叫號碼識別、語音郵件,以及電話會議、統一通信、客戶管理、自配置和基於 Web 的個性化服務。
某些權威人士預計,SIP 與 IP 的關系將發展成為類似 SMTP 和 HTTP 與 Internet 的關系,但也有人說它可能標志著 AIN 的終結。迄今為止,3G 界已經選擇 SIP 作為下一代移動網路的會話控制機制。Microsoft 已經選擇 SIP 作為其實時通信策略並在 Microsoft XP、Pocket PC 和 MSN Messenger 中進行了部署。Microsoft 同時宣布 CE.net 的下一個版本將使用基於 SIP 的 VoIP 應用介面層,並承諾向用戶 PC 提供基於 SIP 的語音和視頻呼叫。
另外,MCI 正在使用 SIP 向 IP 通信用戶部署高級電話技術服務。用戶將能夠通知主叫方自己是否有空以及首選的通信方式,如電子郵件、電話或即時消息。利用在線信息,用戶還能夠即時建立聊天會話和召開音頻會議。使用 SIP 將不斷地實現各種功能。
返回頁首
歷史回顧
SIP 出現於二十世紀九十年代中期,源於哥倫比亞大學計算機系副教授 Henning Schulzrinne 及其研究小組的研究。Schulzrinne 教授除與人共同提出通過 Internet 傳輸實時數據的實時傳輸協議 (RTP) 外,還與人合作編寫了實時流傳輸協議 (RTSP) 標准提案,用於控制音頻視頻內容在 Web 上的流傳輸。
Schulzrinne 本來打算編寫多方多媒體會話控制 (MMUSIC) 標准。1996 年,他向 IETF 提交了一個草案,其中包含了 SIP 的重要內容。1999 年,Shulzrinne 在提交的新標准中刪除了有關媒體內容方面的無關內容。隨後,IETF 發布了第一個 SIP 規范,即 RFC 2543。雖然一些供應商表示了擔憂,認為 H.323 和 MGCP 協議可能會大大危及他們在 SIP 服務方面的投資,IETF 繼續進行這項工作,於 2001 年發布了 SIP 規范 RFC 3261。
RFC 3261 的發布標志著 SIP 的基礎已經確立。從那時起,已發布了幾個 RFC 增補版本,充實了安全性和身份驗證等領域的內容。例如,RFC 3262 對臨時響應的可靠性作了規定。RFC 3263 確立了 SIP 代理伺服器的定位規則。RFC 3264 提供了提議/應答模型,RFC 3265 確定了具體的事件通知。
早在 2001 年,供應商就已開始推出基於 SIP 的服務。今天,人們對該協議的熱情不斷高漲。Sun Microsystems 的 Java Community Process 等組織正在使用通用的 Java 編程語言定義應用編程介面 (API),以便開發商能夠為服務提供商和企業構建 SIP 組件和應用程序。最重要的是,越來越多的競爭者正在藉助前途光明的新服務進入 SIP 市場。SIP 正在成為自 HTTP 和 SMTP 以來最為重要的協議之一。
返回頁首
SIP 的優點:類似 Web 的可擴展開放通信
使用 SIP,服務提供商可以隨意選擇標准組件,快速駕馭新技術。不論媒體內容和參與方數量,用戶都可以查找和聯系對方。SIP 對會話進行協商,以便所有參與方都能夠就會話功能達成一致以及進行修改。它甚至可以添加、刪除或轉移用戶。
不過,SIP
不是萬能的。它既不是會話描述協議,也不提供會議控制功能。為了描述消息內容的負載情況和特點,SIP 使用 Internet 的會話描述協議 (SDP) 來描述終端設備的特點。SIP 自身也不提供服務質量 (QoS),它與負責語音質量的資源保留設置協議 (RSVP) 互操作。它還與若干個其他協議進行協作,包括負責定位的輕型目錄訪問協議 (LDAP)、負責身份驗證的遠程身份驗證撥入用戶服務 (RADIUS) 以及負責實時傳輸的 RTP 等多個協議。
SIP 規定了以下基本的通信要求:
1. 用戶定位服務
2. 會話建立
3. 會話參與方管理
4. 特點的有限確定
SIP 的一個重要特點是它不定義要建立的會話的類型,而只定義應該如何管理會話。有了這種靈活性,也就意味著 SIP 可以用於眾多應用和服務中,包括互動式游戲、音樂和視頻點播以及語音、視頻和 Web 會議。
下面是 SIP 在新的信令協議中出類拔萃的一些其他特點
SIP 消息是基於文本的,因而易於讀取和調試。新服務的編程更加簡單,對於設計人員而言更加直觀。
SIP 如同電子郵件客戶機一樣重用 MIME 類型描述,因此與會話相關的應用程序可以自動啟動。
SIP 重用幾個現有的比較成熟的 Internet 服務和協議,如 DNS、RTP、RSVP 等。不必再引入新服務對 SIP 基礎設施提供支持,因為該基礎設施很多部分已經到位或現成可用。
對 SIP 的擴充易於定義,可由服務提供商在新的應用中添加,不會損壞網路。網路中基於 SIP 的舊設備不會妨礙基於 SIP 的新服務。例如,如果舊 SIP 實施不支持新的 SIP 應用所用的方法/標頭,則會將其忽略。
SIP 獨立於傳輸層。因此,底層傳輸可以是採用 ATM 的 IP。SIP 使用用戶數據報協議 (UDP) 以及傳輸控制協議 (TCP),將獨立於底層基礎設施的用戶靈活地連接起來。
SIP 支持多設備功能調整和協商。如果服務或會話啟動了視頻和語音,則仍然可以將語音傳輸到不支持視頻的設備,也可以使用其他設備功能,如單向視頻流傳輸功能。
返回頁首
SIP 會話構成
SIP 會話使用多達四個主要組件:SIP 用戶代理、SIP 注冊伺服器、SIP 代理伺服器和 SIP 重定向伺服器。這些系統通過傳輸包括了 SDP 協議(用於定義消息的內容和特點)的消息來完成 SIP 會話。下面概括性地介紹各個 SIP 組件及其在此過程中的作用。
SIP 用戶代理 (UA) 是終端用戶設備,如用於創建和管理 SIP 會話的行動電話、多媒體手持設備、PC、PDA 等。用戶代理客戶機發出消息。用戶代理伺服器對消息進行響應。
SIP 注冊伺服器是包含域中所有用戶代理的位置的資料庫。在 SIP 通信中,這些伺服器會檢索參與方的 IP 地址和其他相關信息,並將其發送到 SIP 代理伺服器。
SIP 代理伺服器接受 SIP UA 的會話請求並查詢 SIP 注冊伺服器,獲取收件方 UA 的地址信息。然後,它將會話邀請信息直接轉發給收件方 UA(如果它位於同一域中)或代理伺服器(如果 UA 位於另一域中)。
SIP 重定向伺服器允許 SIP 代理伺服器將 SIP 會話邀請信息定向到外部域。SIP 重定向伺服器可以與 SIP 注冊伺服器和 SIP 代理伺服器同在一個硬體上。
以下幾個情景說明 SIP 組件之間如何進行協調以在同一域和不同域中的 UA 之間建立 SIP 會話:
在同一域中建立 SIP 會話
下圖說明了在預訂同一個 ISP 從而使用同一域的兩個用戶之間建立 SIP 會話的過程。用戶 A 使用 SIP 電話。用戶 B 有一台 PC,運行支持語音和視頻的軟客戶程序。加電後,兩個用戶都在 ISP 網路中的 SIP 代理伺服器上注冊了他們的空閑情況和 IP 地址。用戶 A 發起此呼叫,告訴 SIP 代理伺服器要聯系用戶 B。然後,SIP 代理伺服器向 SIP 注冊伺服器發出請求,要求提供用戶 B 的 IP 地址,並收到用戶 B 的 IP 地址。SIP 代理伺服器轉發用戶 A 與用戶 B 進行通信的邀請信息(使用 SDP),包括用戶 A 要使用的媒體。用戶 B 通知 SIP 代理伺服器可以接受用戶 A 的邀請,且已做好接收消息的准備。SIP 代理伺服器將此消息傳達給用戶 A,從而建立 SIP 會話。然後,用戶創建一個點到點 RTP 連接,實現用戶間的交互通信。
1.呼叫用戶 B
2.查詢捻沒?B 在哪裡??br> 3.響應捻沒?B 的 SIP 地址?br> 4.摯�頂呼叫
5. 響應
6. 響應
7. 多媒體通道已建立
返回頁首
在不同的域中建立 SIP 會話
本情景與第一種情景的不同之處如下。用戶 A 邀請正在使用多媒體手持設備的用戶 B 進行 SIP 會話時,域 A 中的 SIP 代理伺服器辨別出用戶 B 不在同一域中。然後,SIP 代理伺服器在 SIP 重定向伺服器上查詢用戶 B 的 IP 地址。SIP 重定向伺服器既可在域 A 中,也可在域 B 中,也可既在域 A 中又在域 B 中。SIP 重定向伺服器將用戶 B 的聯系信息反饋給 SIP 代理伺服器,該伺服器再將 SIP 會話邀請信息轉發給域 B 中的 SIP 代理伺服器。域 B 中的 SIP 代理伺服器將用戶 A 的邀請信息發送給用戶 B。用戶 B 再沿邀請信息經由的同一路徑轉發接受邀請的信息。
1. 呼叫用戶 B 2. 詢問撐胰綰謂油ㄓ?B 中的用戶 B?? 3. 響應摯�碸刂破韉撓虻刂窋 4. 摯�頂呼叫域 B 的 SIP 代理 5. 查詢捻沒?B 在哪裡?? 6. 用戶 B 的地址 7. 代理呼叫 8. 響應 9. 響應 10.響應 11.多媒體通道已建立
無縫、靈活、可擴展:展望 SIP 未來
SIP 能夠連接使用任何 IP 網路(有線 LAN 和 WAN、公共 Internet 骨幹網、移動 2.5G、3G 和 Wi-Fi)和任何 IP 設備(電話、PC、PDA、移動手持設備)的用戶,從而出現了眾多利潤豐厚的新商機,改進了企業和用戶的通信方式。基於 SIP 的應用(如 VOIP、多媒體會議、push-to-talk(按鍵通話)、定位服務、在線信息和 IM)即使單獨使用,也會為服務提供商、ISV、網路設備供應商和開發商提供許多新的商機。不過,SIP 的根本價值在於它能夠將這些功能組合起來,形成各種更大規模的無縫通信服務。
使用 SIP,服務提供商及其合作夥伴可以定製和提供基於 SIP 的組合服務,使用戶可以在單個通信會話中使用會議、Web 控制、在線信息、IM 等服務。實際上,服務提供商可以創建一個滿足多個最終用戶需求的靈活應用程序組合,而不是安裝和支持依賴於終端設備有限特定功能或類型的單一分散的應用程序。
通過在單一、開放的標准 SIP 應用架構下合並基於 IP 的通信服務,服務提供商可以大大降低為用戶設計和部署基於 IP 的新的創新性託管服務的成本。它是 SIP 可擴展性促進本行業和市場發展的強大動力,是我們所有人的希望所在。
8. IMS的問題分析
IP多媒體子系統(IMS)是3GPP在R5規范中提出的,旨在建立一個與接入無關、基於開放的SIP/IP協議及支持多種多媒體業務類型的平台來提供豐富的業務。它將蜂窩移動通信網路技術、傳統固定網路技術和互聯網技術有機結合起來,為未來的基於全IP網路多媒體應用提供了一個通用的業務智能平台,也為未來網路發展過程中的網路融合提供了技術基礎。IMS的諸多特點使得其一經提出就成為業界的研究熱點,是業界普遍認同的解決未來網路融合的理想方案和發展方向,但對於IMS將來如何提供統一的業務平台實現全業務運營,IMS的標准化及安全等問題仍需要進一步的研究和探討。
1、IMS存在的安全問題分析
傳統的電信網路採用獨立的信令網來完成呼叫的建立、路由和控制等過程,信令網的安全能夠保證網路的安全。而且傳輸採用時分復用(TDM)的專線,用戶之間採用面向連接的通道進行通信,避免了來自其他終端用戶的各種竊聽和攻擊。
而IMS網路與互聯網相連接,基於IP協議和開放的網路架構可以將語音、數據、多媒體等多種不同業務,通過採用多種不同的接入方式來共享業務平台,增加了網路的靈活性和終端之間的互通性,不同的運營商可以有效快速地開展和提供各種業務。由於IMS是建立在IP基礎上,使得IMS的安全性要求比傳統運營商在獨立網路上運營要高的多,不管是由移動接入還是固定接入,IMS的安全問題都不容忽視。
IMS的安全威脅主要來自於幾個方面:未經授權地訪問敏感數據以破壞機密性;未經授權地篡改敏感數據以破壞完整性;干擾或濫用網路業務導致拒絕服務或降低系統可用性;用戶或網路否認已完成的操作;未經授權地接入業務等。主要涉及到IMS的接入安全(3GPP TS33.203),包括用戶和網路認證及保護IMS終端和網路間的業務;以及IMS的網路安全(3GPP TS33.210),處理屬於同一運營商或不同運營商網路節點之間的業務保護。除此之外,還對用戶終端設備和通用集成電路卡/IP多媒體業務身份識別模塊(UICC/ISIM)安全構成威脅。
2、IMS安全體系
IMS系統安全的主要應對措施是IP安全協議(IPSec),通過IPSec提供了接入安全保護,使用IPSec來完成網路域內部的實體和網路域之間的安全保護。3GPP IMS實質上是疊加在原有核心網分組域上的網路,對PS域沒有太大的依賴性,在PS域中,業務的提供需要移動設備和移動網路之間建立一個安全聯盟(SA)後才能完成。對於IMS系統,多媒體用戶也需要與IMS網路之間先建立一個獨立的SA之後才能接入多媒體業務。
3GPP終端的核心是通用集成電路卡(UICC),它包含多個邏輯應用,主要有用戶識別模塊(SIM)、UMTS用戶業務識別模塊(USIM)和ISIM。ISIM中包含了IMS系統用戶終端在系統中進行操作的一系列參數(如身份識別、用戶授權和終端設置數據等),而且存儲了共享密鑰和相應的AKA(Authentication and Key Agreement)演算法。其中,保存在UICC上的用戶側的IMS認證密鑰和認證功能可以獨立於PS域的認證密鑰和認證功能,也可和PS使用相同的認證密鑰和認證功能。IMS的安全體系如圖1所示。
圖1中顯示了5個不同的安全聯盟用以滿足IMS系統中不同的需求,分別用①、②、③、④、⑤來加以標識。①提供終端用戶和IMS網路之間的相互認證。
②在UE和P-CSCF之間提供一個安全鏈接(Link)和一個安全聯盟(SA),用以保護Gm介面,同時提供數據源認證。
③在網路域內為Cx介面提供安全。
④為不同網路之間的SIP節點提供安全,並且這個安全聯盟只適用於代理呼叫會話控制功能(P-CSCF)位於拜訪網路(VN)時。
⑤為同一網路內部的SIP節點提供安全,並且這個安全聯盟同樣適用於P-CSCF位於歸屬網路(HN)時。
除上述介面之外,IMS中還存在其他的介面,在上圖中未完整標識出來,這些介面位於安全域內或是位於不同的安全域之間。這些介面(除了Gm介面之外)的保護都受IMS網路安全保護。
SIP信令的保密性和完整性是以逐跳的方式提供的,它包括一個復雜的安全體系,要求每個代理對消息進行解密。SIP使用兩種安全協議:傳輸層安全協議(TLS)和IPSec,TLS可以實現認證、完整性和機密性,用TLS來保證安全的請求必須使用可靠的傳輸層協議,如傳輸控制協議(TCP)或流控制傳輸協議(SCTP);IPSec通過在IP層對SIP消息提供安全來實現認證、完整性和機密性,它同時支持TCP和用戶數據報協議(UDP)。在IMS核心網中,可通過NDS/IP來完成對網路中SIP信令的保護;而第一跳,即UE和P-CSCF間的信令保護則需要附加的測量,在3GPP TS 33.203中有具體描述。
3、IMS的接入安全
IMS用戶終端(UE)接入到IMS核心網需經一系列認證和密鑰協商過程,具體而言,UE用戶簽約信息存儲在歸屬網路的HSS中,且對外部實體保密。當用戶發起注冊請求時,查詢呼叫會話控制功能(I-CSCF)將為請求用戶分配一個服務呼叫會話控制功能(S-CSCF),用戶的簽約信息將通過Cx介面從HSS下載到S-CSCF中。當用戶發起接入IMS請求時,該S-CSCF將通過對請求內容與用戶簽約信息進行比較,以決定用戶是否被允許繼續請求。
在IMS接入安全中,IPSec封裝安全凈荷(ESP)將在IP層為UE和P-CSCF間所有SIP信令提供機密性保護,對於呼叫會話控制功能(CSCF)之間和CSCF和HSS之間的加密可以通過安全網關(SEG)來實現。同時,IMS還採用IPSec ESP為UE和P-CSCF間所有SIP信令提供完整性保護,保護IP層的所有SIP信令,以傳輸模式提供完整性保護機制。
在完成注冊鑒權之後,UE和P-CSCF之間同時建立兩對單向的SA,這些SA由TCP和UDP共享。其中一對用於UE埠為客戶端、P-CSCF埠作為伺服器端的業務流,另一對用於UE埠為伺服器、P-CSCF埠作為客戶端的業務流。用兩對SA可以允許終端和P-CSCF使用UDP在另一個埠上接收某個請求的響應,而不是使用發送請求的那個埠。同時,終端和P-CSCF之間使用TCP連接,在收到請求的同一個TCP連接上發送響應;而且通過建立SA實現在IMS AKA提供的共享密鑰以及指明在保護方法的一系列參數上達成一致。SA的管理涉及到兩個資料庫,即內部和外部資料庫(SPD和SAD)。SPD包含所有入站和出站業務流在主機或安全網關上進行分類的策略。SAD是所有激活SA與相關參數的容器。SPD使用一系列選擇器將業務流映射到特定的SA,這些選擇器包括IP層和上層(如TCP和UDP)協議的欄位值。
與此同時,為了保護SIP代理的身份和網路運營商的網路運作內部細節,可通過選擇網路隱藏機制來隱藏其網路內部拓撲,歸屬網路中的所有I-CSCF將共享一個加密和解密密鑰。
在通用移動通信系統(UMTS)中相互認證機制稱為UMTS AKA,在AKA過程中採用雙向鑒權以防止未經授權的「非法」用戶接入網路,以及未經授權的「非法」網路為用戶提供服務。AKA協議是一種挑戰響應協議,包含用戶鑒權五元參數組的挑戰由AUC在歸屬層發起而發送到服務網路。
UMTS系統中AKA協議,其相同的概念和原理被IMS系統重用,我們稱之為IMS AKA。AKA實現了ISIM和AUC之間的相互認證,並建設了一對加密和完整性密鑰。用來認證用戶的身份是私有的身份(IMPI),HSS和ISIM共享一個與IMPI相關聯的長期密鑰。當網路發起一個包含RAND和AUTN的認證請求時,ISIM對AUTN進行驗證,從而對網路本身的真實性進行驗證。每個終端也為每一輪認證過程維護一個序列號,如果ISIM檢測到超出了序列號碼范圍之外的認證請求,那麼它就放棄該認證並向網路返回一個同步失敗消息,其中包含了正確的序列號碼。
為了響應網路的認證請求,ISIM將密鑰應用於隨機挑戰(RAND),從而產生一個認證響應(RES)。網路對RES進行驗證以認證ISIM。此時,UE和網路已經成功地完成了相互認證,並且生成了一對會話密鑰:加密密鑰(CK)和完整性密鑰(IK)用以兩個實體之間通信的安全保護。
4、IMS的網路安全
在第二代移動通信系統中,由於在核心網中缺乏標準的安全解決方案,使得安全問題尤為突出。雖然在無線接入過程中,移動用戶終端和基站之間通常可由加密來保護,但是在核心網時,系統的節點之間卻是以明文來傳送業務流,這就讓攻擊者有機可乘,接入到這些媒體的攻擊者可以輕而易舉對整個通信過程進行竊聽。
針對2G系統中的安全缺陷,第三代移動通信系統中採用NDS對核心網中的所有IP數據業務流進行保護。可以為通信服務提供保密性、數據完整性、認證和防止重放攻擊,同時通過應用在IPSec中的密碼安全機制和協議安全機制來解決安全問題。
在NDS中有幾個重要的概念,它們分別是安全域(Security Domains)、安全網關(SEG)。
4.1安全域
NDS中最核心的概念是安全域,安全域是一個由單獨的管理機構管理運營的網路。在同一安全域內採用統一的安全策略來管理,因此同一安全域內部的安全等級和安全服務通常是相同的。大多情況下,一個安全域直接對應著一個運營商的核心網,不過,一個運營商也可以運營多個安全域,每個安全域都是該運營商整個核心網路中的一個子集。在NDS/IP中,不同的安全域之間的介面定義為Za介面,同一個安全域內部的不同實體之間的安全介面則定義為Zb介面。其中Za介面為必選介面,Zb介面為可選介面。兩種介面主要完成的功能是提供數據的認證和完整性、機密性保護。
4.2安全網關
SEG位於IP安全域的邊界處,是保護安全域之間的邊界。業務流通過一個SEG進入和離開安全域,SEG被用來處理通過Za介面的通信,將業務流通過隧道傳送到已定義好的一組其他安全域。這稱為輪軸-輻條(hub-and-spoke)模型,它為不同安全域之間提供逐跳的安全保護。SEG負責在不同安全域之間傳送業務流時實施安全策略,也可以包括分組過濾或者防火牆等的功能。IMS核心網中的所有業務流都是通過SEG進行傳送,每個安全域可以有一個或多個SEG,網路運營商可以設置多個SEG以避免某獨立點出現故障或失敗。當所保護的IMS業務流跨越不同安全域時,NDS/IP必須提供相應的機密性、數據完整性和認證。
4.3基於IP的網路域安全體系[2]
NDS/IP體系結構最基本的思想就是提供上從一跳到下一跳的安全,逐跳的安全也簡化了內部和面向其他外部安全域分離的安全策略的操作。
在NDS/IP中只有SEG負責與其他安全域中的實體間進行直接通信。兩個SEG之間的業務被採用隧道模式下的IPSec ESP安全聯盟進行保護,安全網關之間的網路連接通過使用IKE來建立和維護[3]。網路實體(NE)能夠面向某個安全網關或相同安全域的其他安全實體,建立維護所需的ESP安全聯盟。所有來自不同安全域的網路實體的NDS/IP業務通過安全網關被路由,它將面向最終目標被提供逐跳的安全保護[5]。其網路域安全體系結構如圖2所示。
4.4密鑰管理和分配機制[5]每個SEG負責建立和維護與其對等SEG之間的IPSec SA。這些SA使用網際網路密鑰交換(IKE)協議進行協商,其中的認證使用保存在SEG中的長期有效的密鑰來完成。每個對等連接的兩個SA都是由SEG維護的:一個SA用於入向的業務流,另一個用於出向的業務流。另外,SEG還維護了一個單獨的網際網路安全聯盟和密鑰管理協議(ISAKMP)SA,這個SA與密鑰管理有關,用於構建實際的對等主機之間的IPSec SA。對於ISAKMP SA而言,一個關鍵的前提就是這兩個對等實體必須都已經通過認證。在NDS/IP中,認證是基於預先共享的密鑰。
NDS/IP中用於加密、數據完整性保護和認證的安全協議是隧道模式的IPSec ESP。在隧道模式的ESP中,包括IP頭的完整的IP數據包被封裝到ESP分組中。對於三重DES加密(3DES)演算法是強制使用的,而對於數據完整性和認證,MD5和SHA-1都可以使用。
4.5IPSec安全體系中的幾個重要組成和概念[5]
1)IPSec:IPSec在IP層(包括IPv4和IPv6)提供了多種安全服務,從而為上層協議提供保護。IPSec一般用來保護主機和安全網關之間的通信安全,提供相應的安全服務。
2)ISAKMP:ISAKMP用來對SA和相關參數進行協商、建立、修改和刪除。它定義了SA對等認證的創建和管理過程以及包格式,還有用於密鑰產生的技術,它還包括緩解某些威脅的機制。
3)IKE:IKE是一種密鑰交換協議,和ISAKMP一起,為SA協商認證密鑰材料。IKE可以使用兩種模式來建立第一階段ISAKMP SA,即主模式和侵略性模式。兩種模式均使用短暫的Diffie-Hellman密鑰交換演算法來生成ISAKMP SA的密鑰材料。
4)ESP:ESP用來在IPv4和IPv6中提供安全服務。它可以單獨使用或與AH一起使用,可提供機密性(如加密)或完整性(如認證)或同時提供兩種功能。ESP可以工作在傳送模式或隧道模式。在傳送模式中,ESP頭插入到IP數據報中IP頭後面、所有上層協議頭前面的位置;而在隧道模式中,它位於所封裝的IP數據報之前。
標准化組織對IMS的安全體系和機製做了相應規定,其中UE和P-CSCF之間的安全由接入網路安全機制提供,IMS網路之上的安全由IP網路的安全機制保證,UE與IMS的承載層分組網路安全仍由原來的承載層安全機制支持。所有IP網路端到端安全基於IPSec,密鑰管理基於IKE協議。對於移動終端接入IMS之前已經進行了相應的鑒權,所以安全性更高一些。但是對於固定終端來說,由於固定接入不存在類似移動網路空中介面的鑒權,P-CSCF將直接暴露給所有固定終端,這使P-CSCF更易受到攻擊。為此,在IMS的接入安全方面有待於進一步的研究,需要不斷完善IMS的安全機制。