01 – Let’s Encrypt

Bienvenidos al primer episodio de deployando.me, soy Rodolfo Pilas y estoy grabando el 24 de octubre de 2016.

Hoy, para este primer episodio quiero conversar de la oportunidad que tenemos para mejorar la seguridad de nuestros sitios web y servicios en internet.

Me refiero a Let’s Encrypt que podemos traducir como “vamos a cifrar”

Let’s Encrypt en términos sencillos es una nueva autoridad de certificación para certificados SSL/TLS. Con Let’s Encrypt podemos crear y hacer firmar certificados para establecer relaciones de confianza con nuestros servicios.

Por supuesto, que nosotros ya sabemos que los certificados digitales se utilizan para que los programas de nuestros clientes (ya sea programas de correo, de navegación web u otro) se conecten con nuestros servicios y puedan reconocernos inequívocamente como los prestadores de dicho servicio; y además, negociar para establecer una conexión cifrada para el intercambio de los datos.

Hoy día hay muchas Autoridades de Certificación y cuando implementamos un servicio, solemos valorar si conviene o no contratar la firma de certificados, pues es un servicio que tiene costo anual.

Entonces ¿qué solemos hacer?

Algunas veces no hacemos nada y dejamos nuestros servicios sin SSL/TLS, confiando en que nadie se va a hacer pasar por nosotros y que los datos no le interesan a nadie. Otras veces, configuramos  certificados auto-firmados que requieren una confirmación manual  de cada cliente, generalmente luego de mensajes de advertencia intimidades.

Ahora aparece Let’s Encrypt como autoridad de certificación.

le-logo-wide
Su sitio web es https://letsencrypt.org/

Y como ellos mismos se definen son una entidad de certificación abierta, automatizada y gratis para el beneficio publico.

Más concreto, un servicio que provee un grupo llamado “Internet Security Research Group que es una organización sin fines de lucro y que recibe esponsorización entidades como la Fundación Mozilla, el proveedor de contenido Akamai, la conocida Cisco, la Electronic Frontier Foundation, el proveedor de servicios de Internet OVH y el navegador Google Chrome entre otros muchos que se pueden ver en el sitio.

Entonces, en resumen Let’s Encrypt le da a la gente certificados digitales firmados para poder establecer servicios SSL/TLS en forma gratuita.

El objetivo de Let’s Encrypt es ayudar a aumentar la privacidad de en Internet.

Según publican en la web, Let’s Encrypt está basada en seis principios:

El primero es la gratuidad: Cualquiera que tenga un nombre de dominio puede utilizar Let’s Encrypt para obtener certificados digitales a costo cero.

El segundo la automatización: Todo el sistema de certificados Let’s Encrypt es y debe ser automatizado, principalmente porque los certificados que emite tienen una duración de tan solo 60 días y hay planes de que sean menos días, por lo que todo el proceso de instalación y renovación debe ser automático.

Tercero, la seguridad: Let’s Encrypt es una plataforma para mejorar las buenas prácticas en seguridad.

Cuarto, la transparencia: Todos los certificados emitidos y revocados están publicados en registros que pueden ser consultados e inspeccionados por cualquiera.

Quinto, el ser abierto, es decir que, la emisión y renovación automática de certificados está publicada como un estándar abierto que otros pueden adoptar. De hecho todos el software a utilizar es libre y están los fuentes en repositorios Github.

Y sexto y último pilar es la cooperación, de la misma forma que los protocolos de Internet. Let’s Encrypt es un esfuerzo grupal para el beneficio de la comunidad y está por encima del control de cualquier organización particular.

Entonces ¿cómo podemos usar Let’s Encrypt? para nuestros servicios

Se requiere primeramente tener un nombre de dominio de internet que apunte al servicio web.

Seguidamente necesitamos instalar de software de registro y automatización.

En este punto suelo utilizar *CERTBOT* cuyo sitio web es https://certbot.eff.org/

certbot-og

Certbot está desarrollado por la Electronic Frontier Foundation y que permite todo la automatización de certificados Let’s Encrypt.

El sitio web de CERTBOT ayuda mucho en el procedimiento de instalación del software, la obtención del certificado y la automatización para su posterior renovación.

Además Certbot está como paquete para varias distribuciones, pero si no, el sitio te guiará para que puedas tener tus certificados funcionando.

Por último, una vez que Ustedes tengan sus sitios con SSL/TLS es importante realizarles un test para ver si tienen todas las configuraciones recomendadas.  Es sabido que SSL ha tenido a lo largo del tiempo problemas y que algunas sus configuraciones están desaconsejadas, por lo que se vuelve mandatorio que estemos seguro de nuestra configuración.

Para realizar los test suelo utilizar el proyecto SSL Server Test de Qualys SSL Labs, del cual pondré el enlace en el sitio web del podcast:

https://www.ssllabs.com/ssltest/

lets_encrypt_ssllabsEntonces, Let’s Encrypt nos cambia la forma que tenemos para instalar un sitio web. Ahora ya no necesitamos considerar si ponemos seguridad en nuestros sitios.   Ahora instalar certificados y habilitar servicios seguros puede ser parte de nuestro proceso de instalación estándar.

Soy Rodolfo Pilas, en twitter me ubican por @pilasguru y les dejo un saludo a todos, confiando en que este podcast les haya aportado para mejorar y, como siempre, espero sus inquietudes y sugerencias comentando en deployando.me

  • Excelente el podcast!

    Una buena alternativa a letsencrypt es Amazon Certificate Manager, que más o menos es igual pero más fácil de manejar ya que ellos se encargan de todo, lo que tiene es que necesita que estes usando Amazon Route53 para el manejo de DNS del dominio, pero cuando haces eso te permite tener SSL sin hacer prácticamente nada y apuntar tu dominio a un elastic load balancer, lo que es recontra práctico. No digo que sea mejor, pero es una buena alternativa para quienes ya estamos en el stack de Amazon.

    • Muy pertinente tu comentario, Pote.

      Evidentemente Amazon Certificate Manager es el camino cuando, como tu bien dices, estás en el stack de Amazon. Usar Let’s Encrypt en Amazon requerirá de gestiones y complicaciones adicionales.

  • Artículo en inglés sobre el uso de Let’s Encrypt

    http://www.linuxjournal.com/content/lets-automate-lets-encrypt