Para hacer una analogía con el mundo real, podemos considerar el caso del pago con tarjeta en una tienda o restaurante. Lo que vimos en el artículo anterior sería la necesidad de ocultar los datos de la tarjeta y el código que tecleamos de las miradas de los demás y la forma de hacerlo; en esta ocasión, nos referiremos a la necesidad y la forma de hacer que el servidor, tienda, etc. sean fiables.
Y es que en Internet también hay el mismo problema: cuando estamos comprando en una tienda online, ¿cómo sabemos que esa tienda es lo que dice y que no es un ladrón que ha montado una web con la misma apariencia que la verdadera tienda para obtener nuestros datos? Este es el timo del phishing: se hace un sitio web muy parecido a un banco o tienda, con una URL muy similar, a la que se atraen los usuarios, normalmente a través de un correo electrónico, donde los datos de las contraseñas o tarjetas que introducimos quedan en poder del estafador. Hay antivirus que tienen detectores de phishing pero no son 100% seguros. Lo mejor es revisar bien la URL buscando pistas sospechosas. Pero no siempre es fácil detectar fraudes. ¿Existe algún mecanismo de Internet que garantice que es lo que dice una web, es decir, autenticación de la web?
Lo garantiza el protocolo HTTPS mencionado en el artículo anterior. Como vimos, el protocolo HTTPS utiliza la criptografía con clave pública, es decir, el mensaje se cifra con la clave pública del destinatario, pero el mensaje no puede descifrarse con esa clave pública que conoce cualquier persona, sino con la clave privada que sólo conoce el destinatario, garantizando así que sólo el destinatario pueda leer nuestro mensaje. Esto garantiza que nuestros datos serán encriptados y no podrán ser capturados por terceros. Pero la autenticación se garantiza gracias a otra característica del protocolo HTTPS: los certificados digitales de clave pública.
Los certificados digitales son documentos digitales que garantizan la vinculación entre una entidad digital y su clave pública, emitidos por terceras personas fiables (emisoras de certificados). Así, las tiendas on line deben obtener previamente un certificado de puesta en marcha de un servidor HTTPS con uno o varios emisores. Y cuando un navegador tiene que iniciar una conexión HTTPS, lo primero que hace es conectarse con los certificados emisores y solicitar el certificado digital de esa web para asegurarse de que la clave pública es la de la empresa que realmente lo dice y que la clave pública es correcta.
Si todo es correcto con el certificado digital, podemos ver los datos del certificado pinchando en el icono del candado que aparece en la barra de direcciones. Si no es así, el navegador nos muestra un aviso que seguramente habrás visto en más de una ocasión, un policía con un icono que aparece solicitando documentación. Siempre que aparezca esto no significa que estemos ante una web fraudulenta: puede que nuestro navegador no tenga constancia de este emisor de certificados (por ejemplo, porque está obsoleto), o que la web sea exclusiva para un grupo reducido (por ejemplo, la extranet de una empresa) y que no haya solicitado certificados; si estamos seguros de que la web es segura, el navegador nos permite avanzar.
Por lo tanto, si tenemos que introducir algún dato privado (contraseña, documento confidencial, datos de tarjeta de crédito, etc.) en alguna web, si vemos el candado correspondiente al protocolo HTTPS y el navegador no nos hace ninguna observación, podemos hacerlo con tranquilidad, ya que estamos seguros de que el destinatario es el que dice y nadie podrá ser captado.
Otra vía para hacer fraudes es el correo electrónico. En nombre de alguien que conocemos puede llegar un correo solicitando información o dando unas instrucciones, y si lo dice nos pueden robar datos, ya que es fácil enviar un correo electrónico a nombre de otro. ¿Es posible autenticar al remitente? Sí, mediante firma digital.
La firma digital es, básicamente, un uso especial de la criptografía con clave pública. El remitente encripta una copia del mensaje con clave privada y el destinatario, para su desencriptación, utilizará la clave pública del remitente obtenida de un emisor de certificados; si el desencriptado es igual al mensaje original, significa que el mensaje es necesariamente enviado por el presunto remitente, ya que sólo él tiene su clave privada.
Los programas de correo electrónico (Outlook, Thunderbird...) tienen la posibilidad de firmar digitalmente mensajes, unos propios y otros con la instalación del programa PGP (Pretty Good Privacy) o GPG (GNU Privacy Guard) de su versión libre. Sobre este tipo de programas también os comentamos en el artículo anterior diciendo que utilizan la criptografía con clave pública para encriptar el mensaje y que sólo los destinatarios pueden desencriptar. Pero no es lo único que hacen este tipo de programas: implementan también la firma digital para autenticar al remitente. Sin embargo, con el correo web (Gmail, Hotmail, Yahoo...) no es posible firmar digitalmente. Esto exigiría que nuestra clave privada pasara a manos del proveedor, y eso no se puede hacer porque para que la criptografía de clave pública sea fiable sólo tiene que guardar la clave privada uno mismo. La única opción es utilizar un plugin para el navegador, que realizará la encriptación en su ordenador.
En resumen, al navegar por las webs que utilizan el protocolo HTTPS y a través de la firma digital por PGP, GPG u otra vía, podemos estar seguros de que no sólo nadie captará los datos, sino también que es nuestro interlocutor.