軟交換中的SIP協議的請求與響應可能包含有關於通信模式與個人通信內容的敏感信息。因此,SIP協議需要如下安全性方麵的考慮。
(1)SIP通信的認證和完整性。
一個被叫需要知道他所收到的邀請的確是來自發出請求的會話發起者,並且中途沒有被篡改。SIP消息可以在未來的會議通信中修改會議的細節,如果消息沒有被認證,那麼很容易受到服務拒絕攻擊。
(2)會議細節的機密性。
在SIP通信中至少要隱藏地址信息和使用的媒體格式信息。但有些需要代理(Proxy)看到的頭域不能加密。
SIP消息體可以包含會話本身的密鑰。
SIP支持三種輔助的加密形式來保護隱私:對SIP消息體和某些敏感頭域的端到端加密;用以防止追蹤呼叫雙方的跳到跳加密,對Via域進行跳到跳的加密來隱藏發起請求的路由。
SIP請求是被分段加密的,請求和響應行中的一些頭域是代理需要看到並返回的,這些域是不能進行端到端加密的,例如To和Via域需要被代理看到,以便SIP請求可以被正確地路由。跳到跳加密可以將整個SIP請求或響應加密,以防止包監聽者看到誰在呼叫誰。跳到跳加密還可以加密已經進行端到端加密的請求或者響應。但是代理(Proxy)仍然可以看到誰在呼叫誰,另外也可以從網絡流量分析出這一信息,所以這是一種很有限的保護。
SIP請求與響應也可以在傳輸層或網絡層使用安全機製進行保護。但是SIP協議及其擴展中並沒有定義或推薦使用何種安全機製。在實現時可以選擇IPSEC或者TLS。
為了方便SIP協議安全機製的實現,我們應該盡可能地考慮重用已經存在的安全機製實現方法。PGP這種原為電子郵件安全服務的加密策略應用廣泛,使用簡單,安全性高,完全可以滿足SIP協議中關於認證、完整性和機密性的安全要求,因此,最適合同樣是明文的SIP消息的加密。
3.PGP安全策略的分析
具有相當好的保密性PGP是由Phil Zimmermann編寫一個完整的保密電子郵件係統,采用了雜合加密算法,常規加密采用IDEA,公鑰加密采用RSA,能夠提供保密、鑒別、數字簽名和壓縮等功能。它具有跨平台特性,能夠很好地支持MS-DOS、Windows、UNIX以及Matosh等操作係統。PGP有三個主要功能:①使用IDEA加密算法對文件進行加密,加密文件隻能由知道密鑰的人解密閱讀;②使用公鑰加密RSA對電子郵件進行加密,加密的電子郵件隻有收件人才能解密閱讀;③使用公鑰加密技術對文件或郵件進行數字簽名,使用起草人的公開密鑰鑒別真偽。
PGP工作原理在PGP係統的設計中,充分考慮到電子郵件的加密、鑒別、數字簽名以及完整性,同時又考慮加密算法的不同特性,在保障安全可靠的同時提高了係統的效率。—般來說,RSA保密性比較好但效率較低,如果郵件原文全部由RSA加密並且假設密鑰長度為1024比特,那麼地球上沒有任何人可破譯,然而,它的代價太大了。用RSA加密大量郵件原文速度太慢,但用RSA加密數據量不大而又非常重要的信息卻非常有用,例如,加密IDEA的密鑰。PGP係統最高明之處在於合理應用加密算法RSA和IDEA。
整個的PGP工作過程如下:首先變通地對消息文摘進行加密。所謂消息文摘就是最能代表明文的“精華”,其長度一般為160位或128位。一旦明文改變,哪怕是隻有一位,消息文摘就會改變。老版本的PGP使用MD5來產生消息文摘,由於MD5在1996年被德國的密碼學專家所破解,因而最新的PGP采用SHA來產生消息文摘。PGP產生消息文摘之後,應用RSA,使用發送方的私鑰對消息文摘進行加密。
然後PGP采用自由ZIP壓縮例程將明文壓縮,明文壓縮後不但能減少數據傳輸量,還能提高數據的安全性。然後,PGP根據機器的隨機狀態(如鍵盤的敲擊或鼠標的移動等)產生一個一次性的會話密鑰,PGP使用此會話密鑰將壓縮後的明文用IDEA加密。
最後,再次采用RSA將該會話密鑰用接收者的公鑰加密,在網上發布。
4.在軟交換中應用PGP安全策略
在對SIP消息進行任何加密過程之前,必須將它轉換成MIME規範格式。創建一個MIME實體的過程在文獻中有詳細的論述,在此不再贅述。
隻有涉及到路由信息的SIP頭域才可以放到MIME體的外麵,如From、to和Call-ID域。另外,如果Proxy-Authenticate域或者Proxy-Authorization域出現在SIP消息中,它們也應該放在MIME體的外麵。
SIP經常需要同時對消息進行數字簽名和加密。有兩種方法實現,一種是對消息先加密然後再數字簽名,一種是執行一個加密並簽名的聯合過程。使用第二種方法時發送代理服務器必須支持加密並簽名的聯合過程,接收代理服務器應該支持兩種類型的加密和簽名。
本文中僅用SIPINVITE消息作為例子,其他的SIP消息如ACK、BYE等都可以用同樣的方法進行加密和數字簽名。
5.結論
軟交換中的SIP協議沒有提供足夠的安全性,因此,尋求一種適合SIP協議的安全策略,便於普通用戶使用,是很有必要的。PGP為電子郵件明文的加密和簽名所設計,適合同樣是明文的SIP協議的加密和簽名,滿足了大多數用戶的基本需求。另外,PGP為不同機型提供了不同的版本,而且使用簡單方便,加上所采用的算法都是公認很安全的,因而采用PGP作為SIP協議的加密簽名手段是既安全又方便的。