Abstract:
|
En este proyecto se ha desarrollado la aplicación PKI-P2P, esta aplicación implementa una infraestructura de clave pública (PKI) sobre una red peer-to-peer (P2P). Una PKI tiene como objetivo probar que una clave pública es auténtica para un cierto usuario, porque la confianza que se tiene en una clave pública es muy importante para la seguridad en los métodos criptográficos. Lo normal es que el sistema sea centralizado y jerárquico en donde unos pocos elementos llamados Autoridades de Certificación (AC) son los encargados de validar la relación entre un usuario y su clave pública. En redes con una gran cantidad de nodos la PKI tiene que atender muchas peticiones de autenticidad de clave pública, por lo tanto, en este tipo de escenarios es mejor descentralizar la PKI. Para ello todos los elementos de la PKI deberían ser capaces de decidir si una clave pública es auténtica o no. Las redes descentralizadas en donde todos los elementos son iguales son las llamadas P2P, estas redes ofrecen algunas ventajas sobre los sistemas jerárquicos o centralizados como: resistencia a fallos, distribución de carga, auto administración y independencia de organización operativa. La forma de implementar una PKI sobre una red P2P es descrita en el documento de Thomas Wölfl “Public-Key-Infrastructure Based on a Peer-to-Peer Network”, el autor de este documento desarrolló una aplicación Peer-to-Peer-PKI consiguiendo búsqueda y transferencia eficiente de certificados y recomendaciones. Se basa en una combinación del modelo de Maurers y el protocolo escalable de búsqueda P2P de Chord. La red P2P utilizada es Pastry mediante su implementación en Java Freepastry, esto ha hecho que todo el proyecto se desarrolle en Java. Pastry es un esquema genérico, escalable y eficiente para aplicaciones P2P. Los nodos Pastry forman una red overlay descentralizada, auto-organizada y tolerante a fallos. Además para probar el funcionamiento de la aplicación PKI-P2P se ha utilizado la red de pruebas PlanetLab. PlanetLab es una red global de investigación para dar soporte al desarrollo de nuevos servicios de red. Gran parte del tiempo se ha dedicado al estudio de PlanetLab, saber como funciona para poder realizar las pruebas. |