160 likes | 323 Views
Integración de la autorización basada en certificados de atributos para SSH. Victor Manuel Fernández Albor. OPEN-SSH Proyecto e Integrantes. - Proyecto IFEC
E N D
Integración de la autorización basada en certificados de atributos para SSH Victor Manuel Fernández Albor
OPEN-SSH Proyecto e Integrantes - Proyecto IFEC - Estudio, diseño y desarrollo de una infraestructura de Firma digital cualificada basada en una infraestructura de gestión de privilegios y una autoridad de sellado de tiempos. INTEGRANTES
OPEN-SSH Criptografía • - Hoy día la criptografía se basa en problemas matemáticos con difícil resolución. • - Criptografía simétrica • - Como compartimos las claves? • - Para N usuarios: • N(N-1)/2 pares de claves • - Ejemplos: AES, Blowfish
OPEN-SSH Criptografía • - Criptografía asimétrica • - 2 Claves: Una pública y otra privada. • - Para N usuarios: • N pares de claves • - Menos fuerte que la simétrica. • - Ejemplos: RSA, DSA, ElGamal, Elliptic Curve • Compartir secretos • - Muestra híbrida entre los esquemas • simétricos-asimétricos. • - No repudio • - Envío autenticación • - Firma Digital
OPEN-SSH Criptografía - La identidad de los certificados está conectado a la clave pública con una identidad. - El certificado necesita ser firmado para asegurar la conexión. - La firma es realizada con una clave asimétrica, y necesita de otro certificado para certificar al que firma. - Esto genera una cadena, y al final de la cadena existe una autoridad que se autofirma su propio certificado. - El usuario ha decidido si confía en la autoridad o no. - Normalmente estas autoridades son bien conocidas y soportadas por los gobiernos. Root CA Sub-CA
OPEN-SSH Criptografía • Cada usuario tiene un conjunto de roles o atributos • Una política de autorización verifica las acciones mostradas con los roles atributos • La política no incrementa con el número de usuarios
OPEN-SSH Capa de transporte • Intercambio de claves • Autenticación del servidor • Cifrado Capa de Autenticación del usuario • Autenticación del cliente • Provee un número de métodos de autenticación Capa de conexión • Define concepto de canales
OPEN-SSH Arquitectura necesaria Necesidades de Open-SSH con PMI - Usuario del SSH - Certificado de identidad - Certificado de atributos - SSH Client - PMI - Institución del Usuario - Certificado de SOA - Certificado de Usuario - Servidor PMI - Gestor de políticas - Proveedor de servicios - Gestor de políticas (Todavía no disponible) - SSH Server - PMI
OPEN-SSH Problemática en el desarrollo y modificación del protocolo Estes son los principales problemas encontrados en la realización del proyecto: 1) La falta de documentaciónacerca del códigossh, escritointegramente en C puro. Por un lado SSHD, y porotro SSH cliente, con susdiferentescapas. Conexion - Authenticación – Transporte connect ---- authXX ---- kex Mezcla de capas en ficherosssh.c y sshd.c. Utilización de algunosficheros C, tantopor parte del clientecomopor parte del servidor, dalugar a confusiones. 2) Unavezconseguidodesencriptarcódigo: ¿ Como es la comunicación entre el cliente y el servidor? Definidos en el RFC de SSH, lasnomenclaturas no coincidian. Los nombres de los códigosenviados entre cliente y servidor, no coincidian en muchos de los casos.
OPEN-SSH Problemática en el desarrollo y modificación del protocolo Estes son los principales problemas encontrados en la realización del proyecto: 3) Unavez se consiguecomunicar SSHD y SSH client, se necesitaenviar certificados ¿Como los envio? Funcionapor Sockets, se creounasecuencia de códigosespecíficapara el envio: mensajecódigoNumericoMensaje 4) Unavezenviados los certificados, el SSHD necesitaverificarlos, SSH, no permitiaescribirlos en ficheros, nipoderverificarlos, nisiquieraacceder a archivos del sistema. -Cambio del CHROOT -Borrarpermisos de escritura-lectura en disco (setGid, setUid) -Duplicación de procesos -Memoriacompartida
OPEN-SSH Problemática en el desarrollo y modificación del protocolo 5) Una vez que tenemos los certificados, necesitabamos conectar una aplicación en C puro, con otra en java para la obtención de una respuesta, varias alternativas, Pruebas Axis c++, GCJ, Gsoap, Swig, Jace, JVM en C en linux. - Llamada app Java directamente, pero se necesitaba pasarle los certificados a) Primera versión en ficheros → operativa b) Segunda versión a través de stdin, stdout → problemas con caracteres de fin de fichero existentes en certificados, mala interpretación de las funciones tanto de C como de Java. → Operativa. Estes son los principales problemas encontrados en la realización del proyecto:
OPEN-SSH Validación-Verificación Get Information of PMI Validate every chain with OCSP or CRL in middleware Validate att certificate with OCSP or CRL in PMI Verify the dates of chain certificates, Soa certificate and Att Certificate Load the trustStore and validate sign of Certificates. Verify the XACML policy
PROYECTO IFEC Víctor Manuel Fernández Albor (victormanuel.fernandez@usc.es) Luis Manuel Carril Rodríguez (luismanuel.carril@usc.es) Tomás Fernández Pena Universidad de Santiago de Compostela Andrés Gómez, Ignacio López Cabido {agomez,nlopez}@cesga.es Centro de Supercomputación de Galicia Sergio Rodríguez Juan Manuel Alonso Alonso Aldaba Soluciones y Proyectos Felipe Gil Castiñeira Jorge Javier Castaño Universidade de Vigo