Форум: "Сети";
Текущий архив: 2004.04.25;
Скачать: [xml.tar.bz2];
ВнизWWW-авторизация Найти похожие ветки
← →
Pat © (2004-02-25 19:03) [0]Существует протокол SIP, который для регистрации пользователя на сервере использует WWW-авторизацию, описаную в RFC 2617 (всю инфу я брал оттуда). Есть некая программа, которая успешно использует данный алгоритм. Мне удалось перехватить траффик, передаваемый и получаемый этой программой.
Имя пользователя - Pat
Пароль - password
Входящий запрос от сервера на авторизацию:
WWW-Authenticate: Digest
realm="Tario Networks",
nonce="403cb95b62b32b8517ecfcafc74b0242"
Исходящий запрос на авторизацию от программы на сервер:
Authorization: Digest
username="Pat",
realm="Tario Networks",
nonce="403cb95b62b32b8517ecfcafc74b0242",
response="d0bae9c1d93a3e068a3e23589b678d60"
uri="sip:Pat@212.53.35.244"
Передо мной стоит задача - зная имя пользователя и пароль пройти авторизацию на сервере. Пытаюсь получить строку response вручную, начитавшись сказок на ночь :-)) (RFC 2617)
Из RFC 2617 для данного примера я получил следующий алгоритм:
unq("X") = X
H(data) = MD5(data)
KD(secret, data) = H(concat(secret, ":", data))
request-digest =<"><KD(H(A1),unq(nonce-value)":"H(A2))><">
A1 = unq(username-value) ":" unq(realm-value) ":" passwd
where passwd = < user"s password >
A2 = Method ":" digest-uri-value
Method = 5.1.1 in RFC 2616
Поле Method я взял = "GET"
A1 = Pat:Tario Networks:password
A2 = GET:sip:Pat@212.53.35.244
H(A1) = f22688dc8585618b67e907c6a2ddae9c
H(A2) = 537e6f4eb51c8670ba53da5103c1d81a
request-digest=MD5(f22688dc8585618b67e907c6a2ddae9c:
403cb95b62b32b8517ecfcafc74b0242:537e6f4eb51c8670ba53da5103c1d81a) = 42ff0a9d629c1ab6d2fd89d9f77d6017
Как видно результат не совпадает с "эталоном" :-(((
Если кто сталкивался с WWW-авторизацией, расскажите что я делаю не так.
← →
Reindeer Moss Eater © (2004-02-26 08:45) [1]Где заголовок сервера с ответом 401?
Указал ли он опцию "qop" и если да, то чему равно его значение?
← →
Reindeer Moss Eater © (2004-02-26 10:03) [2]Хотя если был бы указан qop, с клиента полетел бы cnonce, а его нет.
Сдается мне что 2617 никакого отношения к взаимодействию программы и севера не имеет. Тем более что sip это из области телефонии
← →
Pat © (2004-02-26 14:40) [3]>Где заголовок сервера с ответом 401?
Это есть, просто я выбрал всю нужную информацию для авторизации. Тем более, что все примеры в RFC2617 идут в такой же форме. Поля qop нету. Кстати, пример из RFC2617 с полем qop у меня сошелся.
>Тем более что sip это из области телефонии
Да, это так, но ведь я ж написал: "протокол SIP, который для регистрации пользователя на сервере использует WWW-авторизацию, описаную в RFC 2617". Это взято из документации на SIP.
← →
Reindeer Moss Eater © (2004-02-26 14:48) [4]Если сервер указал qop, на него надо реагировать.
Формула вычисления request-digest будет не та, что ты привел здесь.
В ней будут участововать nonce, nonce_count, cnonce, qop.
<">KD(H(a1),nonce":"nonce_count":"cnonce":"qop":"h(a2))<">
← →
Reindeer Moss Eater © (2004-02-26 14:51) [5]Кроме того, в запросе сервера не виден алгоритм.
В ответе клиента он тоже не указан.
С чего ты взял, что та программа использует MD5?
← →
Pat © (2004-02-26 17:12) [6]>Reindeer Moss Eater © (26.02.04 14:48) [4]
Поля qop нету
Я написал всю информацию, необходимую для авторизации, которая передается между сервером и клиентом.
>Кроме того, в запросе сервера не виден алгоритм.
RFC2617:
3.1.3 Representation of digest values
An optional header allows the server to specify the algorithm used to create the checksum or digest. By default the MD5 algorithm is used and that is the only algorithm described in this document.
>С чего ты взял, что та программа использует MD5?
Программа-клиент не имеет ничего общего с сервером кроме протокола SIP. И друг друга они отлично "понимают". Поэтому я решил, что по дефолту используется MD5.
P.S. Если не сложно, посмотрите исходник из RFC: http://www.faqs.org/rfcs/rfc2617.html
По нему, вроде бы, я все делаю правильно. Хотя с сями у меня проблемы, может где и ошибаюсь. :-(
← →
Reindeer Moss Eater © (2004-02-26 17:31) [7]Имеем специализированный сервер и специализрованную программу клиент.
Оба декларируют, что используют RFC2617 при авторизации.
Однако респонс, вычисленный по 2617 не совпадает с реальным и (валидным) респонсом клиента.
Вот почему и появляются сомнения описанные в [5].
Возьми браузер(а не программу) и натрави его на этот сервер.
Заснифери протокол обмена.
Думаю что он выдаст точно такой же респонс как и тот, что вычислил ты.
← →
Reindeer Moss Eater © (2004-02-26 17:34) [8]А насчет умолчаний в 2617 по поводу алгоритмов, так там описаны случаи proxy и www авторизации.
Что же касается sip, то ему никто не мешает использовать свои умолчания, используя при этом модель описанную в 2617
Страницы: 1 вся ветка
Форум: "Сети";
Текущий архив: 2004.04.25;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.056 c