[IRC-DEV] Programa de Seguimiento de otras redes: SILC (Primera parte)

Rubén Cardenal rubenc at arrakis.es
Mon Jan 28 19:14:55 CET 2002


Hola,

	Voy a exponer, brevemente, un primer análisis de lo que es SILC. Será una exposición general en principio, y no entrará en excesivos detalles, pues es una red en formación (versiones nuevas del servidor y cliente salen cada -relativamente- pocos días). En todo caso, aconsejo a todos que os instaleis el cliente, y lo probeis, porque es realmente interesante :)

	* Servicios normales del chat como son privados, canales, mensajes en canales, etc. Todo el tráfico está securizado y autenticado.
 
	* Puede haber infinitos nicks iguales en SILC sin colisiones. SILC proporciona ID's únicas para los clientes, servidores y canales, para asegurarse de que no se producen colisiones. La longitud máxima de un nick son 128 caracteres, y la máxima longituf del nombre del canal, 256.

	* Los canales pueden tener operadores de los mismos, y un fundador, que es el cliente que creó el canal. Los privilegios del fundador del canal están por encima del de operador del mismo. Dichos privilegios de fundador, pueden recuperarse incluso si el fundador deja el canal. Para ello, el cliente ha de conectar por el mismo server por donde conectó originalmente. El fundador del canal no puede ser expulsado del mismo.

	* Los mensajes dichos en el canal, están protegidos por una clave del canal, que es generada por el servidor. Esta clave se regenera cada hora. Existe la posibilidad de definir una clave privada para el canal que ni siquiera el propio servidor conozca. Actualmente, es posible definir varias claves privadas para que solo usuarios específicos del canal puedan desencriptar mensajes específicos. Añadir la clave privada aumenta la seguridad pues nadie más que los usuarios del canal conocen la clave.

	 * Los mensajes privados se protegen usando claves de sesión, que son generadas al conectar al servidor. Esto significa que los mensajes privados son desencriptados y re-encriptados por el servidor de camino al verdadero receptor del mensaje. De todas formas, de igual forma que ocurre con los canales, existe la posibilidad de definir una clave privada entre dos clientes y proteger los mensajes privados con dicha clave. En este caso, ningún servidor intermedio puede desencriptar el mensaje pues no conoce la clave. El protocolo del SILC proporciona una negociación automática de clave entre dos clientes usando el protocolo SKE. Esto hace que sea muy fácil generar una clave secreta con otro cliente de la red.

	* El resto del tráfico, como los comandos cliente/servidor están protegidos por las claves de sesión, que son regeneradas tambien cada hora. La clave nueva puede crearse con o sin el PFS (Perfect Forward Secrecy).

	* Intercambio seguro de clave y protocolo de autenticación: El SILC Key Exchange (SKE) proporciona la clave usada en las sesiones de SILC de manera segura. El protocolo es inmune a ataques de tipo "man-in-the-middle" (basicamente, consiste en que un atacante actua de proxy entre la víctima y el host destino, comportandose entonces como servidor para el cliente, y como cliente para el servidor) y está basado en el altoritmo de intercambio de clave Diffie-Hellman. El protocolo de autenticación  de SILC proporciona autenticación fuerte. La autenticación puede estar basada o en una contraseña, o la autencitacón por clave pública (RSA). Para los clientes, existe la opción de no usar autenticación al conectar al servidor.

	* Soporta transferencia segura de ficheros entre clientes en la red. SILC usa el SFTP como el principal protocolo para transferencia de ficheros

	* Todo el tráfico es encriptado y autenticado usando os mejores algoritmos criptográficos existentes. Las claves de cifrado son, por defecto, de 256 bits y las claves públicas, de 1024.

	* Soporte para los siguientes cifrados: AES(Rijndael), Twofish, Blowfish, Mars, Cast-256, RC5 and RC6. Soporta las siguientes funciones de hashing: MD5 y SHA1. Soporta los siguientes HMACs: hmac-sha1-96, hmac-md5-96, hmac-sha1 y hmac-md5. Soporta el PKCS#1 (RSA) para criptografía de clave pública.

	* Soporte de compresión de datos con gzip para mejorar el rendimiento. Soporte para SOCKS4/5.

	* Soporte para SIM (SILC Module). Soporte de carga de objetos compartidos en tiempo de ejecución que proporciona nuevas y variadas posibilidades tanto para el cliente como el servidor. Estas pueden ser cifrado extra y nuevas características del software. Se puede instalar el cliente SILC sin ser root y configurado para un sistema entero, pero tambien con características concretas de configuración para cada usuario.

	Cabe destacar que:

	- SILC *NO* es compatible con las redes de IRC actuales.
	- Funciona bajo plataformas Unix y Linux, y Cygwin. En este momento, está a punto de salir una versión del cliente para            	  Windows 98 y 2000/XP que se apoya en las librerías del cygwin, aunque se trabaja en un ejecutable nativo 	  "standalone".
	
	En breve, remitiré otro artículo con referencias y un compendio más exhaustivo de sus características a nivel de seguridad y "parecido" al IRC que conocemos.


	Saludos,

NiKoLaS



More information about the IRC-Dev mailing list