Hoy en dia todos los sitios están obligados de facto a usar HTTPS o Hypertext Transfer Protocol Secure por sus siglas en inglés, suena complicado aunque para ponerlo en términos simples es una web más segura, en este artículo que trata de la diferencia entre HTTP y HTTPS te explicaremos en profundidad qué es y porqué es importante en la web hoy día.
Instalar un certificado SSL (HTTPS) y que el sitio tuviera un candadito hasta hace no muchos años era algo completamente opcional, al menos para la mayoría de los sitios web, si bien HTTPS es algo que viene desde el principio de los años noventa, siempre fue algo que únicamente bancos, financieras y sitios web de comercio electrónico implementan, para el resto de los sitios web era algo poco acostumbrado, no solo por desconocimiento o falta de interés sino también por un tema de costos.
Sin embargo en 2014 la empresa Google «recomendó» a los webmaster que implementa SSL en sus sitios web, sin embargo no era para tomarlo a la ligera ya que también anunció que su buscador castigaría con una menor clasificación en sus resultados de búsqueda a los sitios que no lo implementaran, así que lejos de ser una simple recomendación fue más una orden a tomar en serio.
En ese momento muchas empresas y sitios web que vivían del tráfico, de la publicidad online y del SEO en general no estaban dispuestos a dar ninguna ventaja a la competencia y fueron los primeros en migrar sus sitios a HTTPS, sin embargo una enorme cantidad de sitios web que no veían una ventaja hacerlo, entonces prefirieron no hacer la transición.
Sin embargo Google no estaba dispuesta a cesar en su cruzada de una web más segura por lo que tomó la decisión directamente de bloquear – al menos con una advertencia – en su navegador web los sitios que no implementan un certificado SSL, no era un tema menor ya que Chrome es uno de los navegadores más populares, luego vendrían el resto de los navegadores a adoptar las mismas políticas.
Ahora probablemente te esté preguntando: ¿Por qué tanto interés en HTTPS y que tiene de malo HTTP?, todo eso y más responderemos hoy en nuestro versus de diferencias entre HTTP y HTTPS.
Contenido
Un poco de historia sobre la diferencia entre HTTP y HTTPS
Antes de comenzar a explicar la diferencia entre HTTP y HTTPS debemos abordar la parte histórica para que puedas estar en contexto. A principios de los años ochenta del siglo XX un científico británico de Timothy Berners-Lee el cual en ese momento trabajaba para el CERN busco la manera de resolver un problema vinculado a la forma en que se presentaba la información disponible en la red, en este caso información científica, hasta el momento los documentos electrónicos eran muy similar a un libro, al leerlo y encontrarse con una referencia se debía saltar de pagina en pagina o incluso ir a buscar otro documento diferente como si se tratase de un libro si se trataba de otro documento externo.
Hoy nos parece trivial sin embargo la ingeniosa solución que ideó fue que el propio texto tuviera un atajo hacia la información que hiciera falta, es decir que el escritor de un documento en lugar de colocar un pie de página con la referencia colocaba en el propio texto la ubicación donde se pudiera obtener la información completa, suena complicado sin embargo así es como nació el enlace entre dos documentos, básicamente lo que hoy conocemos como hipertexto y la web tal como la conocemos.
Los enlaces web no son otra cosa la interconexión de la información, es una telaraña enorme que enlaza un documento (web) con otro, un sitio con otro, todo sin importar que estén dispersos alrededor del mundo en diferentes servidores, sin embargo para poder llevar a cabo esta idea de organizar y presentar la información, Berners-Lee no solamente tuvo que crear de cero un lenguaje para crear y estandarizar esos documentos, sino que debió crear de cero varias tecnologías complementarias.
Por un lado debió crear lo que hoy conocemos como HTML que permite dar formato a dichos documentos, lo que hoy conocemos como páginas web, luego debió crear un protocolo que permitirá distribuir ese HTML en una red, lo cual hoy se conoce como HTTP, luego también debió idear un servicio que usará ese protocolo y así fue como nacieron los servidores webs y como si no hubiera tenido suficiente trabajo también debió crear un programa cliente que permitiera a los usuarios visualizar el HTML, dicho programa se conoce como navegador web.
El HTML, que por sus siglas en inglés significa HyperText Markup Language (‘lenguaje de marcado de hipertexto’) de manera simple se puede describir como la forma en que se escriben y estructuran los documentos de texto para poder ser publicados en un servidor web bajo un protocolo llamado en español Protocolo de transferencia de hipertexto (Hypertext Transfer Protocol) abreviado HTTP.
Este protocolo como dijimos fue creado Timothy Berners-Lee para un entorno académico y abierto donde la idea era publicar y enlazar documentos de forma sencilla y abierta, además la red en ese momento era realmente reducida y mayormente utilizada por científicos, era un ambiente relativamente controlado y la idea era distribuir información y no ocultarla por lo que la seguridad no era una prioridad, de hecho las amenazas cibernéticas externas aún estaban lejos de ser un dolor de cabeza.
Sin embargo a principios de los años 90 la red de Internet empezó a ser más popular y comenzó a utilizarse por un público más amplio y no demoró en adoptar el hipertexto como forma de estructurar y distribuir la información de una forma simple y atractiva, fue en ese momento que ya se hizo necesario buscar la forma de proteger la comunicación HTTP con una capa de cifrado que permitiera cierto grado de privacidad del tráfico web.
Fue así como en 1992 una empresa llamada Netscape que desarrollaba el Netscape Navigator implementó en su navegador una capa de cifrado basada en SSL o Secure Sockets Layer por sus siglas en inglés que dotó al protocolo de la primera capa de seguridad que dotó privacidad a las comunicaciones web y es lo que hoy conocemos como HTTPS
Explicación a la diferencia entre HTTP y HTTPS
El protocolo HTTP es la versión básica y sin ninguna capa de cifrado que permite transportar de forma bidireccional datos entre el servidor web y el navegador del cliente, se dice que transporta en las dos direcciones porque el navegador envía solicitudes HTTP que pueden ser solicitudes GET, POST, PUT, DELETE (entre otras) hacia el tipo de servidor web que haya en el backend, y este responde en consecuencia con la solicitud efectuada.
Por ejemplo la solicitud GET efectuada por el navegador le solicita al servidor Apache que le envíe un archivo, este puede ser un HTML, una imagen, un video, un documento PDF o literalmente cualquier tipo archivos, luego por ejemplo una solicitud POST en cambio, el navegador le envía datos al servidor web, estos datos pueden ser archivos, campos de formularios entre otros.
En el caso de HTTPS es igual y a la vez diferente, es igual en el sentido que permite efectuar exactamente las mismas operaciones que vimos en el párrafo anterior solo que esta vez le agrega una capa de cifrado, en un principio esta capa estaba protegida con un cifrado SSL, de ahí la denominación de Certificados SSL, sin embargo con el tiempo esta tipo de cifrado cayó en desusos por obsoleto y fue sustituido por certificados TLS mucho más seguros, igualmente aún se le sigue llamando certificado SSL aunque no sea lo correcto.
¿Que es TLS (que es https en informatica)?
Hoy en día está muy de moda la pregunta sobre que es https en informatica, y el TLS es algo que está sumamente relacionado.
El TLS o Transport Layer Security es la una nueva versión mejorada del Certificado SSL, si bien se le sigue llamado certificado SSL lo cierto es que hace tiempo dejó de ser SSL puro para ser certificados TLS, ese certificado es el que da la posibilidad de transportar datos entre dos puntos de la red de forma segura manteniendo el contenido de la comunicación de forma privada.
El cifrado TLS es independiente del protocolo, no solamente cifra comunicaciones HTTPS sino también POP3, IMAP, SSH, SMTP o NNTP entre muchos otros, lo que permite que un mismo certificado SSL/TLS pueda proteger diferentes canales de comunicación independiente del protocolo del servicio, por eso los servidores suelen ofrecer el mismo servicio en puerto diferentes en caso que tenga cifrado o no.
Por ejemplo los puertos sin cifrado para correo son el 25 para SMTP, 110 para POP3 y el 143 para IMAP mientras que con cifrado es el 465 para SMTP, el 997 para POP3 y el 993 para IMAP, mientras que en el caso de HTTP el puerto estándar es el 80 en el caso de no tener cifrado y el 443 en caso de no tenerlo, a diferencia del correo, en el caso de HTTP/HTTPS el usuario no se da cuenta de este cambio ya que lo realiza el navegador web.
Cuando en el navegador se realiza una petición por ejemplo a http://www.intranetworking.com se esta haciendo una petición sin cifrado por tanto el navegador solicita la página al puerto 80, en cambio si en lugar de http se hace por https a la direccion https://www.intranetworking.com el navegador automaticamente lo solicita al puerto 443, esto es completamente transparente al usuario y pasa inadvertido, sin embargo por detrás son 2 servicios diferentes los que responden y por tanto pueden tener comportamientos diferentes.
Porque usar un certificado SSL
Más allá del que la empresa Google castigue a los sitios que no utilizan un SSL lo cierto es que razones sobran para usarlos, los delitos informáticos y las amenazas están a la orden del día sobre todo con redes públicas o poco seguras, en caso de no utilizar un SSL en nuestros sitios web exponemos a que la comunicación entre nuestros usuarios y nuestro servidor pueda ser interceptada en el camino por delincuentes.
Esta situación permite que los datos sean robados y caigan en malas manos, los usuarios de nuestros sitios se pueden conectar a nuestro sitio desde un sin fin de ubicaciones y no necesariamente seguras, el no usar un SSL facilita el robo de identidades, números de tarjeta de crédito, datos bancarios o datos personales de los usuarios y puede representar un riesgo de seguridad para el sitio y para el servidor.
A la hora de elegir conviene leer sobre SSL pagos vs SSL gratuitos
Existen tanto SSL gratuitos como SSL pagos y en Infranetworking disponemos de ambos tipos de Certificados SSL, la ventaja de los SSL gratuitos es que son gratis y poco más, funcionaran bien para proyectos pequeños, para sitios de pruebas, sin embargo el gran problema de los certificados gratuitos es que duran 3 meses a diferencia de los pagos que duran un año y las renovaciones de los gratuitos no siempre se efectúan como corresponde y puede dejar el sitio con un no muy confiable letrero de sitio no seguro.
Por otro lado la ventaja de los certificados pagos es que tienen soporte y garantía, algo que los gratuitos carecen, por otro lado los certificados pagos también se pueden utilizar para proteger otros servicios como el correo, algo que los gratuitos, igualmente si quieres conocer las ventajas y desventajas de cada uno puedes revisar: SSL Gratuito vs SSL de Pago: ¿cuál me conviene más? donde abordamos más en profundidad el tema.
Conclusión
En este post de hoy hemos repasado la historia del hipertexto y su transición de un mundo de una web más segura, junto con los diferentes cambios a lo largo del tiempo, vimos porque es prácticamente obligatorio en la actualidad la implementación y uso de un certificado SSL para proteger tanto a visitantes como al propio sitio y los riesgos de no hacerlo.
¿Tus visitantes están seguros? Si no lo están puedes darte una vuelta por nuestros Certificados SSL protégete a ti y a tus visitantes. Si has llegado hasta este punto, ahora ya conoces que es https en informatica, así como también cuál es la diferencia entre HTTP y HTTPS para saber qué elegir para tu web.