SIP (Session Initiation Protocol)
Last updated
Last updated
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
SIP (Session Initiation Protocol) ni protokali ya ishara na udhibiti wa simu inayotumika sana kwa kuanzisha, kubadilisha, na kumaliza vikao vya multimedia, ikiwa ni pamoja na sauti, video, na ujumbe wa papo hapo, juu ya mitandao ya IP. Imeandaliwa na Internet Engineering Task Force (IETF), SIP imefafanuliwa katika RFC 3261 na imekuwa kiwango halisi kwa VoIP na mawasiliano yaliyojumuishwa.
Baadhi ya vipengele muhimu vya SIP ni pamoja na:
Protokali ya Kimaandishi: SIP ni protokali ya kimaandishi, ambayo inafanya iwe rahisi kusoma na kufanyia kazi. Inategemea mfano wa ombi-jibu, sawa na HTTP, na inatumia mbinu kama INVITE, ACK, BYE, na CANCEL kwa kudhibiti vikao vya simu.
Uwezo wa Kupanuka na Ufanisi: SIP ina uwezo mkubwa wa kupanuka na inaweza kutumika katika matumizi madogo pamoja na mazingira makubwa ya biashara na ya carrier-grade. Inaweza kupanuliwa kwa urahisi na vipengele vipya, na kuifanya iweze kubadilika kwa matumizi mbalimbali na mahitaji.
Ushirikiano: Kupitishwa kwa SIP kwa wingi na viwango vya kawaida kunahakikisha ushirikiano bora kati ya vifaa tofauti, programu, na watoa huduma, na kuhamasisha mawasiliano yasiyo na mshono kati ya majukwaa mbalimbali.
Muundo wa Moduli: SIP inafanya kazi na protokali nyingine kama RTP (Real-time Transport Protocol) kwa ajili ya usafirishaji wa media na SDP (Session Description Protocol) kwa ajili ya kuelezea vikao vya multimedia. Muundo huu wa moduli unaruhusu kubadilika zaidi na ulinganifu na aina tofauti za media na codecs.
Seva za Proxy na Redirect: SIP inaweza kutumia seva za proxy na redirect ili kuwezesha upitishaji wa simu na kutoa vipengele vya juu kama vile upitishaji wa simu, uhamishaji wa simu, na huduma za ujumbe wa sauti.
Uwepo na Ujumbe wa Papo Hapo: SIP haijapunguzika kwa mawasiliano ya sauti na video. Pia inasaidia uwepo na ujumbe wa papo hapo, ikiruhusu matumizi mbalimbali ya mawasiliano yaliyojumuishwa.
Licha ya faida zake nyingi, SIP inaweza kuwa ngumu kuunda na kusimamia, hasa inapohusisha masuala ya NAT traversal na moto wa ukuta. Hata hivyo, uwezo wake wa kubadilika, kupanuka, na msaada mpana katika sekta unafanya iwe chaguo maarufu kwa VoIP na mawasiliano ya multimedia.
Mbinu kuu za SIP zilizofafanuliwa katika RFC 3261 ni pamoja na:
INVITE: Inatumika ku anzisha kikao kipya (simu) au kubadilisha kilichopo. Mbinu ya INVITE inabeba maelezo ya kikao (kawaida ikitumia SDP) ili kumjulisha mpokeaji kuhusu maelezo ya kikao kilichopendekezwa, kama vile aina za media, codecs, na protokali za usafirishaji.
ACK: Inatumwa ili kuthibitisha kupokelewa kwa jibu la mwisho kwa ombi la INVITE. Mbinu ya ACK inahakikisha uaminifu wa muamala wa INVITE kwa kutoa uthibitisho wa mwisho hadi mwisho.
BYE: Inatumika ku maliza kikao kilichoanzishwa (simu). Mbinu ya BYE inatumwa na upande wowote katika kikao kuonyesha kuwa wanataka kumaliza mawasiliano.
CANCEL: Inatumwa ili kufuta ombi la INVITE lililoko kabla ya kikao kuanzishwa. Mbinu ya CANCEL inaruhusu mtumaji kufuta muamala wa INVITE ikiwa watabadilisha mawazo yao au ikiwa hakuna jibu kutoka kwa mpokeaji.
OPTIONS: Inatumika ku uliza uwezo wa seva ya SIP au wakala wa mtumiaji. Mbinu ya OPTIONS inaweza kutumwa kuomba taarifa kuhusu mbinu zinazoungwa mkono, aina za media, au nyongeza nyingine bila kuanzisha kikao.
REGISTER: Inatumika na wakala wa mtumiaji ku jiandikishe eneo lake la sasa na seva ya SIP registrar. Mbinu ya REGISTER inasaidia katika kudumisha ramani ya kisasa kati ya URI ya SIP ya mtumiaji na anwani yao ya IP ya sasa, ikiruhusu upitishaji na usambazaji wa simu.
Kumbuka kwamba ili kupiga mtu si lazima kutumia REGISTER kwa chochote.
Hata hivyo, inawezekana kwamba ili kufanya INVITE mpiga anahitaji kujiandikisha kwanza au atapokea jibu la 401 Unauthorized
.
Mbali na mbinu hizi kuu, kuna mbinu kadhaa za nyongeza za SIP zilizofafanuliwa katika RFC nyingine, kama vile:
SUBSCRIBE: Imefafanuliwa katika RFC 6665, mbinu ya SUBSCRIBE inatumika ku omba taarifa kuhusu hali ya rasilimali maalum, kama vile uwepo wa mtumiaji au hali ya simu.
NOTIFY: Pia imefafanuliwa katika RFC 6665, mbinu ya NOTIFY inatumwa na seva ili kumjulisha wakala wa mtumiaji aliyejiandikisha kuhusu mabadiliko katika hali ya rasilimali inayofuatiliwa.
REFER: Imefafanuliwa katika RFC 3515, mbinu ya REFER inatumika ku omba mpokeaji kufanya uhamishaji au kuelekeza kwa upande wa tatu. Hii kwa kawaida inatumika kwa hali za uhamishaji wa simu.
MESSAGE: Imefafanuliwa katika RFC 3428, mbinu ya MESSAGE inatumika ku tuma ujumbe wa papo hapo kati ya wakala wa mtumiaji wa SIP, ikiruhusu mawasiliano ya kimaandishi ndani ya mfumo wa SIP.
UPDATE: Imefafanuliwa katika RFC 3311, mbinu ya UPDATE inaruhusu kubadilisha kikao bila kuathiri hali ya mazungumzo yaliyopo. Hii ni muhimu kwa kuboresha vigezo vya kikao, kama vile codecs au aina za media, wakati wa simu inayoendelea.
PUBLISH: Imefafanuliwa katika RFC 3903, mbinu ya PUBLISH inatumika na wakala wa mtumiaji ku chapisha taarifa za hali ya tukio kwa seva, na kuifanya ipatikane kwa wahusika wengine.
1xx (Majibu ya Muda wa Kijaribio): Majibu haya yanaonyesha kuwa ombi limepokelewa, na seva inaendelea kulifanyia kazi.
100 Trying: Ombi limepokelewa, na seva inafanya kazi juu yake.
180 Ringing: Mpokeaji anapigiwa simu na atachukua simu.
183 Session Progress: Inatoa taarifa kuhusu maendeleo ya simu.
2xx (Majibu ya Mafanikio): Majibu haya yanaonyesha kuwa ombi limepokelewa kwa mafanikio, limeeleweka, na limekubaliwa.
200 OK: Ombi lilifanikiwa, na seva imekamilisha.
202 Accepted: Ombi limekubaliwa kwa ajili ya usindikaji, lakini halijakamilika bado.
3xx (Majibu ya Uelekeo): Majibu haya yanaonyesha kuwa hatua zaidi zinahitajika ili kutimiza ombi, kwa kawaida kwa kuwasiliana na rasilimali mbadala.
300 Multiple Choices: Kuna chaguzi nyingi zinazopatikana, na mtumiaji au mteja lazima achague moja.
301 Moved Permanently: Rasilimali iliyohitajika imepewa URI mpya ya kudumu.
302 Moved Temporarily: Rasilimali iliyohitajika inapatikana kwa muda katika URI tofauti.
305 Use Proxy: Ombi lazima litumwe kwa proxy maalum.
4xx (Majibu ya Kosa la Mteja): Majibu haya yanaonyesha kuwa ombi lina sintaksia mbaya au haliwezi kutimizwa na seva.
400 Bad Request: Ombi lilikuwa na makosa au halikufaa.
401 Unauthorized: Ombi linahitaji uthibitisho wa mtumiaji.
403 Forbidden: Seva ilielewa ombi lakini inakataa kulitimiza.
404 Not Found: Rasilimali iliyohitajika haikupatikana kwenye seva.
408 Request Timeout: Seva haikupokea ombi kamili ndani ya muda iliyojiandaa kusubiri.
486 Busy Here: Mpokeaji kwa sasa yuko busy na hawezi kuchukua simu.
5xx (Majibu ya Kosa la Seva): Majibu haya yanaonyesha kuwa seva ilishindwa kutimiza ombi halali.
500 Internal Server Error: Seva ilikumbana na kosa wakati wa kusindika ombi.
501 Not Implemented: Seva haisaidii kazi inayohitajika kutimiza ombi.
503 Service Unavailable: Seva kwa sasa haiwezi kushughulikia ombi kutokana na matengenezo au mzigo mkubwa.
6xx (Majibu ya Kushindwa kwa Ulimwengu): Majibu haya yanaonyesha kuwa ombi haliwezi kutimizwa na seva yoyote.
600 Busy Everywhere: Mahali pote pa simu ni busy.
603 Decline: Mpokeaji hataki kushiriki katika simu.
604 Does Not Exist Anywhere: Rasilimali iliyohitajika haipatikani popote katika mtandao.
Njia ya REGISTER inatumika katika Itifaki ya Kuanzisha Kikao (SIP) kuruhusu wakala wa mtumiaji (UA), kama simu ya VoIP au softphone, kujiandikisha eneo lake na seva ya kujiandikisha ya SIP. Mchakato huu unaruhusu seva kujua mahali pa kuelekeza maombi ya SIP yanayoingia yanayokusudiwa kwa mtumiaji aliyejiandikisha. Seva ya kujiandikisha kwa kawaida ni sehemu ya seva ya proxy ya SIP au seva maalum ya kujiandikisha.
Hapa kuna mfano wa kina wa ujumbe wa SIP unaohusishwa na mchakato wa uthibitishaji wa REGISTER:
Ombi la awali REGISTER kutoka UA hadi seva ya kujiandikisha:
Huu ujumbe wa awali wa REGISTER unatumwa na UA (Alice) kwa seva ya registrar. Unajumuisha taarifa muhimu kama vile muda wa usajili unaotakiwa (Expires), URI ya SIP ya mtumiaji (sip:alice@example.com), na anwani ya mawasiliano ya mtumiaji (sip:alice@192.168.1.100:5060).
401 Unauthorized jibu kutoka kwa seva ya registrar:
The registrar server responds with a "401 Unauthorized" message, which includes a "WWW-Authenticate" header. This header contains information required for the UA to authenticate itself, such as the authentication realm, nonce, and algorithm.
REGISTER ombi na akreditivu za uthibitisho:
The UA sends another REGISTER request, this time including the "Authorization" header with the necessary credentials, such as the username, realm, nonce, and a response value calculated using the provided information and the user's password.
Hii ndiyo jinsi mjawazo ya Uidhinishaji inavyokadiriwa:
Majibu ya usajili uliofanikiwa kutoka kwa seva ya registrar:
Baada ya seva ya registrar kuthibitisha taarifa zilizotolewa, inatuma jibu la "200 OK" kuashiria kwamba usajili umefanikiwa. Jibu linajumuisha taarifa za mawasiliano zilizojisajili na muda wa kumalizika kwa usajili. Katika hatua hii, wakala wa mtumiaji (Alice) amesajiliwa kwa mafanikio na seva ya SIP registrar, na maombi ya SIP yanayoingia kwa Alice yanaweza kuelekezwa kwenye anwani sahihi ya mawasiliano.
Haijatajwa, lakini Mtumiaji B anahitaji kuwa ametuma ujumbe wa REGISTER kwa Proxy 2 kabla ya kuwa na uwezo wa kupokea simu.
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)