Jump to content
Калькуляторы

Процедура расчёта response в Authorization

Есть ли более простая нежли читать RFC3261+RFC2617?

У меня всё просто:

REGISTER sip:192.168.16.5 SIP/2.0
Via: SIP/2.0/UDP 192.168.16.195;branch=z9hG4bKc0a80169000000134c6906e90000170300000000;rport
From: "unknown" <sip:3002@192.168.16.5>;tag=157cf0f8f7
To: <sip:3002@192.168.16.5>
Contact: <sip:3002@192.168.16.195>;expires=60
Call-ID: 251432E15D764CEBACACD700B9B5AA7F0xc0a80169
CSeq: 1 REGISTER
Expires: 60
Max-Forwards: 70
User-Agent: SJphone/1.65.377a (SJ Labs)
Content-Length: 0

SIP/2.0 401 Unauthorized
Via: SIP/2.0/UDP 192.168.16.195;branch=z9hG4bKc0a80169000000134c6906e90000170300000000;rport=5060
From: "unknown" <sip:3002@192.168.16.5>;tag=157cf0f8f7
To: <sip:3002@192.168.16.5>;tag=6db3438376c714777c58435aa9f59b37.c72e
Call-ID: 251432E15D764CEBACACD700B9B5AA7F0xc0a80169
CSeq: 1 REGISTER
WWW-Authenticate: Digest realm="192.168.16.5", nonce="0000213f0000002862c66cc17091066be1f4f520324b0dae"
Server: kamailio (3.0.1 (arm/linux))
Content-Length: 0
Warning: 392 192.168.16.5:5060 "Noisy feedback tells:  pid=902 req_src_ip=192.168.16.195 req_src_port=5060 in_uri=sip:192.168.16.5 out_uri=sip:192.168.16.5 via_cnt==1"

REGISTER sip:192.168.16.5 SIP/2.0
Via: SIP/2.0/UDP 192.168.16.195;branch=z9hG4bKc0a80169000000184c6906e90000041a00000002;rport
From: "unknown" <sip:3002@192.168.16.5>;tag=157cf0f8f7
To: <sip:3002@192.168.16.5>
Contact: <sip:3002@192.168.16.195>;expires=60
Call-ID: 251432E15D764CEBACACD700B9B5AA7F0xc0a80169
CSeq: 2 REGISTER
Expires: 60
Max-Forwards: 70
User-Agent: SJphone/1.65.377a (SJ Labs)
Content-Length: 0
Authorization: Digest username="3002",realm="192.168.16.5",nonce="0000213f0000002862c66cc17091066be1f4f520324b0dae",uri="sip:192.168.16.5",response="dff385d78e52c5386a8db8be3d37008b"

Хотелось бы ручками научиться сверяться.

Есть подозрение, что kamailio из неизвестных мне (!) полей составляет свой response:

 3(904) DEBUG: auth [api.c:239]: our result = 'f1f4813c8279d4b65387a04b7f3a3a59'
3(904) DEBUG: auth [api.c:249]: authorization failed

Share this post


Link to post
Share on other sites
Есть ли более простая нежли читать RFC3261+RFC2617?
Нет
Хотелось бы ручками научиться сверяться.

Есть подозрение, что kamailio из неизвестных мне (!) полей составляет свой response:

Именно так и есть. это MD5 сумма из полей плюс пароль. Детально для конкретного случая

надо читать RFC

Мы немного для других целей делали на PHP:http://php.net/manual/en/features.http-auth.php

Ну на калькуляторе точно не посчитаеш. :)

 

Share this post


Link to post
Share on other sites

kamailio не врёт, "проверенно электроникой" ;)

Share this post


Link to post
Share on other sites

Да мне уже тут подкинули программку. Полезная штукенция.

Да и с kamailio я разобрался. )

Share this post


Link to post
Share on other sites

Пытаюсь разобраться как же все-таки формируется response.

Скачал программку, считающую поле response по RFC3261+RFC2617 - http://www.sipmarket.net/soft/MD5String.exe . Кому интересно, вот wiki: http://en.wikipedia.org/wiki/Digest_access_authentication

Программка считает правильно, проверял вручную.

 

Поставил yate, создал пользователя, зарегистрировался x-lite-ом. Снял логи wireshark-ом, проверил - все верно, response формируется правильно. (qop: auth, поля cnonce нет)

Затем авторизуюсь x-lite-ом на сервере провайдера. (qop: auth-int, есть поле cnonce)

 

Снял логи wireshark-ом, - response в логах и response, посчитанный программой (как в прочем и вручную) НЕ СОВПАДАЮТ. Но авторизация проходит. Могу делать звонки.

Что я не так делаю ? Почему response, посчитанный программой получается неправильный.

 

Вот логи регистрации, и response, полученный MD5String.exe. Пользователь gts02, пароль samsung123

 

REGISTER sip:nvngn.usi.ru SIP/2.0
Via: SIP/2.0/UDP 192.168.1.6:12872;branch=z9hG4bK-d87543-2619be6f620cc24b-1--d87543-;rport
Max-Forwards: 70
Contact: <sip:gts02@192.168.1.6:12872;rinstance=9acb5725f36c7976>
To: "gts02"<sip:gts02@nvngn.usi.ru>
From: "gts02"<sip:gts02@nvngn.usi.ru>;tag=800ed81c
Call-ID: YWFmZjhhYzM4ZmUyOGZlYzczNTI0ZTczOTk3OTgwY2E.
CSeq: 2 REGISTER
Expires: 3600
Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY, MESSAGE, SUBSCRIBE, INFO
Proxy-Authorization: Digest username="gts02",realm="Realm",nonce="MTI5MTM2NDEyMTU1NWIxOGZjNDJkNThkMGFlYjkzYjUyMmIxYjg2ZWQ1NmEz",uri="sip:nvngn.usi.ru",response="99306058a653e4faf4fa294ae7acfc31",cnonce="896c88b19fea81fe39d4909e9120171b",nc=00000001,qop=auth-int,algorithm=MD5
User-Agent: X-Lite release 1011s stamp 41150
Content-Length: 0

 

 

e61ca4ad9647.jpg

 

 

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this