Intercambio de claves públicas
El sistema de clave asimétrica o pública minimiza el riesgo que supone la interceptación de la clave pública durante su intercambio, porque precisamente la parte que se intercambia no descifra, si no que sirve para lo contrario, para cifrar un contenido.
Sigue existiendo el riesgo de suplantación de personalidad: ¿cómo sabes con seguridad que la clave pública que tienes de alguien es de quien crees que es o de quien dice ser?
Si estás en casa de una amiga y te pide un pendrive para darte una copia de su clave pública, en función del grado de confianza puedes estar bastante seguro. También en el caso de que un amigo te de la clave pública de un amigo suyo, pues es un caso parecido. Pero si te envían por correo electrónico una clave pública hace falta algún mecanismo de confianza en ella.
Cuando se genera un par de claves privada y pública, se genera también un valor llamado hash o resumen que está asociado y es único para ese par de claves. Este valor se obtiene con una función matemática que no tiene función inversa.
Esto requiere un poco más de explicación: generalmente las funciones matemáticas que conocemos tienen una función inversa con la que “deshacer” o “desandar” el cálculo de la primer función: por ejemplo, pensemos en una función que calcula el doble de cualquier valor y la llamamos función “doble”:
doble(4)=8 doble(6)=12
Para esta función, la inversa sería una que calculara la mitad, que la llamaremos “mitad”
mitad(8)=4 mitad(12)=6
Podemos ver que con la función inversa podemos “deshacer” o “desandar” el camino que ha hecho la primera función.
Existe un tipo de funciones que devuelve un resultado en función de un valor de entrada, igual que lo explicado anteriormente, pero no tiene función inversa. Si calculamos con una función de este tipo y como valor de entrada utilizamos la clave pública, obtenemos un resultado que podríamos usar para validación. Este valor se llama huella dactilar o fingerprint.
Si recibimos una clave pública que creemos que es de Alicia, podríamos obtener la huella y después preguntar a Alicia por la huella de su propia clave y comprobar si coincide y si no coincide podemos pensar que lo que hemos recibido no es su clave.
¿Cómo podemos obtener la huella digital?, me refiero a la del interlocutor, no a la que podemos calcular. Pues los hay que publican la huella digital en sus propios blogs, también hay quien lleva unos papelitos con la huella digital y la identidad (correo electrónico, nombre...) y se lo entregan a quien puede necesitar verificar la clave, también se puede llamar por teléfono y preguntar para que te lo digan de viva voz.
El concepto aquí es la confianza, la necesitamos para asumir que la clave que tenemos es de quien dice ser y una herramienta para afianzar la confianza es la huella dactilar. Después está en cuanto confías en el origen de la huella dactilar: si conoces personalmente a Alicia y sabes como se maneja con sus claves puedes confiar completamente. Si obtienes una clave de alguien que no conoces a través de alguien conocido y además en el que confías por el cuidado que pone al gestionar las claves, también tienes un buen nivel de confianza en la clave del desconocido.
Las claves públicas pueden ser firmadas ratificando la confianza y difundidas con esas firmas para que otros puedan ver quien confía en esas claves y evalúen cuanto confían en los firmantes, creándose así una red de confianza.
Con los certificados digitales(tipo F.N.M.T.), la confianza puede ser total porque están respaldados por autoridades, en el caso de F.N.M.T. (Fábrica Nacional de Moneda y Timbre), autoridades certificadoras y puedes estar seguro del origen de un certificado y de la identidad del titular porque ha sido comprobada con documentos oficiales (DNI y tal). Al contrario de la red de confianza, este modelo es centralizado.