PAP, que es utilizado por muchos proveedores de Internet (ISP), funciona b�sicamente de la misma forma que el procedimiento normal de registro. El cliente se autentifica a s� mismo enviando un nombre de usuario y una contrase�a (opcionalmente encriptada) al servidor, la cual es comparada por el servidor con su base de datos de claves o secrets. [1] Esta t�cnica es vulnerable a los intrusos que pueden intentar obtener la contrase�a escuchando en una l�nea serie y a otros que hagan sucesivos intentos de ataque por el m�todo de prueba y error.
CHAP no tiene estos defectos. Con CHAP, el autentificador (i.e. el servidor) env�a una cadena de “reto” generada aleatoriamente al cliente, junto a su nombre de ordenador. El cliente utiliza el nombre del ordenador para buscar la clave apropiada, la combina con el reto, y encripta la cadena utilizando una funci�n de codificaci�n de un solo sentido. El resultado es devuelto al servidor junto con el nombre del ordenador cliente. El servidor realiza ahora la misma computaci�n, y advierte al cliente si obtiene el mismo resultado.
Otra caracter�stica de CHAP es que no solicita autentificaci�n al cliente solamente al comienzo de la sesi�n, sino que env�a retos a intervalos regulares para asegurarse de que el cliente no ha sido reemplazado por un intruso, por ejemplo cambiando la l�nea telef�nica, o debido a una configuraci�n err�nea del m�dem que causa que el demonio PPP no se perciva que la llamada original de tel�fono se ha cortado y alg�n otro se ha conectado.
El pppd mantiene las claves secretas para el CHAP y el PAP en dos ficheros separados, llamados /etc/ppp/pap-secrets y /etc/ppp/chap-secrets respectivamente. Si introduce un ordenador remoto en alguno de los dos ficheros, tendr� un buen control de cual de los protocolos CHAP o PAP se utilizar� para autentificarnos con �l y viceversa.
Por omisi�n, pppd no pide autentificaci�n al ordenador remoto, pero aceptar� el autentificarse a s� mismo cuando se lo pida el ordenador remoto. Como CHAP es mucho m�s fuerte que PAP, el pppd intenta usar el anterior siempre que es posible. Si el otro ordenador no lo acepta, o pppd no encuentra una clave CHAP para el sistema remoto en su fichero chap-secrets, cambia al PAP. Si tampoco tiene clave PAP para su compa�ero, renunciar� a autentificarse. Como consecuencia de esto, se cerrar� la conexi�n.
Este comportamiento puede ser modificado de varias formas. Por ejemplo, cuando se a�ade la palabra auth, pppd solicitar� al otro ordenador que se autentifique. pppd aceptar� el uso de CHAP o PAP para ello, siempre y cuando tenga una clave para su compa�ero en su base de datos CHAP o PAP respectivamente. Hay otras opciones para activar o no un determinado protocolo de autentificaci�n, pero no las describir� aqu�. Puede leer la p�gina de manual del pppd(8) para m�s detalles.
Si todos los sistemas con los que conversa PPP est�n de acuerdo en autentificarse con usted, deber�a poner la opci�n auth en el fichero global /etc/ppp/options y definir contrase�as para cada sistema en el fichero chap-secrets. Si un sistema no acepta CHAP, a�ada una entrada para �l al fichero pap-secrets. De esta forma, puede asegurarse de que ning�n sistema sin autentificar se conecta a su ordenador.
Las dos secciones siguientes hablan sobre los dos ficheros de claves de PPP, pap-secrets y chap-secrets. Est�n situados en /etc/ppp y contienen tripletes de clientes, servidores y contrase�as, seguidas opcionalmente por una lista de direcciones IP. La interpretaci�n de los campos de servidor y cliente es distinta en CHAP y PAP, y tambi�n depende de si nos autentificamos nosotros con el otro ordenador, o si solicitamos al servidor que se autentifique con nosotros.
El siguiente es un fichero de ejemplo de chap-secrets para vlager:[2]
# CHAP secrets for vlager.vbrew.com # # client server secret addrs #--------------------------------------------------------------------- vlager.vbrew.com c3po.lucas.com "Use The Source Luke" vlager.vbrew.com c3po.lucas.com vlager.vbrew.com "arttoo! arttoo!" c3po.lucas.com * vlager.vbrew.com "TuXdrinksVicBitter" pub.vbrew.com |
Cuando se intenta establecer una conexi�n PPP con c3po, c3po pide a vlager que se autentifique usando el CHAP mediante el env�o de un reto de CHAP. El demonio pppd entonces examina chap-secrets buscando una entrada cuyo campo de cliente sea igual a vlager.vbrew.com y el campo de servidor sea c3po.lucas.com, y encuentra la primera l�nea mostrada en el ejemplo.[3] Entonces produce la respuesta de CHAP a partir de la cadena del reto y la clave (Use The Source Luke), y la env�a de vuelta a c3po.
Al mismo tiempo, pppd produce un reto del CHAP para c3po, conteniendo una �nica cadena de reto y su nombre de ordenador completo vlager.vbrew.com. c3po construye una respuesta de CHAP de la manera que acabamos de decir, y se la devuelve a vlager. pppd extrae ahora el nombre del cliente (c3po.vbrew.com) de la respuesta, y busca en el fichero chap-secrets una l�nea que tenga c3po como cliente y vlager como servidor. La segunda l�nea se corresponde con esto, as� que el pppd combina el reto del CHAP y la clave arttoo! arttoo!, las encripta, y compara el resultado con la respuesta de CHAP de c3po.
El cuarto campo opcional lista las direcciones IP que son aceptables por los clientes nombrados en el primer campo. Las direcciones pueden ser dadas en notaci�n cuaternaria o como nombres de ordenador que son resueltos posteriormente. Por ejemplo, si c3po solicita usar una direcci�n IP que no est�a en esta lista durante la negociaci�n IPCP, la petici�n ser� rechazada, e IPCP se desconectar�. En el fichero de ejemplo anterior, c3po est� limitado a poder usar s�lo su propia direcci�n. Si el campo de direcci�n est� vac�o, se permitir� cualquier direcci�n; un valor de “-” evita el uso de una cierta direcci�n IP con un cliente.
La tercera l�nea del fichero chap-secrets de prueba, permite a cualquier ordenador establecer un enlace PPP con vlager, pues si aparece la expresi�n * en los campos de cliente o servidor, ser� valido cualquier nombre. El �nico requisito es que sepa la clave, y utiliza la direcci�n de pub.vbrew.com. Pueden aparecer perfectamente entradas con comodines en los nombres en cualquier lugar del fichero de claves, pues el pppd siempre utilizar� la entrada m�s espec�fica que pueda ser aplicada a un par cliente/servidor.
Hay algunas cosas que decir sobre la manera en que pppd encuentra los nombres de ordenadores que busca en el fichero de claves. Como se explic� anteriormente, el nombre del ordenador remoto es siempre proporcionado por el otro ordenador en el paquete de reto o respuesta del CHAP. El nombre del ordenador local ser� obtenido por omisi�n llamando a la funci�n gethostname(2). Si ha configurado el nombre del sistema como el nombre del ordenador sin calificar, entonces tendr� que dar al pppd el nombre del dominio a a�adir usando la opci�n domain:
# pppd … domain vbrew.com |
Esto a�adir� el nombre del dominio de la Cervecera a vlager para todas las actividades relacionadas con la autentificaci�n. Otras opciones que modifican la idea que tiene el pppd del nombre del ordenador local son usehostname y name. Cuando da la direcci�n IP local en la l�nea de comando usando local:remote y local es un nombre en vez de un cuarteto num�rico, el pppd utilizar� �ste como el nombre local.
Un fichero de claves PAP sencillo puede parecerse a �ste:
# /etc/ppp/pap-secrets # # user server secret addrs vlager-pap c3po cresspahl vlager.vbrew.com c3po vlager DonaldGNUth c3po.lucas.com |
# pppd ... remotename c3po user vlager-pap |
[1] | “secrets” es s�lo el nombre que da PPP a las contrase�as. Las contrase�as de PPP no tienen las mismas limitaciones de tama�o que las contrase�as de registro de Linux. |
[2] | Las comillas no son parte de la contrase�a, simplemente sirven para proteger el espacio en blanco del interior de la contrase�a. |
[3] | Este nombre de ordenador se toma del reto de CHAP. |