28
Autor : SAYDA , MOISES YANASUPO Mensajería instantánea sobre Linux

Servidor Jabber

Embed Size (px)

Citation preview

Autor : SAYDA , MOISES YANASUPO

Mensajería instantánea sobre Linux

1-¿Qué es mensajería instantánea?

2-¿Qué es Jabber?

3-Los servidores Jabber

3.1-Instalación de un servidor Jabber en Linux

4-Clientes Jabber.Utilización de Gaim

5-Seguridad : GnuPG

6-Seguridad en la conexión al servidor SSL

6.1-Ejemplo de utilización de SSL en Jabber

1-¿Qué es mensajería instantánea?

-Masificación de PCs: aplicaciones indispensables

-Funcionamiento genérico

-Funciones adicionales : plugins

-Sistemas de mensajeria:

2-¿Qué es Jabber?

-Protocolo abierto basado en XML

-Destaca por las siguientes características:

-Es abierto

-Es libre

-Es extensible

-Es descentralizado

-Es seguro

-Diferencia con otros IMs

-Existe un protocolo y cada uno de los clientes es una implementación

3-Los servidores Jabber

-Descentralizado: Servidores independientes e interconectados

-2 contactos tienen cuentas en el mismo servidor:

3-Los servidores Jabber

-Servidores privados, aunque de acceso público-Usuarios de distintos servidores conectados a Jabber:

3-Los servidores Jabber

-Servidores con servicios característicos

3-Los servidores Jabber

-El usuario escoge su nombre y el servidor de la cuenta

-Ventajas:

- Distribución de la carga

- Disponibilidad de nombres

- Múltiples cuentas

- Confianza en el servidor

- Conversaciones más seguras

- Supervivencia de la red

- Servicios privados

3.1-Instalación de un servidor Jabber en

Linux

1-Bajar jabberd 2

2-Compilación del servidor Jabber:

#./configure

#make

3-Especificar máquina en la que está el servidor

-FQDN, IP o Localhost

-Cambiar la línea:

<host><jabberd:cmdline flag="h">localhost</jabberd:cmdline></host>

por:

<host>localhost</host>

3.1-Instalación de un servidor Jabber en Linux

4-Crear dentro del directorio “spool” un nuevo directorio con el nombre especificado en <host>

5-Arrancar el servidor

6-Arrancar un cliente : Gaim

7-Configuración del cliente

Nombre de Usuario: franpevi@localhostContraseña: *********Alias: franpeviProtocolo: JabberPort: 5222

8-Si es la primera vez que utilizamos un usuario, registrarlo marcando “Register with server”

4-Clientes Jabber.Utilización de Gaim

-Implementaciones para Linux, BSD, MacOS y Windows-Compatible con ICQ, MSN, Yahoo, IRC

-Sesión en varias cuentas de distintas redes de IM-Sindicación de noticias con [email protected]ón de “Buddy Pounces”-Salas de chat integradas en el cliente que NO forman parte del protocolo Jabber

GroupChat 1.0 o MUC

-Uso de gtk2-Linux: ligero, completo e intuitivo Windows: faltan detalles

5-Seguridad : GnuPG

-Mayor grado de seguridad : cifrado punto a punto

-Jabber -> GPG

-Libre, gratuito, multiplataforma

-Motor de cifrado sin gráficos -> Backend

-Ideal -> Entregar la clave en persona al destinatario

Importancia de los servidores de claves públicas

-Cada usuario posee :

- Clave privada : llave

- Clave pública : candado

5.1-Generar un par de claves

1-Generamos 2 pares de claves

-Un par DSA primario -> para firmar

-Un par El-Gamal subordinado -> para cifrar

2-Tamaño para la clave

-Tamaño DSA -> entre 512 y 1024 bits

-Tamaño El-Gamal -> cualquier tamaño

3-Fecha de caducidad : dificultad comunicar cambio

4-Identificador para asociar clave a usuario

5-Contraseña para proteger las claves privadas, primarias y secundarias : punto más débil de GnuPG

5.1-Generar un par de claves

6-Certificado de revocación para la clave pública primaria--gen-revoke

-Utilidad: si la clave privada se extravía, el certificado

notifica a otros usuarios que esa clave públicano debe ser usada nunca más.

-Clave pública revocada - Sirve -> verificar firmas del usuario en el pasado - No sirve -> cifrado de datos

-Certificado no debe ser guardado en lugares de libreacceso -> cualquiera podría inutilizar la clave pública

5.2-Intercambiar claves

-Comunicación -> Intercambio de claves públicas

-Exportación en formato binario. Armor = ASCII

-Importación de una clave -> requiere validación

-Validación :

- Verificando la huella digital de la clave

-Con el propietario de la clave.

Si Huella propietario = Huella clave -> clave OK

- Firmando dicha clave para certificar su validez

5.3-Firmar y verificar firmas

-Firma : certifica un documento y le añade una marcade tiempo.-Se genera ->con la clave privada del firmante-Se verifica -> con la clave pública correspondiente

-Impide a un posible atacante:-Manipular la clave-Manipular el identificador de usuario, redireccionando el correo a su propia cuenta

-Autofirmar : Firmar clave pública con la correspondienteclave privada maestra -Certificado : Clave pública que contenga identificadoresde usuario autofirmados ligados a ella

5.4-Ejemplo de utilización de GnuPG

PASO 1 : GENERAR

-Ejecutar el comando gpg -genkey

-Tipo de clave -> Opción 1

-Longitud de clave -> Recomendable 2048

-Caducidad->”1y” ,1 año

-Nombre->Francisco Perez

-Email-> [email protected]

-Comentario

-Frase de contraseña->para recordar nuestra contraseña

5.4-Ejemplo de utilización de GnuPG

PASO 2 : CERTIFICADO DE REVOCACION

-gpg --output cert_revoc_arch.asc --gen-revoke -armor aa8e6a57

-¿Por qué revocamos la clave? -> respuesta 3, clave que ya no se usa

-Introducir el password y nos responderá:“ASCII armored output forced.”

“Revocation certificate created.”

-Si se quiere activar la revocación:

1)Importarla: gpg --import cert_revoc_arch.asc

2)Enviarla al servidor: gpg --send-keys aa8e6a57

5.4-Ejemplo de utilización de GnuPG

PASO 3 : ENVIAR LA CLAVE PUBLICA AL SERVIDOR

-Editamos el fichero ~/gnupg/options y descomentamos la línea del keyserver que tiene que quedar:

keyserver pgp.rediris.esAhora ya podemos enviar la clave al servidor RedIRIS

gpg --send-keys aa8e6a57

PASO 4 : BAJARSE LA CLAVE DE ALGUIEN

-Teclear el siguiente comando con los ultimos 8 digitosde su huella digital:

gpg --recv-keys aa8e6a57

5.4-Ejemplo de utilización de GnuPG

PASO 5 : FINGERPRINT

-Para conocer la huella digital de una clave:gpg --fingerprint aa8e6a57

Así comprobamos la clave antes de firmarla

PASO 6 : FIRMAR UNA CLAVE

-Tras asegurarnos de que seguro es quien dice que esy comprobar que concuerdan las claves

gpg --sign-key aa8e6a57-Una vez que el sistema esté funcionando se mantiene:

gpg --refresh-keys gpg --check-trustdb

5.4-Ejemplo de utilización de GnuPG

PASO 6 : FIRMAR UNA CLAVE (CASO ESPECIAL)

-2 usuarios muy separadosY no da tiempo a conocer sufingerprint. Solución:

-Firmar la clave sin exportarlagpg --edit-key aa8e6a57

-Poniendo lsign: - Se firma de forma local - La firma no se exportara a los servidores

6-Seguridad en la conexión al

servidor:SSL

-Especificación propietaria de Netscape puesta en dominio público para definición de canales seguros sobre TCP, el protocolo de transporte P2P de Internet

-Cifrado SSL no garantizado en todo el trayecto hasta el destinatario final:

-Protege desde el cliente al servidor

-Protege de proveedor de Internet

-Protege de otros usuarios de esa misma LAN

-”Self signed certificate”-> Certificado SSL del servidor lo ha firmado el administrador del servidor

-Esto solo protege frente a espías pasivos

-

6-Seguridad en la conexión al servidor:SSL

-El protocolo SSL se compone de 2 capas:

-SSL Record Protocol -> encapsulación al nivel más alto

-SSL Handshake Protocol -> negociación de los algoritmos de encriptación y autentificación entre C/S

1) Conexión inicial -> cliente adjunta información sobre los sistemas criptográficos que dispone

2) El servidor responde con un id de conexión, su clave certificada e información sobre los sistemas criptográficos que soporta

3) El cliente escogerá un sistema criptográfico y verificará la clave pública del servidor

6-Seguridad en la conexión al servidor:SSL

4)Se genera una clave encriptada con la clave pública del servidor.

NOTA: Si alguien consiguiera desencriptar la información solo conseguiría “reventar” esa conexión, puesto que siguientes conexiones tendrían otra clave criptográfica

5)Se cede el control a los protocolos de nivel de aplicación. SSL permanece por debajo encriptando todo el flujo de información y asegurando:

-Integridad: mensajes no modificados-Confidencialidad: nadie sin autorización puede leer la información transmitida.

6.1-Ejemplo de uso de SSL en Jabber

-Ejemplo : Vamos a certificar nuestra clave pública

1)Necesitamos paquete openssl para generación claves

$ apt-get install openssl

2)Generamos el par de claves (alg RSA p ej)

$ openssl req -new -x509 -newkey rsa:1024 -keyout priv.pem -out key.pem

3)Eliminamos la clave privada y agrupamos la clave pública “certificada” con la clave privada:

$ openssl rsa -in priv.pem -out priv.pem$ cat priv.pem >> key.pem$ rm priv.pem

6.1-Ejemplo de uso de SSL en Jabber

4)Ya que la clave privada no tiene password, utilizaremos permisos para poner como dueño del archivo al mismo usuario bajo el cual “jabberd” esta funcionando

5)Dentro de <load main=“jsm”> debemos señalar el orden de los tipos de autentificación que el servidor intentará utilizar con el cliente:

<mod_auth_0k>./jsm/jsm.so</mod_auth_0k><mod_auth_digest>./jsm/jsm.so</mod_auth_digest><mod_auth_plain>./jsm/jsm.so</mod_auth_plain>

6)Dentro del service id = “c2s”, activamos el puerto a usar para SSL , especificamos una IP, y si queremos que el servicio sea público, la IP también debe serlo

<ssl port="5223">130.206.130.95</ssl>

6.1-Ejemplo de uso de SSL en Jabber

7)Configurar el path al archivo con las claves:

<ssl> <key ip='130.206.130.95'>/etc/jabber/key.pem</key></ssl>

8)Reiniciar el servidor

9)Activar el soporte SSL para los clientes

GRACIAS…

FIN DE LA EXPOSICIÓN