Mostrando entradas con la etiqueta SSL. Mostrar todas las entradas
Mostrando entradas con la etiqueta SSL. Mostrar todas las entradas

[Tutorial] Certificados digitales y su seguridad a la hora de navegar

13 septiembre 2011 Publicado por cLimbo 0 comentarios

Después del robo de los certificados digitales a DigiNotar y ver cómo se han comprometido los certificados de Mozilla, Google, Tor, WordPress o la mismísima CIA, el contexto es el adecuado a que dediquemos un momento a hablar de los certificados digitales, el SSL y su importancia para garantizar una navegación segura a los usuarios.

La navegación segura


Antes de entrar en materia, vamos a dedicar unos instantes a entender lo que significa una navegación segura. Normalmente, cuando navegamos por la red, encontramos sitios cuya url comienza por https, es decir, una navegación web en el que el protocolo de transporte que utilizamos es seguro, concretamente SSL/TLS y en el que se crea un canal cifrado para el intercambio de información entre el usuario y el servidor (normalmente información sensible o de índole personal) y, gracias a este cifrado, la comunicación no podría ser interceptada por alguien que aplicase un sniffer en nuestra red, por ejemplo.

Al cifrar el tráfico estamos garantizando nuestra privacidad puesto que todo el intercambio de información viaja a través de un canal seguro que hemos establecido con el servidor al que nos estamos conectando. De hecho, el cifrado no se aplica únicamente a la navegación web sino que también se aplica en otros servicios como la mensajería instantánea o el correo a través de POP o IMAP.

Si intentamos acceder a un sitio web seguro, se iniciará una negociación para fijar el algoritmo que se usará para cifrar la comunicación y se procederá al intercambio de claves públicas y autentificación basada en certificados digitales que, tras su validación, dará inicio a la comunicación cifrada.

Hay que tener en cuenta que se utiliza un cifrado asimétrico y, por tanto, se maneja una clave privada (que utiliza el usuario) y una pública (que se envía), de manera que la clave pública es capaz de descifrar, únicamente, los mensajes cifrados por la clave privada (sin que ésta sea revelada). Algo así como enviar una carta que puede ser abierta por cualquier persona pero cuyo membrete o firma asegura quién es el que la envía.

¿Qué es un certificado digital?


Un certificado digital o certificado de clave pública es un documento digital firmado por una autoridad fiable que garantiza que un sitio web es quien dice ser y que, por tanto, la clave pública que nos hará llegar le pertenece. La existencia de la firma en el certificado asegura, por parte de la autoridad de certificación que la firma, que la información de la identidad y la clave pública pertenecen al mismo usuario o entidad.

Nuestro navegador, cuando accede a un sitio web que está bajo SSL, recibe el certificado digital del sitio web y verifica que éste venga firmado por una autoridad digital conocida y, si no es el caso, el navegador reaccionará indicándonos que el sitio web puede no ser seguro y que, por tanto, debemos aceptar la excepción aceptar dicho certificado como válido.

La autoridad certificadora como notario digital


La autoridad certificadora es una pieza clave en todo este sistema de “confianza digital” puesto que actúa de notario dando fe de que un certificado pertenece a un sitio web y, por tanto, podemos confiar en él. El caso de DigiNotar ha trastocado este sistema puesto que, al sustraerle los certificados y estar considerada una autoridad de confianza, los internautas iraníes fueron víctimas de un gran engaño.

Todos los navegadores llevan cargados una amplia lista de autoridades certificadoras de confianza que, prácticamente, abarcan todas las páginas web existentes aunque, por ejemplo en España, la Fábrica Nacional de Moneda y Timbre (FNMT) sólo es incluida por Internet Explorer y las páginas de algunas Administraciones Públicas se marcan como inseguras en Firefox o Chrome.

La confianza de los usuarios en las autoridades certificadoras es la base del modelo pero, realmente, no existe ningún proceso que demuestre que una autoridad merece la confianza de los usuarios, más allá de ser reconocida por el navegador. Por tanto, si una autoridad de certificación, reconocida por nuestro navegador, nos indica que un sitio web es seguro, confiaremos en él.

¿Por qué usar una navegación segura?


[Tutorial] El protocolo HTTPS

06 septiembre 2011 Publicado por cLimbo 0 comentarios

Si asistes a una charla sobre seguridad en internet seguro que, más bien pronto que tarde, aparecerá una frase parecida a: asegúrate que, cuando entras a tu banco, al principio de la barra de dirección puedes ver las siglas https. Y es cierto, tenemos que echar un ojo, pero ¿por qué?

Muchas veces la explicación se reduce a decir que se establece una conexión segura, y no es falso, pero la verdad es que podremos entender con un poquito más de profundidad en qué consiste HTTPS, y no hace falta hacerlo con palabras complicadas, ni enrollarnos durante media hora.

¿Qué problemas soluciona HTTPS?



Muchas veces, para comprender porqué narices alguien se ha molestado en inventar algo complicado es mejor pensar para qué lo ha ideado. ¿Cuáles son los problemas que han motivado la aparición de este HTTPS? El principal problema es una falta de privacidad en nuestra navegación normal.

Normalmente, cuando navegamos por internet lo hacemos utilizando el protocolo HTTP, que simplemente establece unas directrices acerca de cómo se va a comunicar nuestro ordenador (cliente) con un servidor. Establece cómo se transfieren los datos, y en este caso, los datos se transfieren sin ninguna modificación, según los estás viendo ahora mismo.

Podemos imaginar que hay una tubería entre nuestro ordenador y el servidor por la que pasan los datos. Pero en esa tubería, alguien podría hacer un pequeño agujero por el que poder ver la información que viaja de un lado al otro, o incluso algo peor, modificar la información que tu envías. En ámbitos de seguridad esto se refiere como un ataque man-in-the-middle (Hombre en el medio, literalmente).

Esto no es un problema si alguien cotillea mientras visitas Genbeta, pero posiblemente sea un problema mientras estás consultando los movimientos de tu tarjeta de crédito. Además, si nuestro man-in-the-middle se hace pasar por tu entidad bancaria… ¿cómo podrías estar seguro de que te responde tu banco? ¿no te entran ganas de evitar esas intromisiones? Aquí aparece HTTPS.

Cómo funciona HTTPS




Ya que evitar cotillas en una comunicación es algo que se puede catalogar como muy difícil o imposible, la solución ha consistido en hacer que nuestro amigo mirón no pueda comprender lo que mira a través de ese agujerito que ha hecho en la tubería, y que tampoco pueda meter en la tubería mensajes haciéndose pasar por nuestro banco (servidor) o por nosotros mismos (cliente).

Al menos en este asunto de las conexiones seguras, la magia no existe. Antes de empezar esa conexión segura, se establece una comunicación entre el cliente y el servidor en la que se acuerdan los detalles necesarios. Esta fase se denomina acuerdo, o en inglés handshake (apretón de manos), y es donde todo se complica un poco.

El handshake entre cliente y servidor puede variar dependiendo de los modos de autenticación (verificación de la identidad del remitente de un mensaje) y cifrado que se vayan a utilizar durante la conexión segura. Suena difícil, pero los sistemas utilizados no difieren mucho de los utilizados durante la II Guerra como por ejemplo el famoso código Enigma.

Imaginamos que somos capaces de crear dos códigos (o claves) especiales. De forma que un mensaje se puede cifrar con la primera y descifrar con la segunda, y viceversa. Así, un mensaje cifrado con la primera, ÚNICAMENTE podrá ser descifrado con la segunda, y un mensaje cifrado con la segunda, sólo podrá ser descrifrado con la primera.

Ahora viene el truco. La primera de ellas la haces pública, se la das a todos tus amigos, sin problema. Pero la segunda es secreta, te la guardas como tu mayor tesoro. Con este pequeño truco podemos hacer dos cosas imprescindibles dentro del protocolo HTTPS:

  • Verificar nuestra identidad: Si un mensaje (o parte) lo ciframos con nuestro código secreto, cualquier persona será capaz de leerlo, pero nadie más habrá sido capaz de crearlo (necesitarían nuestra clave ultra secreta). Así es como se firma cuando no puedes utilizar un boli.
  • Evitar mirones: Si me queréis enviar un mensaje, utilizáis mi código público para cifrarlo y lo colgáis por ejemplo en un tablón de anuncios (o en un comentario). De esta forma sólo quien tenga mi código secreto será capaz de leerlo, es decir, sólo yo podré saber lo que significa. De hecho, ni siquiera vosotros seríais capaces de leerlo una vez lo cifrárais.

Etiquetas: , , ,

Hotmail implementa seguridad SSL para toda la sesión

07 noviembre 2010 Publicado por cLimbo 0 comentarios

Hotmail, ha implementado el uso del protocolo seguro SSL, que ahora podrá estar activo durante toda la sesión en que usemos Hotmail (y Windows Live en general), y no solo durante el momento de ingresar correo y contraseña, que es lo que ocurría antes.

Para poder hacer uso de esta seguridad mejorada simplemente tenemos que ir a https://www.hotmail.com (recordando poner una “s” después del “http”). Una vez ahí se nos preguntará si queremos usar la seguridad SSL sólo esta vez, o siempre. Si elegimos esta última opción, se nos redirgirá a al sitio HTTPS cada vez que iniciemos sesión en Hotmail, Calendario o Contactos. Eso sí, se nos advierte que de elegir que el SSL para toda la sesión se active automáticamente, tendremos problemas usando Hotmail con clientes de correo, como Outlook Connector, Windows Live Mail, o los clientes de Nokia y Windows Mobile.

En resumen, si solemos acceder a Hotmail a través de clientes o smartphones, no nos conviene elegir que la seguridad SSL se active automáticamente, sino que sólo dejarla para cuando ingresemos a Hotmail vía web, usando un ordenador público (basta con escribir “https” en vez de “http” al principio de la dirección). En cambio, si no usamos clientes, es recomendable pedir que el SSL esté siempre activado, para así evitar que se nos olvide acceder vía HTTPS.

Enlace | Opciones de SSL en Hotmail




Vía | Genbeta

Google ya puede usarse mediante cifrado SSL (aún BETA)

22 mayo 2010 Publicado por cLimbo 0 comentarios
Los usuarios nos preocupamos cada vez más por la seguridad y privacidad de los datos que enviamos y recibimos a diario, por ello Google quiere reforzar su compromiso en esté sentido y está comenzado a ofrecer la posibilidad de usar cifrado SSL en su buscador.

Para probar el buscador de Google con cifrado SSL no tenemos más que poner https://www.google.com, pero ojo que en algunos casos al intentar acceder nos redirecciona a la versión normal del buscador, seguramente tendremos que esperar para que se vaya habilitando esta opción para todos.

Hace ya tiempo que está opción esta disponible en otros servicios de Google como Gmail, que comenzó a tenerla de forma opcional y ha pasado a usarse por defecto. Por el momento el cifrado SSL no se encuentra activado por defecto en el buscador por que requiere un mayor tiempo de carga al tener que cifrar los datos antes de enviarlos, además de no mostrar algunos resultados, como sería la búsqueda de imágenes o mapas.

Algunos usuarios que han probado ya el buscador con esta nueva opción dicen no notar demasiada diferencia en la búsqueda de resultados, pero ya sabemos que Google siempre quiere ofrecer los contenidos de sus páginas los más rápido posible, sobre todo en el buscador, que con el cifrado SSL se encuentra por el momento en fase beta y como vemos en la imagen superior añade un distintivo del cifrado para que el usuario pueda distinguir claramente en que versión del buscador se encuentra en cada momento.



Vía | ALT1040

Etiquetas: , , , ,

Instalación y configuración de un servidor web, Apache2 + SSL

21 noviembre 2008 Publicado por David Rodriguez 1 comentarios
Apache es el más comun de los servidores web en entorno Linux. Se acostumbra a usar junto con el servidor de base de datos MySQL i lenguajes de script de servidor como PHP, Perl, o Phyton. Esta configuración se llama LAMP ( Linux, Apache, Mysql y Php/Perl/Phyton ).

Instalación

Executaremos en el terminal la siguiente instrucción:

# sudo apt-get install apache2

Un a vez instalado el servicio comprovar que funciona accediendo a la url.

# http://localhost

Configuración

Apache se configura poniendo directivas en texto plano en los ficheros de configuración.
El principal fichero de configuración se llama apache2.conf y se encuentra en la ruta /etc/apache2/apache2.conf. Todos los cambios que se hacen sobre el fichero de configuración solo tendrán efecto despues de iniciar o reiniciar el servicio.

Configuraciones básicas:
· Hosts Virtuales: Se pueden crear diferentes hosts virtuales en el caso que nuestra máquina diera el servicio de servidor a diferentes usuarios. Esto se usa usando la directiva de VirtualHost.
Para modificar el host virtual por defecto tendremos que editar el fichero /etc/apache2/sites-available/default i configurar algunas de las directivas que se describen acountinuación:
· ServerAdmin: E-mail del administrador donde se envían los posibles errores o problemas del servidor.
· Listen: Especifica el puerto, i opcionalmente la dirección IP, a traves del qual apache2 tiene que escuchar las peticiones.
· DocumentRoot: Especifica el sitio el cual apache2 tiene que buscar los ficheros del sitio web.
· DirectoryIndex: Es la página por defecto proporcionada por el servidor cuando un usuario busque un directorio
· ErrorDocument: Nos permite especificar un fichero para mostrar en el caso que se produzcan errores.
· CustomLog: En principio, apache2 escribre el log en /var/log/apache2.log. Se puede cambiar usando esta directiva en la configuración de hosts virtuales.

Crear un servidor web seguro. (https)

El módulo libapache-mod-ssl se añade en apache2 server la capacidad de encriptar las comunicaciones usando el protocolo https.

Instalar el módulo con este código:

# apt-get instal libapache-mod-ssl

y para activarlos usar:

# sudo a2enmod ssl

Para crear un servidor seguro será necesario crear una clave con un criptosistema asimétrico. Nosotros crearemos un certificado firmado por nosotros mismos, este tipo de certificados no son aceptados inmediatamente por el navegador, sino que pide permiso al usuario para continuar la carga de la página. Los otros tipos de vertificados son los que asignan las entidades certificadoras i són los verdaderamente válidos.

Generación de las claves: generaremos las claves i las almacenaremos en el fichero server.key. En la generación nos pide una password, no la olvides!!!

# openssl genrsa -des3 -out server.key 1024

Creación del archivo de petición de signatura: lo que haremos será crear un archivo que contiene nuestras llaves con el formato adecuado por el cual estes signadas y se puedan crear un certificado. Después tenemos la posibilidad que esta petición nos la firme una entidad certificadora o nosotros mismos. El archivo de petición lo llamaremos server.csr.

# openssl req -new -key server.key -out server.csr

Creación de un certificado autoasignado: El certificado se almacena en el archivo sercer.crt.

# openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt


Instalación del certificado: podemos instalar el certificado y las claves usando los siguientes comandos.

# sudo cp server.crt /etc/ssl/certs/
# sudo cp server.key /etc/ssl/private


Ahora tendremos que añadir las siguientes lineas a este archivo /etc/apache2/sites-available/default dentro de la sección de VirtualHost.

SSLEngine on
SSLOptions +FakeBasicAuth +ExportCertData +StrictRequire
SSLCertificateFile /etc/ssl/certs/server.crt
SSLCertificateKeyFile /etc/ssl/private/server.key


Creador David Martín (esedark)