[OpenSER-Users-ES] [Users-es] Mensajes que requieren autenticación

Javier Allende Astigarraga legolas.klaitxu at gmail.com
Wed Mar 12 16:55:52 CET 2008


Retomando este tema , me surgen un par de dudas con la implementación
de la autenticación de los invites.

Ya he conseguido probar que no haya un número superior de AOR,
utilizando 2 máquinas virtuales.

Ahora mis dudas van en lo siguiente :

1º Se tratar que no me pueda llamar yo mismo  y según lo que pienso yo
habría que tratarlo dentro del INVITE, si tener en cuenta la
autenticación.

2º Tras comprobar que no me llamo a mi mismo tengo que comprobar que
esta autenticado
Con esto debería valer
proxy_authorize verifica las credenciales enviadas
if (!proxy_authorize("", "subscriber)) {
                xlog("Hay que autenticarse para $rm");
	proxy_challenge("", "0");
xlog("El usuario esta autenticado");
                exit;
}

o me falta algo


Lo que no entiendo en el method REGISTER del openser.cfg por que
realiza lo siguiente
if(!check_to())
{


}

if(!save(location))
{

}




un saludo y gracias
-- 
=====================================================
Legolas_Bilbao[ID2006][GKR]
Dios creo un equipo Perfecto a los demas los lleno de extranjeros
http://www.forosindicedonkey.com
http://usuarios.lycos.es/ligaforo/
=====================================================


---------- Forwarded message ----------
From: Saúl Ibarra <saghul at gmail.com>
Date: 23-ago-2007 11:38
Subject: Re: [OpenSER-Users-ES] Re: [Users-es] Mensajes que requieren
autenticación
To: Lista de usuarios de OpenSER <users-es at openser.org>


OK, entendido, pero lo del hastotag en realidad lo tengo asi:

if (loose_route()) {
               xlog("L_INFO","*** Estamos en loose_route() ***\n");

               ## Con el has_totag sabemos si son "in-dialog"
               if ((method=="INVITE" || method=="REFER") && !has_totag()) {
                       sl_send_reply("403", "Forbidden");
                       xlog("L_INFO","$Crx ** INVITE o REFER sin TO
tag ** $Cxx\n");
                       exit;
               }

               if (method=="INVITE") {

                       ## Es un re-INVITE
                       route(7);
               }

               route(1);
               exit;
       }

Ahora voy a añadir la comprobación para el auth del REFER...

Thnx Iñaki!!

El 23/08/07, Iñaki Baz Castillo <ibc at aliax.net> escribió:
> El 23/08/07, Saúl Ibarra <saghul at gmail.com> escribió:
> > He estado "limpiando" un poco el código, metiendo el auth, el alias y
> > el location en distintos routes, y ahora me queda más "legible" xD
> >
> > Lo que no me ha quedado muy claro es la utenticación del REFER. Yo
> > actualmente hago esto:
> >
> > ## Con el has_totag sabemos si son "in-dialog"
>
> Humm, creo que no exactamente. Para saber si es en dialog es la función:
>   if (loose_route())
> http://4z.com/people/emin-gabrielyan/public/070412-SIP-record-route/
>
> El tema del "has_totag" se debe a que, una vez dentro de un diálogo
> establecido, los mensajes in-dialog deben necesariamente tener un
> parámetro "tag" dentro del campo "To". Es una medida de seguridad
> aunque reconozco que tengo pendiente comprobar cómo de seguro es esto,
> es decir, si yo genero a propósito un mensaje nuevo con un "tag" en el
> "To" y le añado la cabecera "Route" para que pase por "loose_route"
> (in-dialog) ¿significa eso que OpenSer me permite el paso de es
> mensaje "trampa" que en realidad no pertenece a ningún diálogo
> establecido? Aquí hay que recordar que OpenSer no recuerda el estado
> de diálogos, sólo de transacciones.
>
>
>
> >                 if ((method=="INVITE" || method=="REFER") && !has_totag()) {
> >                         sl_send_reply("403", "Forbidden");
> >                         xlog("L_INFO","$Crx ** INVITE o REFER sin TO tag ** $Cxx\n");
> >                         exit;
> >                 }
> >
> > Así vale? O debería añadir a continuación algo como:
> >
> > if (method=="REFER") {
> > route(22);
> > route(1);
> > }
> >
> > Donde route 22 es:
> >
> > # -----------------------------------------------------------------
> > # Auth check
> > # -----------------------------------------------------------------
> >
> > route[22]
> > {
> >         ## Es necesario autenticarse
> >         if (!proxy_authorize("","subscriber")) {
> >                 xlog("L_INFO","$CbxSe necesita autenticacion para $rm $Cxx\n");
> >                 proxy_challenge("","0");
> >                 exit;
> >         }
> >
> >         ## Tienen que coincidir el nombre de usuario con el de la cabecera FROM
> >         else if (!check_from()) {
> >                 xlog("L_INFO","$Crx*** check_from() = NO!! ***$Cxx\n");
> >                 sl_send_reply("403", "Use From=ID");
> >                 exit;
> >         }
> >         xlog("L_INFO","$Cbx*** Autenticacion Correcta para $rm ***$Cxx\n");
> >         consume_credentials();
> > }
> >
> > ??
>
> Sí, en efecto, es necesario ese Auth para REFER. Piensa en el caso de
> que llames desde un PAP2 (por ejemplo) a un número SIP
> "ajeno"/exterior. Una vez en el diálogo, si no pides auth para el
> REFER la otra parte podría enviarte un REFER para que tu teléfono haga
> una llamada al número que sea, lo que podría ocasionar llamada vía
> PSTN con el coste económino asociado (y es una llamada que ha hecho tu
> PAP2).
> Pongo el ejemplo del PAP2 porque, que o sepa, ningún deskphone pide
> confirmación al usuario cuando recibe un REFER. En cambio, con Twinkle
> al recibir un REFER te saca un pop-up preguntando al usuario si desea
> aceptar el REFER a la URI que sea. Ah, y todo esto yo he leído en
> algún RFC que es lo correcto por obvia seguridad, en cambio parece
> como si la mayoría de dispositivos SIP delegasen en su proxy SIP la
> seguridad del REFER.
>
>
> Saludos.
>
>
> --
> Iñaki Baz Castillo
> <ibc at aliax.net>
>
> _______________________________________________
> Users-es mailing list
> Users-es at openser.org
> http://openser.org/cgi-bin/mailman/listinfo/users-es
>
>


--
Saúl -- "Some people say why, other just say, why not."
----------------------------------------------------------------
http://www.saghul.net/

_______________________________________________
Users-es mailing list
Users-es at openser.org
http://openser.org/cgi-bin/mailman/listinfo/users-es


-- 
=====================================================
Legolas_Bilbao[ID2006][GKR]
Dios creo un equipo Perfecto a los demas los lleno de extranjeros
http://www.forosindicedonkey.com
http://usuarios.lycos.es/ligaforo/
=====================================================




More information about the Users-es mailing list