\chapter{Modelo de protocolo para un sistema an\'onimo basado en estrategias bio-inspiradas}
\chapterauthors{R. Sumoza
\chapteraffil{Fundación Centro Nacional de Desarrollo e Investigación en Tecnologías Libres}
}

% Se crea un ambiente bibunit para el cual se creará la bibliografía
\begin{bibunit}[unsrt]


%\section{Modelo de protocolo para un sistema anónimo basado en estrategias bio-inspiradas}


\textbf{Resumen}

En este artículo se propuso utilizar algunas herramientas provista en el área de la Computación Emergente, específicamente en Inteligencia Artificial Distribuida (IAD), y en particular se utilizaron las Colonias Artificiales de Hormigas para construir sistemas anónimos que tengan la virtud de poseer niveles de anonimato aceptables a un bajo costo. Este costo se refiere a un criterio de rendimiento comúnmente utilizado en los procesos de los sistemas de enrutamiento en telecomunicaciones, tal como lo son los tiempos de respuesta (latencia), consumo de recursos de la red, entre otros.

%\subsection{Introducción}
\section{Introducción}
Para preservar la privacidad de los datos de cada una de las personas que participan en una red de interacción, tal como Internet, se deben utilizar herramientas que sean capaces de proveer protección contra al menos algunos de los ataques típicos. Los ataques en este case de estudio en particular están orientados, sin autorización, a obtener información privada de los usuarios, incluyendo su propia identidad. Para contrarrestar este tipo de ataques se han propuesto varias ideas que apuntan a establecer cierto nivel de Anonimato, el cual en la mayoría de los casos tienden a socavar el rendimiento de las comunicaciones. Esto es aun un problema abierto: los sistemas anónimos aún necesitan asegurar el Anonimato a un bajo costo (bajos tiempos de respuesta, bajo consumo de recursos, mayor usabilidad, etc.), y a esto es lo que se le denomina \emph{Anonimato Eficiente}. Este trabajo presente un nuevo enfoque que aplica por primera vez la idea de utilizar la Inteligencia Artificial Distribuida en esta rama de la 
seguridad en las Tecnologías de Información y Comunicación (TIC), esto quiere decir que se le delega la responsabilidad de alcanzar niveles de Anonimato Eficiente a la Inteligencia Artificial Distribuida,  específicamente se propone utilizar las Colonias Artificiales de Hormigas.

%\subsection{Colonias Artificiales de Hormigas en Anonimato}
\section{Colonias Artificiales de Hormigas en Anonimato}
\label{rlsm:ia-anonimato}

Considerando las ideas propuestas en los sistemas anónimos probabilísticos \cite{rlsm:chaum-mix,rlsm:mixminion,rlsm:diaz-mixes,rlsm:tor-design}, las características de los Colonias Artificiales de Hormigas utilizadas en las redes de telecomunicaciones \cite{rlsm:antnet,rlsm:ants-white,rlsm:ants-loadbalancing}, se propone seleccionar las rutas de los mensajes de forma pro\-ba\-bi\-lís\-ti\-ca, utilizando las probabilidades que configuran los agentes móviles adaptativos (las hormigas). Estas rutas, teniendo componentes probabilísticos pueden incluir, dependiendo de los parámetros de configuración, proporcionar ciertos niveles de Anonimato, en este sentido, se podría tener un "control inteligente" sobre los tiempos de respuesta generados y se podría tener un "control inteligente" sobre otros índices que pudiesen ser incorporados, tal como el consumo de recursos (balanceo de cargas).

Se propone mimetizar los mensaje reales con los agente, esto es, cada mensaje tiene la misma estructura que las hormigas, y la única diferencia entre ellos radica en el contenido del mensaje, estos mensajes mimetizados se encriptan con las claves públicas de los nodos destino. Para hacer similar sus tamaños, se propone utilizar un tamaño  único para el envío de mensajes y para cada agente, incluyendo la estructura de datos que almacena la información necesaria para actualizar las tablas de enrutamiento de cada nodo, más un relleno inválido y la clave pública del destino. Si un mensaje se fragmenta para cumplir con el requisito del tamaño único, el mismo es reensamblado en el nodo destino, utilizando un número de secuencia establecido por el nodo emisor. Los fragmentos de los mensajes también tienen la tarea de actualizar las tablas de enrutamiento de los nodos que visitan, de esta manera los atacantes no pueden ditinguir entre las hormigas y los mensajes reales. De este modo, se puede comparar los mensajes 
enviados con hormigas de carga que llevan el alimento a los nidos, y es por esto que se identifican dos tipos de hormigas, las de carga y las exploradoras, sin tener diferencias aparentes.

Se utiliza una estrategia de cifrado por capas, cada nodo que una hormiga visita cifra la información relacionada al nodo anterior con una técnica de cifrado simétrico, e involucra solo la clave del nodo anterior el nodo anterior, y para alcanzar cada destino, incluyendo el final, se pueden registrar sólo los nodos previos, y no la ruta completa hacia el origen. Para hacer la ruta de retorno (respuesta del  nodo destino), este nodo final envía su respuesta al nodo anterior, y éste desencripta la capa que contiene la información del nodo anterior a él, y así hasta llegar el nodo origen (el emisor).

Para optimizar el o los criterios de rendimiento usualmente utilizados en los sistemas de enrutamiento y a su vez incrementar los niveles de Anonimato, se debe configurar apropiadamente la tabla de rutas. Para hacer ésto, cada vez que una hormiga se mueve de un lugar a otro, actualiza la tabla de rutas. Para cambiar las probabilidad de las rutas, se selecciona un mecanismo basado en los criterios de rendimiento.

En los pasos siguientes muestran el proceso:

\begin {description}
  \item [A.] Se considera un sistema de $N$ nodos, formando una red P2P (tal como Gnutella u otra con características similares), junto con sus servidores bootstrap.
  \item [B.] Se configuran los valores de los parámetros a utilizar, junto con el índice de uniformidad. 
  \item [C.] Cada nodo participante solicita a uno o varios servidores una lista de los otros nodos en la red. Esta lista contiene sus claves públicas (certificados electrónicos).
  \item [D.] Se inicializan la tablas de rutas con la probabilidad $1/M$. $M$ depende del número de vecinos que cada nodos posea.
  \item [E.] El sistema se representa por un grafo el cual forma el espacio de solución por el cual viajarán las hormigas.
  \item [F.] El procedimiento siguiente se repite sobre el grafo hasta alcanzar una solución estable:
  \begin {description}
    \item [1.] Se generan $m$ hormigas exploradoras en cada nodo.
    \item [2.] Por cada $N-1$ lugares desde cada nodo se envían $m$ hormigas exploradoras que escogen el salto a nodo vecino utilizando las probabilidades de transición de la tabla de rutas.
    \item [3.] Se actualizan las tablas de rutas. 
  \end {description}
  \item [G.] Cuando un nodo envía un mensaje anónimamente, éste lo cifra con las clave pública del nodo receptor y utiliza una estructura de datos similar al de las hormigas exploradoras, es decir, se crea una hormiga de carga. Cada hormiga de carga traslada una parte del mensaje, el cual se fragmenta para que el tamaño de cada fragmento pueda cumplir con el requisito de igualar su tamaño con el de la hormiga exploradora. Cada fragmento del mensaje se le asigna un número de secuencia. 
  \item [H.] Por cada salto de la hormiga, el nodo intermedio cifra el identidad del nodo anterior con su clave privada. 
  \item [I.] Cuando una hormiga de carga alcanza el nodo final, y todas las otras hormigas de carga vinculadas a un mensajes también han llegado, es posible reensamblar el mensaje original descifrando los su clave privada, y utilizando los números de secuencia correspondientes.
  \item [J.] Para enviar un mensaje de respuesta, el nodo final utilza el camino de retorno cifrado en capas.
\end {description}

%\subsection{Conclusión}
\section{Conclusión}
\label{rlsm:conclusion}

Se propuso implementar un sistema distribuido P2P basado en anonimato probabilístico provisto por sistemas de colonias artificiales de hormigas. Para lograr esto se configuran los nodos participantes como potenciales enrutadores de los mensajes anónimos.  Las rutas para los mensajes de envío se construyen en base a las estrategias propuestas en los sistemas de telecomunicaciones para optimizar criterios de rendimiento a través del uso de Colonias Artificiales de Hormigas. Una vez que se crean la rutas, el Anonimato se logra al seleccionar probabilísticamente las rutas de los mensajes enviados utilizando cifrado en capas establecido para la ruta de retorno o respuesta.

%\subsection*{Agradecimientos}
\section*{Agradecimientos}
Se agradece a José Lisandro Aguilar Castro por su revisión, consejos y recomendaciones sobre todo el contenido propuesto.


% \begin{thebibliography}{1}
% 
% \bibitem{rlsm:terminology}
% Pfitzmann, A., Hansen, M.: Anonymity, Unobservability, and Pseudonymity: A Consolidated Proposal for Terminology. In: http://dud.inf.tu-dresden.de/Anon\_Terminology.shtml, (2000)
% 
% \bibitem{rlsm:diaz01}
% D\'{\i}az, C., Seys, S., Claessens, J., Preneel, B.: Towards measuring Anonymity. In: Designing Privacy Enhancing Technologies (PET'02). Springer LNCS 2482, pp. 54-68, (2002)
% 
% \bibitem{rlsm:serj01}
% Serjantov, A., Danezis, G.: Towards an Information Theoretic Metric for Anonymity. In: Proceedings of Privacy Enhancing Technologies Workshop, (2002)
% 
% \bibitem{rlsm:chaum-mix}
% Chaum, D.: Untraceable electronic mail, return addresses, and digital pseudonyms. In: Communications of the ACM, Vol. 4, No. 2, (1981)
% 
% \bibitem{rlsm:diaz-mixes}
% D\'{\i}az, C., Serjantov, A.: Generalising Mixes. In: Proceedings of Privacy Enhancing Technologies workshop (PET 2003), pp. 18-31, (2003)
% 
% \bibitem{rlsm:mixminion}
% Danezis, G., Dingledine, R., Mathewson, N.: Mixminion: Design of a Type III Anonymous Remailer Protocol. In: Proceedings of the 2003 IEEE Symposium on Security and Privacy, pp. 2-15, (2003)
% 
% \bibitem{rlsm:tor-design}
% Dingledine, R., Mathewson, N., Syverson, P.: Tor: The Second-Generation Onion Router. In: Proceedings of the 13th USENIX Security Symposium, (2004)
% 
% \bibitem{rlsm:antnet}
% Caro, G.D., Dorigo, M.: AntNet: Distributed Stigmergetic Control for Communications Networks. In: Journal of Artificial Intelligence
% Research, (1998)
% 
% \bibitem{rlsm:ants-white}
% White, T., Pagurek, B.: Connection Management using Adaptive Mobile Agents. In: Proceedings of the International Conference on
% Parallel and Distributed Processing Techniques and Applications, pp. 802-809, (1998)
% 
% \bibitem{rlsm:ants-loadbalancing}
% Schoonderwoerd, R.: Ant-Based Load Balancing in Telecommunications Networks. In: Adaptive Behavior, Vol. 5, pp. 169-207, (1997)
% 
% \end{thebibliography}






% el siguiente comando establece la ubicación de las referencias
\putbib[bibliografia]

% el siguiente comando cierra el ambiente bibunit para la cual se generan las
% referencias.
\end{bibunit}

