Hace unas cuantas semanas Facebook decidió obligar a los desarrolladores de aplicaciones a hospedarlas en servidores que cuenten con certificados para que puedan ser acceder a través de HTTPS. Este cambio ha sido muy traumático para muchos de nosotros ya que supone la compra de un certificado. Lo peor es que se avisó con muy poco tiempo para uno poder objetar.
Gracias a Dios, hay una solución muy sencilla para resolver el problema de una manera economica más que segura: Shared SSL. Esto significa compartir el mismo certificado de SSL para todos las páginas de internet que compartan el mismo servidor. Resultado: facebook contento, pero no cuentes con ese certificado para ningún requerimiento de seguridad.
A todo esto, mi amigo y colega Juan Miguel Calcaño (asinox.net) ha decido comprarse un certificado para desarrollar sus proyectos, incluyendo los de Facebook. Aunque es bueno artillarse con todas las herramientas de seguridad posible, en mi opinión los certificados son una inversión que puede esperar a que tu negocio crezca o se presente una necesidad real.
Una de sus preguntas es «cuanto es el ahorro real con el Shared SSL y la ventaja?» y la respuesta que doy es la siguiente:
En cuál de los sentidos? lo dices para el caso de aquí (Multimedios El Caribe) o para el tuyo?
Si es el caso de aquí, innumerables…. para ir por el librito hubiésemos tenido comprar un certificado por cada cliente. El ahorro es de miles de dólares.
En tu caso el ahorro hubiese sido de algunos 100 a 200 dólares dependiendo de donde compraste tu certificado. Tal vez para ti no es mucho dinero… seguro estás forrado de dinero, pero con 100 dolares yo armo una muy buena campaña de Facebook y Google Ads que puede durar hasta 2 meses.
Que ventaja tienen los Shared SSL? Ninguna!!! Son pésimos, no ofrecen ninguna ventaja o beneficio y ni hablemos de seguridad. Las únicas dos cosas que se les pueden atribuir es que #1 son gratis y #2 funcionan con Facebook.
Pero para entender bien el despilfarro de dinero hay que entender para que se usan los certificados (seguro que lo sabes, pero repasemos). A groso modo:
- Autenticación
- Privacidad
- Integridad
Autenticación: asegurarte que los dos integrantes de la conversación son realmente los que dicen ser quienes son.
Privacidad: que nadie ajeno a la conversación se entere de lo que está sucediendo.
Integridad: que nadie ajeno a la conversación pueda alterar la misma independiente de que esta persona pueda o no entender lo que se está hablando.
Entonces tu te preguntas a ti mismo: realmente necesito yo este nivel de seguridad para mis aplicaciones de Facebook? Creo que a menos que estés trabajando con datos sensibles para tus clientes no es necesario para nada tener un certificado propio.
Ahora bien, en el peor de los casos. Es extremadamente difícil que alguien pueda intervenir en una comunicación entre un cliente y un servidor. Para que esto pueda suceder tiene que suceder una de las siguientes situaciones:
- El cliente y el atacante están en la misma red.
- El atacante se encuentra en algún nodo entre el cliente y el servidor.
- El Servidor y el atacante están en la misma red (Operador en el ISP?).
- El cliente y/o el servidor tienen un virus que solo tiene acceso a ver los paquetes de red de una de las dos partes.
Estos casos son extremadamente difíciles de lograr, la seguridad siempre se rompe por donde la cuerda está más floja y eso generalmente es por la aplicación. Es en la mayoría de los casos muchísimo más fácil atacar un sistema con un SQL Injection que leyendo/modificando los paquetes de red.
En conclusión, los Shared SSL pueden ser una opción económica para el que quiera resolver este tipo de problemas como los de las aplicaciones de Facebook. Mi recomendación es que inviertan ese dinero en publicidad.