SIP 鑑權 & HTTP 認證

sip 鑑權是基於摘要簽名認證的,具體來說:

每一個用戶都有一個用戶名和密碼,用戶名和密碼在客戶端和SIP 服務器的數據庫中都有保存。

在認證的過程中, 客戶端將自己的信息(用戶名 密碼 url 等信息) 做一些複雜的MD5 或者SHA256/SHA512 簽名,這個簽名給SIP server, SIP server 也會用相同的信息計算簽名, 結果一樣就認爲發送消息的用戶是真正合法的用戶。

 

但是爲了增加破解的複雜性,引入了 nonce cnonce nc 等salt 參數。因爲如果不引入,每次做MD5計算的值是固定的話,就降低了破解的難度了。

server 爲了驗證用戶是真實的用戶,server就會生成一個隨機數,叫做nonce,並對這個nonce 賦有效期和使用次數上限,通過nc來標示,那麼 在401 裏面 server 會將這兩個參數給client, client在計算MD5的時候就會多了兩個參數(nonce 和 nc), 並且nc是遞增的,這樣client 每次計算的MD5 簽名都是不一樣的,server 用同樣的參數計算簽名值,比較就可以知道用戶是不是真實的用戶。一個僞用戶既不能直接使用簽名(因爲nc遞增,每次簽名都不一樣),也不容易破解(多了nonce 和 nc參數)。

 

client也要驗證server是真實的server,如果中間人冒充server,他自己生成特殊的nonce值給client,client用這些參數計算簽名給中間人, 那麼這個過程重複多次,中間人就可以推算出密碼(這個過程中nonce值可以是特殊的,而且可以不變的),

所以client也會生成nonce值叫cnonce,來增加計算的複雜性(cnonce 在上面的過程是變化的),這就增加了破解的難度。

 

基於上面的幾個參數完成了sip的摘要認證

對於SIP層面的摘要認證是安全的, 但是這個認證過程是無法阻止SIP協議層下面的中間人劫持的,比如 ARP 欺騙。

 

SIP 認證是基於HTTP 摘要認證的, 但是和SIP業務不同的是, 對於SIP業務來說,用戶通過一個dia

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章