Saltar al contenido principal
Library homepage
 
LibreTexts Español

2.8: Autenticarse mediante firmado criptográfico

  • Page ID
    51875
  • \( \newcommand{\vecs}[1]{\overset { \scriptstyle \rightharpoonup} {\mathbf{#1}} } \) \( \newcommand{\vecd}[1]{\overset{-\!-\!\rightharpoonup}{\vphantom{a}\smash {#1}}} \)\(\newcommand{\id}{\mathrm{id}}\) \( \newcommand{\Span}{\mathrm{span}}\) \( \newcommand{\kernel}{\mathrm{null}\,}\) \( \newcommand{\range}{\mathrm{range}\,}\) \( \newcommand{\RealPart}{\mathrm{Re}}\) \( \newcommand{\ImaginaryPart}{\mathrm{Im}}\) \( \newcommand{\Argument}{\mathrm{Arg}}\) \( \newcommand{\norm}[1]{\| #1 \|}\) \( \newcommand{\inner}[2]{\langle #1, #2 \rangle}\) \( \newcommand{\Span}{\mathrm{span}}\) \(\newcommand{\id}{\mathrm{id}}\) \( \newcommand{\Span}{\mathrm{span}}\) \( \newcommand{\kernel}{\mathrm{null}\,}\) \( \newcommand{\range}{\mathrm{range}\,}\) \( \newcommand{\RealPart}{\mathrm{Re}}\) \( \newcommand{\ImaginaryPart}{\mathrm{Im}}\) \( \newcommand{\Argument}{\mathrm{Arg}}\) \( \newcommand{\norm}[1]{\| #1 \|}\) \( \newcommand{\inner}[2]{\langle #1, #2 \rangle}\) \( \newcommand{\Span}{\mathrm{span}}\)\(\newcommand{\AA}{\unicode[.8,0]{x212B}}\)

    Se recomienda leer los capítulos Hash criptográfico y Criptografía asimétrica antes de seguir con este.
    Lo que aprenderás
    1. Cómo obtener el equivalente digital de una firma
    2. Cómo usar las firmas criptográficas para brindar autenticidad
    3. Qué significa autenticidad electrónica
    4. Cómo usar las firmas criptográficas para diseminar confianza

    Los sistemas criptográficos asimétricos pueden usarse con frecuencia para brindar autenticidad. En PGP, esto se facilita debido a la naturaleza complementaria de las claves pública y privada. Primero, se crean dos claves criptográficas, cualquiera de las cuales puede usarse como clave pública. La elección de cuál tendrá esta función es meramente arbitraria; es decir, cualquiera de ellas puede usarse para descifrar, siempre y cuando la otra se use para cifrar (y clave la privada sea justamente eso, para brindar seguridad).Una vez que se ha asignado una de las claves criptográficas como pública y la otra como privada, aun puedes usar tu clave privada para cifrar un mensaje. Sin embargo, cualquiera que tenga la clave pública podría descifrarlo. Si haces pública tu clave pública, cualquiera podrá descifrar tu mensaje y esto haría inútil el uso del cifrado para obtener privacidad en tus mensajes.

    Esto ilustra muy bien que la única persona que podría haber cifrado un mensaje que puede descifrarse con tu clave pública eres , la misma persona que tiene tu clave privada. Cifrar un mensaje con tu clave privada brinda el equivalente digital de una firma y se le conoce como firmado criptográfico. De hecho, el firmado criptográfico brinda dos propiedades de la autenticidad:

    1. Atribución. Tú escribiste el mensaje (y no alguien más).
    2. Integridad. El mensaje fue recibido como fue escrito; es decir, no fue alterado.

    La segunda propiedad proviene del hecho de que una alteración tendría que modificar el texto cifrado de tal forma que descifrarlo con tu clave pública generaría el texto alterado según lo pretendía el intruso. Pero esto es completamente inviable.

    Estas propiedades solo son significativas si tú eres la única persona en control de tu clave privada, puesto que cualquiera que la obtenga podría firmar criptográficamente su propio texto alterado.

    Firmado criptográfico de hashes criptográficos

    En la práctica, en lugar de cifrar todo el mensaje, uno podría cifrar un hash criptográfico (también conocido como valor hash o huella digital) del mensaje con el propósito de hacer un firmado criptográfico. Esto se hace por motivos de eficiencia. Consideremos el protocolo de que Assata firme un mensaje y Bobby verifique la firma, como se ilustra a continuación.

    Assata toma un hash criptográfico de su mensaje y cifra el resultado con su clave privada; con esto crea una firma, que puede adjuntar al mensaje:

    Creación de una firma
    Creación de una firma

    Bobby toma la firma y la descifra con la clave pública de Assata, lo que resulta en el mismo hash que Assata generó. Luego, toma su propio hash criptográfico del mensaje y compara el resultado con el hash descifrado que recibió de Assata:

    Es inviable falsificar funciones hash criptográficas
    Es inviable falsificar funciones hash criptográficas

    Puesto que es inviable falsificar una función hash criptográfica, los dos hashes que Bobby genera (uno a partir directamente del mensaje de Assata y otro de la firma de Assata) son iguales; por tanto, sabemos dos cosas:

    1. Solo Assata pudo haber generado la firma. Solo Assata podría cifrar algo que pueda descifrarse con su clave pública, puesto que ella es la única en posesión de su clave privada.
    2. El mensaje no ha sido alterado desde que Assata lo escribió. Si alguien hubiera alterado el mensaje, el hash del mensaje sería diferente del contenido en la firma. Por tanto, un impostor tendría que falsificar una nueva firma, pero no puede generarla sin la clave privada de Assata.

    En conclusión, hemos obtenido autenticidad en forma criptográfica.

    Observa que Edgar, en un ataque de intermediario, podría simplemente eliminar la firma. Entonces, para que el firmado criptográfico sea efectivo, debes acordar usarlo todo el tiempo. Las modernas apps de mensajería con cifrado de extremo a extremo suelen contar con firmado integrado por defecto, aunque esto es invisible para el usuario promedio.

    Aplicaciones de firmado criptográfico

    Como en el ejemplo anterior, el firmado criptográfico puede brindar autenticidad a los mensajes de manera similar a como antes lo hicieron las firmas autógrafas o los sellos de cera. Sin embargo, puedes firmar criptográficamente mucho más que solo mensajes (por ejemplo, correos electrónicos).

    Verificación de software

    Tal vez el uso más explícito y común de las firmas criptográficas se da en la verificación de software, aun cuando no estés consciente de ello. El software, como las apps, solo hará lo que sus desarrolladores pretendían que hiciera y dicen que hace, si no ha sido alterado a medio camino entre el desarrollador y tu computadora o teléfono. Un programa o app es en realidad solo un archivo electrónico (o conjunto de archivos), consistente en una secuencia de caracteres o un tipo de mensaje. Si un desarrollador ha firmado su software con criptografía de clave pública, un usuario cuidadoso puede verificar la firma obteniendo la clave pública del desarrollador y haciendo la validación que se ilustró antes. (El desarrollador debería proporcionar su clave pública por un canal diferente del canal por el que descargaste el software. Esto permitiría hacer una comparación fuera de banda, como se describió en el capítulo El intermediario: la clave pública que usas para hacer la validación está fuera de la banda del mensaje o la descarga de software.)

    Gestionar la validación de huellas digitales y la red de confianza

    Para confiar en la clave pública de Assata, Bobby debería verificarla a través de la huella digital de la clave, como se ha descrito. De otra forma, Edgar, el intruso, podría suministrar a Bobby una clave pública compatible con una clave privada en su poder.

    Pero si Bobby ha verificado que la clave pública de Assata en realidad es de ella, entonces puede hacer el firmado criptográfico de la clave pública de Assata con su propia clave privada. Esto le permitirá a Bobby conservar un registro de las claves públicas que ha verificado, así como compartir la clave de Assata con otras personas, como se describe a continuación.

    Supongamos que Cleaver quiere enviarle un mensaje cifrado a Assata y que también quiere asegurarse de que Edgar no va a estar de intermediario. Pero Cleaver no tiene un canal secundario a través del cual verificar la clave pública de Assata. Sin embargo, Cleaver ha recibido y verificado la clave pública de Bobby, así que Bobby puede enviarle la clave pública de Assata a Cleaver, con su firma. Si Cleaver confía en Bobby y ha verificado su clave pública, entonces puede verificar su firma en la clave pública de Assata y, en consecuencia, confiar en que es genuina.

    En contexto: Canarios de seguridad

    Los canarios de seguridad o declaraciones canario informan a los usuarios de que su proveedor no ha sido sometido a procesos legales o de otra naturaleza, al momento de la publicación, que podrían poner en riesgo a los usuarios: filtraciones de datos, divulgación de claves de cifrado o accesos de puerta trasera al sistema. Si el anuncio no se actualiza en una fecha sugerida, los usuarios podrán inferir que ha habido un problema que podría poner en riesgo sus datos pasados y futuros. Por ejemplo, Riseup.net publica una declaración canario trimestral firmada criptográficamente para poder verificar su autenticidad; es decir, que en efecto la gente de Riseup.net escribió esa declaración. Riseup.net incluye un vínculo a un artículo periodístico fechado el día de emisión de su declaración para brindar evidencia de que la declaración no fue publicada antes de dicha fecha.

    El uso de canarios de seguridad se inició en Estados Unidos como una forma de eludir órdenes de censura que acompañan ciertos procesos legales en los cuales el gobierno de ese país puede obligar a alguien a retener comunicaciones. Por otro lado, el gobierno de Estados Unidos casi nunca puede obligar a alguien a decir algo (en especial algo que no es cierto), de manera que no podría obligar a un proveedor a publicar una declaración canario que afirmara, falsamente, que nada ha ocurrido.

    El término tiene su origen en el uso de canarios en las minas de carbón para detectar gases tóxicos: si el canario muere, ¡es necesario disipar el aire rápidamente!

    Qué aprender a continuación

    Recursos externos

    Créditos


    2.8: Autenticarse mediante firmado criptográfico is shared under a CC BY-NC 4.0 license and was authored, remixed, and/or curated by LibreTexts.