Requisitos de Prueba para IPv6 SEND

Anuncio
Requisitos de Prueba para
IPv6 SEND (SEcure Neighbor Discovery)
César Olvera Morales y Miguel A. Díaz Fernández
{cesar.olvera, miguelangel.diaz}@consulintel.es
Estudiantes Doctorado UPM
Consulintel
Complejo Empresarial IMCE, Joaquín Turina, 2
E-28224 Pozuelo de Alarcón, Madrid España
Tel. (+34) 911518199
RESUMEN: El mecanismo SEND (SEcure
Neighbor Discovery) se diseñó para proporcionar
seguridad al protocolo de IPv6 NDP (Neighbor
Discovery Protocol) en ambientes como en el de
las redes inalámbricas, donde la seguridad en el
nivel físico esta comprometida.
Las implementaciones de SEND están
surgiendo y es necesario contar con herramientas
de pruebas para certificar su correcto
funcionamiento. Entre otros esfuerzos, se está
preparando un evento internacional de
interoperabilidad
para
probar
las
implementaciones SEND existentes.
El presente trabajo se basa en el marco
general para el desarrollo de pruebas IPv6
desarrollado por ETSI y extrae los requisitos de
prueba1 del principal documento descriptivo de
SEND, el RFC3971.
Con los requisitos obtenidos para SEND se
puede especificar posteriormente qué probar y
cómo probarlo durante el evento de
interoperabilidad en preparación.
1. Introducción
La IETF desarrollo el mecanismo SEND
(SEcure Neighbor Discovery) [1] para agregar
seguridad al NDP (Neighbor Discovery Protocol)
[2] de IPv6. SEND esta pensado para aplicarse
principalmente en ambientes donde la seguridad
en el nivel físico esta comprometida (como en las
redes inalámbricas) y donde se puedan dar
ataques a NDP [3].
Los desarrolladores y fabricantes están
produciendo implementaciones de SEND, y es
necesario
contar
con
programas
y
procedimientos de pruebas de conformidad2,
interoperabilidad3, prestaciones4, etc. para
certificar el correcto funcionamiento de tales
implementaciones. Entre otros esfuerzos
internacionales, se planea organizar un evento de
interoperabilidad
para
probar
las
implementaciones SEND disponibles a la fecha.
Es un hecho que el protocolo IPv6 se esta
instalando en redes en todo el mundo, y por ello
es necesario probar los equipos y programas
IPv6 para asegurar que sean interoperables entre
sí y con los equipos IPv4 ya instalados; además
es necesario verificar que brindan el mejor
rendimiento y cumplen ampliamente con los
servicios demandados por los usuarios.
Existen varias herramientas que facilitan las
pruebas de IPv6. Distintas instituciones
académicas, de investigación, de estandarización
y compañías comerciales han desarrollado
herramientas, llámense dispositivos, programas,
especificaciones y suites de prueba, para realizar
pruebas enfocadas a IPv6 en general. La
referencia [4] muestra las herramientas de prueba
IPv6 más comunes existentes a mediados del
2005, a las cuales ya se han sumado otras al día
de hoy.
Aun
así,
actualmente
no
existen
prácticamente herramientas para probar el
mecanismo SEND (debido en parte también a
que sus implementaciones son escasas).
Por lo que el evento de interoperabilidad en
preparación busca probar las implementaciones
existentes y fomentar el desarrollo de otras
nuevas. Y los requisitos de prueba para SEND
obtenidos en este trabajo se podrán usar para
definir posteriormente qué probar y cómo
3
1
Un requisito de prueba es una descripción de cómo
un dispositivo o sistema se debe de comportar bajo
ciertas circunstancias.
2 Las pruebas de conformidad determinan si un
dispositivo, o parte de él, satisface o no los criterios
dados en un documento de especificaciones creado y
controlado por algún organismo de estandarización
reconocido como ITU, ISO, IEEE, ETSI, IETF, etc.
Las pruebas de interoperabilidad evalúan la habilidad
de los dispositivos para proveer servicios hacia o
aceptar servicios desde otros dispositivos, y usar esos
servicios intercambiados de manera directa y
satisfactoria para operar en común efectivamente.
4 Las pruebas de prestación buscan caracterizar los
dispositivos a través de encontrar los valores
numéricos de parámetros tales como retardo (delay),
variación del retardo (jitter), caudal eficaz
(throughput), pérdida de paquetes, tiempo promedio
entre fallas, etc.
probarlo durante el evento de interoperabilidad
mencionado.
2. Herramientas de pruebas IPv6 de ETSI
ETSI esta involucrada en un novedoso
proyecto para producir un marco general para el
desarrollo de pruebas IPv6 [5] [6] [7], y ofrecer
sin costo los procedimientos, librerías y suites de
pruebas escritos en el lenguaje TTCN-3 (Testing
and Test Control Notation version 3) [8] [9].
El objetivo principal de ETSI es apoyar y
fortalecer el liderazgo de Europa en la
producción de herramientas que faciliten y hagan
más comunes las pruebas IPv6, y lo hace a través
de este marco que también busca convertirse en
un estándar de referencia mundial.
El lenguaje de programación TTCN-3 es un
estándar de ITU diseñado por ETSI
específicamente para pruebas y certificación.
TTCN-3 se utiliza para especificar las pruebas e
indicar el orden de ejecución de las mismas.
ETSI primero definió ([5] sección 7) siete
áreas de interés de IPv6, las cuales incluyen los
principales RFCs de la IETF relevantes a cada
una de las áreas: Protocolos de Núcleo IPv6,
Movilidad, Seguridad, Transición, Calidad de
Servicio, Encaminamiento y Multicast. ETSI
después definió [6] todos los componentes
necesarios para producir pruebas IPv6 escritas en
TTCN-3.
El proceso de desarrollo de las pruebas IPv6
definido por ETSI tienes varias etapas ([6]
sección 5), y cada una de ellas es necesaria para
las subsiguientes. La Figura 1 esquematiza las
etapas que componen el proceso.
RFCs
3G
IPv6
Forum
Conformidad
Recolección
de
Requisitos
Catálogo
de Requisitos
Casos
de Prueba
Suites
de Pruebas de
Conformidad
Interoperabilidad
Propósitos
de Prueba
Propósitos
de Prueba
Funciones
de Propósitos
de Prueba
Prácticas
Industriales
Biblioteca
en TTCN-3
Repositorio
de Suites de
Pruebas IPv6
Descripción
de Prueba de
Interoperabilidad
Casos
de Prueba
Suites
de Pruebas de
Interoperabilidad
Figura 1. Proceso de desarrollo de pruebas
IPv6 según el marco de ETSI.
La descripción de las etapas es como sigue:
 Recolección de requisitos de prueba a partir
de las distintas especificaciones de IPv6
(RFCs, 3GPP, IPv6 Forum, prácticas
industriales, etc.).
 Confección del catálogo de requisitos,
presentado como un árbol jerarquizado
donde cada nodo es un requisito o una
función IPv6.
 Para las Pruebas de Conformidad el proceso
consiste en: escritura de los propósitos de
prueba de conformidad a partir de los
requisitos, escritura de las funciones de
tales propósitos, escritura de los casos de
prueba, y finalmente producción de las
suites de pruebas en TTCN 3.
 Para las Pruebas de Interoperabilidad el
proceso consiste en: escritura de los
propósitos de prueba de interoperabilidad a
partir de los requisitos, escritura de las
descripciones de prueba, escritura de los
casos de prueba, y finalmente producción
de las suites de pruebas en TTCN 3.
Utilizando el marco descrito, a la fecha ETSI
ya ha desarrollado la suite de prueba para los
Protocolos de núcleo, y esta desarrollado las
suites de Movilidad y Seguridad. Pero en ellas no
ha incluido el mecanismo SEND, de allí la
novedad e importancia del presente trabajo que
se basa en el marco de pruebas IPv6 y extrae los
requisitos de prueba del principal documento
descriptivo de SEND: RFC3971 [1].
3. SEND (SEcure Neighbor Discovery)
Los nodos (encaminadores y hosts) IPv6 usan
el protocolo NDP (Neighbor Discovery Protocol)
[2] para descubrir a otros nodos en la misma red
local, determinar su dirección de nivel de enlace,
encontrar
encaminadores
y
mantener
información del camino hacia otros nodos
activos.
NDP es vulnerable a varios ataques [3] sí no
se utilizan las herramientas de seguridad
adecuadas. Según las especificaciones de IPv6,
los mensajes de ND (Neighbor Discovery) se
pueden proteger con la cabecera de autenticación
(AH - Authentication Header) de IPsec, sin
embargo existen limitaciones prácticas en el uso
de la gestión automática de llaves (entre ellas
problemas de bootstrapping al usar IKE).
Por ello el mecanismo SEND (SEcure
Neighbor Discovery) [1] se diseñó para
proporcionar seguridad a los mensajes de ND
(Neighbor Discovery) [2].
SEND define: un nuevo conjunto de opciones
para los mensajes ND, un proceso de
descubrimiento de autorización en la delegación,
un mecanismo de prueba de propiedad y los
requisitos para aplicar todos estos componentes
en el NDP.
Las cuatro opciones definidas para los
mensajes ND son:
 CGA
(Cryptographically
Generated
Addresses [10]) option. Las direcciones
CGA se usan para asegurar que el
transmisor del ND es efectivamente el
“dueño” de tal dirección. La CGA option se
usa para transportar la llave pública
necesaria así como los parámetros
asociados.
 RSA Signature option. Se usa para asociar
al mensaje ND la firma basada en llaves.
 Timestamp and Nonce options. Ambas se
utilizan para prevenir ataques de
retransmisión.
Con todos estos componentes, SEND se
pensó para aplicarse principalmente en
ambientes donde la seguridad en el nivel físico
esta comprometida, como en las redes públicas
inalámbricas.
4. Requisitos de prueba para SEND IPv6
Como se mencionó antes, el presente trabajo
se basa en el marco de desarrollo de pruebas
IPv6 de ETSI para producir los requisitos de
prueba del RFC3971 que especifica los
componentes de SEND. Este método se ha
aplicado exitosamente también para RFCs de
Transición IPv4-IPv6 [11].
 Usando como guía el marco de ETSI ([6]
sección 6 y anexo D), se obtienen todos los
requisitos de prueba del RFC3971.
 De acuerdo al trabajo realizado, se observa
que el tiempo promedio necesario para
obtener ‘a mano’ todos los requisitos de un
RFC de 50 páginas es de 70 horas/hombre.
Aunque podría ser deseable, hasta ahora no
existen
herramientas
para
obtener
‘automáticamente’ los requisitos de prueba
desde un RFC.
 Se obtienen finalmente más de 230
requisitos de prueba en inglés reunidos en
un catálogo en formato texto que serviría
como base de datos para tratamientos
futuros. El idioma usado es el inglés debido
al carácter internacional del evento de
interoperabilidad de SEND.
A modo de ejemplo, la Figura 2 muestra uno
de los requisitos de prueba obtenidos. El
requisito tomado del RFC3971, sección 5.2,
párrafo 1, es válido para un nodo (encaminador o
host). Es sobre los componentes de SEND y
específicamente sobre la opción RSA Signature,
Es de tipo [MUST] (‘DEBE‘ pero calificado por
la persona que escribe el requisito y por eso
marcado con [ ]), el campo “RqmtTxt” muestra
el texto exacto del RFC de donde se obtiene el
requisito. Los otros campos sirven para
relacionar el requisito con los posibles propósitos
de prueba (TP), los casos de prueba (TC), etc.
definidos posteriormente a partir del requisito.
RqmtID: RQ_SEND_0456
RqmtSubject: Node
ParentFncNode: SEND Components
ParentFncType:
ParentFncRef:
Function_node: RSA Signature Option
FunctionType: [MUST]
FunctionRef: RFC 3971
RqmtContext: The implementation uses IPv6 SEND to
protect all messages relating to Neighbour and Router
discovery. The implementation needs to attach the
public key-based signatures into NDP messages.
Rqmt: The implementation uses the RSA Signature
option.
RqmtTupleList: {RFC 3971, §5.2 ¶1}
RqmtTxt: <span style="color: #FF0000">The RSA
Signature option allows public key-based signatures to
be attached to NDP messages</span>.
Conf_TP_ID:
Conf_TC_ID:
Interop_TP_ID:
Interop_TC_ID:
Link_2srce:
Link_2rqmt:
Link_2ConfTP:
Link_2InteropTP:
Link_2ConfTC:
Link_2InteropTC:
Figura 2. Requisito de prueba para SEND.
5. Conclusiones
Se ha explicado que ETSI ha producido un
novedoso marco general estándar para el
desarrollo de pruebas para IPv6, y que ofrece sin
costo los procedimientos, librerías y suites de
pruebas escritos en el lenguaje estándar TTCN-3.
Se puede considerar que el marco de ETSI se
definió de tal forma que esta abierto para poder
recibir contribuciones que ayuden a la
elaboración de las suites de pruebas de IPv6 ya
definidas en el marco, o aún otras distintas, como
en este caso se ha hecho con el mecanismo de
seguridad SEND.
Así se generan más de 230 requisitos de
prueba de IPv6 SEND que servirán para
especificar las pruebas a realizar durante el
evento de interoperabilidad mencionado.
Por otro lado y empleando otras etapas del
marco de desarrollo de ETSI, los requisitos
obtenidos además podrían servir para la creación
de los de las suites de prueba en TTCN 3 para
SEND.
Referencias
[1] Arkko, J., Kempf, J., Zill, B., and P.
Nikander, “SEcure Neighbor Discovery
(SEND)”, RFC3971, Marzo 2005.
[2] Narten, T., Nordmark, E., and W. Simpson,
“Neighbor Discovery for IP Version 6
(IPv6)”, RFC2461, Diciembre 1998.
[3] Nikander, P., Kempf, J., and E. Nordmark,
“IPv6 Neighbor Discovery (ND) Trust
Models and Threats”, RFC3756, Mayo
2004.
[4] Olvera, C. “Pruebas en Dispositivos IPv6 Aspectos Técnicos”, Seminario sobre el
Protocolo IPv6 y Políticas Públicas en la
Distribución de Servicios de Internet,
Caracas Venezuela, Mayo 2005.
[5] “Pre-normative Study for IPv6 Testing”,
ETSI TR 102 235 V1.1.1, Julio 2003.
[6] “IPv6
Testing:
Methodology
and
Framework”, ETSI TS 102 351 V2.1.1,
Agosto 2005.
[7] “ETSI IPv6 Testing Project”. Consultado
en: http://www.ipt.etsi.org/ 30-01-2007.
[8] “The testing and test control notation
version 3: TTCN-3 core language”, ITU-T
Z.140, Julio 2001.
[9] “ETSI
TTCN-3”.
Consultado
en:
http://www.ttcn-3.org/ 30-01-2007.
[10] Aura, T., “Cryptographically Generated
Addresses (CGA)”, RFC3972, March 2005.
[11] Olvera C., “Catálogo de Requisitos de
Prueba para la Transición de IPv6”,
Jornadas Técnicas RedIRIS 2006, Granada
España, Noviembre 2006.
RESEÑA CURRICULAR
César Olvera Morales es Físico por la
Universidad Nacional Autónoma de México UNAM. De 1998 a 2001 trabajó en DGSCAUNAM, coordinando el Laboratorio de
Interoperabilidad, donde realizó investigaciones
y pruebas de IPv6, QoS, Multicast, VoIP, MPLS,
etc.; además de organizar conferencias y
seminarios sobre estas tecnologías, y ser
conferencista en eventos nacionales e
internacionales. Desde 2002 trabaja en
Consulintel donde participa en varios proyectos
de I+D de IST y PROFIT, y centrando sus tareas
en consultorías, pruebas e instalación de IPv6
sobre
temas
como
direccionamiento,
encaminamiento,
PLC,
QoS,
Multicast,
Movilidad, etc. Además colabora con ETSI, IPv6
Forum, Spirent, Agilent, Ixia, Telelogic, Testing
Tech, etc., en el diseño y conducción de pruebas
de interoperabilidad, conformidad y prestaciones
en dispositivos IPv6. También ha colaborado con
el grupo de trabajo de v6ops de la IETF.
Actualmente es estudiante de doctorado en la
Universidad Politécnica de Madrid
Miguel Angel Díaz Fernández Miguel Ángel
Díaz Fernández posee las titulaciones de
Ingeniero Técnico Electrónico e Ingeniero
Superior de Telecomunicación, ambas otorgadas
por la Universidad Politécnica de Madrid. Su
experiencia incluye programación en diferentes
lenguajes orientados a objeto como C/C++ y
Java, así como lenguajes de modelación como
UML. Desde 2.001 ha estado involucrado en
diferentes proyectos de I+D relacionados con
streaming de audio y video, voz sobre IP (VoIP),
QoS, Movilidad, etc. En la actualidad desarrolla
su actividad profesional en la empresa
Consulintel como consultor en el diseño y
despliegue de redes IP, principalmente IPv6,
dando soporte a clientes tales como ISPs y
grandes empresas. Así mismo participa en
diferentes proyectos IST y PROFIT de I+D,
siendo sus áreas de interés aquellas que se
centran en el protocolo IPv6, tales como
despliegue de red, gestión, evaluación, QoS,
transición etc.
Descargar