Una firma digital , como todo algoritmo criptográfico, no resuelve problemas, solo los mueve.
Tenga cuidado de que las firmas NO sean encriptadas. Si alguien trató de explicar las firmas como una especie de encriptación, vaya a buscarlas y golpéelas en los dientes con una llave, repetidamente. Dígales que son indignos, y estoy decepcionado con ellos. Esta explicación defectuosa no funciona, nunca funcionó y solo genera confusión.
En un sistema de firmas, hay un mensaje m , una clave pública kp , un privado clave ks , y una firma s . El algoritmo generación de firmas calcula s de m y k s . El algoritmo verificación de firmas toma m , s y k p , y devuelve "verdadero" o "falso". Cuando devuelve "verdadero", lo que esto significa es que quien posee la clave pública (es decir, sabe la clave privada correspondiente) participó en la generación de la firma s en el mensaje específico m .
El punto importante está en la propiedad de la clave: el algoritmo de verificación de firma no le dice "sí, esto está firmado por Bob"; solo le dice "sí, esto está firmado por quien posee esa clave pública". Esto garantiza que el firmante es realmente Bob solo si tiene una manera de asegurarse de que la clave pública que ve sea realmente la clave pública de Bob. Si Bob simplemente envió su clave pública junto con el mensaje firmado, sería fácil hacerse pasar por Bob simplemente diciendo "hola, soy Bob, aquí está mi clave pública y aquí está mi mensaje firmado". No probaría nada en absoluto. El ataque aquí es simple, se llama "mentira".
Si bien las firmas son útiles (de hecho, redujeron el problema de verificar la procedencia de varios mensajes al problema de asociar una sola clave pública con su propietario), no garantizan mágicamente la propiedad. de aire fino. Aquí es donde Autoridades de certificación entran en juego. El CA es un organismo cuyo trabajo es asegurarse de que Bob realmente posee su supuesta clave pública; Presumiblemente, el CA lo hace al encontrarse con Bob en persona, o algún otro mecanismo de ese tipo. Cuando la CA ha verificado debidamente la propiedad de Bob de su clave, la CA coloca la identidad de Bob (su nombre) y su clave pública en un certificado . La CA luego firma el certificado.
La máquina de Alice puede verificar la firma en el certificado, asegurándose así de que los contenidos del certificado son realmente de la CA esperada. En ese momento, Alice tiene alguna garantía sobre el hecho de que la clave pública que ve en el certificado es realmente la clave de Bob, y puede usarla para verificar las firmas que supuestamente ha sido calculada por Bob.
En este punto, debe decir: "¿Pero cómo puede Alice verificar la firma en el certificado de la CA? ¡Tendría que conocer la clave pública de la CA!" Y, de hecho, el problema se ha trasladado nuevamente a la cuestión de la propiedad de la clave de CA. Podemos moverlo una vez más, con otro CA. Y así. Pero debe detenerse en alguna parte. Ese "en algún lugar" es la raíz CA . Una CA raíz es una CA cuya clave pública ya conoce, absolutamente. Esa es la parte mágica. En la práctica, su computadora viene con un sistema operativo que ya incluye la clave pública de alrededor de un centenar de CA raíz, que creó una deal con Microsoft en el sentido de que sus claves públicas son inherentemente conocidas (y de confianza) por todos los sistemas Windows.