jueves, 29 de mayo de 2008

HOW-TO OpenSSL

Comenzaremos instalando una entidad certificadora:

1.Se instala openssl

#apt-get install openssl

2.Crear los siguientes directorios dentro de el directorio /etc/ssl/
certificadora/
certificadora/certs
certificadora/private
certificadora/newcerts
certificadora/crl
*”certificadora/” es un nombre de directorio que puede variar según el criterio de quien configure la entidad en contraste los subdirectorios de la misma deben tener los nombres señalados en este how-to.

#mkdir -p /etc/ssl/certificadora/certs
#cd etc/ssl/certificadora/
#mkdir private newcerts crl

3.luego de esto ingresamos al archivo de configuracion del openssl /etc/ssl/openssl.cnf

#pico /etc/ssl/openssl.cnf

4.en el archivo (/etc/ssl/openssl.cnf) encontraremos las siguientes lineas (los numeros en negrilla son el numero de cada linea en el archivo):

37 dir = /etc/ssl/certificadora
38 certs = /etc/ssl/certificadora/certs
39 crl_dir = /etc/ssl/certificadora/crl
40 database = /etc/ssl/certificadora/index.txt
43 new_certs_dir = /etc/ssl/certificadora/newcerts
45 certificate = /etc/ssl/certificadora/pub.crt
46 serial = /etc/ssl/certificadora/serial
50 private_key = /etc/ssl/certificadora/private/priv.key
68 default_days = 365 # dias en que caduca el certificado

5.Por ultimo generamos un certificado para nuestro CA (entidad certificadora).

#openssl req -nodes -new -keyout midominio.key -out midominio.csr

Luego lo firmamos

#openssl ca -out midominio.crt -in midominio.csr


Con esto tenemos lista la entidad certificadora y estamos listos para comenzar a firmar certificados.

Generar Certificados De Cliente:

El certificado se crea desde el equipo cliente de la siguiente manera

$openssl req -x509 -newkey rsa:2048 -keyout cakey.pem -days
365 -out cacert.pem

* Con este comando ademas de generar el certificado tambien generamos las llaves publica y privada del servidor, si ya tienes tus llaves omite la parte -newkey rsa:2048 de esta manera solamente generara el certificado.

solo falta enviarlo a la entidad certificadora nosotros para hacer esto utilizamos ssh:

$scp cacert.pem root@[aqui la ip de el CA]:/tmp

para hacer esto se necesita tener pasword de root, en caso de que no seas el adminisrtador de la entidad certificadora y no tengas contraseña de root por obvias razones puedes pasar tu certificado con otro usuario para esto le dises al administrador de el CA te cree un usuario y lo copias de la siguiente manera

ejemplo

$scp cacert.pem miuser@[aqui la ip de el CA]:/home/miuser

ya solo falta que la CA (entidad certificadora) firme el certificado (valga la redundancia) y nos devuelva el certificado ya firmado.


Firma De Certificados Por La Entidad Certificadora

Despues de generar los certificados como cliente es necesario que una entidad certificadora los firme.
El certificado que vamos a firmar es el mismo que generamos en el ejemplo anterior cacert.pem.

El comando para firmar es facil:

#openssl ca -out certfirmado.crt -in cacert.pem

La interpretacion tambien es sencilla, simplemente le dijimos a la entidad certificadora que tome el certificado cacert.pem, lo firme y lo exporte a un certificado nuevo en este caso llamado certfirmado.pem el cual seria el certificado ya firmado y el que habria que instalar en nuestro sitio web.



Integrar OpenSSL Con Un Servidor Web

Ahora solo queda integrar openSSL con nuestro servidor web, para la prueba utilizaremos apache 2.6 (obviaremos la instalacion y configuracion del apache asi que daremos por hecho que ya tienes configurado tu servidor web).

Teniendo en cuenta que ya tu servidor web esta corriendo y puedes acceder a el normalmente procederemos a agregarle la seguridad SSL, para esto agregamos las siguientes lineas en el archivo /etc/apache2/sites-available/default:

NameVirtualHost *:443
ServerAdmin sgarcia@misena.edu.co
DocumentRoot /var/www/
SSLEngine on
SSLCertificateFile /etc/ssl/certfirmado.crt [ruta del certificado firmado]
SSLCertificateKeyFile /etc/ssl/cakey.pem [ruta de la llave privada creada] anteriormente
ServerName mypage.mydomain.com
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all

Ahora debemos cargar los modulos de SSL en Apache

#a2enmod

Lo que sigue ahora es iniciar el Apache con SSL

#/etc/init.d/apache2 force-reload (Con este comando forzamos a Apache a cargar los modulos de SSL)

Ahora podemos proceder a probar si aun tenemos acceso normalmente a nuestro sitio web y notaran que se puede acceder tanto con HTTP como con HTTPS, pero al ingresar con este nos saca un aviso que nos dice que la pagina web solicitada tiene un certificado firmado por una entidad desconocida y pide autorizacion del usuario para ingresar.
Para que esto no suceda mas debemos instalar el certificado de la entidad certificadora en nuestro navegador.
En Mozilla Firefox se hace de la siguiente manera:
Editar
Preferencias
Avanzado
Cifrado
Ver certificados
Autoridades
Importar
Despues de esto podremos ingresar normalmente a la pagina con HTTPS.

© 2008, Stiven Garcia, Andres Uran, Andres Ruiz, Ferney Martinez
Este how-to Esta licenciado bajo los terminos de creative commons


martes, 27 de mayo de 2008

SafeNet lanza una aplicación para encriptar las comunicaciones móviles


SafeNet lanza un cliente VPN seguro para dispositivos móviles y calidad para
operadores.
SoftRemote Mobile asegura las aplicaciones empresariales críticas y permite un ‘roaming’ fluido mediante MOBIKE

3GSM World Congress, BARCELONA, 15 de febrero de 2007 – SafeNet, (NASDAQ: SFNT), marcando el estándar de seguridad de la información, ha anunciado hoy la disponibilidad de SofRemote Mobile: un cliente VPN seguro para que los operadores de telecomunicaciones puedan asegurar las aplicaciones inalámbricas en dispositivos móviles. SoftRemote Mobile es una aplicación cliente VPN configurable y lista para ser utilizada, que permite a los operadores y a los fabricantes de dispositivos móviles ofrecer a sus clientes corporativos servicios VPN seguros, así como funcionalidades de roaming MOBIKE. Su probada interoperatividad con el VPN Consortium también convierte el SoftRemote Mobile en la ideal solución VPN móvil para clientes empresariales que quieran ofrecer a sus ejecutivos y empleados móviles un acceso seguro a aplicaciones y datos empresariales críticos.

Basado en la popular y fiable versión 11.0 de la familia de productos de SoftRemote, SoftRemote Mobile protege las comunicaciones críticas de las empresas, proporcionando una gran seguridad a distintas aplicaciones móviles, como el correo electrónico, la Voz IP y el acceso remoto a las aplicaciones empresariales. Al soportar MOBIKE, permite que los usuarios móviles puedan pasar fácilmente de una red IP -como las redes de datos GPRS, EDGE o 3G-, a otra red tipo WLAN sin perder la conexión VPN segura. Estas capacidades de roaming son un requerimiento esencial para la convergencia entre entornos móviles y fijos, como UMA e IMS. SoftRemote Mobile es compatible con las plataformas móviles más populares, incluyendo Windows Mobile 5 y el inminente lanzamiento de Windows Mobile, cuyo nombre en clave se conoce como Crossbow.

“La evolución de las redes IP permite que los operadores móviles ofrezcan una solución VPN segura a sus usuarios corporativos”, dice Bill Anderson, vicepresidente de productos de cifrado de SafeNet: “Somos los primeros en el mercado con un solución VPN IPSec lista para que los operadores puedan ofrecer servicios de VPN móvil segura y con un alto valor añadido”.

Demostración de productos en el 3GSM
La familia de productos SoftRemote de SafeNet constituye el estándar de facto en materia de software cliente para VPN, con millones de usuarios en todo el mundo. El stand de SafeNet (2G02) en el 3GSM de Barcelona será el escenario elegido por la compañía para realizar sus demostraciones del SoftRemote Mobile. Las demostraciones permitirán experimentar en primera persona las funcionalidades de seguridad únicas en distintos escenarios reales, como el establecimiento de una llamada VoIP segura, la itinerancia entre de redes inalámbricas LAN con MOBIKE, y el envío de emails confidenciales a través de una conexión VPN segura.

Características de la seguridad móvil
SoftRemote Mobile proporciona la más robusta autentificación, confidencialidad e integridad de datos VPN cliente-cliente y cliente-pasarela, valiéndose de los últimos estándares en autentificación y cifrado IPSec. Totalmente operativo con cualquier pasarela IPSec, este pequeño hito del cliente VPN móvil se caracteriza por disponer de IKEv2 y MOBIKE, la última incorporación en materia de multihoming y movilidad al protocolo IKE especificado por IETF. Otros protocolos de seguridad que soporta son: AES, DES, 3DES, MD5 Y SHA. El SoftRemote Mobile también soporta infraestructura por clave pública para una mayor protección, incluyendo certificados digitales líderes como los de VeriSign, Entrust, Microsoft y Netscape.

Potente gestor de políticas
SoftRemote Mobile permite a los administradores configurar fácilmente las políticas de seguridad y gestionar los certificados. Los intuitivos menús de configuración permiten a los administradores distribuir masivamente las políticas de configuración de los clientes VPN sin involucrar a ningún usuario. SoftRemote Mobile también incluye poderosas funcionalidades de administración que hacen más fácil la configuración de la política de accesos y diagnostico de conexiones, incluyendo la gestión de certificados, edición de políticas de seguridad, seguimiento y monitorización de conexiones, así como la visualización de los accesos.

Dispositivos móviles para OEM, operadores y usuarios empresariales
La licencia de uso de SoftRemote Mobile se puede obtener a través de los fabricantes de móviles y operadores, que proporcionan a sus clientes un móvil con seguridad VPN y fácilmente configurable. SoftRemote Mobile también está disponible como aplicación cliente VPN, lista para que los clientes corporativos la puedan usar. Los actuales clientes de SoftRemote se pueden beneficiar de las ofertas especiales de actualización del servicio.

Sistemas de seguridad integrados para OEMs
SafeNet es proveedor de sistemas de seguridad que permite a los desarrolladores OEMs integrar robustos sistemas de seguridad en los productos de red, reduciendo los costes y el tiempo necesario para que el producto llegue al mercado. Los premiados sistemas de seguridad de SafeNet son implementados por las empresas líderes en telecomunicaciones, redes y por los vendedores de semiconductores, que confían en las mejores soluciones de seguridad para la siguiente generación de productos de red. Algunos de los clientes OEM de SafeNet son: Nokia, Ericsson, NEC, AMCC, AMD, Azaire Networks, Cisco, Hitachi, HP, Juniper Networks, PMC-Sierra, Lucent Technologies, Nortel, Siemens, Samsung, y Texas Instruments.

Enlaces
SoftRemote Mobile: http://www.safenet-inc.com/SoftRemote

miércoles, 21 de mayo de 2008

IPsec

IPsec es una extensión al protocolo IP que proporciona seguridad a IP y a los protocolos de capas superiores. Fue desarrollado para el nuevo estándar IPv6 y después fue portado a IPv4.

IPsec emplea dos protocolos diferentes - AH y ESP - para asegurarla autenticación, integridad y confidencialidad de la comunicación.
Puede proteger el datagrama IP completo o sólo los protocolos de capas superiores.
Estos modos se denominan, respectivamente, módo túnel y modo transporte.
En modo túnel el datagrama IP se encapsula completamente dentro de un nuevo datagrama IP que emplea el protocolo IPsec.
En modo transporte IPsec sólo maneja la carga del datagrama IP, insertándose la cabecera IPsec entre la cabecera IP y la cabecera del protocolo de capas suepriores.


Para proteger la integridad de los datagramas IP, los protocolos IPsec emplean códigos de autenticación de mensaje basados en resúmenes (HMAC - Hash Message Authentication Codes). Para el cálculo de estos HMAC los protocolos HMAC emplean algoritmos de resumen como MD5 y SHA para calcular un resumen basado en una clave secreta y en los contenidos del datagrama IP. El HMAC se incluye en la cabecera del protocolo IPsec y el receptor del paquete puede comprobar el HMAC si tiene acceso a la clave secreta.

Para proteger la confidencialidad de lo datagramas IP, los protocolos IPsec emplean algoritmos estándar de cifrado simétrico. El estándar IPsec exige la implementación de NULL y DES. En la actualidad se suelen emplear algoritmos más fuertes: 3DES, AES y Blowfish.

Para protegerse contra ataques por denegación de servicio, los protocolos IPsec emplean ventanas deslizantes. Cada paquete recibe un número de secuencia y sólo se acepta su recepción si el número de paquete se encuentra dentro de la ventana o es posterior. Los paquetes anteriores son descartados inmediatamente. Esta es una medida de protección eficaz contra ataques por repetición de mensajes en los que el atacante almacena los paquetes originales y los reproduce posteriormente.

Para que los participantes de una comunicación puedan encapsular y desencapsular los paquetes IPsec, se necesitan mecanismos para almacenar las claves secretas, algoritmos y direcciones IP involucradas en la comunicación. Todos estos parámetros se almacenan en asociaciones de seguridad (SA - Security Associations). Las asociaciones de seguridad, a su vez, se almacenan en bases de datos de asociaciones de seguridad (SAD - Security Asocciation Databases).


Las asociaciones de seguridad sólo especifican cómo se supone que IPsec protegerá el tráfico. Para definir qué tráfico proteger, y cuándo hacerlo, se necesita información adicional. Esta información se almacena en la política de seguridad (SP - Security Policy), que a su vez se almacena en la base de datos de políticas de seguridad (SPD - Security Policy Database).

Una política de seguridad suele especificar los siguientes parámetros:

  • Direcciones de origen y destino de los paquetes por proteger. En modo transportes estas serán las mismas direcciones que en la SA. En modo túnel pueden ser distintas.

  • Protocolos y puertos a proteger. Algunas implementaciones no permiten la definición de protocolos específicos a proteger. En este caso, se protege todo el tráfico entre las direcciones IP indicadas.

  • La asociación de seguridad a emplear para proteger los paquetes.

La configuración manual de la asociación de seguridad es proclive a errores, y no es muy segura. Las claves secretas y algoritmos de cifrado deben compartirse entre todos los participantes de la VPN. Uno de los problemas críticos a los que se enfrenta el administrador de sistemas es el intercambio de claves: ¿cómo intercambiar claves simétricas cuando aún no se ha establecido ningún tipo de cifrado?

Para resolver este problema se desarrolló el protocolo de intercambio de claves por Internet (IKE - Internet Key Exchange Protocol). Este protocolo autentica a los participantes en una primera fase. En una segunda fase se negocian las asociaciones de seguridad y se escogen las claves secretas simétricas a través de un intercambio de claves Diffie Hellmann. El protocolo IKE se ocupa incluso de renovar periódicamente las claves para asegurar su confidencialidad.

AH - Cabecera de autenticación

El protocolo AH protege la integridad del datagrama IP. Para conseguirlo, el protocolo AH calcula una HMAC basada en la clave secreta, el contenido del paquete y las partes inmutables de la cabecera IP (como son las direcciones IP). Tras esto, añade la cabecera AH al paquete.

ESP - Carga de Seguridad Encapsulada

El protocolo ESP puede asegurar la integridad del paquete empleando una HMAC y la confidencialidad empleando cifrado. La cabecera ESP se genera y añade al paquete tras cifrarlo y calcular su HMAC.

El protocolo IKE

El protocolo IKE resuelve el problema más importante del establecimiento de comunicaciones seguras: la autenticación de los participantes y el intercambio de claves simétricas. Tras ello, crea las asociaciones de seguridad y rellena la SAD. El protocolo IKE suele implementarse a través de servidores de espacio de usuario, y no suele implementarse en el sistema operativo. El protocolo IKE emplea el puerto 500 UDP para su comunicación.

El protocolo IKE funciona en dos fases. La primera fase establece un ISAKMP SA (Internet Security Association Key Management Security Association - Asociación de seguridad del protocolo de gestión de claves de asociaciones de seguridad en Internet). En la segunda fase, el ISAKMP SA se emplea para negociar y establecer las SAs de IPsec.

La autenticación de los participantes en la primera fase suele basarse en claves compartidas con anterioridad (PSK - Pre-shared keys), claves RSA y certificados X.509 (racoon puede realizar esta autenticación incluso mediante Kerberos).

La primera fase suele soportar dos modos distintos: modo principal y modo agresivo. Ambos modos autentican al participante en la comunicación y establecen un ISAKMP SA, pero el modo agresivo sólo usa la mitad de mensajes para alcanzar su objetivo. Esto, sin embargo, tiene sus desventajas, ya que el modo agresivo no soporta la protección de identidades y, por lo tanto, es susceptible a un ataque man-in-the-middle (por escucha y repetición de mensajes en un nodo intermedio) si se emplea junto a claves compartidas con anterioridad (PSK). Pero sin embargo este es el único objetivo del modo agresivo, ya que los mecanismos internos del modo principal no permiten el uso de distintas claves compartidas con anterioridad con participantes desconocidos. El modo agresivo no permite la protección de identidades y transmite la identidad del cliente en claro. Por lo tanto, los participantes de la comunicación se conocen antes de que la autenticación se lleve a cabo, y se pueden emplear distintas claves pre-compartidas con distintos comunicantes.

En la segunda fase, el protocolo IKE intercambia propuestas de asociaciones de seguridad y negocia asociaciones de seguridad basándose en la ISAKMP SA. La ISAKMP SA proporciona autenticación para protegerse de ataques man-in-the-middle. Esta segunda fase emplea el modo rápido.

Normalmente, dos participants de la comunicación sólo negocian una ISAKMP SA, que se emplea para negociar varias (al menos dos) IPsec SAs unidireccionales.



OpenSSL ya no es tan seguro...

Generalmente las direcciones de páginas Web que utilizan conexiones SSL, comienzan con ‘https:’ en lugar del estándar ‘http:’. Cuando visitamos un sitio protegido por SSL, un pequeño candado suele ser mostrado en la parte inferior del navegador.

Investigadores suizos, han demostrado sin embargo, que es posible descubrir en menos de una hora la contraseña utilizada por cualquier visitante al conectarse a un sitio Web de venta comercial o cuenta de correo electrónico.

Esta vulnerabilidad en el software OpenSSL, podría haber permanecido mucho tiempo sin ser descubierta. Sin embargo, una vez conocida, es muy fácil implementar algún exploit que se aproveche de ella.

"Somos los primeros en haber descubierto esta vulnerabilidad en el protocolo SSL, el procedimiento de seguridad utilizado más habitualmente para las transacciones a través de Internet", afirmó en un comunicado el director del laboratorio de seguridad y criptografía de la Escuela Politécnica Federal de Lausana (EPFL), Serge Vaudenay.

El OpenSSL group, ya tiene disponible una nueva versión del software (la 0.9.7a), la cuál soluciona esta falla.

"Concretamente hemos desarrollado un programa que nos permite interceptar la contraseña de una persona utilizando un programa de comunicación segura por SSL", explicó Vaudenay. Los científicos se conectaron al programa haciéndose pasar por el usuario. Así, pueden leer los correos electrónicos o realizar transacciones financieras en su nombre.

Sin embargo, también aclaran que esta falla no se aplica a transacciones con tarjetas de crédito, ya que los bancos y sitios que manejan comercio electrónico, suelen utilizar un tipo diferente de tecnología basada en protocolos SSL, afirman los investigadores que descubrieron la falla.

Se utilizan varios tipos de algoritmos en la tecnología SSL para manejar información codificada. El tipo de protocolo vulnerable, es el utilizado generalmente en opciones de Webmail (correo electrónico vía Web, al estilo de Hotmail por ejemplo).

La solución pasa por la actualización a la versión OpenSSL 0.9.7a.


SSL (Secure Sockets Layer)

https://www.

El protocolo SSL permite la autenticación de servidores, la codificación de datos y la integridad de los mensajes.

Con SSL tanto en el cliente como en el servidor, sus comunicaciones en Internet serán transmitidas en formato codificado. De esta manera, puede confiar en que la información que envíe llegará de manera privada y no adulterada al servidor que usted especifique.

Los servidores seguros suministran la autenticación del servidor empleando certificados digitales firmados emitidos por organizaciones llamadas "Autoridades del certificado".

Un certificado digital verifica la conexión entre la clave de un servidor público y la identificación del servidor.

Las verificaciones criptográficas, mediante firmas digitales, garantizan que la información dentro del certificado sea de confianza.


OpenSSL( http://www.openssl.org/ )

Es un proyecto de software desarrollado por los miembros de la comunidad Open Source para libre descarga y está basado en SSLeay desarrollado por Eric Young y Tim Hudson.

Consiste en un robusto paquete de herramientas de administración y librerías relacionadas con la criptografía, que suministran funciones criptográficas a otros paquetes como
OpenSSH y navegadores web (para acceso seguro a sitios HTTPS). Estas herramientas ayudan al sistema a implementar el Secure Sockets Layer (SSL), así como otros protocolos relacionados con la seguridad , como el Transport Layer Security (TLS).

Este paquete de software es importante para cualquiera que esté planeando usar cierto nivel de seguridad en su máquina con un sistema operativo Libre basado en
GNU/Linux. OpenSSL también nos permite crear certificados digitales que podremos aplicar a nuestro servidor, por ejemplo Apache.




SSH (Secure SHell)

SSH es el nombre de un protocolo y del programa que lo implementa.

La primera versión del protocolo y el programa fueron creados por el sueco Tatu Ylönen y era libre; luego su licencia cambió, apareciendo la empresa "SSH Communications Security"; esta lo ofrece gratuitamente para uso doméstico y académico, pero exige el pago a empresas.

Al igual que el telnet (que dejó de usarse), se emplea para acceder a máquinas a través de una red.

La principal ventaja con respecto a telnet, es que la información viaja cifrada y no es posible descubrir el nombre de usuario ni contraseña. Permite conectarse tipo terminal (sólo texto, sin gráficos) al otro ordenador.

OpenSSH (Open Secure Shell)



OpenSSH es una versión LIBRE del paquete de herramientas de comunicación segura del protocolo SSH/SecSH para redes, una solución de seguridad que está ganando la confianza de un número cada vez mayor de usuarios de Internet. Muchos usuarios de telnet, rlogin, ftp y otros programas parecidos, no se dan cuenta que sus contraseñas se están transmitiendo sin cifrar a través de la red. OpenSSH cifra todo el tráfico (incluidas las contraseñas) para eliminar de un modo efectivo las «escuchas», los secuestros de las conexiones y otros ataques a nivel de red. Además, OpenSSH ofrece amplias posiblidades para la creación de túneles seguros, aparte de una variedad de métodos de autenticación.

En el sistema operativo OpenBSD se encuentran integrados los programas ssh, que substituye a rlogin y telnet, scp, que substituye a rcp, y sftp que substituye a ftp. También están incluidos sshd, que es el programa servidor del paquete, y otras utilidades básicas como ssh-add, ssh-agent, ssh-keysign, ssh-keyscan, ssh-keygen y sftp-server. OpenSSH dispone de soporte para las versiones 1.3, 1.5, y 2.0 del protocolo SSH.

OpenSSH es un proyecto desarrollado principalmente por el Proyecto OpenBSD, y su primera integración en un sistema operativo fue en OpenBSD 2.6. Estos programas se desarrollan fuera de los EE.UU., usando código desarrollado en unos 10 países distintos. Este código es de libre utilización bajo la licencia BSD.